我有一個測試設置,我想有一個主數據的副本。如何在兩臺服務器之間可靠地複製Cassandra數據庫?
我使用卡桑德拉包從datastax,版本3.0.9
我使用CQLSH取數據的轉儲,並恢復對測試設置。 我用
COPY與DELIMITER = '\ T' 和NULL = '空' 和報價= ''「和HEADER =真走的是主數據的副本
我用填充
COPY數據從DELIMITER = '\ T' 和NULL = '空' 和報價= ''「和HEADER =真
AFTE COPY_FROM,CQLSH表示它成功複製了文件中的所有行。但是當我在表上運行一個計數(*)時,有幾行丟失。 缺少行沒有特定的模式。如果我在截斷表格後重放命令,則會丟失一組新的行。缺失行的數量是隨機的。
表結構包含用戶定義數據類型的列表/集合,UDT內容中可能包含「空」值。
是否有任何其他可靠的方式來複制數據,而不是以編程方式讀取和寫入兩個數據庫之間的單個行?
架構表(字段名改爲):
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