GBase 8a MPP集群数据加载及常见问题总结

1 数据加载基础
1.1 数据加载语法格式
GBase 8a MPP Cluster支持通过SQL接口进行数据加载。
语法格式:
LOAD DATA INFILE ‘file_list’ INTO TABLE [dbname.]tbl_name [options]

options:
[CHARACTER SET charset_name]
[DATA_FORMAT number [HAVING LINES SEPARATOR]]
[NULL_VALUE ‘string’]
[FIELDS
[TERMINATED BY ‘string’]
[ENCLOSED BY ‘string’]
[PRESERVE BLANKS]
[AUTOFILL]
[LENGTH ‘string’]
[TABLE_FIELDS ‘string’]
]
[LINES
[TERMINATED BY ‘string’]
]
[MAX_BAD_RECORDS number]
[DATETIME FORMAT format]
[DATE FORMAT format]
[TIMESTAMP FORMAT format]
[TIME FORMAT format]
[TRACE number]
[TRACE_PATH ‘string’]
[NOSPLIT]
[PARALLEL number]
[MAX_DATA_PROCESSORS number]
[MIN_CHUNK_SIZE number]
[SKIP_BAD_FILE number]
[SET col_name = value[,…]]
[IGNORE NUM LINES]
[FILE_FORMAT format]
参数说明 :
FILE_LIST : 待加载文件列表,或待加载数据文件所在的目录。支持URL的方式指定数据文件路径,以逗号(’,’)作为多个文件/目录的分隔符。
scheme://host:port/path, scheme://host:port/path

OPTIONS :
CHARACTER SET : 用来指定待加载数据文件的编码格式,目前支持GBK和UTF8两种格式。省略时,认为不需要转码。
DATA_FORMAT : 用来指定使用哪种方式解析数据文件并加载。指定为3,表示使用文本方式加载。指定为4,表示使用定长方式加载。如果某列数据可能包含了行分隔符,则需要在SQL中输入’HAVING LINES SEPARATOR’子句。指定为5,表示使用文本文件宽松模式,即数据源文件为包围符中含有换行符和包围符文本文件,或多列少列文本文件。
NULL_VALUE : 用于指定空值字符,支持不超过15个任意字符的组合,参数值以引号包围,指定方式与字段包围符一样。

FIELDS :
TERMINATED BY : 用于指定字段分隔符,支持不超过15个任意字符的组合,支持任意字符,参数值以引号包围,仅当使用文本方式加载时有效。可使用字符本身(仅限可见字符,如 : “|”)、 C风格转义字符(如 : “\a”)、 \xhh十六进制(如 : “\xFF”)或x’‘十六进制(如 : "x’09’")四种方式指定。例如 : ‘|’,表示用|作为分隔字符。
ENCLOSED BY : 用于指定字段包围符,支持任意单字符,参数值以单引号包围,仅当使用文本方式加载时有效。可使用字符本身(仅限可见字符,如 : “|”)、 C风格转义字符(如 : “\a”)、 \xhh十六进制(如 : “\xFF”)或x’‘十六进制(如 : "x’09’")四种方式指定。
PRESERVE BLANKS : 用于设定是否保留字段内容两端的空格,默认不保留空格。
AUTOFILL : 用于设定是否启用缺失列自动补齐功能,启用该参数后,对缺失分割符的字段数据按照default值或者NULL值进行加载,默认不自动补齐。
DEFINER : 在使用定长模式加载时,用于设定字段长度的参数。定长格式数据导入时,设置每个字段的长度,有多个字段时,用逗号分隔。
LENGTH : 在使用定长模式加载时,用于设定字段长度的参数。定长格式数据导入时,设置每个字段的长度,有多个字段时,用逗号分隔。
TABLE_FIELDS : 用于指定列加载,对于日期时间类型可以设置每一列的格式。
SET : 指定列值加载,加载系统将待加载文件和指定加载列值加载到集群系统的表中。输入的类型应为常量,包括字符串、整数值、浮点值和NULL。
1、 支持指定所有列类型加载值;
2、 指定列值为常量值(包括NULL),包括字符串(单引号包围)、十进制数值(10)、浮点值(10.9)、 NULL、 16进制表示的字符串(0xbac3)、科学计数法(10e4);
3、 支持多列同时指定加载值。最多可SET表列数-1 ,如果设置的列数与表定义中的列数一致将报错 : Specified all fields .
4、 支持format=3、 format=4以及format=5;
使用限制说明 :
1、 输入除常量值外的其他值,如列名、表达式等会报错,报错信息为Column ‘addr’ should be const value;
2、 指定的列不能存在于TABLE_FIELDS中,否则报错;
3、 如果没有指定AUTOFILL,指定值的列数+数据中列数之和必须等于表定义或者TABLE_FIELDS (若指定了TABLE_FIELDS)中的列数,否则会产生错误数据;如果指定了AUTOFILL,则可以小于表定义的列数,缺少的列会自动补全。如果TABLE_FIELDS列数+SET列数小于表定义的列数,能够正常加载,没有涉及的列按照default值补齐;
4、 同一列在SQL中不能重复指定,否则报错。
LINES :
TERMINATED BY : 行分隔符,支持任意单字符,参数值以引号包围。 指定方式与包围符一样。 默认行分隔符为’\n’。
MAX_BAD_RECORDS : 在每次加载的任务中,设定错误数据行数的上限。当本次加载任务产生的错误数据行数大于max_bad_records设定的值时,加载任务回滚,加载工具报错退出。不指定该参数表示不限制错误条数,指定该参数时,此参数取值范围为 : [0, 4294967295]。 0表示只要有错误数据就报错退出。最大加载错误数的计算方式 : 所有集群节点独立计算,一旦有一个节点加载时错误数据达到本限制,则终止所有节点的加载任务。集群加载提交之前检查总错误条数是否超出限制,如果超出限制,放弃提交,报错退出。
DATE FORMAT : 用来指定date列类型的默认格式,如’%Y-%m-%d’。
DATETIME FORMAT : 用来指定datetime列的默认格式,如’%Y-%m-%d %H:%i:%s’。
TIMESTAMP FORMAT : 用来指定timestamp列的默认格式,如’%Y-%m-%d %H:%i:%s’。
TIME FORMAT : 用来指定time列的默认格式,如’%H:%i:%s’。
TRACE : 用来指示本次加载是否保存错误数据溯源。如果指定为0, 则不溯源。如果指定为1,则进行溯源。默认值为1。溯源信息包括 : 错误数据所在的文件,所在行号。
TRACE_PATH : 用来指定本次加载过程中产生的错误数据和日志存放路径。 在禁用日志汇总功能时, 该参数才能起作用, 默认值为加载节点的‚/opt/gnode/log/gbase/loader_logs‛中。
NOSPLIT : 用来指定本次加载任务中是否禁用分块加载功能,指定该参数将禁用分块加载功能。不指定该参数,在集群加载时,将自动启动分块加载功能,按照数据量和参与运算的加载节点数对数据进行均匀分块,以均衡数据服务器和数据处理节点的负载,优化加载性能。
PARALLEL : 用来控制集群加载并行度,取值范围[0,1024]。默认值为0,表示并行度取值是线程池最大可用线程数。
MAX_DATA_PROCESSORS : 用来指定本次加载任务中参与数据解析的处理的最大节点数,取值范围[1, 4294967295],默认值16。
MIN_CHUN

  • 0
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值