本文已参与「新人创作礼」活动,一起开启掘金创作之路。
3.6 环境准备
- Kafka和Schema Registry在默认端口上本地运行
- mysql可以远程访问
- 插件安装同上HDFS Sink安装方式
3.7 Configuration Properties
3.7.1配置类
要使用此连接器,请在connector.class配置属性中指定连接器类的名称。
connector.class=io.confluent.connect.jdbc.JdbcSinkConnector
连接器特定的配置属性如下所述。
3.7.2 数据库连接安全
在连接器配置中,您会注意到没有安全参数。这是因为SSL不属于JDBC标准,而是取决于所使用的JDBC驱动程序。通常,您需要通过connection.url参数配置SSL 。例如,对于MySQL,它看起来像:
connection.url="jdbc:mysql://127.0.0.1:3306/sample?verifyServerCertificate=false&useSSL=true&requireSSL=true"
请查阅有关支持和配置的特定JDBC驱动程序文档。
3.7.3 Connection
connection.url
JDBC连接URL。
- 类型:字符串
- 重要性:高
connection.user
JDBC连接用户。
- 类型:字符串
- 默认值:空
- 重要性:高
connection.password
JDBC连接密码。
- 类型:密码
- 默认值:空
- 重要性:高
dialect.name
该连接器应使用的数据库方言的名称。默认情况下为空,并且连接器根据JDBC连接URL自动确定方言。如果要覆盖该行为并使用特定的方言,请使用此选项。可以使用JDBC连接器插件中所有正确包装的方言。
- 类型:字符串
- 默认值:“”
- 有效值:[,Db2DatabaseDialect,MySqlDatabaseDialect,SybaseDatabaseDialect,GenericDatabaseDialect,OracleDatabaseDialect,SqlServerDatabaseDialect,PostgreSqlDatabaseDialect,SqliteDatabaseDialect,DerbyDatabaseDialect,SapHanaDatabaseDialect,MockDatabaseDialect,MockDatabaseDialect
- 重要性:低
3.7.4 Writes
insert.mode
要使用的插入模式。支持的模式有:
-
insert使用标准的SQL
INSERT语句。 -
upsert如果连接器支持目标数据库,请使用适当的upsert语义,例如。
INSERT OR IGNORE -
update如果连接器支持目标数据库,请使用适当的更新语义,例如
UPDATE。 -
类型:字符串
-
默认值:插入
-
有效值:[插入,向上插入,更新]
-
重要性:高
batch.size
指定在可能的情况下尝试将多少记录一起批处理以插入到目标表中。
- 类型:int
- 默认值:3000
- 有效值:[0,…]
- 重要性:中等
delete.enabled
是否将null记录值视为删除。要求pk.mode是record_key。
- 类型:布尔值
- 默认值:false
- 重要性:中等
3.7.5 Data Mapping
table.name.format
目标表名称的格式字符串,其中可以包含“ $ {topic}”作为源主题名称的占位符。
例如,kafka_${topic}对于主题“订单”将映射到表名称“ kafka_orders”。
- 类型:字符串
- 默认值:$ {topic}
- 重要性:中等
pk.mode
主键模式,也请参考pk.fields文档以了解交互作用。支持的模式有:
-
none没有使用键。
-
kafkaApacheKafka®坐标用作PK。
-
record_key使用了来自记录键的字段,该字段可以是基元或结构。
-
record_value使用记录值中的字段,该字段必须是结构。
-
类型:字符串
-
默认值:无
-
有效值:[none,kafka,record_key,record_value]
-
重要性:高
pk.fields
逗号分隔的主键字段名称列表。此配置的运行时解释取决于pk.mode:
-
none在此模式下,由于没有字段用作主键,因此将被忽略。
-
kafka必须是代表Kafka坐标的三重奏,
__connect_topic,__connect_partition,__connect_offset如果为空则默认为。 -
record_key如果为空,则将使用键结构中的所有字段,否则将用于提取所需的字段-对于原始键,仅必须配置一个字段名称。
-
record_value如果为空,将使用值struct中的所有字段,否则将提取所需的字段。
-
类型:清单
-
默认值:无
-
重要性:中等
fields.whitelist
以逗号分隔的记录值字段名称的列表。如果为空,将使用记录值中的所有字段,否则将用于过滤到所需的字段。
请注意,pk.fields在哪个字段在目标数据库中构成主键列的上下文中独立应用,而此配置适用于其他列。
- 类型:清单
- 默认值:“”
- 重要性:中等
db.timezone
插入基于时间的值时,连接器应使用的JDBC时区的名称。默认为UTC。
- 类型:字符串
- 默认值:“ UTC”
- 有效值:任何有效的JDK时区
- 重要性:中等