StarRocks migration tool(SMT)

您所在的位置:网站首页 smt工具大全 StarRocks migration tool(SMT)

StarRocks migration tool(SMT)

2024-07-09 23:55| 来源: 网络整理| 查看: 265

StarRocks migration tool(SMT)

StarRocks migration tool(简称 SMT)是 StarRocks 提供的数据迁移工具,用于将源数据库的数据通过 Flink 导入 StarRocks。其主要有两个功能:

根据源数据库和目标 StarRocks 集群的信息,生成 StarRocks 建表语句。 生成 Flink 的 SQL 客户端 可执行的 SQL 语句,以提交同步数据的 Flink job,简化链路中全量或增量数据同步流程。

当前 SMT 支持的源数据库如下:

源数据库表结构同步全量同步增量同步MySQL支持支持支持PostgreSQL支持支持支持Oracle支持支持支持Hive支持支持不支持ClickHouse支持支持不支持SQL Server支持支持支持TiDB支持支持支持

下载链接:https://cdn-thirdparty.starrocks.com/smt.tar.gz?r=2

SMT 使用步骤​

通常分成三步:

配置 conf/config_prod.conf 文件。 执行 starrocks-migration-tool。 运行结果默认生成在 result 目录中。

然后就可以执行 result 中的 SQL 脚本来进行元数据或者数据的同步了。

SMT 配置​

[db] 段为数据源的连接信息,根据 type 不同配置对应数据源的连接信息即可。

[other] 段为一些其他配置,建议修改 be_num 为实际的个数即可。

flink.starrocks.sink.* 是 flink-connector-starrocks 的配置信息,参考配置项说明即可。

[table-rule.1] 是数据源 table 匹配规则,可以根据正则表达式匹配数据库和表名生成建表的 SQL,也可以配置多个规则。每个规则都会生成对应的结果,例如:

[table-rule.1] -> result/starrocks-create.1.sql [table-rule.2] -> result/starrocks-create.2.sql

如果有多组规则,需要给每一组规则匹配 database,table 和 flink-connector-starrocks 的配置。

[table-rule.1]# pattern to match databases for setting propertiesdatabase = ^ database1.*$# pattern to match tables for setting propertiestable = ^.*$schema = ^.*$############################################### flink sink configurations### DO NOT set `connector`, `table-name`, `database-name`, they are auto-generated############################################flink.starrocks.jdbc-url=jdbc:mysql://192.168.1.1:9030flink.starrocks.load-url= 192.168.1.1:8030flink.starrocks.username=rootflink.starrocks.password=flink.starrocks.sink.max-retries=10flink.starrocks.sink.buffer-flush.interval-ms=15000flink.starrocks.sink.properties.format=jsonflink.starrocks.sink.properties.strip_outer_array=true[table-rule.2]# pattern to match databases for setting propertiesdatabase = ^database2.*$# pattern to match tables for setting propertiestable = ^.*$schema = ^.*$############################################### flink sink configurations### DO NOT set `connector`, `table-name`, `database-name`, they are auto-generated############################################flink.starrocks.jdbc-url=jdbc:mysql://192.168.1.1:9030flink.starrocks.load-url= 192.168.1.1:8030flink.starrocks.username=rootflink.starrocks.password=flink.starrocks.sink.max-retries=10flink.starrocks.sink.buffer-flush.interval-ms=15000flink.starrocks.sink.properties.format=jsonflink.starrocks.sink.properties.strip_outer_array=true

针对分库分表的大表可以单独配置一个规则,比如:有两个数据库 edu_db_1,edu_db_2,每个数据库下面分别有 course_1,course_2 两张表,并且所有表的数据结构都是相同的,通过如下配置把他们导入 StarRocks 的一张表中进行分析。

[table-rule.3]# pattern to match databases for setting propertiesdatabase = ^edu_db_[0-9]*$# pattern to match tables for setting propertiestable = ^course_[0-9]*$schema = ^.*$

这样会自动生成一个多对一的导入关系,在 StarRocks 默认生成的表名是 course__auto_shard,也可以自行在生成的配置文件中修改。

同步 MySQL 到 StarRocks​ 简介​

通过 Flink CDC connector 和 SMT 可以实现 MySQL 数据的秒级同步。

如图所示,SMT 可以根据 MySQL 和 StarRocks 的集群信息和表结构自动生成 source table 和 sink table 的建表语句。

通过 Flink CDC connector 消费 MySQL 的 Binlog,经过 Flink-connector-starrocks 写入 StarRocks。

操作步骤​

下载 Flink,最低支持版本 1.11。

下载 Flink CDC connector,请注意下载对应 Flink 版本的 flink-sql-connector-mysql-cdc-xxx.jar。

下载 Flink StarRocks connector.

复制 flink-sql-connector-mysql-cdc-xxx.jar, flink-connector-starrocks-xxx.jar 到 flink-xxx/lib/

下载 smt.tar.gz

解压并修改配置文件。

[db]host = 192.168.1.1port = 3306user = rootpassword = type = mysql[other]# number of backends in StarRocksbe_num = 3# `decimal_v3` is supported since StarRocks-1.18.1use_decimal_v3 = false# directory to save the converted DDL SQLoutput_dir = ./result[table-rule.1]# pattern to match databases for setting propertiesdatabase = ^db$# pattern to match tables for setting propertiestable = ^table$schema = ^.*$############################################### flink sink configurations### DO NOT set `connector`, `table-name`, `database-name`, they are auto-generated############################################flink.starrocks.jdbc-url=jdbc:mysql://192.168.1.1:9030flink.starrocks.load-url= 192.168.1.1:8030flink.starrocks.username=rootflink.starrocks.password=flink.starrocks.sink.max-retries=10flink.starrocks.sink.buffer-flush.interval-ms=15000flink.starrocks.sink.properties.format=jsonflink.starrocks.sink.properties.strip_outer_array=true

执行 starrocks-migrate-tool,所有建表语句都生成在 result 目录下。

$./starrocks-migrate-tool$ls resultflink-create.1.sql smt.tar.gz starrocks-create.all.sqlflink-create.all.sql starrocks-create.1.sql starrocks-external-create.all.sql

生成 StarRocks 的表结构。

mysql -hxx.xx.xx.x -P9030 -uroot -p pg_hba.conf# 开启 wal logical 复制echo "wal_level = logical" >> postgresql.confecho "max_wal_senders = 2" >> postgresql.confecho "max_replication_slots = 8" >> postgresql.conf

对需要同步的表需要开启对应的复制完整数据流:

ALTER TABLE schema_name.table_name REPLICA IDENTITY FULL

重启 PostgreSQL 即可。

同步 Oracle 到 StarRocks​ 简介​

通过 Flink CDC connector 和 SMT 可以实现 Oracle 数据的秒级同步。

SMT 可以根据 Oracle 和 StarRocks 的集群信息和表结构自动生成 source table 和 sink table 的建表语句。

通过过 Flink CDC connector 消费 Oracle 的 logminer,经过 Flink-connector-starrocks 写入 StarRocks。

操作步骤​

下载 Flink,最低支持版本 1.11。

下载 Flink CDC connector,请注意下载对应 Flink 版本的flink-sql-connector-oracle-cdc-xxx.jar。

下载 Flink StarRocks connector。

复制 flink-sql-connector-oracle-cdc-xxx.jar, flink-connector-starrocks-xxx.jar 到 flink-xxx/lib/。

下载 smt.tar.gz。

解压并修改配置文件。

[db]host = 192.168.1.1port = 1521user = xxxpassword = xxxtype = oracle[other]# number of backends in StarRocksbe_num = 3# `decimal_v3` is supported since StarRocks-1.18.1use_decimal_v3 = false# directory to save the converted DDL SQLoutput_dir = ./result[table-rule.1]# pattern to match databases for setting propertiesdatabase = ^db$# pattern to match tables for setting propertiestable = ^table$# pattern to match schemas for setting propertiesschema = ^.*$############################################### flink sink configurations### DO NOT set `connector`, `table-name`, `database-name`, they are auto-generated############################################flink.starrocks.jdbc-url=jdbc:mysql://192.168.1.1:9030flink.starrocks.load-url= 192.168.1.1:8030flink.starrocks.username=rootflink.starrocks.password=flink.starrocks.sink.max-retries=10flink.starrocks.sink.buffer-flush.interval-ms=15000flink.starrocks.sink.properties.format=jsonflink.starrocks.sink.properties.strip_outer_array=true

执行 starrocks-migrate-tool,所有建表语句都生成在 result 目录下。

$./starrocks-migrate-tool$ls resultflink-create.1.sql smt.tar.gz starrocks-create.all.sqlflink-create.all.sql starrocks-create.1.sql

生成 StarRocks 的表结构。

mysql -hxx.xx.xx.x -P9030 -uroot -p


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3