GBase 8a 集群加载数据LOAD数据和字段不匹配的处理方案

GBase 8a 加载时,要求数据和表结构匹配。但某些情况下,会出现数据和表无法完全匹配的情况。GBase数据库支持人工指定匹配策略的方案,以数据为主,配置TABLE_FIELDS参数, 用filler填充无效的数据,来达到顺利加载的目的。

1、数据和字段顺序不同

这种是非常常见的情况,如果当前数据要加载,指定对应的列名(不一定和表列名顺序一致。

比如表里字段顺序是a,b,c, 而数据顺序对应的是c,b,a,则可以在table_fileds里指定顺序即可,table_fields=’c,b,a’

2、缺少部分列的数据

数据里不包含某些列的数据,那么在table_fields里就不要写这些列就行了。

3、数据多了不需要的列

如果数据某些当不需要加载,则随意给一个列名,后面加上filler占位符。 如果有多个忽略的列,指定的列名不能重复。

比如数据是,a,b,c,d,e。 而我们的表里,只希望加载a,c. 那么写成

table_fields=’a,tt1 filler,c,tt2 filler,tt3 filler‘ 即可。表示只加载a,c两列数据,其余的列filler纯占位,不参与加载。

总之,以数据为主,如果数据比表的列少了的, 则在table_fields里不要写这些列,如果多了不需要加载,则用filler 占位。

加载的语法和使用,请参考

GBase 8a 集群加载数据LOAD的方法

如还有疑问,请访问 官方论坛