自動同步整個 MySQL/Oracle 資料庫以進行資料分析
來源:大資料雜貨鋪
當 Flink 作業啟動時,Connector 會自動檢查源資料庫和 Apache Doris 之間的資料等效性。如果資料來源包含 Doris 中不存在的表,Connector 會自動在 Doris 中建立相同的表,並利用 Flink 的側輸出來方便一次攝取多個表;如果源中發生架構更改,它將自動獲取 DDL 語句並在 Doris 中進行相同的架構更改。
對於MySQL:
下載 JAR 檔案:
行家:
<dependency><groupId>org.apache.doris</groupId><artifactId>flink-doris-connector-1.15</artifactId><!--artifactId>flink-doris-connector-1.16</artifactId--><!--artifactId>flink-doris-connector-1.17</artifactId--><version>1.4.0</version></dependency>
對於Oracle:
Flink 1.15:
Flink 1.16:
Flink 1.17:
如何使用它
<FLINK_HOME>/bin/flink run \-Dexecution.checkpointing.interval=10s \-Dparallelism.default=1 \-c org.apache.doris.flink.tools.cdc.CdcTools \lib/flink-doris-connector-1.16-1.4.0.jar \mysql-sync-database \--database test_db \--mysql-conf hostname=127.0.0.1 \--mysql-conf username=root \--mysql-conf password=123456 \--mysql-conf database-name=mysql_db \--including-tables "tbl|test.*" \--sink-conf fenodes=127.0.0.1:8030 \--sink-conf username=root \--sink-conf password=123456 \--sink-conf jdbc-url=jdbc:mysql://127.0.0.1:9030 \--sink-conf sink.label-prefix=label1 \--table-conf replication_num=1
表現如何
1000 個 MySQL 表,每個表有 100 個欄位。所有表都是活動的(這意味著它們不斷更新,每次資料寫入涉及一百多行) Flink作業檢查點:10s
根據早期採用者的反饋,該Connector在生產環境中的萬表資料庫同步中也提供了高效能和系統穩定性。這證明Apache Doris和Flink CDC的結合能夠高效可靠地進行大規模資料同步。
2、節儉 SDK
3、按需流載入
4、後端節點輪詢
5、支援更多資料型別
三、用法示例
CREATE TABLE flink_doris_source (
name STRING,
age INT,
score DECIMAL(5,2)
)
WITH (
'connector' = 'doris',
'fenodes' = '127.0.0.1:8030',
'table.identifier' = 'database.table',
'username' = 'root',
'password' = 'password',
'doris.filter.query' = 'age=18'
);
SELECT * FROM flink_doris_source;
連線維度表和事實表:
CREATE TABLE fact_table (
`id` BIGINT,
`name` STRING,
`city` STRING,
`process_time` as proctime()
) WITH (
'connector' = 'kafka',
...
);
create table dim_city(
`city` STRING,
`level` INT ,
`province` STRING,
`country` STRING
) WITH (
'connector' = 'doris',
'fenodes' = '127.0.0.1:8030',
'jdbc-url' = 'jdbc:mysql://127.0.0.1:9030',
'lookup.jdbc.async' = 'true',
'table.identifier' = 'dim.dim_city',
'username' = 'root',
'password' = ''
);
SELECT a.id, a.name, a.city, c.province, c.country,c.level
FROM fact_table a
LEFT JOIN dim_city FOR SYSTEM_TIME AS OF a.process_time AS c
ON a.city = c.city
寫入Apache
Doris:
CREATE TABLE doris_sink ( name STRING, age INT, score DECIMAL(5,2) ) WITH ( 'connector' = 'doris', 'fenodes' = '127.0.0.1:8030', 'table.identifier' = 'database.table', 'username' = 'root', 'password' = '', 'sink.label-prefix' = 'doris_label', //json write in 'sink.properties.format' = 'json', 'sink.properties.read_json_by_line' = 'true');
原文作者:ApacheDoris
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/70027826/viewspace-2988674/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- DataX將MySql資料庫資料同步到Oracle資料庫MySql資料庫Oracle
- ElasticSearch + Logstash進行資料庫同步Elasticsearch資料庫
- 使用python進行Oracle資料庫效能趨勢分析PythonOracle資料庫
- DataX將Oracle資料庫資料同步到達夢資料庫Oracle資料庫
- Mysql資料庫自動備份MySql資料庫
- 4 配置Oracle資料庫自動啟動Oracle資料庫
- 每天自動備份Oracle資料庫Oracle資料庫
- [資料庫]MYSQL主從同步資料庫MySql主從同步
- mysql資料庫語句自動生成MySql資料庫
- MySQL資料庫自動補全命令MySql資料庫
- 資料分析-以最小顆粒的方式進行
- SpringBoot整合Canal進行資料庫 快取同步Spring Boot資料庫快取
- Kettle:Oracle多表格批量同步資料=》mysqlOracleMySql
- MySQL 到Oracle 實時資料同步HYXSMySqlOracle
- 以Lgwr Worker為例,基於Strace 分析 Oracle 資料庫行為的方法Oracle資料庫
- 使用MySQL Workbench進行資料庫備份MySql資料庫
- Python 連線mysql資料庫進行操作PythonMySql資料庫
- Oracle 12.2 Heavy swapping 資料庫自動關閉OracleAPP資料庫
- MySQL、Oracle後設資料抽取分析MySqlOracle
- 【SQL】Oracle資料庫通過job定期重建同步表資料SQLOracle資料庫
- Oracle、mysql資料庫增、刪、改OracleMySql資料庫
- Oracle - 資料庫的記憶體調整Oracle資料庫記憶體
- 異構資料庫資料遷移 oracle to mysql之oracle sqlloader和mysql load data資料庫OracleMySql
- 程式碼生成器,自適應mysql、oracle資料庫MySqlOracle資料庫
- MySQL資料庫優化分析MySql資料庫優化
- 啟動MySql資料庫MySql資料庫
- MySQL 預設自帶的四個資料庫MySql資料庫
- 利用Kettle進行資料同步(下)
- 利用Kettle進行資料同步(上)
- 如何使用 MySQL Workbench 自動生成 ER 圖、同步更新遠端資料庫 - MySQL Workbench 使用教程MySql資料庫
- 資料庫同步資料庫
- 阿里 Canal 實時同步 MySQL 增量資料至 ClickHouse 資料庫阿里MySql資料庫
- 資料庫系列——基於Canal實現MySQL增量資料同步資料庫MySql
- 基於DataX的資料同步(下)-應用DataX進行資料同步
- Oracle資料庫中資料行遷移與行連結Oracle資料庫
- oracle Mysql PostgreSQL 資料庫的對比OracleMySql資料庫
- Oracle & MySQL & PostgreSQL資料庫恢復支援OracleMySql資料庫
- clickhouse 同步mysql資料MySql