2016-08-18 58 views
0

我必須更改Cassandra中的其中一個表的模式。這不能通過簡單地使用ALTER TABLE命令來完成,因爲主鍵有一些變化。如何正確遷移Cassandra中兩個表之間的數據

所以問題是:如何以最好的方式做這樣的遷移?

在cql中使用COPY命令在這裏不是一個選項,因爲轉儲文件可能真的很大。

我可以通過不創建一些自定義應用程序來解決此問題嗎?

+1

我認爲你不能直接在卡桑德拉做。你必須使用像flyway,cassandra-migration(npm)這樣的外部工具。 –

回答

1

就像Guillaume在評論中提到的那樣 - 你不能直接在cassandra中這樣做。模式更改操作在這裏非常有限。您必須使用建議的工具之一手動執行此類遷移,或者如果您有非常大的表,則可以利用Spark。

Spark可以高效地從節點讀取數據,在本地進行轉換並將其保存回數據庫。請記住,此類遷移需要讀取整個數據庫內容,因此可能需要一段時間。它可能是最高性能的解決方案,但需要做一些更大的準備 - Spark集羣設置。

相關問題