Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/cassandra/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Apache spark NoSQL数据模型及存储系统设计_Apache Spark_Cassandra_Nosql_Hbase - Fatal编程技术网

Apache spark NoSQL数据模型及存储系统设计

Apache spark NoSQL数据模型及存储系统设计,apache-spark,cassandra,nosql,hbase,Apache Spark,Cassandra,Nosql,Hbase,我遇到了如下问题场景: XYZ网站需要显示一个包含所有配方列表的页面,当用户单击每个配方时,他们希望显示包含其配料的配方页面。他们还希望用户进一步点击每种配料,查看所有与该配料相关的食谱 目前,配方数据以CSV的形式从遗留系统作为提要接收。CSV数据如下所示 配方id、配方名称、说明、成分、活性、更新日期、创建日期 意大利面,意大利面,番茄酱,真的,2018-01-09 10:00:572018-01-10 13:00:57 1,意大利面,无,奶酪,真,2018-01-09 10:10:5720

我遇到了如下问题场景:

XYZ网站需要显示一个包含所有配方列表的页面,当用户单击每个配方时,他们希望显示包含其配料的配方页面。他们还希望用户进一步点击每种配料,查看所有与该配料相关的食谱

目前,配方数据以CSV的形式从遗留系统作为提要接收。CSV数据如下所示

配方id、配方名称、说明、成分、活性、更新日期、创建日期

意大利面,意大利面,番茄酱,真的,2018-01-09 10:00:572018-01-10 13:00:57
1,意大利面,无,奶酪,真,2018-01-09 10:10:572018-01-10 13:00:57 千层面,分层千层面,奶酪,真的,2018-01-09 10:00:572018-01-10 13:00:57
千层面,分层千层面,蓝奶酪,假,2018-01-09 10:00:572018-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并存储 在您选择的存储系统中使用您讨论的数据模型 上面
  • 编写查询以回答以下问题 A.每小时更新的平均配方数 我意大利面在一小时内更新了两次 B全年10点更新的食谱数量
  • 我的问题是,, 哪种存储系统(HBASE、Cassandra、Redis等)最适合此场景? 任何数据模型帮助都将不胜感激

    非常感谢,,
    Kavi

    Redis是一个内存数据库,这意味着您需要至少>1TB的RAM来存储数据集。这并不便宜,而且对于您的用例来说可能有些过分

    Cassandra是一个很好的选择,简单的键值,阅读您描述的繁重工作负载

    CREATE TABLE recipe ( 
        id int PRIMARY KEY, 
        name text, 
        description text,
        ingredients list <text>, 
        active boolean,
        updated_date timestamp, 
        created_date timestamp
    );
    
    创建表格配方(
    id int主键,
    名称文本,
    说明文字,
    配料表,
    主动布尔,
    更新日期时间戳,
    创建日期时间戳
    );