Cassandra是Hadoop作为数据仓库的一个很好的替代方案,其中数据仅被追加,源数据库中的所有更新都不应该覆盖数据仓库中的现有行,而应该被追加。Cassandra真的是充当数据仓库,还是作为存储批/流查询结果的数据库?
发布于 2017-07-21 14:25:47
Cassandra既可用作数据仓库(原始数据存储),也可用作数据库(用于最终数据存储)。这更多地取决于您想要处理数据的情况。
为了不同的目的,你甚至需要同时拥有Hadoop和Cassandra。
假设您需要从多个移动设备收集和处理数据,并向用户提供一些复杂的聚合报告。所以首先,您需要尽可能快地保存数据(因为新的部分经常出现),所以在这里使用Cassandra。由于Cassandra在聚合特性方面受到限制,所以可以将数据加载到HDFS中,并通过HQL脚本进行一些处理(假设,您不太擅长编码,但擅长复杂的SQL)。然后,将报告结果从HDFS移动到由用户id分区的专用报表表中的Cassandra。
因此,当用户希望在上个月获得一些关于他的活动的聚合报告时,应用程序获取active user的id并返回Cassandra的聚合结果(因为它是简单的键值搜索)。
因此,对于您的问题,是的,这可能是另一种选择,但选择策略取决于数据类型和应用程序业务案例。
您可以阅读有关Cassandra 这里使用的更多信息。
https://stackoverflow.com/questions/45211965
复制相似问题