2016-08-18 9 views
0

Cassandraのテーブルのスキーマを変更する必要があります。プライマリキーにはいくつかの変更があるので、単にALTER TABLEコマンドを使用して実行することはできません。Cassandraの2つのテーブル間でデータを正しく移行する方法

問題は次のとおりです。このような移行を最善の方法で実行するにはどうすればよいですか?

cqlでCOPYコマンドを使用することは、ダンプファイルが実際に大きなものになる可能性があるため、ここではオプションではありません。

カスタムアプリケーションを作成しないことでこの問題を解決できますか?

+1

私はあなたがキャッサンドラで直接行うことはできないと思います。あなたは、flyway、cassandra-migration(npm)のような外部ツールを使用しなければなりません。 –

答えて

1

Guillaumeさんがコメントに示唆しているように、あなたはこれをcassandraで直接行うことはできません。スキーマの変更操作はここでは非常に制限されています。推奨されるツールの1つを使用して手動でそのような移行を実行する必要があります。非常に大きなテーブルがある場合は、Sparkを活用できます。

スパークはノードから効率的にデータを読み取り、ローカルに変換してdbに保存し直すことができます。このような移行には、DBコンテンツ全体を読み取る必要があるので、しばらく時間がかかる可能性があります。それは最もパフォーマンスの高いソリューションかもしれませんが、より大きな準備が必要です - スパーククラスタセットアップ。

関連する問題