MySQL數(shù)據(jù)同步到Doris的四種方式
1.CSV文件方式
當mysql與doris服務之間無法通過網(wǎng)絡互聯(lián)時,可以通過將mysql數(shù)據(jù)導出成csv文件,然后再在doris服務器導入csv文件的方式進行同步數(shù)據(jù)。
1.1 導出mysql數(shù)據(jù)
使用select * into outfile 命令導出csv數(shù)據(jù)
select * into outfile 'F:\\24\\mysql\\dim_area.csv' fields terminated by '\t' lines terminated by '\n' from dim_area;
導出的文件格式如下:
需要在mysql的配置文件中設置secure_file_priv=導出的文件路徑,如上面案例中F:/24/mysql,才能導出文件。
1.2 導入數(shù)據(jù)
將mysql導出的csv文件上傳到doris服務器之后,可以通過Stream Load和MySQL Load兩種方式導入數(shù)據(jù)進doris數(shù)據(jù)庫中。
1)Stream Load導入
Stream load 是一個同步的導入方式,用戶通過發(fā)送 HTTP 協(xié)議發(fā)送請求將本地文件或數(shù)據(jù)流導入到 Doris 中。可以通過 HTTP 協(xié)議提交導入命令。
curl --location-trusted -u root -T /home/weisx/opt/doris/local_import_data/dim_area.csv -H "columns:id,level,parent_code,area_code,name,short_name,merger_name,pinyin,lng,lat,pcode,ccode,acode,tcode,vcode" -H "label:label_dim_area" -H "column_separator:\t" -H "format:csv" http://localhost:8030/api/demo/dim_area/_stream_load
2)MySQL Load導入
MySql load 主和Stream Load功能相似, 都是導入本地文件到Doris集群中, 因此MySQL Load實現(xiàn)復用了StreamLoad的基礎導入能力。執(zhí)行MySQL Load語句的時候, 客戶端命令必須帶有--local-infile參數(shù), 同時還需要設置FE的配置mysql_load_server_secure_path
開啟服務端導入功能。
mysql -u root -p -P9030 -h127.0.0.1 --local-infile=1
LOAD DATA INFILE '/home/hadoop/opt/data_doris/dim_area.csv' INTO TABLE article.dim_area COLUMNS TERMINATED BY '\t';
2.JDBC 編碼方式
通過編程方式,利用jdbc讀取mysql中的數(shù)據(jù),然后可以通過jdbc或者Stream Load方式插入數(shù)據(jù)到doris中。Stream Load java代碼實現(xiàn)可參考:Doris:StreamLoad導入數(shù)據(jù)-CSDN博客
3.JDBC Catalog 方式
JDBC Catalog 通過標準 JDBC 協(xié)議,連接其他數(shù)據(jù)源。連接后,Doris 會自動同步數(shù)據(jù)源下的 Database 和 Table 的元數(shù)據(jù),以便快速訪問這些外部數(shù)據(jù)。
3.1 上傳mysql驅(qū)動包
需將 Jar 包預先存放在 FE 和 BE 部署目錄的 jdbc_drivers/ 目錄下。系統(tǒng)會自動在這個目錄下尋找。該目錄的位置,也可以由 fe.conf 和 be.conf 中的 jdbc_drivers_dir 配置修改。
修改fe和be配置文件,指定jdbc_drivers_dir目錄。
3.2 創(chuàng)建mysql catalog
####mysql 8 CREATE CATALOG jdbc_mysql_233_8 PROPERTIES ( "type"="jdbc", "user"="root", "password"="123456", "jdbc_url" = "jdbc:mysql://192.168.110.233:3307/demo", "driver_url" = "mysql-connector-java-8.0.30.jar", "driver_class" = "com.mysql.cj.jdbc.Driver" ) ####mysql 5 CREATE CATALOG jdbc_mysql_233_5 PROPERTIES ( "type"="jdbc", "user"="root", "password"="123456", "jdbc_url" = "jdbc:mysql://192.168.110.233:3306/demo", "driver_url" = "mysql-connector-java-5.1.47.jar", "driver_class" = "com.mysql.jdbc.Driver" )
3.3. 插入數(shù)據(jù)
insert into internal.demo.dim_area select * from demo.dim_area
4.Binlog Load 方式
Binlog Load提供了一種使Doris增量同步用戶在Mysql數(shù)據(jù)庫的對數(shù)據(jù)更新操作的CDC(Change Data Capture)功能。需要安裝Canal采集mysql實時日志信息。
以上就是MySQL數(shù)據(jù)同步到Doris的N種方式的詳細內(nèi)容,更多關于MySQL數(shù)據(jù)同步Doris的資料請關注腳本之家其它相關文章!
相關文章
MySQL生僻字插入失敗的處理方法(Incorrect string value)
最近,業(yè)務方反饋有個別用戶信息插入失敗,報錯提示類似Incorrect string value:"\xF0\xA5 .....看這個提示應該是字符集不支持某個生僻字造成的,需要的朋友可以參考下2017-05-05SQL實現(xiàn)LeetCode(184.系里最高薪水)
這篇文章主要介紹了SQL實現(xiàn)LeetCode(184.系里最高薪水),本篇文章通過簡要的案例,講解了該項技術的了解與使用,以下就是詳細內(nèi)容,需要的朋友可以參考下2021-08-08在MySQL中實現(xiàn)基于時間點的數(shù)據(jù)恢復
在MySQL中實現(xiàn)基于時間點的數(shù)據(jù)恢復是一個復雜但可行的過程,主要依賴于MySQL的二進制日志(Binary Log),本文介紹了實現(xiàn)此功能的一般步驟,并有詳細的代碼供大家參考,需要的朋友可以參考下2024-03-03設計性能更優(yōu)MySQL數(shù)據(jù)庫schema
這篇文章主要介紹了設計性能更優(yōu)MySQL數(shù)據(jù)庫schema,文章通過數(shù)據(jù)類型優(yōu)化展開對主題內(nèi)容的詳細介紹,具有一定的參考價值,需要的小伙伴可以參考一下2022-09-09MySQL字符串日期格式轉(zhuǎn)換的幾種常用方法例子解析
這篇文章主要給大家介紹了MySQL字符串日期格式轉(zhuǎn)換的幾種常用方法例子解析,MySQL提供了多種函數(shù)來處理字符串日期格式的轉(zhuǎn)換,這些函數(shù)可以幫助用戶在不同的日期格式之間進行轉(zhuǎn)換,以及進行日期的加減和時間戳的轉(zhuǎn)換操作,需要的朋友可以參考下2024-11-11忘記mysql數(shù)據(jù)庫root用戶密碼重置方法[圖文]
忘記mysql數(shù)據(jù)庫root用戶密碼重置方法,需要的朋友可以參考下。2011-11-11MySQL中create_time和update_time實現(xiàn)自動更新時間
mysql建表的時候有兩個列,一個是createtime、另一個是updatetime,這兩個都是mysql自動填充時間的方式,本文就詳細的介紹這兩種方式的實現(xiàn),感興趣的可以了解一下2023-05-05