当前位置:   article > 正文

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

数据接入方案

目录

架构

离线功能

实时功能

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

自定义 StarRocks sink插件

 提交应用


架构

离线功能

实时功能

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

自定义 StarRocks sink插件

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

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

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

  1. com.youzu.seatunnel.sink.StarRocksSink{
  2. fe_host:"127.0.0.1"
  3. http_port:"8030"
  4. database="database"
  5. table="table"
  6. user="user"
  7. password="password"
  8. headers.format="csv"
  9. }

 提交应用

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

  1. bin/start-seatunnel-spark.sh \
  2. --master local \
  3. --deploy-mode client \
  4. --config config/test.conf
  1. env {
  2. spark.sql.catalogImplementation = "hive"
  3. spark.app.name = "seatunnel_hive2sr"
  4. }
  5. source {
  6. hive {
  7. pre_sql="select id,name,age from tmp.student"
  8. result_table_name="source"
  9. }
  10. }
  11. transform {
  12. }
  13. sink {
  14. com.youzu.seatunnel.sink.StarRockSink{
  15. fenodes="127.0.0.1:8030"
  16. user ="user"
  17. password ="password"
  18. columns = "id,name,age"
  19. database = "tmp"
  20. table = "student"
  21. }
  22. }

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

待续。。。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/运维做开发/article/detail/903127
推荐阅读
相关标签
  

闽ICP备14008679号