马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?立即注册
×
一、下载摆设flink
解压flink
- tar -zxvf flink-1.19.1-bin-scala_2.12.tgz
复制代码 修改flink设置文件config.yaml
- taskmanager:
- bind-host: localhost
- host: localhost
- numberOfTaskSlots: 6
- memory:
- process:
- size: 1728m
- parallelism:
- default: 1
- rest:
- address: 10.66.77.104
- # network interface, such as 0.0.0.0.
- bind-address: 10.66.77.104
- # port: 8081
- # # Port range for the REST and web server to bind to.
- # bind-port: 8080-8090
复制代码 设置flink 环境变零
- cd /etc/profile.d
- cat flink.sh
- #export HADOOP_CLASSPATH=`hadoop classpath`
- FLINK_HOME=/data/src/flink/flink-1.19.1
- PATH=$PATH:$FLINK_HOME/bin:$FLINK_HOME/sbin
- export PATH
- export FLINK_HOME
复制代码 启动flink
查察jps
- jps
- 760234 StandaloneSessionClusterEntrypoint
- 390132 Jps
- 760880 TaskManagerRunner
复制代码 查察flink web ui,{ip}:{port}
二、下载摆设flink cdc3
- https://github.com/apache/flink-cdc/releases
解压flink-cdc3
- tar -zxvf flink-cdc-3.3.0-bin.tar.gz
复制代码 下载Pipeline Connectors Jars和Source Connector Jars到lib目次
- /data/src/flink/flink-cdc-3.3.0/lib ls
- flink-cdc-dist-3.3.0.jar flink-cdc-pipeline-connector-maxcompute-3.3.0.jar flink-sql-connector-tidb-cdc-3.3.0.jar
- flink-cdc-pipeline-connector-doris-3.3.0.jar flink-cdc-pipeline-connector-mysql-3.3.0.jar mysql-connector-java-8.0.28.jar
- flink-cdc-pipeline-connector-elasticsearch-3.3.0.jar flink-cdc-pipeline-connector-paimon-3.3.0.jar
- flink-cdc-pipeline-connector-kafka-3.3.0.jar flink-cdc-pipeline-connector-starrocks-3.3.0.jar
复制代码 三、下载mysql-connector-java到flink和flink cdc的lib目次
https://mvnrepository.com/artifact/mysql/mysql-connector-java/8.0.28
- wget https://repo1.maven.org/maven2/mysql/mysql-connector-java/8.0.28/mysql-connector-java-8.0.28.jar
复制代码 四、flink设置checkpoint支持增量同步数据
- execution.checkpointing.interval: 3000
参数分析
- execution.checkpointing.interval: 这个参数用于指定 Flink 作业实验查抄点的频率。查抄点是 Flink 用于实现容错机制的一种机制,通过定期生存作业的状态,可以在发生故障时规复到近来的一个查抄点。
- 3000: 这个值体现查抄点的隔断时间,单位是毫秒(ms)。因此,3000 毫秒便是 3 秒。
五、mysql到doris和starrocks的yaml设置文件
放到恣意目次下
mysql-to-doris.yaml
- source:
- type: mysql
- hostname: ip
- port: 3306
- username: *********
- password: ************
- tables: data_entry_test.debeziumOfflineClusterInfo,data_entry_test.debeziumRealtimeClusterInfo
- server-id: 5400-5404
- server-time-zone: Asia/Shanghai
- sink:
- type: doris
- fenodes: ip:8030
- username: ***********
- password: *************
- route:
- - source-table: data_entry_test.debeziumOfflineClusterInfo
- sink-table: optics.debeziumOfflineClusterInfo
- - source-table: data_entry_test.debeziumRealtimeClusterInfo
- sink-table: optics.debeziumRealtimeClusterInfo
- pipeline:
- name: Sync MySQL Database to Doris
- parallelism: 2
复制代码 mysql-to-starrocks.yaml
- ################################################################################
- # Description: Sync MySQL all tables to Doris
- ################################################################################
- source:
- type: mysql
- hostname: ip
- port: 3306
- username: *********
- password: **********
- tables: data_entry_test.debeziumOfflineClusterInfo,data_entry_test.debeziumRealtimeClusterInfo
- server-id: 5400-5404
- server-time-zone: Asia/Shanghai
- sink:
- type: starrocks
- name: StarRocks Sink
- jdbc-url: jdbc:mysql://ip:9030
- load-url: ip:8030
- username: ****************
- password: ****************
- route:
- - source-table: data_entry_test.debeziumOfflineClusterInfo
- sink-table: dd_test_starrocks.debeziumOfflineClusterInfo
- - source-table: data_entry_test.debeziumRealtimeClusterInfo
- sink-table: dd_test_starrocks.debeziumRealtimeClusterInfo
- pipeline:
- name: MySQL to StarRocks Pipeline
- parallelism: 6
复制代码 六、启动flink和flink cdc
启动flink
启动flink cdc
- /data/src/flink/flink-cdc-3.3.0/bin/flink-cdc.sh
- /data/src/flink/flink-cdc-3.3.0/conf/mysql-to-starrocks.yaml
复制代码 flink web ui查察使命
七、查察flink cdc使命同步日志
- 2025-02-18 13:48:49,973 INFO com.starrocks.connector.flink.catalog.StarRocksCatalog [] - Success to create table dd_test_starrocks.dd_test_starrocks, sql: CREATE TABLE IF NOT EXISTS dd_test_starrocks.debeziumOfflineClusterInfo (
- id VARCHAR(21) NOT NULL,
- servername VARCHAR(6168) NOT NULL,
- connectorname VARCHAR(6168) NOT NULL,
- databasename VARCHAR(6168) NOT NULL,
- url VARCHAR(6168) NOT NULL,
- topicname VARCHAR(6168) NOT NULL,
- clustername VARCHAR(6168) NOT NULL
- ) PRIMARY KEY (id)
- DISTRIBUTED BY HASH (id);
复制代码- 2025-02-18 14:04:25,298 INFO org.apache.flink.runtime.taskmanager.Task [] - Source: Flink CDC Event Source: mysql -> SchemaOperator -> PrePartition (1/2)#0 (2069f3b2a289abd02012736f795a34b7_cbc357ccb763df2852fee8c4fc7d55f2_0_0) switched from INITIALIZING to RUNNING.
- 2025-02-18 14:04:25,333 INFO org.apache.flink.runtime.taskmanager.Task [] - Source: Flink CDC Event Source: mysql -> SchemaOperator -> PrePartition (2/2)#0 (2069f3b2a289abd02012736f795a34b7_cbc357ccb763df2852fee8c4fc7d55f2_1_0) switched from INITIALIZING to RUNNING.
复制代码- 2025-02-18 14:09:35,729 INFO com.starrocks.data.load.stream.DefaultStreamLoader [] - Stream load completed, label : flink-84c2fdac-3341-4b5b-8bf1-3946098c0a97, database : dd_test_starrocks, table : debeziumOfflineClusterInfo, body : {
- "Status": "OK",
- "Message": "",
- "Label": "flink-84c2fdac-3341-4b5b-8bf1-3946098c0a97",
- "TxnId": 108875857,
- "LoadBytes": 133959,
- "StreamLoadPlanTimeMs": 0,
- "ReceivedDataTimeMs": 0
- }
复制代码 八、查察mysql表和starrocks表
mysql表
- -- data_entry_test.debeziumOfflineClusterInfo definition
- CREATE TABLE `debeziumOfflineClusterInfo` (
- `id` bigint unsigned NOT NULL AUTO_INCREMENT COMMENT 'primary key',
- `servername` varchar(2056) NOT NULL COMMENT 'connector标识名',
- `connectorname` varchar(2056) NOT NULL COMMENT 'connector名称',
- `databasename` varchar(2056) NOT NULL COMMENT '数据库名',
- `url` varchar(2056) NOT NULL COMMENT '数据库名',
- `topicname` varchar(2056) NOT NULL COMMENT 'topic名称',
- `clustername` varchar(2056) NOT NULL COMMENT '集群名称',
- `database_server_id` varchar(256) NOT NULL COMMENT '集群名称',
- PRIMARY KEY (`id`)
- ) ENGINE=InnoDB AUTO_INCREMENT=765 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;
复制代码 starrocks表
- -- dd_test_starrocks.debeziumOfflineClusterInfo definition
- CREATE TABLE `debeziumOfflineClusterInfo` (
- `id` varchar(21) NOT NULL COMMENT "",
- `servername` varchar(6168) NOT NULL COMMENT "",
- `connectorname` varchar(6168) NOT NULL COMMENT "",
- `databasename` varchar(6168) NOT NULL COMMENT "",
- `url` varchar(6168) NOT NULL COMMENT "",
- `topicname` varchar(6168) NOT NULL COMMENT "",
- `clustername` varchar(6168) NOT NULL COMMENT ""
- ) ENGINE=OLAP
- PRIMARY KEY(`id`)
- DISTRIBUTED BY HASH(`id`)
- PROPERTIES (
- "replication_num" = "3",
- "in_memory" = "false",
- "storage_format" = "DEFAULT",
- "enable_persistent_index" = "false",
- "compression" = "LZ4"
- );
复制代码 如上所示,乐成在starrocks表中创建了表,并完成了汗青数据和增量数据的同步
九、flink cdc技能生产环境应用
- 阿里云基于 Flink CDC 的当代数据栈云上实践
细粒度变动计谋控制:
- 支持新增表、新增列、修改列名、修改列界说、删除列、删除表和清空表等操纵
当上游数据库新增表时,CDC YAML 可以或许自动辨认并同步这些表的数据,而无需重新设置作业。此功能分为两种环境:
- 汗青数据同步:通过开启 scan.newly-added-table.enabled 选项,并通过 savepoint 重启作业来读取新增表的汗青数据。
- 增量数据同步:只需开启 scan.binlog.newly-added-table.enabled 选项,自动同步新增表的增量数据。
|