2016-07-19 62 views
0

我是Cassandra的新手,我正在努力应对一些概念。我发现跨多个表(使用不同分区键)复制相同数据以支持查询的优势,但通常如何设置ETL作业?将单个csv文件中的数据加载到多个Cassandra表中?

考虑一个场景,其中一个csv文件的数据必须加载到多个表。我们是否可以多次运行带有csv文件的copy/sstableloader/cassandra-loader实用程序,每个表只运行一次?

当数据已被部分加载到某些表,但加载脚本仍在运行时,如何保持读一致性?连接到两个不同表的客户可能会读取两个不同的值。一些在线论坛建议使用物化视图。那是唯一的选择吗?

谢谢!

回答

0

我对Cassandra也很新,基于我迄今为止所做的工作,似乎物化视图是您最好的选择。如果你不走那条路线,那么你对Cassandra中的数据所做的所有CRUD语句都必须管理所有表中的数据。物化视图让您摆脱为每个表编写语句的业务,而是管理基表和视图管理自己。你可以找到一个好的概述here

BATCH是插入散装数据的最佳选择。但是,它不会阻止脏读,就像用户只获取一些仍在插入过程中的行。我没有看到任何在卡桑德拉会做到的事情,并且基于分布式特性,我不确定它在整个集群中完成“整批”时如何锁定读取。

+0

感谢您的回复。物化视图可能是我的答案。 –

+0

祝你好运@bow_arrow。今天我正在升级我的集群,让MV尝试一下。 – ammills01

相关问题