SeaTunnel: MySQL实时同步到StarRocks ETL mysql starrocks



离线批量同步需要用户定义好SeaTunnel JobConfig,

选择批处理模式,作业启动后开始同步数据,当数据同步完成后作业完成退出


1. 定义作业配置文件

SeaTunnel使用配置文件来定义作业,在这个示例中,作业的配置文件如下,文件保存路径~/seatunnel/apache-seatunnel-incubating-2.3.1/config/mysql_to_sr.config

#定义一些作业的运行参数,具体可以参考 https://seatunnel.apache.org/docs/2.3.1/concept/JobEnvConfig
env {
    job.mode="BATCH"  #作业的运行模式,BATCH=离线批同步,STREAMING=实时同步
    job.name="SeaTunnel_Job"
    checkpoint.interval=10000 #每10000ms进行一次checkpoint,后面会详细介绍checkpoint对JDBC Source和StarRocks Sink这两个连接器的影响
}
source {
    Jdbc {
        parallelism=5 # 并行度,这里是启动5个Source Task来并行的读取数据
        partition_column="id" # 使用id字段来进行split的拆分,目前只支持数字类型的主键列,而且该列的值最好是离线的,自增id最佳
        partition_num="20" # 拆分成20个split,这20个split会被分配给5个Source Task来处理
        result_table_name="Table9210050164000"
        query="SELECT `id`, `f_binary`, `f_blob`, `f_long_varbinary`, `f_longblob`, `f_tinyblob`, `f_varbinary`, `f_smallint`, `f_smallint_unsigned`, `f_mediumint`, `f_mediumint_unsigned`, `f_int`, `f_int_unsigned`, `f_integer`, `f_integer_unsigned`, `f_bigint`, `f_bigint_unsigned`, `f_numeric`, `f_decimal`, `f_float`, `f_double`, `f_double_precision`, `f_longtext`, `f_mediumtext`, `f_text`, `f_tinytext`, `f_varchar`, `f_date`, `f_datetime`, `f_timestamp` FROM `sr_test`.`test1`"
        password="root@123"
        driver="com.mysql.cj.jdbc.Driver"
        user=root
        url="jdbc:mysql://st01:3306/sr_test?enabledTLSProtocols=TLSv1.2&rewriteBatchedStatements=true"
    }
}
transform {
# 在本次示例中我们不需要做任务的Transform操作,所以这里为空,也可以将transform整个元素删除
}
sink {
    StarRocks {
        batch_max_rows=10240 # 
        source_table_name="Table9210050164000"
        table="test2"
        database="sr_test"
        base-url="jdbc:mysql://datasource01:9030"
        password="root"
        username="root"
        nodeUrls=[
            "datasource01:8030" #写入数据是通过StarRocks的Http接口
        ]
    }
}


2.作业配置说明

---checkpoint

checkpoint.interval参数用来定义该作业过程中多久进行一次checkpoint

发现checkpoint是用来使运行在Apache SeaTunnel Zeta中的作业能定期的将自己的状态以快照的形式保存下来,当任务意外失败时,可以从最近一次保存的快照中恢复作业,以实现任务的失败恢复,断点续传等功能。


3.运行作业

cd ~/seatunnel/apache-seatunnel-incubating-2.3.1

sh bin/seatunnel.sh --config config/mysql_to_sr.config


签名:这个人很懒,什么也没有留下!
最新回复 (0)
返回