私はマスタデータのコピーを持ちたいテスト設定をしています。2台のサーバー間でCassandraデータベースを確実にコピーするにはどうすればよいですか?
私は、データのダンプを取り、テスト・セットアップにで復元するCQLSHを使用していdatastax、バージョン3.0.9
からカサンドラパッケージを使用しています。 私はDELIMITER = '\ tの' AND NULL = 'nullを' AND QUOTE = '"' AND HEADER = TrueのWITH
COPY TOを使用して、マスターデータのコピーを取っている
私はDELIMITER = '\ tの' AND NULL = 'nullを' AND QUOTE = '"' AND HEADER = Trueの
AFTE WITH FROM
COPYを使用してデータを移入していますr COPY_FROM、CQLSHはファイルからすべての行を正常にコピーしたことを示します。しかし、テーブル上でカウント(*)を実行すると、いくつかの行が欠落しています。 行を紛失する特定のパターンはありません。テーブルを切り捨てた後にコマンドを再生すると、新しい行セットが失われます。欠落している行の数はランダムです。
テーブル構造には、ユーザー定義データ型のリスト/セットが含まれており、UDTの内容に 'null'値が含まれている可能性があります。
プログラムで2つのデータベース間で個々の行を読み書きする以外にも、データを確実にコピーする方法はありますか?
テーブルのスキーマ(フィールド名がを変更):
CREATE TYPE UDT1 ( field1 text, field2 int, field3 text ); CREATE TYPE UDT2 ( field1 boolean, field2 float ); CREATE TABLE cypher.table1 ( id int PRIMARY KEY, list1 list<frozen<UDT1>>, data text, set1 set<frozen<UDT2>> ) WITH bloom_filter_fp_chance = 0.01 AND caching = {'keys': 'ALL', 'rows_per_partition': 'NONE'} AND comment = '' AND compaction = {'class': 'org.apache.cassandra.db.compaction.SizeTieredCompactionStrategy', 'max_threshold': '32', 'min_threshold': '4'} AND compression = {'chunk_length_in_kb': '64', 'class': 'org.apache.cassandra.io.compress.LZ4Compressor'} AND crc_check_chance = 1.0 AND dclocal_read_repair_chance = 0.1 AND default_time_to_live = 0 AND gc_grace_seconds = 864000 AND max_index_interval = 2048 AND memtable_flush_period_in_ms = 0 AND min_index_interval = 128 AND read_repair_chance = 0.0 AND speculative_retry = '99PERCENTILE';
あなたはテストセットアップのスキーマを教えていただけますか? –
スキーマ@AnowerPervesを追加しました – Cypher