Hive
概览
Hive 加载节点可以将数据写入 Hive。使用 Flink 方言,目前仅支持 Insert 操作,Upsert 模式下的数据会转换成 Insert 方式 目前暂时不支持使用 Hive 方言操作 Hive 表。
支持的版本
Load Node | Version |
---|---|
Hive | Hive: 1.x, 2.x, 3.x |
依赖
通过 Maven 引入 sort-connector-hive 构建自己的项目。 当然,你也可以直接使用 INLONG 提供的 jar 包。(sort-connector-hive)
Maven 依赖
<dependency>
<groupId>org.apache.inlong</groupId>
<artifactId>sort-connector-hive</artifactId>
<version>1.7.0</version>
</dependency>
如何配置 Hive 数据加载节点
SQL API 的使用
使用 Flink SQL Cli
:
CREATE TABLE hiveTableName (
id STRING,
name STRING,
uv BIGINT,
pv BIGINT
) WITH (
'connector' = 'hive',
'default-database' = 'default',
'hive-version' = '3.1.2',
'hive-conf-dir' = 'hdfs://localhost:9000/user/hive/hive-site.xml'
);
InLong Dashboard 方式
配置
在创建数据流时,选择数据落地为 ‘Hive’ 然后点击 ‘Add’ 来配置 Hive 的相关信息。
InLong Manager Client 方式
TODO: 未来版本支持
Hive 加载节点参数信息
参数 | 是否必须 | 默认值 | 数据类型 | 描述 |
---|---|---|---|---|
connector | 必须 | (none) | String | 指定使用什么连接器,这里应该是 ‘hive’。 |
default-database | 必须 | (none) | String | 指定数据库名称。 |
hive-conf-dir | 必须 | (none) | String | 本地构建项目可以将hive-site.xml构建到 classpath 中,未来 Dashboard 将支持本地上传能力。 目前通用方式只支持配置已经上传文件后的 HDFS 路径。 |
sink.partition-commit.trigger | 可选 | (none) | String | 如果表是分区表,可以配置触发模式。如:(process-time) |
partition.time-extractor.timestamp-pattern | 可选 | (none) | String | 如果表是分区表,可以配置时间戳。如:(yyyy-MM-dd) |
sink.partition-commit.delay | 可选 | (none) | String | 如果表是分区表,可以配置延迟时间。如:(10s,20s,1m…) |
sink.partition-commit.policy.kind | 可选 | (none) | String | 分区提交策略通知下游某个分区已经写完毕可以被读取了。 metastore:向 metadata 增加分区。仅 hive 支持 metastore 策略,文件系统通过目录结构管理分区; success-file:在目录中增加 ‘_success’ 文件; 上述两个策略可以同时指定:’metastore,success-file’。 custom:通过指定的类来创建提交策略, 支持同时指定多个提交策略:’metastore,success-file’。 |
inlong.metric.labels | 可选 | (none) | String | inlong metric 的标签值,该值的构成为groupId=[groupId]&streamId=[streamId]&nodeId=[nodeId]。 |
数据类型映射
Hive type | Flink SQL type |
---|---|
char(p) | CHAR(p) |
varchar(p) | VARCHAR(p) |
string | STRING |
boolean | BOOLEAN |
tinyint | TINYINT |
smallint | SMALLINT |
int | INT |
bigint | BIGINT |
float | FLOAT |
double | DOUBLE |
decimal(p, s) | DECIMAL(p, s) |
date | DATE |
timestamp(9) | TIMESTAMP |
bytes | BINARY |
array | LIST |
map | MAP |
row | STRUCT |