STREAMSETS自学——JDBC Producer简述
本文结合我自己的使用经验和官方文档的理解所作,若有理解不足与功能解释不完整请谅解
JDBC Producer (stages: destination)
官方文档:https://streamsets.com/documentation/datacollector/3.7.2/help/datacollector/UserGuide/Destinations/JDBCProducer.html
组件图标:
功能:
该组件通过JDBC连接将数据写入数据库表,数据流的目标与基于主键的行匹配,而不是与记录中的其他字段匹配。
驱动包:
mysql:mysql-connector-java-5.1.46.jar
sql server:sqljdbc4.jar
Oracle:ojdbc6.jar
配置:
general:
Required Fields:必填字段,是必须存在于记录中以允许其进入处理阶段的字段。当记录不包含所有必填字段时,将根据为管道配置的错误处理对其进行处理。您可以为任何处理器,执行程序和大多数目标阶段定义必需的字段。
Preconditions:必须评估为TRUE以允许记录进入处理阶段的条件。单击"+"以创建其他前提条件。根据为阶段配置的错误处理,处理不满足所有前提条件的记录。
On Record Error:阶段的错误记录处理:
- Discard - 丢弃记录。
- Send to Error - 将记录发送到管道以进行错误处理。
- Stop Pipeline- 停止管道。
JDBC:
JDBC Connection String: 用于连接数据库的连接字符串
Mysql: jdbc:mysql://xxxxxxxxxx:3306/数据库名
Oracle: jdbc:oracle:thin:@xxxxxxxxxx:1521:服务名
SQL server: jdbc:sqlserver://xxxxxxxxxx:1433;databaseName=xxx
Schema Name :要使用的可选数据库或模式名称。在数据库需要完全限定的表名时使用。提示: 默认情况下,Oracle会对模式,表和列名称使用全部大写。仅当名称周围使用引号创建架构,表或列时,名称可以是低位或大小写。
Table Name :要使用的数据库表名称。使用数据库所需的表名格式。提示: 默认情况下,Oracle会对模式,表和列名称使用全部大写。仅当名称周围使用引号创建架构,表或列时,名称可以是低位或大小写。
Field to Column Mapping:用于覆盖默认字段到列映射。默认情况下,字段将写入同名的列。覆盖映射时,可以定义参数化值,以便在将字符值写入列之前将SQL函数应用于字段值。例如,要将字段值转换为整数,请为参数化值输入以下内容:
CAST(? AS INTEGER)
单击“ + ”图标以创建其他字段到列映射。
Enclose Object Names:写入数据库时,将数据库或模式名称,表名称和列名称括在引号中。允许使用区分大小写的名称或带有特殊字符的名称。未启用时,目标使用的JDBC驱动程序将确定名称的提交方式。Oracle JDBC驱动程序默认将名称提交为全部大写。此外,Oracle默认使用模式,表和列名称的全部大写。仅当名称周围使用引号创建架构,表或列时,名称可以是低位或大小写。
Change Log Format:变更捕获数据的格式。处理更改捕获数据时使用。
Default Operation:如果未设置sdc.operation.type记录标头属性,则执行的默认增删改操作。
Unsupported Operation Handling :不支持在sdc.operation.type记录标头属性中定义的CRUD操作类型时要采取的操作:
- Discard - 丢弃记录。
- Send to Error - 将记录发送到管道以进行错误处理。
- Use Default Operation - 使用默认操作将记录写入目标系统。
Use Multi-Row Operation:确定阶段如何处理记录。选择以一次启用插入和删除多个记录。在启用此选项之前,请验证数据库是否支持阶段使用的多行SQL语句。默认情况下,该阶段执行单行操作。
Max Cache Size Per Batch (Entries):定义多行插入的预准备语句中允许的参数数量。使用-1可禁用参数限制。默认值为-1。
Rollback Batch On Error:当批次中发生错误时,回滚整个批次。
Additional JDBC Configuration Propertie:要使用的其他JDBC配置属性。要添加属性,请单击“ + ”并定义JDBC属性名称和值,使用JDBC所期望的属性名称和值。
Credentials:
JDBC连接数据库的用户名和密码,即数据库的登录密码.
Advanced
Maximum Pool Size:要创建的最大连接数,默认值为1,建议值为1。
Minimum Idle Connections:要创建和维护的最小连接数。要定义固定连接池,请将其设置为与“Maximum Pool Size”相同的值,默认值为1。
Connection Timeout (Seconds):等待连接的最长时间。在表达式中使用时间常量来定义时间增量,默认值为30秒。
Idle Timeout (Seconds):允许连接空闲的最长时间。在表达式中使用时间常量来定义时间增量,使用0可以避免删除任何空闲连接,默认值为10分钟.
Max Connection Lifetime (Seconds):连接的最长寿命。在表达式中使用时间常量来定义时间增量,使用0设置无最大生命周期,默认值为30分钟
Transaction Isolation:用于连接数据库的事务隔离级别。默认值是为数据库设置的默认事务隔离级别。您可以通过将级别设置为以下任何一项来覆盖数据库默认值:
- 读取已提交
- 读取未提交
- 可重复阅读
- 序列化
Init Query:在该组件第一次连接到数据库之后立即执行的SQL查询。