【发布时间】:2017-04-14 23:13:06
【问题描述】:
我们每 10 分钟就有一个数据流进入表 A。没有保存历史。每次在表 A 中加载数据时,都必须将现有数据刷新到新表 B。这可以在 Cassandra 中动态完成还是自动完成?
我可以考虑将表 A 加载到 CSV 文件中,然后在每次刷新表 A 时加载回表 B。但我想在数据库级别本身做一些事情。 任何想法或建议表示赞赏。
谢谢, 阿伦
【问题讨论】:
我们每 10 分钟就有一个数据流进入表 A。没有保存历史。每次在表 A 中加载数据时,都必须将现有数据刷新到新表 B。这可以在 Cassandra 中动态完成还是自动完成?
我可以考虑将表 A 加载到 CSV 文件中,然后在每次刷新表 A 时加载回表 B。但我想在数据库级别本身做一些事情。 任何想法或建议表示赞赏。
谢谢, 阿伦
【问题讨论】:
对于少量数据,您可以将其放入 cron:
如果更大且运行更新版本的 cassandra (3.8+)
http://cassandra.apache.org/doc/latest/operating/cdc.html https://issues.apache.org/jira/browse/CASSANDRA-8844
然后将数据重播到您需要的表中(通过某种外部进程、脚本、应用程序等......)。
基本上已经有一些工具,例如: https://github.com/carloscm/cassandra-commitlog-extract
您可以使用那里的示例来涵盖您的用例。
但对于大多数用例,这是在应用程序级别处理的,使用 cassandra 写入相对便宜。
【讨论】: