数据接入平台方案实现(游族网络)

目录

架构

离线功能

实时功能

Datax、自定义Flink、自定义SeaTunnel是否满足需求对比

自定义 StarRocks sink插件

 提交应用


架构

数据接入平台方案实现(游族网络)_第1张图片

离线功能

数据接入平台方案实现(游族网络)_第2张图片

实时功能

数据接入平台方案实现(游族网络)_第3张图片

Datax、自定义Flink、自定义SeaTunnel是否满足需求对比

数据接入平台方案实现(游族网络)_第4张图片

自定义 StarRocks sink插件

SeaTunnel架构剖析_Adobee Chen的博客-CSDN博客

批处理需要使用SeaTunnel的Spark引擎自定义StarRock Sink插件。插件需要继承SparkBatchSink的抽象类,在output方法中去定义具体的输出逻辑,封装StarRocks提供的Stream Load导入方式。在这个基础上,我们又增加了预操作、生成Label和Json导入等一些功能。下图描述了插件处理数据的大致流程。

数据接入平台方案实现(游族网络)_第5张图片

定义好插件之后,通过全类名的方式在配置文件中引用。

com.youzu.seatunnel.sink.StarRocksSink{
   fe_host:"127.0.0.1"
   http_port:"8030"
   database="database"
   table="table"
   user="user"
   password="password"
   headers.format="csv"
}

 提交应用

下图是SeaTunnel官方提供的配置和提交应用的方式,需要在磁盘配置文件中定义env、source、transForm、sink的插件配置,然后通过SeaTunnel提供的命令行启动工具提交应用,设置交互模式和配置文件的路径。

bin/start-seatunnel-spark.sh \
  --master local \
  --deploy-mode client \
  --config config/test.conf
env {
 spark.sql.catalogImplementation = "hive"
 spark.app.name = "seatunnel_hive2sr"
}

source {
 hive {
    pre_sql="select id,name,age from tmp.student"
    result_table_name="source"
  }  
}

transform {

}

sink {
 com.youzu.seatunnel.sink.StarRockSink{
   fenodes="127.0.0.1:8030"
   user ="user"
   password ="password"
   columns = "id,name,age"
   database = "tmp"
   table = "student"

 }
}

  在实际使用过程中,我们发现官方提供的配置和提交应用的方式与我们的调度系统结合时存在一些不方便的地方。一是不方便动态传参,二是用户在使用过程中既需要维护插件配置文件,又需要维护一个启动脚本,不方便用户使用。

待续。。。

你可能感兴趣的:(大数据知识点,seaTunnel)