關於Cassandra的離線資料遷移操作文件

2021-12-30 09:44:38 字數 2616 閱讀 1928

另有映象備份恢復能大粒度實現多keyspace備份功能,但需要相同的system_schema(元資料資訊),一般只在同一集群上操作。

一、檢視原始cassandra表

1、進入cqlsh

bin/cqlsh

2、檢視keyspace的mydb結構,複製並記錄最上方的keyspace建立語句

cqlsh> desc keyspaces mydb;

例:create keyspace mydb with replication = and durable_writes = true;

引數解釋:class:策略;replication_factor:複製因子

簡單策略:在乙個資料中心的情況下使用簡單的策略。 在這個策略中,第乙個副本被放置在所選擇的節點上,剩下的節點被放置在環的順時針方向,而不考慮機架或節點的位置。

網路拓撲策略:該策略用於多個資料中心。 在此策略中,您必須分別為每個資料中心提供複製因子。

複製因子:複製因子是放置在不同節點上的資料的副本數。 超過兩個複製因子是很好的獲得沒有單點故障。 所以3個以上是很好的複製因子。)

3、選擇keyspace

cqlsh> use mydb;

4、檢視表

cqlsh:mydb> desc tables;

5、檢視詳細建表語句,複製,記錄

cqlsh:mydb> desc user;

例:create table mydb.user (

id int primary key,

user_name text

) with bloom_filter_fp_chance = 0.01

and caching =

and comment = ''

and compaction =

and compression =

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';

6、記錄資料總數用於檢測資料完整性

cqlsh:mydb> select count(*) from user;

二、資料匯出

1、把user表資料以csv的格式匯出為user.csv檔案(以系統目錄/root/user.csv為例)

cqlsh:mydb> copy mydb.userto '/root/user.csv';

三、系統檔案轉移

找到剛剛生成的user.csv檔案,複製到需要遷移的伺服器(如/root/user.csv)上

此過程略

四、資料匯入

1、在新集群中建立keyspaces和表,keyspace隨意,表結構必須與原集群保持一致,建立新keyspace(貼上之前複製的語句)

cqlsh> create keyspace mydb with replication = and durable_writes = true;

2、在新集群環境中建立新錶(貼上之前複製的建表語句)

cqlsh> create table mydb.user (

id int primary key,

user_name text

) with bloom_filter_fp_chance = 0.01

and caching =

and comment = ''

and compaction =

and compression =

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';

3、將csv資料匯入user表

cqlsh> copy mydb.userfrom '/root/user.csv';

4、確認資料完整性

cqlsh> use mydb;

cqlsh:mydb> select count(*) from user;

5、刪除臨時產生的csv檔案

rm -rf /root/user.csv

cassandra關於集合型別的操作

舉例 create table test a int,b list,c set,d map,primary key a 插入使用下面的形式 insert into test a,b,c,d values 1,listtext1 listtext2 第一 list型別 增加元素 update test...

cassandra關於集合型別的操作

cassandra的幾種集合型別 list set map 增強了資料庫的表現力,這幾種資料型別用的很方便。我簡單總結了一下這幾種型別的使用方法。社會我二哥,人狠話不多,直奔主題 舉例 create table test a int,b list,c set,d map,primary key a ...

cassandra關於集合型別的操作

舉例 create table test a int,b list,c set,d map,primary key a 插入使用下面的形式 insert into test a,b,c,d values 1,listtext1 listtext2 第一 list型別 增加元素 update test...