MySQL增量实时同步到StarRocks

go-mysql-starrocks是一个用go语言开发的,用于mysql实时同步到starrocks的工具组件,方便构建实时数仓。

使用说明

1. 修改配置文件

mysql-to-starrocks.toml

# name 必填,多实例运行时需保证全局唯一
name = "mysql2starrocks"

[mysql] # mysql连接信息
host = "127.0.0.1"
port = 3306
username = "root"
password = ""

[starrocks] # starrocks连接信息
host = "127.0.0.1"
port = 8040
username = "root"
password = ""

[[rule]] # 库表同步映射1
source-schema = "mysql_test"
source-table = "tb1"
target-schema = "starrocks_test"
target-table = "tb1"

[[rule]] # 库表同步映射2
source-schema = "mysql_test"
source-table = "tb2"
target-schema = "starrocks_test"
target-table = "tb2"
2. 启动
[sr@ ~]$ ./go-mysql-starrocks-linux-xxxxxx -config mysql-to-starrocks.toml
3. 查看日志

默认输出到控制台

指定log-file参数运行

[sr@ ~]$ ./go-mysql-starrocks-linux-xxxxxx -config mysql-to-starrocks.toml -log-file mysql2starrocks.log
[sr@ ~]$ tail -f mysql2starrocks.log
4. 查看帮助
[sr@ ~]$ ./go-mysql-starrocks-linux-xxxxxx -h
5. 后台运行
[sr@ ~]$ ./go-mysql-starrocks-linux-xxxxxx -config mysql-to-starrocks.toml -log-file mysql2starrocks.log &
[sr@ ~]$ exit
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
要实现Flink实时同步MySQL到StarRocks,可以采用以下步骤: 1. 配置Flink的MySQL数据源,使用Flink SQL读取MySQL中的数据。 2. 使用Flink的DataStream API将MySQL中的数据转换成StarRocks所需的格式。 3. 配置StarRocks的Sink,使用Flink将数据写入到StarRocks中。 具体实现上,可以参考以下步骤: 1. 配置MySQL数据源 ```java StreamExecutionEnvironment env = StreamExecutionEnvironment.getExecutionEnvironment(); env.setParallelism(1); StreamTableEnvironment tableEnv = StreamTableEnvironment.create(env); tableEnv.executeSql("CREATE TABLE mysql_source (id INT, name STRING, age INT) WITH (" + "'connector' = 'jdbc'," + "'url' = 'jdbc:mysql://localhost:3306/test'," + "'table-name' = 'user'," + "'driver' = 'com.mysql.jdbc.Driver'," + "'username' = 'root'," + "'password' = '123456'" + ")"); ``` 2. 转换数据格式 ```java DataStream<Row> mysqlData = tableEnv.toAppendStream(tableEnv.sqlQuery("SELECT id, name, age FROM mysql_source"), Row.class); DataStream<Tuple3<Integer, String, Integer>> starRocksData = mysqlData.map(new MapFunction<Row, Tuple3<Integer, String, Integer>>() { @Override public Tuple3<Integer, String, Integer> map(Row row) throws Exception { return new Tuple3<>(row.getField(0), row.getField(1), row.getField(2)); } }); ``` 3. 配置StarRocks Sink ```java starRocksData.addSink(new JdbcSink<>("INSERT INTO user (id, name, age) VALUES (?, ?, ?)", new JdbcStatementBuilder<Tuple3<Integer, String, Integer>>() { @Override public void accept(PreparedStatement preparedStatement, Tuple3<Integer, String, Integer> t) throws SQLException { preparedStatement.setInt(1, t.f0); preparedStatement.setString(2, t.f1); preparedStatement.setInt(3, t.f2); } }, new JdbcConnectionOptions.JdbcConnectionOptionsBuilder() .withUrl("jdbc:mysql://localhost:3306/starrocks") .withDriverName("com.mysql.jdbc.Driver") .withUsername("root") .withPassword("123456") .build())); ``` 这样就完成了将MySQL中的数据实时同步到StarRocks的过程。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值