# Hive Sink组件使用说明
# 组件说明
用于将数据写入Hive 数据库。
注意
同一个作业中不能同时出现 Hive Sink 和 Inceptor Sink 组件。
# 配置项说明
| 配置名称 | 数据类型 | 是否必填 | 默认值 | 描述 |
|---|---|---|---|---|
| 节点名称 | String | 是 | Hive | 当前创建的节点名称,由用户自定义且不可为空。命名可包含字母、数字、下划线。确保唯一性。 |
| 节点编码 | String | 是 | 自动生成 | 当前创建的节点编码,以此标识此组件,由用户自定义且不可为空。命名可包含字母、数字、下划线。确保唯一性。 |
| 选择数据源 | String | 是 | - | 从下拉选项中选择列出的当前项目已经关联的数据源。 |
| 选择库 | String | 是 | - | 从下拉列表中选择数据库。 |
| 选择表 | String | 是 | - | 从下拉列表中选择数据表。 |
| 压缩算法 | String | 否 | NONE | 支持NONE、SNAPPY、LZO。 |
| 启用覆盖模式 | Boolean | 否 | 否 | 用于决定在向 Hive 中插入数据时是否启用覆盖模式的标志。若设置为“是”,对于非分区表,在插入新数据之前会先删除表中的现有数据。对于分区表,会在插入新数据之前删除相关分区中的数据。 |
| 是否分区 | Boolean | 否 | 否 | 用于决定是否需要处理分区。 |
| 分区字段 | Array | 否 | - | 仅在 “是否分区” 为 “是” 时使用,根据选定的字段对数据进行分区。 |
| 分区目录表达式 | String | 否 | ${k0}=${v0}/${k1}=${v1}/.../${kn}=${vn}/ | 仅在 “是否分区” 为 “是” 时使用,如果指定了 “分区字段”,我们将根据分区信息生成相应的分区目录,并将最终文件放置在分区目录中。默认 partition_dir_expression 为 ${k0}=${v0}/${k1}=${v1}/.../${kn}=${vn}/。k0 是第一个分区字段,v0 是第一个分区字段的值。 |
| 表添加模式 | String | 否 | 表不存在时创建 | 对于目标表的情况,处理方式有三种: - 重新创建表 - 表不存在时创建 - 表不存在时报告错误 - 忽略对表的处理 |
| 数据添加模式 | String | 否 | 追加数据 | 支持四种模式: 1、追加数据:数据统一追加到目标表中; 2、同步前删除数据:先清空目标表数据,然后再给目标表添加数据; 3、当存在数据时,报告错误:当目标表存在相同数据时,报告错误,不会添加数据。 4、自定义处理:用户可以自定义写SQL的方式进行处理。 |
| 可选参数 | Map | 否 | - | 其他参数,用户可以根据需求进行配置。 |
# FAQ
Q1: 可以同时使用Inceptor输入组件和Hive输入组件吗?
A1:不可以,Inceptor和Hive加载的驱动不一样,故同一个作业模型中不能同时出现Hive 和Inceptor的Source、Sink组件。