如果你配置离线任务时,使用脚本模式的方式进行配置,需要在任务脚本中,按照脚本的统一格式要求编写脚本中的 reader 参数和 writer 参数。
相关产品
数据开发治理平台 WeData 产品页,含版本规格、价格与购买入口。
一、支持版本
支持 Impala 4.1.0 版本。
二、Impala 离线单表读取节点配置
| 参数 |
说明 |
| 数据来源 |
选择来源端的已配置 Impala 数据源。 |
| 库 |
支持选择或者手动输入需读取的库名称。默认将数据源绑定的数据库作为默认库,其他数据库需手动输入库名称。当数据源网络不连通导致无法直接拉取库信息时,可手动输入数据库名称。在数据集成网络连通的情况下,仍可进行数据同步。 |
| 表 |
支持选择或者手动输入需读取的表名称。当数据源网络不连通导致无法直接拉取表信息时,可手动输入表名称。在数据集成网络连通的情况下,仍可进行数据同步。 |
| 切割键 |
指定用于数据分片的字段,指定后将启动并发任务进行数据同步。你可以将源数据表中某一列作为切分键,建议使用主键或有索引的列作为切分键。 |
| 筛选条件(选填) |
根据数据类型填写对应筛选语句,该语句会作为将要同步数据的筛选条件。 |
三、Impala 离线单表写入节点配置
| 参数 |
说明 |
| 数据去向 |
选择目标端的已配置 Impala 数据源。 |
| 库 |
支持选择或者手动输入需写入的库名称。默认将数据源绑定的数据库作为默认库,其他数据库需手动输入库名称。当数据源网络不连通导致无法直接拉取库信息时,可手动输入数据库名称。在数据集成网络连通的情况下,仍可进行数据同步。 |
| 表 |
支持选择或者手动输入需写入的表名称。当数据源网络不连通导致无法直接拉取表信息时,可手动输入表名称。在数据集成网络连通的情况下,仍可进行数据同步。 |
| 是否清空表 |
在写入该 Impala 数据表前可以手动选择是否清空该数据表。 |
| 批量提交大小 |
一次性批量提交的记录数大小,该值可以极大减少数据同步系统与 Impala 的网络交互次数,并提升整体吞吐量。如果该值设置过大,会导致数据同步运行进程 OOM 异常。 |
| 前置 SQL |
执行同步任务之前执行的 SQL 语句,根据数据源类型对应的正确 SQL 语法填写 SQL。 |
| 后置 SQL |
执行同步任务之后执行的 SQL 语句,根据数据源类型对应的正确 SQL 语法填写 SQL。 |
四、读取
| Impala 数据类型 |
内部类型 |
| BIGINT、INT、SMALLINT、TINYINT |
Long |
| DECIMAL、DOUBLE、FLOAT、REAL |
Double |
| CHAR、VARCHAR、ARRAY、STRUCT |
String |
| TIMESTAMP |
Date |
| BOOLEAN |
Boolean |
五、写入
| 内部类型 |
Impala 数据类型 |
| Long |
BIGINT、INT、SMALLINT、TINYINT |
| Double |
DECIMAL、DOUBLE、FLOAT、REAL |
| String |
CHAR、VARCHAR、ARRAY、STRUCT |
| Date |
TIMESTAMP |
| Boolean |
BOOLEAN |
六、Impala 脚本 Demo
{"core": { "transport": { "channel": { "speed": { "byte": -1 } } } },"job": { "content": [ { "reader": { "parameter": { "password": "******", "column": [ "id", "name" ], "connection": [ { "jdbcUrl": [ "jdbc:impala://ip:21000/database;AuthMech=3;UID=hadoop;OptimizedInsert=0;UseSasl=0;PWD=***" ], "table": [ "source_table" ] } ], "where": "id>10", "splitFactor": 1, "splitPk": "id", "username": "hadoop" }, "name": "impalareader" }, "transformer": [], "writer": { "parameter": { "postSql": [ "" ], "password": "******", "column": [ "*" ], "connection": [ { "jdbcUrl": "jdbc:impala://ip:21000/database;AuthMech=3;UID=hadoop;OptimizedInsert=0;UseSasl=0;PWD=***", "table": [ "sink_table" ] } ], "batchSize": 1024, "username": "hadoop", "preSql": [ "" ] }, "name": "impalawriter" } } ], "setting": { "errorLimit": { "record": 0 }, "speed": { "byte": -1, "channel": 1 } }}}