更新时间:2024-07-24 GMT+08:00

表输入

概述

“表输入”算子,将关系型数据库表的指定列按顺序转换成同等数量的输入字段。

输入与输出

  • 输入:表列
  • 输出:字段

参数说明

表1 算子参数说明

参数

含义

类型

是否必填

默认值

输入字段

配置关系型数据库输入字段的相关信息:

  • 位置:配置输入字段的位置。
  • 字段名:配置输入字段名。
  • 类型:配置字段类型。
  • 长度:配置字段长度,字段值实际长度太长则按配置的长度截取,“类型”“CHAR”时实际长度不足则空格补齐,“类型”“VARCHAR”时实际长度不足则不补齐。

map

数据处理规则

  • 将指定的列按顺序生成字段。具体的表列是在作业配置的第二步“输入设置”中指定,当配置了“表列名”时,就是配置的值;当没配置“表列名”时,默认该表的所有列或者是“SQL语句”配置项里配置的查询条件中指明的列。
  • 配置的输入字段个数不能大于实际指定的列数,否则全部数据成为脏数据。
  • 当字段的值与实际的类型不匹配时,该行数据会成为脏数据。

样例

以sqlserver 2014为例,创建测试表test:

create table test (id int, name text, value text);

往测试表中插入三条数据:

insert into test values (1,'zhangshan','zhang');

insert into test values (2,'lisi','li');

insert into test values (3,'wangwu','wang');

查询表:

配置“表输入”算子,生成三个字段:

设置了数据连接器后,可以单击自动识别,系统将自动读取数据库中的字段,可根据需要选择添加,然后根据业务场景手动进行完善或者修正即可,无需逐一手动添加。

  • 此操作会覆盖表格内已有数据。
  • 单击自动识别后,建议手动检查系统自动识别出的字段类型,确保与表中实际的字段类型相符合。

    例如Oracle数据库中的“date”类型,系统会自动识别为“timestamp”类型,如果不手动处理会导致后续Hive表在查询数据时报错。

配置输出算子,输出到HDFS/OBS,结果如下: