基于waterdrop,从hive抽取数据至Oracle

基于waterdrop,从hive抽取数据至Oracle,第1张

基于waterdrop,从hive抽取数据至Oracle

相关链接:基于waterdrop,从oracle直接拉取数据进仓Clickhouse_Johnwick888的博客-CSDN博客

继之前基于waterdrop,从orcale直接抽取数据到Clickhouse之后,又遇到从hive抽取数据到Oracle的需求,相关jdbc驱动配置见上面连接,Oracle相关jdbc驱动下载链接如下:JDBC and UCP Downloads page

记得下跟自己Oracle版本一致的jdbc驱动。

waterdrop的配置文件如下,batch.conf :

spark {
  spark.app.name = "seatunnel"
  spark.sql.catalogImplementation = "hive"
  spark.executor.instances = 2
  spark.executor.cores = 2
  spark.executor.memory = "4g"
}

input {
  hive {
  pre_sql =" select  *  from XXXX_mdtrt_info"
  result_table_name = "spark_temp"
  }
}
filter {
  # sql {
  #   sql = "select * from accesslog where request_time > 1000"
  # }
}

output {
  # choose stdout output plugin to output data to console
jdbc {
    driver = "oracle.jdbc.driver.OracleDriver"
    url = "jdbc:oracle:thin:@//XX.XX.XX.XX:XX/orclpdb1"
    table = "XXXX_MDTRT_INFO"
    user = "*******"
    password = "******"
}
}

然后执行代码:

/waterdrop-1.5.4/bin/start-waterdrop.sh --master spark://hadoop-master:7077 --deploy-mode client --config  batch.conf 

抽取速度很快,550W的数据量,大概2分钟完成。

至此我也发现,为什么数据湖和ODS层尽量用hadoop生态的分布式文件系统来存储了,因为从hive或者HDFS抽数据到数仓或者其他平台速度非常快,而从其他平台抽数据到hive内,则非常慢,原因就是数据源不是分布式的,读取速度受到局限。

所以,建议各位数据相关岗位的伙伴,在设计数据架构的时候,一定注意,平台之间相互导数据是一件极其容易忽略,但特别费事的工作,需要科学谋划。

另外,Waterdrop,现在改名叫Seatunnel,已经正式成为Apache的顶级项目,Sqoop、DataX等一大批ETL工具都将退出历史舞台,建议提前适应Waterdrop,为将来打算。

你问我DataX是谁?对不起,我活在Apache SeaTunnel的时代!

附上waterdrop(seatunnel)的学习网站:

document

 

欢迎分享,转载请注明来源:内存溢出

原文地址: http://www.outofmemory.cn/zaji/5705526.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-17
下一篇 2022-12-17

发表评论

登录后才能评论

评论列表(0条)

保存