# HBase Sink组件使用说明
# 组件说明
用于将数据写入 HBase、星环 Hyperbase 数据库。星环 Hyperbase 数据库也使用 HBase Sink 组件。
注意
需要提前创建表及列族。
# 配置项说明
| 配置名称 | 数据类型 | 是否必填 | 默认值 | 描述 |
|---|---|---|---|---|
| 节点名称 | String | 是 | HBase | 当前创建的节点名称,由用户自定义且不可为空。命名可包含字母、数字、下划线。确保唯一性。 |
| 节点编码 | String | 是 | 自动生成 | 当前创建的节点编码,以此标识此组件,由用户自定义且不可为空。命名可包含字母、数字、下划线。确保唯一性。 |
| 选择数据源 | String | 是 | - | 从下拉选项中选择列出的当前项目已经关联的数据源。 |
| 选择表 | String | 是 | - | 从下拉列表中选择数据表。 |
| Rowkey取值列 | String | 否 | "" | 作为RowKey的列名列表。 |
| Rowkey分隔符 | String | 否 | "" | 多列RowKey的连接符。 |
| 列族 | String | 是 | - | 列族映射规则,控制字段写入哪个列族。例如:Id作为行键和其他字段写入到不同的列族,您可以分配 family_name { name = "info1" age = "info2" } name 将写入列族 info1,age 将写入列族 info2 如果您希望将所有字段写入同一列族,你可以分配 family_name { all_columns = "info" } 所有字段都将写入列族 info。 |
| 字段 | String | 是 | - | 字段。 |
| 空值写入模式 | String | 否 | skip | 空值写入方式,支持[skip, empty],默认跳过 skip:当字段为 null 时,连接器不会将此字段写入 hbase empty:当字段为null时,连接器将写入并为此字段生成空值。 |
| Write Ahead Log写入 | Boolean | 否 | 否 | HBase 采用了 Write-Ahead Log (WAL) 机制来保证数据的持久性和容错性。 |
| 版本列名 | String | 否 | - | 指定字段作为HBase时间戳。 |
| 缓冲区大小 | String | 否 | 8 | HBase 客户端写缓冲区大小。 |
| 编码 | String | 否 | utf8 | 字符串类型字段的编码,支持[utf8,gbk],默认为utf8。 |
| 可选参数 | Map | 否 | - | 其他参数,用户可以根据需求进行配置。 |
# FAQ
Q1:提示“TableNotFoundException”
A:HBase表未提前创建。请先通过HBase Shell或API建表。
Q2:wal_write一定要设为true吗?
A:官方表格标记为“yes”(必填),但示例中常设为false。建议显式配置,生产环境如需数据高可靠请设为true(会略微影响性能)。
Q3:如何设置HBase客户端的自定义参数?
A:使用hbase_extra_config,例如:
hbase_extra_config {
hbase.client.retries.number = 3
hbase.rpc.timeout = 5000
}
Q4:是否支持Phoenix写入?
A:不支持。HBase Sink是直接写入HBase表。如需通过Phoenix写入,请使用SeaTunnel的Phoenix JDBC Sink(配置driver=org.apache.phoenix.jdbc.PhoenixDriver)。
Q5:2.3.10版本有什么HBase相关更新?
A:2.3.10对HBase Connector进行了“配置优化”,但官方发布说明中未披露具体细节。建议使用2.3.6及以上稳定版本。