Phoenix 十二 資料遷移

2021-09-19 18:09:18 字數 1838 閱讀 8070

資料遷移工具是否豐富,也在一定程度上決定了資料庫的流行程度和它的生態圈。了解其相關工具,能讓我們的資料遷移工作更加高效。本文主要介紹 phoenix 的資料匯入匯出工具,希望給準備在 phoenix 上做資料遷移的同學一些幫助。

由於在源端進行資料遷移,匯入到 phoenix 的過程中會產生新的資料修改或寫入,這使得不停業務的實時遷移變的不簡單。現在開源的資料遷移工具都需要停止資料來源端的業務來完成資料遷移。

對於準備遷移上阿里雲 hbase 的同學這個都不是問題,我們提供不停業務的實時遷移(hfile拷貝+wal同步解析入庫)支援。

從匯入方式上可分為兩種:

通過 bulkload 方式匯入資料可以直接匯入 phoenix 表或者匯入 hbase 表,然後通過建立 phoenix 對映(此方法暫不做介紹)。直接匯入 phoenix 表的 bulkload 工具,支援的資料來源如下:

其中 csv/json/regex bulkload,在開源 phoenix 版本中已經提供了相應的工具類,具體使用引數可以通過--help來檢視,使用示例如下:

hadoop_classpath=$(hbase mapredcp):/path/to/hbase/conf \

hadoop jar phoenix--client.jar \

org.apache.phoenix.mapreduce.csvbulkloadtool \

--table example \

--input /data/example.csv

hadoop_classpath=/path/to/hbase-protocol.jar:/path/to/hbase/conf \

hadoop jar phoenix--client.jar \

org.apache.phoenix.mapreduce.csvbulkloadtool \

--table example \

--input /data/example.csv

hadoop jar phoenix--client.jar \

org.apache.phoenix.mapreduce.jsonbulkloadtool \

--table example \

--input /data/example.json

datax是阿里內被廣泛使用的離線資料同步工具/平台,支援各種常見異構資料來源之間高效的資料同步功能,其原理是通過 datax 多執行緒同時讀取多個資料分片,使用 api 寫入到目標資料來源中。 現在支援 phoenix 4.12 版本以上的資料匯出匯出外掛程式,能滿足日常從關係型資料庫匯入到 phoenix,odps 匯入到 phoenix, phoenix匯出csv文字等需求,詳情參見這裡。

對於主鍵不重複的全量源資料,我們都推薦借助 mr 利用 bulkload 方式匯入 phonenix(雲 hbase 本身不提供 mr 能力,需要借助外部能訪問源集群和目標集群hdfs的hadoop)。 對於每天增量資料的同步可以使用 datax(匯入資料到 雲 hbase 需要提供乙個能訪問源集群和目標集群的 ecs 執行 datax)。

想要提高 bulkload 的資料入庫速度,不僅需要增加目標 phoenix 表的 region 數量(新建表需要指定預分割槽數或者加鹽),還需要提公升 mr 執行環境的集群配置(scale out/ scale up)。datax 提公升入庫的方式主要是調整配置的執行緒數、batch數量,同時目標表的region數量也不能太少。

最後建議千萬級別的數量都用 datax, 因為簡單好用。:)

Phoenix 十二 資料遷移

資料遷移工具是否豐富,也在一定程度上決定了資料庫的流行程度和它的生態圈。了解其相關工具,能讓我們的資料遷移工作更加高效。本文主要介紹 phoenix 的資料匯入匯出工具,希望給準備在 phoenix 上做資料遷移的同學一些幫助。由於在源端進行資料遷移,匯入到 phoenix 的過程中會產生新的資料修...

大資料 phoenix 搭建

phoenix 4.8.0 hbase 0.98 client.jar phoenix core 4.8.0 hbase 0.98.jar 拷貝到hbase的lib目錄下 2 將hbase conf目錄下 hbase site.xml 檔案放到phoenix的bin目錄下四 啟動phoenix 首先...

Phoenix對映HBase資料表

安裝好phoenix後對於hbase中已經存在的資料表不會自動進行對映,所以想要再phoenix中操作hbase已有資料表就需要手動進行配置。高能預警 hbase資料表預設主鍵列名是row 在phoenix中建立相同結構的資料表 create table phoenix row varchar pr...