【发布时间】:2019-01-20 19:20:04
【问题描述】:
我遇到了如下问题:
XYZ 网站需要显示一个包含所有食谱列表的页面,并且当用户单击每个食谱时,他们希望显示包含其成分的食谱页面。他们还希望用户进一步点击每种成分并查看与该成分相关的所有食谱。
目前,配方数据以 CSV 格式从旧系统接收。 CSV 数据如下所示
recipe_id、recipe_name、描述、成分、有效、updated_date、created_date
1, 意大利面, 意大利面, 番茄酱, 真的, 2018-01-09 10:00:57, 2018-01-10 13:00:57
1, 意大利面, null, 奶酪, 真的, 2018-01-09 10:10:57, 2018-01-10 13:00:57
2, 千层面, 分层千层面, 起司, 真的, 2018-01-09 10:00:57, 2018-01-10 13:00:57
2、千层面、分层千层面、蓝纹奶酪、假的、2018-01-09 10:00:57、2018-01-10 13:00:57 ....
Assume that this CSV is consume every 1 hour with 1TB of data You are asked to:
- 创建可以存储此数据的数据模型,以允许用户执行 上述活动。该数据模型需要支持数百万 每秒读取一次。
- 讨论您将用于存储这些数据的持久性系统。
- 在 Scala 中编写一个 Spark 作业,它可以获取上面显示的 CSV 并存储 使用您讨论的数据模型在您选择的存储系统中 以上。
- 编写查询以回答以下问题 一种。平均每小时更新的食谱数 一世。例如。意大利面在一小时内更新了两次 湾。全年 10:00 点更新的菜谱数。
我的问题是, 哪种存储系统(HBASE、Cassandra、Redis 等)最适合这种情况? 任何数据模型帮助将不胜感激。
非常感谢, 卡维
【问题讨论】:
标签: apache-spark cassandra nosql hbase