我想知道是否有什么好的解决方案可以在NoSQL数据库中记录数据,然后将其转换为RDBMS?
例如,如果您想快速捕获一些数据(例如会话日志),但是希望以后能够为其创建报告。
我最喜欢的数据库是Postgres,因此,如果您的答案与Postgres相关,那将很棒。
我想知道是否有什么好的解决方案可以在NoSQL数据库中记录数据,然后将其转换为RDBMS?
例如,如果您想快速捕获一些数据(例如会话日志),但是希望以后能够为其创建报告。
我最喜欢的数据库是Postgres,因此,如果您的答案与Postgres相关,那将很棒。
Answers:
快速解答-是的。一直发生。
有很多好的解决方案。您的环境中已经有什么解决方案?我正在帮助一个从Web应用程序获取其网站/会话活动信息的客户端,他们将其写入xml,然后将该xml反序列化为Hadoop。然后,他们在Hadoop之上使用Hive来创建汇总和事实(通过将该日志数据与他们存储在Postgres数据库中的网站中的引用数据结合起来)。然后将这些汇总和事实加载到RDBMS中(由于SQL Server堆栈中提供了丰富的分析功能,因此它们使用SQL Server)。
我将探索Hadoop,看看Hive,它是Hadoop之上的查询引擎,可让您编写与SQL非常相似的声明性查询,并在后台将其转换为MapReduce作业。然后查看Sqoop,这是Hadoop系列中的另一个工具,可帮助您导出/导入数据。
http://hadoop.apache.org/ http://www.amazon.com/Hadoop-Definitive-Guide-Tom-White/dp/1449389732/ref=sr_1_1?s=books&ie=UTF8&qid=1319160463&sr=1-1 http ://www.cloudera.com/blog/2009/06/introducing-sqoop/ http://hive.apache.org/
那里还有其他选择...
并非所有的NoSQL都是一样的。例如,MongoDB具有非常好的查询功能。检索数据,对数据进行排序很容易使您想起SQL。因此,我要说的是,您不应该考虑-使用SQL进行报告,除非您拥有一些现成的工具,这些工具需要与SQL兼容的数据。从商店中获取类似SQL的结果(例如CouchDB),要想定义一个简单的从句类型查询就不是一件容易的事,而其他一些NoSQL则涉及更多。MongodDB-我使用过Python驱动程序-很麻烦。因此,我担心担心将数据移植到关系存储的重要性降低了。