Hadoop vs Cassandra:以下哪种情况更好?

Hadoop vs Cassandra:以下哪种情况更好?,hadoop,cassandra,bigdata,database,Hadoop,Cassandra,Bigdata,Database,在我们的系统中,用户可以查看和“关闭”报表。在他们关闭报告后,报告将被移动到数据库中的一个临时表中,在该表中保存24小时,然后移动到一个归档表中(在该表中,报告将存储7年)。在这7年中的任何时候,用户都可以“重新打开”报告并处理它。问题是存档存储越来越大,查找/重新打开报告往往很耗时。我需要不时获得档案的统计数据(即报告日期、客户、平均“打开”时间长度等)。我想使用大数据方法,但我不确定是使用Hadoop、Cassandra还是其他方法?有人能为我提供一些指导,告诉我如何开始并决定使用什么吗?如

在我们的系统中,用户可以查看和“关闭”报表。在他们关闭报告后,报告将被移动到数据库中的一个临时表中,在该表中保存24小时,然后移动到一个归档表中(在该表中,报告将存储7年)。在这7年中的任何时候,用户都可以“重新打开”报告并处理它。问题是存档存储越来越大,查找/重新打开报告往往很耗时。我需要不时获得档案的统计数据(即报告日期、客户、平均“打开”时间长度等)。我想使用大数据方法,但我不确定是使用Hadoop、Cassandra还是其他方法?有人能为我提供一些指导,告诉我如何开始并决定使用什么吗?

如果您的归档文件很大,并且希望从中获取报告,那么您将无法仅使用Cassandra,因为它无法轻松地聚合数据。最终,您将在相同的节点上配置Hadoop和Cassandra

根据我的经验,如果您有大量的写入(我们已经在备份系统的后端尝试过),那么归档(一次写入-多次读取)并不是Cassandra的最佳用例。根据您的压缩策略,您将为此支付空间或iops费用。添加的更改通过SSTable层次结构传播,导致比原始更改多得多的写入


在不知道其他变量的情况下,不可能完整地回答您的问题:您将分配多少硬件(服务器、它们的ram/cpu/hdd/ssd)?每个“报告”条目的大小是多少?您每天通常提供多少阅读/写作服务?您的归档存储现在有多大?

Cassandra可能可以正常工作。保留两个表、报告和报告存档。使用24小时7年的时间定义架构:

CREATE TABLE reports (
   ...
) WITH default_time_to_live = 86400;

CREATE TABLE reports_archive (
   ...
) WITH default_time_to_live = 86400 * 365 * 7;
使用新的时间窗口压缩策略(TWCS)来最小化写入放大。将报表元数据和报表二进制数据存储在单独的表中可能是有利的

对于汇总分析,请使用Spark和Cassandra。您没有提到数据的大小,但大致说来,每个Cassandra节点1-3 TB就可以了。使用RF=3,您至少需要三个节点