seatunnel同步Mysql至Hive

什么是seatunnel

SeaTunnel是一个非常好用的超高性能分布式数据集成平台,支持海量数据的实时同步。每天可以稳定高效地同步数百亿数据,已应用于近百家企业的生产中。

使用场景

  • 海量数据同步
  • 海量数据整合
  • 具有海量数据的 ETL
  • 海量数据聚合
  • 多源数据处理

特点

  • 简单易用,配置灵活,低代码开发
  • 实时流式传输
  • 离线多源数据分析
  • 高性能、海量数据处理能力
  • 模块化和插件机制,易于扩展
  • 支持SQL数据处理和聚合
  • 支持 Spark 结构化流
  • 支持 Spark 2.x

解决海量数据同步存在的问题

  • 数据丢失和重复
  • 任务累积和延迟
  • 低吞吐量
  • 长周期应用于生产环境
  • 缺乏应用运行状态监控

示例,同步mysql至hive

SEATUNNEL_HOME=/data/apps/apache-seatunnel-incubating-2.1.1
wf_mysql_db=publish_account
wf_mysql_table="(select * from t_common_unique_report where data_timestamp=-999) as A"
hive_db=ods_common
hive_table=t_common_unique_report_all

import_mysql_to_hive(){
UUID=$(cat /proc/sys/kernel/random/uuid)
UUID=${UUID//-/}
table_date=$(date "+%Y%m%d")
  # 打印数据传输脚本并赋值
cat>$SEATUNNEL_HOME/jobs/mysql2hive_${table_date}_${UUID}.conf<<!EOF
env {
  spark.streaming.batchDuration = 5
  spark.app.name = "mysql2hive"
  spark.executor.instances = 2
  spark.executor.cores = 1
  spark.executor.memory = "4g"
  spark.queue = "default"
  # 因为sink用到hive源,所以必须进行以下配置
  spark.sql.catalogImplementation = "hive"
}

source {
  jdbc {
    driver = "com.mysql.jdbc.Driver"
    url = "jdbc:mysql://mysq.hk.jdbc.cn:3306/$1?useUnicode=true&characterEncoding=utf8&useSSL=false"
    table = "$2"
    user = "user_name"
    password = "test_password"
    result_table_name = "$3"
 }
}

transform {
}
sink {
  Hive {
    sql = "insert overwrite table $4 select * from $3"
  }
}
!EOF
echo "同步mysql表数据到hive..."
$SEATUNNEL_HOME/bin/start-seatunnel-spark.sh --master yarn --deploy-mode client  --config $SEATUNNEL_HOME/jobs/mysql2hive_${table_date}_${UUID}.conf
}

import_mysql_to_hive "$wf_mysql_db" "$wf_mysql_table" "$hive_db_$hive_table" "$hive_db.$hive_table"

参考链接:
https://seatunnel.apache.org/docs/2.1.3/connector/source/Jdbc
https://seatunnel.apache.org/docs/2.1.3/connector/sink/Hive

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
在将数据从Hive同步到Elasticsearch时,使用Seatunnel 增量同步是一种有效的解决方案。Seatunnel 是一个开源工具,能够实现数据源(如Hive)与目标地(如Elasticsearch)之间的数据同步Seatunnel 增量同步实现的基本原理是通过监控数据源中的变化,将新增、更新和删除的数据实时同步到Elasticsearch中。当数据源中的数据发生变化时,Seatunnel会捕获变动的数据,并将其同步到Elasticsearch中相应的索引中。 具体来说,Seatunnel 增量同步的步骤如下: 1. 安装并配置Seatunnel:首先需要在系统中安装Seatunnel,并进行相应的配置,包括指定Hive和Elasticsearch的连接信息、定义数据同步的规则等。 2. 监控数据源:Seatunnel会不断地监控Hive中的数据变化。当有新增、更新或删除操作发生时,Seatunnel会将这些变动的数据捕获并记录下来。 3. 数据同步Seatunnel将捕获到的变动数据转换成Elasticsearch可以接收的格式,并将其同步到相应的索引中。对于新增的数据,Seatunnel会将其插入到Elasticsearch中;对于更新和删除的数据,Seatunnel会根据指定的规则更新或删除Elasticsearch中对应的文档。 通过Seatunnel 增量同步,可以实现Hive数据到Elasticsearch的实时同步。这样做的好处是能够保持Elasticsearch中的数据与Hive中的数据保持一致,使得Elasticsearch的搜索结果能够及时地反映Hive中数据的最新变化。同时,Seatunnel还提供了监控和告警机制,可以实时监控数据同步的状态,并在发生异常时发出警报,保证同步过程的稳定性和可靠性。 总之,Seatunnel 增量同步是一种可靠高效的数据同步方案,能够将Hive中的数据实时同步到Elasticsearch中,为企业提供更快速准确地数据查询和分析能力。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值