本文结合我自己的使用经验和官方文档的理解所作,若有理解不足与功能解释不完整请谅解
JDBC Query Consumer(stages: origin)
官方文档:
组件图标:
功能:
该组件通过JDBC连接并使用用户定义的SQL语句查询读取数据库数据
驱动包:
mysql:mysql-connector-java-5.1.46.jar
sql server:sqljdbc4.jar
Oracle:ojdbc6.jar
配置:
General:
Produce Events: 发生事件时生成事件记录,用于事件处理。事件记录对照表如下:
记录标题属性 | 描述 |
---|---|
sdc.event.type | 事件类型。使用以下类型之一:
|
sdc.event.version | 一个整数,指示事件记录类型的版本。 |
sdc.event.creation_timestamp | 舞台创建事件时的纪元时间戳。 |
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
Incremental Mode:定义JDBC Query Consumer查询数据库的方式。选择执行增量查询。不选择执行完整查询。
SQL Query: 从数据库中读取数据时使用的SQL查询语句。
Initial Offset:需要在增量模式下使用,管道启动时使用的初始偏移值。
Offset Column:需要在增量模式下使用,用于偏移值的列。
Query Interval:查询之间等待的时间。根据时间单位输入表达式。您可以使用SECONDS,MINUTES或HOURS。默认值为10秒:$ {10 * SECONDS}。
Additional JDBC Configuration Properties:要使用的其他JDBC配置属性。要添加属性,请单击“ + ”并定义JDBC属性名称和值。要使用JDBC所期望的属性名称和值。
Credentials
JDBC连接数据库的用户名和密码,即数据库的登录密码
Advance
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分钟
Auto Commit:确定是否启用了自动提交模式。在自动提交模式下,数据库会为每条记录提交数据。默认为禁用。
Enforce Read-only Connection :创建只读连接以避免任何类型的写入。默认值已启用。建议不要禁用此属性。
Transaction Isolation:用于连接数据库的事务隔离级别。默认值是为数据库设置的默认事务隔离级别。您可以通过将级别设置为以下任何一项来覆盖数据库默认值:
- 读取已提交
- 读取未提交
- 可重复阅读
- 序列化
Init Query:在该组件第一次连接到数据库之后立即执行的SQL查询。
Create JDBC Header Attributes:将JDBC标头属性添加到记录中。默认情况下,origin创建JDBC标头属性。注意:将原点与漂移同步解决方案一起使用时,请确保选中此属性。
JDBC Header Prefix :JDBC标头属性的前缀。
Disable Query Validation :禁用默认情况下发生的查询验证。用于避免耗时的查询验证情况,例如查询Hive时,需要使用MapReduce作业来执行验证。警告:查询验证可防止运行包含无效查询的管道。请谨慎使用此选项。
On Unknown Type:原点遇到具有不受支持的数据类型的记录时要采取的操作:
- 停止管道 - 完成处理先前记录后停止管道。
- 转换为String - 将数据转换为字符串并继续处理。