2014-03-05 55 views
0

我有多个来自RDBMS的数据源需要作为公共数据层推送到Cassandra;这些数据源中的每一个都有不同的字段,并且它们之间没有通用的全局ID。相反,全球唯一ID由多个字段组成。 如何在Cassandra中建模以填充数据?如何在Cassandra中将多个数据源连接在一起

如果我创建了所有领域的C *表:

创建表T(datasrc1_uid UUID,datasrc1_field1文本, datasrc1_field2文本,..,datasrc2_uid UUID,datasrc2_field1文本, datasrc2_field2文字,PRIMARY KEY(datasrc1_uid,datasrc2_uid);

要插入在T /更新我将不得不在同一时间打开到两个datasrc1和datasrc2连接,并且基本上构造/加入在应用层 否则,我可以创建se parate表为每个数据源的(有2个以上,这仅仅是一个例子!):

创建表DS1(datasrc1_uid UUID,datasrc1_field1文本,.. PRIMARY KEY(datasrc1_uid,datasrc1_field1, ..); 创建表DS2(datasrc2_uid UUID,datasrc2_field1文本,.. PRIMARY KEY(datasrc2_uid,datasrc2_field1,..);

然后在应用层再次加入(并使用批处理语句,以保持插入/更新原子),这很困难,因为这些必须一步一步地完成,而不是单个Join语句,将一些数据保存在内存中等等。通过DS1/DS2之间的简单连接,RDBMS可以实现这一点。 Any其他方式来模拟此?

谢谢, 马特

回答

2

经验法则 - 根据查询模拟您的表格。如果需要,可以在许多C *表中写入数据,以便能够从一个C *表中读取数据,每个查询一个。

有一个在https://datastaxacademy.elogiclearning.com/

+0

提供一个很好的我当然同意,造型表应当根据查询 - 但我的查询将所有这些领域围绕获取数据结合在一起.. –

+0

然后写上你需要的所有领域在一张表 –

+0

那么,这就是问题 - 并非所有的字段都可以一次使用;所以我可以从DataSource1插入一个将填充几个字段的插入,但是我需要以某种方式加入Datasource2来填充剩余的其他字段。 –

相关问题