建议用于收集社交网络分析的 BigData DB
Posted
技术标签:
【中文标题】建议用于收集社交网络分析的 BigData DB【英文标题】:Suggested BigData DB for Collecting social network analytics 【发布时间】:2016-07-06 14:10:19 【问题描述】:我想建立一个系统,每小时收集社交网络数据,并对特定分享/帖子(可能有数千个)上发生的情况进行采样。 完成爬取后,我想将其保存在一个大数据数据库中,以便稍后进行分析。
分析过程可能是 Spark 甚至是应用程序代码分析。 这意味着我正在寻找可以让我: 1.查询。 2. Spark等常用的数据处理都可以在上面使用。
你会推荐哪一个? HBase? MongoDB?沙发床?大表? DynamoDB?
谢谢!
【问题讨论】:
您似乎想以“批量”方式将每小时的社交网络数据存储到这个 nosql 数据库中,并使用该数据库来驱动主要分析。如果那是用例,那么我肯定会看看 Apache Phoenix/HBase。在 HBase 中,您可以非常高效地批量导入数据。在 HBase 之上使用 Phoenix,您可以获得类似 SQL 的界面。您是否还会使用此数据库进行随机读取(单行读取而不是顺序读取)? Cassandra 是另一个值得关注的选项。 Cassandra 和 Couchbase 在功能上相似。其他因素包括云/本地。 【参考方案1】:由于您提到了 spark,并且我认为您需要存储 GB 的数据一天并且此输入数据永远不会更改(只读),因此我建议您将原始数据存储在文件中,例如 s3 或 hdfs。因为从文件中读取为 json 将比从任何数据库中读取更快,并且无论是来自 hdfs 还是 hbase 或 couchbase,您的 spark 作业都将相同。文件存储也会更便宜。
如果你还想把它们存储在hbase中,即使你使用phoenix它也没有提供太多的sql查询功能,hbase是一个key value db,你最终会得到很多二级索引表和重复数据,这是不必要的这种批处理用例。
【讨论】:
【参考方案2】:Cassandra 旨在实现 Amazon 的 Dynamo 分布式存储和复制技术与 Google 的 Bigtable 数据和存储引擎模型的组合 Twitter 和 Facebook 使用 Cassandra。
全文搜索使用 Solr。
【讨论】:
以上是关于建议用于收集社交网络分析的 BigData DB的主要内容,如果未能解决你的问题,请参考以下文章