COPYがCQLの一部ではないため、これは機能しません。
COPYはcqlsh専用のツールです。 20170106
cqlsh 127.0.0.1 -u username -p password -e "copy chandan.emp (id,name) to 'E:\HANA\emp.csv' with HEADER = true"
編集:
輸出カサンドラテーブル
のPython
を使用してCSV形式に
あなたは-eフラグを使用して、コマンドラインまたはスクリプトを経由して、これを呼び出すことができます
本質的に... Cassandraテーブル全体をエクスポートするにはどうすればよいですか?
私はこれに多くの質問をします。短い答えは... ではありませんです。
カサンドラは、数百万行または数十億行を保存するのに最適です。これは、複数のノードに負荷(両方とも運用とサイズの両方)を分散するため、これを実行できます。それがうまくいかないのは、削除、インプレース更新、アンバウンドクエリなどです。私はいくつかの理由で、にはではなく、完全なエクスポート(アンバインドされたクエリ)のようなことをしています。
まず、分散環境の大きなテーブルでバインドされていないクエリを実行すると、通常、非常にとなります(クエリにネットワーク時間とトラフィックのLOTSが導入されます)。次に、複数のノードに格納された大きな結果セットを取得し、そのすべてのデータを1つのファイルに集約します。おそらくまたではなく、というのが良い考えです。
ボトムライン:カサンドラはリレーショナルデータベースではないので、なぜそれを1つのように扱いますか?
言われているように、このようなことを処理するツールがあります。 Apache Sparkである。
私はsession.execute()ステートメントでクエリを実行するのを手伝ってください。
あなたがPythonの使用を強くお勧めする場合、いくつかのことをする必要があります。大きなテーブルの場合は、query by token rangeになります。小さなバッチ/ページでコーディネーターノードをヒントしないようにすることもできます。 cqlsh COPY
実際にnewer versions of cqlsh COPYができる機能(PAGESIZEとPageTimeoutとを)持っている:しかし、再発明し、ホイールからあなたを保つために、私はすでに、まさにこのん(Pythonで書かれた)ツールがあることを教えてあげます大規模なデータセットのタイムアウトを避けるためです。私は新しいcqlshを使用して3億7千万の行を正常にエクスポートしていますので、これを行うことができます。
要約:ホイールを再発明しないでください。 cqlsh COPYを使用するスクリプトを作成し、今話したことのすべてを活用します。
ありがとうございました。申し訳ありませんが実行できませんでした。実際は私はカサンドラで新しいです。 session.execute()ステートメントでクエリを実行するのを手伝ってください。私はユーザー名とパスワードを使用していません。 – Chandan
@Chandan編集製 – Aaron
ありがとう@アーロン。試してみます。 – Chandan