2014-03-05 54 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來填充剩餘的其他字段。 –

相關問題