1. 概述
1.1 版本
FineDataLink 版本 | 功能变动 |
---|---|
4.1.3 |
|
1.2 应用场景
大数据量的数据存储场景下,为提高查询性能,许多数据库都提供了分区表的功能,希望 FDL 可以读取、创建、写入分区表。
1.3 功能简介
数据写入Hive、星环 TRANSWARP INCEPTOR数据库时,支持创建、写入分区表。
支持读取 PostgreSQL 数据库的分区表。
2. 功能说明
2.1 自动建表支持定义分区键
数据同步节点、数据转换>DB表输出算子中:
数据写入 Hive、星环 TRANSWARP INCEPTOR 数据库时,若选择「自动建表」,可选取目标表里的某些字段作为分区键。如下图所示:
点击「分区键设置」按钮,如下图所示:
2.1.1 支持作为分区键的字段类型
Hive、星环 TRANSWARP INCEPTOR 数据库,分区键支持的字段类型:
整数类型:如 tinyint、smallint、int、bigint。
浮点数类型:如 float、double。
字符串类型:如 string、varchar。
日期类型:如 date、timestamp。
其他:如 array、map、struct 等。
Hive、星环 TRANSWARP INCEPTOR 数据库,分区键不支持的字段类型:
复杂类型:例如 array、map、struct 等,这些类型在 Hive 中不被支持作为分区键。
NULL 类型:Hive 不支持 NULL 作为分区键。
集合类型:例如 set、list、tuple 等,这些类型在 Hive 中不被支持作为分区键。
其他特定数据类型:例如 bit、decimal、binary 等,这些类型在 Hive 中也不被支持作为分区键。
2.1.2 分区键设置说明
1)分区存在层级的关系,基于顺序,自动形成层级,第 1 个分区键为一级分区,第 2 个分区键为二级分区,以此类推,最多 8 级分区。
2)分区字段本质上并非表里的字段,而是存储目录,因此建表时只能放到最后,不能和表里的字段穿插;因此若某个字段被定义为分区字段,其在字段映射里应该处于末尾。
3)Hive 数据库不支持动态分区键的值为中文。
2.2 支持分区写入
数据同步节点、数据转换>DB表输出算子中:
数据写入 Hive、星环 TRANSWARP INCEPTOR 数据库时,当选择的目标表是分区表(包含分区键),或自动建表时定义了分区键,写入方式新增「分区写入」设置项。如下图所示:
分区级别、分区键均为自动获取,无法自定义;用户可配置写入方式、分区值。
写入方式:可选择静态分区、动态分区。
分区值:静态分区写入时,需要为分区键配置分区值。
2.3 读取分区表
支持读取 PostgreSQL 数据库的分区表。