我有多個來自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其他方式來模擬此?
謝謝, 馬特
提供一個很好的我當然同意,造型表應當根據查詢 - 但我的查詢將所有這些領域圍繞獲取數據結合在一起.. –
然後寫上你需要的所有領域在一張表 –
那麼,這就是問題 - 並非所有的字段都可以一次使用;所以我可以從DataSource1插入一個將填充幾個字段的插入,但是我需要以某種方式加入Datasource2來填充剩餘的其他字段。 –