SeaTunnel JDBC DB2 Sink Connector支持的工作原理,快来学习吧!

这篇具有很好参考价值的文章主要介绍了SeaTunnel JDBC DB2 Sink Connector支持的工作原理,快来学习吧!。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。


DB2是IBM的一款关系型数据库管理系统,JDBC DB2 Source Connector是一个用于通过JDBC读取外部数据源数据的连接器。Apache SeaTunnel如何支持JDBC DB2 Sink Connector?请参考本文档。

支持引擎

Spark

Flink

SeaTunnel Zeta

主要功能

使用 Xa 事务 来确保 精确一次性。因此,只支持对支持 Xa 事务 的数据库进行 精确一次性 操作。您可以设置 is_exactly_once=true 来启用它。

描述

通过 JDBC 写入数据。支持批处理模式和流式模式,支持并发写入,支持精确一次性语义(使用 XA 事务保证)。

支持的数据源信息

数据源 支持的版本 驱动程序 URL Maven
DB2 不同的依赖版本有不同的驱动程序 com.ibm.db2.jdbc.app.DB2Driver jdbc:db2://127.0.0.1:50000/dbname 下载

数据库依赖

请下载与 'Maven' 相对应的支持列表,并将其复制到 '$SEATNUNNEL_HOME/plugins/jdbc/lib/' 工作目录中

例如,对于 DB2 数据源:cp db2-connector-java-xxx.jar $SEATNUNNEL_HOME/plugins/jdbc/lib/

数据类型映射

Sink 选项

名称 类型 必填 默认值 描述
url 字符串 - JDBC 连接的 URL。例如:jdbc:db2://127.0.0.1:50000/dbname
driver 字符串 - 用于连接到远程数据源的 JDBC 类名,如果使用 DB2,则值为 com.ibm.db2.jdbc.app.DB2Driver
user 字符串 - 连接实例的用户名
password 字符串 - 连接实例的密码
query 字符串 - 使用此 SQL 将上游输入数据写入数据库。例如 INSERT ...query 具有更高的优先级。
database 字符串 - 使用此 databasetable-name 自动生成 SQL,并接收上游输入数据写入数据库。此选项与 query 互斥,并具有更高的优先级。
table 字符串 - 使用数据库和此表名自动生成 SQL,接收上游输入数据写入数据库。此选项与 query 互斥,并具有更高的优先级。
primary_keys 数组 - 此选项用于支持自动生成 SQL 时的 insertdeleteupdate 操作。
support_upsert_by_query_primary_key_exist 布尔 false 根据查询主键是否存在选择使用 INSERT SQL、UPDATE SQL 处理更新事件(INSERT、UPDATE_AFTER)。此配置仅在数据库不支持 upsert 语法时使用。请注意,此方法性能较低。
connection_check_timeout_sec 整数 30 用于等待验证连接的数据库操作完成的时间(以秒为单位)。
max_retries 整数 0 提交失败(executeBatch)的重试次数。
batch_size 整数 1000 用于批处理写入,当缓冲记录数量达到 batch_size 或时间达到 batch_interval_ms 时,数据将刷新到数据库。
batch_interval_ms 整数 1000 用于批处理写入,当缓冲记录数量达到 batch_size 或时间达到 batch_interval_ms 时,数据将刷新到数据库。
is_exactly_once 布尔 false 是否启用精确一次性语义,将使用 XA 事务。如果启用,需要设置 xa_data_source_class_name
generate_sink_sql 布尔 false 基于要写入的数据库表自动生成 SQL 语句。
xa_data_source_class_name 字符串 - 数据库驱动程序的 XA 数据源类名,例如,DB2 为 com.db2.cj.jdbc.Db2XADataSource。其他数据源请参考附录。
max_commit_attempts 整数 3 事务提交失败的重试次数。
transaction_timeout_sec 整数 -1 事务打开后的超时时间,默认为 -1(永不超时)。请注意,设置超时可能会影响精确一次性语义。
auto_commit 布尔 true 默认启用自动事务提交。
common-options - Sink 插件的通用参数,请参考 Sink Common Options 获取详细信息。

提示

如果未设置 partition_column,则将以单一并发方式运行;如果设置了 partition_column,则根据任务的并发度并行执行。

任务示例

简单示例:

该示例定义了一个 SeaTunnel 同步任务,通过 FakeSource 自动生成数据并发送到 JDBC Sink。FakeSource 生成总共 16 行数据(row.num=16),每行有两个字段,name(字符串类型)和 age(整数类型)。最终的目标表是 test_table,在表中也将有 16 行数据。在运行此作业之前,您需要在您的 DB2 中创建数据库 test 和表 test_table。如果您尚未安装和部署 SeaTunnel,请按照 安装 SeaTunnel 中的说明安装和部署 SeaTunnel。然后按照 使用 SeaTunnel 引擎快速入门 中的说明运行此作业。

# 定义运行时环境
env {
  # 您可以在这里设置 Flink 配置
  execution.parallelism = 1
  job.mode = "BATCH"
}

source {
  # 这是一个示例源插件,仅用于测试和演示源插件功能
  FakeSource {
    parallelism = 1
    result_table_name = "fake"
    row.num = 16
    schema = {
      fields {
        name = "string"
        age = "int"
      }
    }
  }
  # 如果您想要获取更多关于如何配置 SeaTunnel 并查看完整的源插件列表的信息,
  # 请访问 https://seatunnel.apache.org/docs/category/source-v2
}

transform {
  # 如果您想要获取更多关于如何配置 SeaTunnel 并查看完整的转换插件列表的信息,
  # 请访问 https://seatunnel.apache.org/docs/category/transform-v2
}

生成 Sink SQL

该示例不需要编写复杂的 SQL 语句,您可以配置数据库名称和表名称,以自动生成要插入的语句。

sink {
    jdbc {
        url = "jdbc:db2://127.0.0.1:50000/dbname"
        driver = "com.ibm.db2.jdbc.app.DB2Driver"
        user = "root"
        password = "123456"
        query = "insert into test_table(name,age) values(?,?)"
        }
  #  如果您想要获取更多关于如何配置 SeaTunnel 并查看完整的接收插件列表的信息,
  #  请访问 https://seatunnel.apache.org/docs/category/sink-v2
}

sink {
    jdbc {
        url = "jdbc:db2://127.0.0.1:50000/dbname"
        driver = "com.ibm.db2.jdbc.app.DB2Driver"
        user = "root"
        password = "123456"
        # 根据数据库表名自动生成 SQL 语句
        generate_sink_sql = true
        database = test
        table = test_table
    }
}

精确一次性:

为了确保精确写入场景,我们保证精确一次性。
sink {
jdbc {
url = "jdbc:db2://127.0.0.1:50000/dbname"
driver = "com.ibm.db2.jdbc.app.DB2Driver"

    max_retries = 0
    user = "root"
    password = "123456"
    query = "insert into test_table(name,age) values(?,?)"

    is_exactly_once = "true"

    xa_data_source_class_name = "com.db2.cj.jdbc.Db2XADataSource"
}

}

本文由 白鲸开源 提供发布支持!文章来源地址https://www.toymoban.com/news/detail-855112.html

到了这里,关于SeaTunnel JDBC DB2 Sink Connector支持的工作原理,快来学习吧!的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • <IBM DB2>《IBM DB2进程清理 for AIX》

    IBM DB2出现异常终止后,可能出现无法使用DB2命令,无法更新实例的情况。如何才能彻底的停止DB2数据库相关的进程?这是本文探究的问题。 命令的几个级别: 级别 命令 会话 commit terminate quit connect reset 进程 db2stop db2_kill kill 信号 ipcs ipcrm 1、提交数据。 2、 不 断开数据库连接

    2023年04月23日
    浏览(63)
  • db2迁移至oracle

    (1)用java连接数据库(2)把DB2数据导出为通用的格式如csv,json等(3)导入其他数据库,比如oracle,mongodb。这个方法自由发挥的空间比较大。朋友说他会用springboot自带的包来导,我没有进行测试。 (2)根据oracle的官方指导,使用sql server进行迁移 db2迁入oracle,网站官方有

    2024年02月10日
    浏览(37)
  • DB2实现正则表达式

    db2 11.1 及以上版本支持正则表达式,但是db2 10.5及以下版本不支持正则表达式,需要手工创建正则表达式函数。 https://download.csdn.net/download/huryer/88101372?spm=1001.2014.3001.5501

    2024年02月15日
    浏览(44)
  • DB2 数据库监控用户赋权手册

    皮皮运维平台数据统一采集用户(DBAA)需要被监控数据库赋予对应下查询表、表函数以 及获取数据库监控数据的权限,具体授权操作有以下三部分。 实例用户 执行命令,并将结果重定向到 grant_select_to_dbaa.sql 文件中 实例用户 执行 db2 -tvf grant_select_to_dbaa.sql 进行赋权。 实例

    2024年02月07日
    浏览(36)
  • NineData:高效、安全、可靠的DB2数据管理平台

    Db2 是老牌厂商 IBM 研发和维护的关系型数据库管理系统。作为一个拥有悠久历史的数据库系统,Db2 凭借它的高可靠、可扩展和高安全性等诸多优点,在如今的数据库市场依然占据相当大的份额。 对于诸多金融行业的企业而言, Db2 作为承载其核心业务数据的数据库系统,有着

    2024年02月08日
    浏览(36)
  • 技术选型指南:Oracle、SQL Server还是DB2?

    Oracle vs SQL Server vs DB2 - 选哪个好? 在企业级数据管理领域,常用的几个选择有Oracle、SQL Server和DB2。 首先,我们从以下几个方面做一下对比: 1. 性能和稳定性: Oracle: Oracle就像是那种精密的瑞士手表,对于大型企业级应用来讲,它处理复杂的、规模庞大的事务就像切黄油一样

    2024年02月20日
    浏览(53)
  • Linux系统安装DB2数据库的详细步骤

    1、DB2数据库的安装 一、将DB2的安装介质上传至/home目录,并解压:    tar –zxvf v9.5fp3_linuxx64_server.tar.gz 二、执行LANG=C 三、进入解压后的server目录(cd server/),执行./db2setup,步骤如下: # cd /home # tar -zxvf v9.7_linuxx64_server.tar.gz # cd server/ # ./db2setup     请额外注意:这里选择 Do

    2024年02月08日
    浏览(45)
  • 必看!S3File Sink Connector 使用文档

    S3File 是一个用于管理 Amazon S3(Simple Storage Service)的 Python 模块。当前,Apache SeaTunnel 已经支持 S3File Sink Connector,为了更好地使用这个 Connector,有必要看一下这篇使用文档指南。 将数据输出到 AWS S3 文件系统。 提示: 如果您使用的是 Spark/Flink,在使用此连接器之前,必须确

    2024年02月08日
    浏览(37)
  • python使用odbc连接db2、sqlserver数据库

    先介绍安装odbc驱动,如果已安装跳过次环节 参考链接:linux环境odbc驱动安装 - 哔哩哔哩 也可参考微软官网(Windows驱动也有介绍):安装 Microsoft ODBC Driver for SQL Server (Linux) - ODBC Driver for SQL Server | Microsoft Learn ODBC Driver是一种动态链接库 (DLL),支持 ODBC 的应用程序(如 Excel)可

    2024年02月10日
    浏览(42)
  • Db2的时间转换(字符串,时间戳,Unix时间戳)

    Ubuntu 22.04 Db2 11.5.0 参见 https://www.ibm.com/docs/en/db2/11.5?topic=list-datetime-values Db2有3种时间类型: DATE :例如 03/20/2023 ,当前日期的special register为 CURRENT DATE TIME :例如 21:23:23 ,当前时间的special register为 CURRENT TIME TIMESTAMP :例如 2023-03-20-21.23.49.513704 ,当前时间戳的special register为

    2024年02月08日
    浏览(56)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包