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数据和字段不匹配的处理方案》有2条评论
评论已关闭。