1. 概述
1.1 版本
FineDataLink 版本 | 功能变动 |
---|---|
4.1.3 |
|
4.1.9.3 |
|
4.1.11.2 | YMatrix 数据库:
|
4.1.11.3 | PolarDB PostgreSQL 数据库:
|
4.1.11.4 | MaxCompute「定时任务」「自动建表」支持「分区键设置」 当选择的目标表是分区表(包含分区键),或自动建表时定义了分区键,写入方式新增「分区写入」设置项 |
1.2 应用场景
大数据量的数据存储场景下,为提高查询性能,许多数据库都提供了分区表的功能,希望 FDL 可以读取、创建、写入分区表。
1.3 功能简介
部分数据库支持选择分区表作为「数据来源」和「数据去向」、自动建表支持设置分区键和分布键。
1.4 约束限制
不支持多级分区,仅支持一级分区。
2. 读取分区表数据
支持位置 | 支持数据源 |
---|---|
定时任务 | PostgreSQL、Greenplum、Gauss200、YMatrix、PolarDB PostgreSQL |
数据服务 | PostgreSQL、Greenplum、Gauss200、YMatrix、PolarDB PostgreSQL |
定时任务和数据服务支持读取数据源的分区表,如下图所示:
3. 写入数据到已存在的分区表
支持位置 | 支持数据源 |
---|---|
定时任务 | PostgreSQL(4.1.9.3 及之后版本支持)、Greenplum(4.1.9.3 及之后版本支持)、Gauss200(4.1.9.3 及之后版本支持) YMatrix (4.1.11.2 及之后版本支持) PolarDB PostgreSQL(4.1.11.3 及之后版本支持) |
管道任务 |
定时任务和管道任务支持选择目标表是分区表,如下图所示:
4. 自动建表支持分区键设置
支持位置 | 支持数据源 |
---|---|
定时任务 | Hive(4.1.3 及之后版本)、星环 TRANSWARP INCEPTOR(4.1.3 及之后版本)、MaxCompute(4.1.11.4以及之后版本)、PostgreSQL(4.1.9.3 及之后版本)、Greenplum(4.1.9.3 及之后版本)、Gauss200(4.1.9.3 及之后版本)、YMatrix(4.1.11.2 及之后版本)、PolarDB PostgreSQL(4.1.11.3 及之后版本) |
管道任务 | PostgreSQL(4.1.9.3 及之后版本)、Greenplum(4.1.9.3 及之后版本)、Gauss200(4.1.9.3 及之后版本)、YMatrix(4.1.11.2 及之后版本)、PolarDB PostgreSQL(4.1.11.3 及之后版本) |
数据写入数据库时,若选择「自动建表」,可选取目标表里的某些字段作为分区键。如下图所示:
配置项 | 说明 |
---|---|
分区方式 | 选择分区方式:
|
分区字段 | 选择映射已有字段作为分区字段。 范围分区&哈希分区:支持选择一个或多个字段作为分区字段。 列表分区:仅支持选择一个字段作为分区字段。 |
分区配置 | 选择分区方式后,可以添加多个分区,每个分区的配置如下: 范围分区:
列表分区:
哈希分区(11.x以上版本支持):
11.x 以上版本,支持在范围分区和列表分区内,添加默认分区,用于存放不匹配任何分区的数据,仅允许添加一个默认分区。 |
分区键设置说明:
1)分区存在层级的关系,基于顺序,自动形成层级,第 1 个分区键为一级分区,第 2 个分区键为二级分区,以此类推,最多 8 级分区。
2)分区字段本质上并非表里的字段,而是存储目录,因此建表时只能放到最后,不能和表里的字段穿插;因此若某个字段被定义为分区字段,其在字段映射里应该处于末尾。
分区方式和分区字段个数支持情况:
数据库 | 范围分区 | 列表分区 | 哈希分区 |
---|---|---|---|
PostgreSQL&PolarDB PostgreSQL | 10.x以上|N个字段 | 10.x以上|1个字段 | 11.x以上|N个字段 |
Greenplum&YMatrix | 5.x以上|1个字段 | 5.x以上|1个字段 | 7.x以上|1个字段 |
Gauss200 | N个字段 | N个字段(介于时只能指定1个字段) | 不支持 |
5. 自动建表支持指定分布键
支持位置 | 支持数据源 |
---|---|
定时任务 | GaussDB 200、Greenplum、YMatrix |
管道任务 |
定时任务和管道任务目标表配置为「自动建表」时,增加相关配置,支持指定哈希分布键。
注:目前哈希分布下支持指定分布键,暂不支持随机分布和复制分布。
分布键可以不配置,不配置分布键时,将走数据库默认逻辑指定分布键(默认是使用主键或者表的第一个列作为分布键),如下图所示:
6. 写入方式支持分区写入
数据同步节点、数据转换>DB表输出算子中:
数据写入 Hive、星环 TRANSWARP INCEPTOR 、MaxCompute 数据库时,当选择的目标表是分区表(包含分区键),或自动建表时定义了分区键,写入方式新增「分区写入」设置项。如下图所示:
分区级别、分区键均为自动获取,无法自定义;用户可配置写入方式、分区值。
写入方式:可选择静态分区、动态分区。注:MaxCompute仅支持静态分区。
分区值:静态分区写入时,需要为分区键配置分区值。
7. 附录
数据库 | 特性参考文档 |
---|---|
PostgreSQL | PostgreSQL数据源使用说明 |
Greenplum | Greenplum数据源使用说明 |
YMatrix | YMatrix数据源使用说明 |
Gauss200 | GaussDB 200数据源使用说明 |
PolarDB PostgreSQL | PolarDB PostgreSQL数据源使用说明 |
Hive | Hadoop Hive数据源使用说明 |
星环 TRANSWARP INCEPTOR | TRANSWARP INCEPTOR数据源使用说明 |
MaxCompute | MaxCompute数据源使用说明 |