日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

mysql迁移cassandra_使用datax迁移cassandra数据

發布時間:2024/10/14 数据库 70 豆豆
生活随笔 收集整理的這篇文章主要介紹了 mysql迁移cassandra_使用datax迁移cassandra数据 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

DataX 是阿里巴巴集團內被廣泛使用的離線數據同步工具/平臺,實現各種異構數據源之間高效的數據同步功能。最近,阿里云cassandra團隊為datax提供了cassandra讀寫插件,進一步豐富了datax支持的數據源,可以很方便實現cassandra之間以及cassandra與其他數據源之間的數據同步。本文簡單介紹如何使用datax同步cassandra的數據,針對幾種常見的場景給出配置文件示例,還提供了提升同步性能的建議和實測的性能數據。

datax快速入門

使用datax同步數據的方法很簡單,一共只需要三步:

部署datax。

編寫同步作業配置文件。

運行datax,等待同步作業完成。

datax的部署和運行都很簡單,可以通過datax官方提供的下載地址下載DataX工具包,下載后解壓至本地某個目錄,進入bin目錄,即可運行同步作業:

$ cd {YOUR_DATAX_HOME}/bin

$ python datax.py {YOUR_JOB.json}

同步作業的配置格式可以參考datax文檔。

一個典型的配置文件如下:

{

"job": {

"content": [

{

"reader": {

"name": "streamreader",

"parameter": {

"sliceRecordCount": 10,

"column": [

{

"type": "long",

"value": "10"

},

{

"type": "string",

"value": "hello,你好,世界-DataX"

}

]

}

},

"writer": {

"name": "streamwriter",

"parameter": {

"encoding": "UTF-8",

"print": true

}

}

}

],

"setting": {

"speed": {

"channel": 5

}

}

}

}

一個同步作業的配置文件主要包括兩部分,setting包括任務調度的一些配置,content描述同步任務的內容,里面包含reader插件的配置和writer插件的配置。例如我們需要從mysql同步數據到cassandra,那么我們只需要把reader配置為mysqlreader,writer配置為cassandrawriter,并提供相應的插件配置信息即可。在datax項目頁面上面可以看到datax支持的插件列表,點擊對應的鏈接就可以查看相關插件的文檔了解插件需要的配置內容和格式要求。例如,cassandra插件的文檔可點擊如下鏈接:讀插件 寫插件。

以下列舉幾種常見的場景。

場景一 cassandra之間的數據同步

最常見的場景是把數據從一個集群同步到另一個集群,例如機房整體遷移、上云等。這時需要先手動在目標集群創建好keyspace和表的schema,然后使用datax進行同步。作為例子,下面的配置文件把數據從cassandra的一個表同步到另一個表:

{

"job": {

"setting": {

"speed": {

"channel": 3

}

},

"content": [

{

"reader": {

"name": "cassandrareader",

"parameter": {

"host": "localhost",

"port": 9042,

"useSSL": false,

"keyspace": "test",

"table": "datax_src",

"column": [

"id",

"name"

]

}

},

"writer": {

"name": "cassandrawriter",

"parameter": {

"host": "localhost",

"port": 9042,

"useSSL": false,

"keyspace": "test",

"table": "datax_dst",

"column": [

"id",

"name"

]

}

}

}

]

}

}

場景二 從mysql同步到cassandra

datax支持多種數據源,可以很方便做到cassandra和其他數據源之間的數據同步。下面的配置把數據從mysql同步到cassandra:

{

"job": {

"setting": {

"speed": {

"channel": 3

}

},

"content": [

{

"reader": {

"name": "mysqlreader",

"parameter": {

"username": "root",

"password": "root",

"column": [

"id",

"name"

],

"splitPk": "db_id",

"connection": [

{

"table": [

"table"

],

"jdbcUrl": [

"jdbc:mysql://127.0.0.1:3306/database"

]

}

]

}

},

"writer": {

"name": "cassandrawriter",

"parameter": {

"host": "localhost",

"port": 9042,

"useSSL": false,

"keyspace": "test",

"table": "datax_dst",

"column": [

"id",

"name"

]

}

}

}

]

}

}

場景三 只同步cassandra中的一部分數據

我們在讀插件的配置中提供了where關鍵字,可以用來只同步一部分數據。例如對于時序數據等場景定期同步的情況,就可以通過增加where的條件來實現只同步增量數據。where條件的格式和cql相同,例如"where":"textcol='a'"的作用類似于使用select * from table_name where textcol = 'a'進行查詢。另外還有allowFiltering關鍵字配合where使用,作用和cql中的ALLOW FILTERING關鍵字也是相同的。下面給出一個配置的例子:

{

"job": {

"setting": {

"speed": {

"channel": 1

}

},

"content": [

{

"reader": {

"name": "cassandrareader",

"parameter": {

"host": "localhost",

"port": 9042,

"useSSL": false,

"keyspace": "test",

"table": "datax_src",

"column": [

"deviceId",

"time",

"log"

],

"where":"time > '2019-09-25'",

"allowFiltering":true

}

},

"writer": {

"name": "cassandrawriter",

"parameter": {

"host": "localhost",

"port": 9042,

"useSSL": false,

"keyspace": "test",

"table": "datax_dst",

"column": [

"deviceId",

"time",

"log"

]

}

}

}

]

}

}

提高同步速度

以cassandra之間的數據同步為例。如下這些配置會對數據同步任務的性能產生影響:

(1)并行度

可以通過調大任務的并行度來提高同步速度。這主要通過job.setting.speed.channel從參數來實現。例如下面這個配置的效果是會有10個線程并行執行同步任務。

"job": {

"setting": {

"speed": {

"channel": 10

}

},

...

需要注意的是,cassandra讀插件里面,切分任務是通過在cql語句中增加token范圍條件來實現的,所以只有使用RandomPartitioner和Murmur3Partitioner的集群才能夠正確切分。如果您的集群使用了其他的Partitioner,cassandrareader插件會忽略channel配置,只用一個線程進行同步。

(2)batch

可以通過配置batchSize關鍵字在cassandra寫插件里面使用UNLOGGED batch來提高寫入速度。但是需要注意cassandra中對batch的使用有一些限制,使用這個關鍵字之前建議先閱讀[《簡析Cassandra的BATCH操作》(https://yq.aliyun.com/articles/719784?spm=a2c4e.11155435.0.0.65386b04OYOsvK))一文中關于batch使用限制的內容。

(3)連接池配置

寫插件還提供了連接池相關的配置connectionsPerHost和maxPendingPerConnection。這兩個參數的具體含義可以參考[java driver文檔](https://docs.datastax.com/en/developer/java-driver/3.7/manual/pooling/)。

(4)一致性配置

讀寫插件中都提供了consistancyLevel關鍵字,默認的讀寫一致性級別都是LOCAL_QUORUM。如果您的業務場景里面可以允許兩個集群的數據有少量不一致,也可以考慮不使用默認一致性級別來提高讀寫性能,例如使用ONE級別來讀數據。

性能數據

我們通過一個測試來觀察datax同步數據的性能。

服務端使用阿里云cassandra,源集群和目標集群均為3節點,規格為4CPU 8GB。客戶端使用一臺ECS,規則為4 CPU 16 GB。

首先使用cassandra-stress向源集群寫入500w行數據:

cassandra-stress write cl=QUORUM n=5000000 -schema "replication(factor=3) keyspace=test" -rate "threads=300" -col "n=FIXED(10) size=FIXED(64)" -errors "retries=32" -mode "native cql3 user=$USER password=$PWD" -node "$NODE"

寫入過程的統計數據如下:

然后使用datax將這些數據從源集群同步到目標集群。配置文件如下:

{

"job": {

"setting": {

"speed": {

"channel": 10

}

},

"content": [

{

"reader": {

"name": "cassandrareader",

"parameter": {

"host": "",

"port": 9042,

"username":"",

"password":"",

"useSSL": false,

"keyspace": "test",

"table": "standard1",

"column": [

"key",

"\"C0\"",

"\"C1\"",

"\"C2\"",

"\"C3\"",

"\"C4\"",

"\"C5\"",

"\"C6\"",

"\"C7\"",

"\"C8\"",

"\"C9\""

]

}

},

"writer": {

"name": "cassandrawriter",

"parameter": {

"host": "",

"port": 9042,

"username":"",

"password":"",

"useSSL": false,

"keyspace": "test",

"table": "standard1",

"batchSize":6,

"column": [

"key",

"\"C0\"",

"\"C1\"",

"\"C2\"",

"\"C3\"",

"\"C4\"",

"\"C5\"",

"\"C6\"",

"\"C7\"",

"\"C8\"",

"\"C9\""

]

}

}

}

]

}

}

同步過程的統計數據如下:

可見,datax同步數據的性能和cassandra-stress的性能相當,甚至要好一些。

本文作者:_陸豪

本文為云棲社區原創內容,未經允許不得轉載。

總結

以上是生活随笔為你收集整理的mysql迁移cassandra_使用datax迁移cassandra数据的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 日韩成人小视频 | 国产综合免费视频 | 亚洲最大综合网 | 波多野结衣一区二区三区在线观看 | 精品国产乱码久久久久久闺蜜 | 国产黑丝在线观看 | 农村村妇真实偷人视频 | 伊人三区| 蜜桃色999 | 亚洲国产日韩av | 国产午夜无码精品免费看奶水 | 一级大片免费 | 一本大道综合伊人精品热热 | 日韩精品免费观看 | 97少妇| 涩涩999| 午夜成人免费电影 | 日韩福利片 | 偷拍一区二区三区四区 | 五月婷婷一区二区 | 日韩精品第一 | 亚洲第一在线视频 | 菲律宾av| 女同一区二区 | 成年人免费黄色片 | 午夜老司机福利 | www.啪| 人人妻一区二区三区 | 91免费黄| 三级男人添奶爽爽爽视频 | 久久精品国产亚洲av无码娇色 | 日本视频免费 | 一区二区三区免费观看 | 国产精品久久综合视频 | 二级毛片在线观看 | 欧美视频在线播放 | 精品人妻无码一区二区三区 | 91视频色版 | 亚洲永久av | 久久久久久久久久国产 | 国产大片中文字幕 | 国产精品毛片视频 | 日韩经典午夜福利发布 | 日韩欧美成 | 97人人爽人人爽人人爽人人爽 | 国产欧美日韩专区 | 成人有色视频 | 久久国产二区 | 波多野结衣人妻 | 国产尤物视频在线 | 啪啪亚洲 | www.xxx.国产 | 久久久国产精品一区 | 亚洲精品国产精品乱码不99热 | 国内一区二区视频 | 成人学院中文字幕 | 天天做天天躁天天躁 | 精品视频一二三区 | 少妇又色又紧又大爽又刺激 | 伊人草 | 麻豆三级视频 | 日本作爱视频 | av成人在线看 | 网友自拍咪咪爱 | 成人免费视频国产免费麻豆 | 伊人99re | 爱情岛论坛成人av | 丰满熟女一区二区三区 | 亚洲天堂免费视频 | 国产老头老太作爱视频 | 综合久久久久久久久久久 | 婷婷六月天| 成人黄色一区二区三区 | 日日夜夜免费精品 | 亚洲日本精品一区 | 91欧美激情一区二区三区 | 日本做爰三级床戏 | 激情四射av | 午夜看黄神器 | 国产成人精品白浆久久69 | 99在线精品视频 | 天堂在线中文在线 | aise爱色av| 国产精品玖玖玖 | 日不卡| 亚洲精品久久久久久久久久久 | 综合网中文字幕 | 人人爽人人做 | 日爽夜爽 | 欧美视频在线观看一区 | 久久99久久99精品免视看婷婷 | 后进极品美女圆润翘臀 | 在线观看视频一区二区三区 | 中文字幕av日韩 | 欧美日韩国产激情 | 办公室荡乳欲伦交换bd电影 | 国内精品久久久久久久久 | 国产吃瓜黑料一区二区 | 红桃视频国产 |