KKKathyLi  发表于 2020-5-14 21:39 显示全部楼层 楼主
我用的是 gbase 8.6.2.33-R23.112853 容器客户端,
我用 load data infile 加载数据时,执行结果全部 skipped,请问下是为什么呢?

文件内容:
2020-05-13 01:00:00,3600,e71f0d8b-8d92-4034-ae25-5662bfe006de,1669,7,5,5.000000
2020-05-13 02:00:00,3600,e71f0d8b-8d92-4034-ae25-5662bfe006de,1669,8,5,5.000000


执行语句和结果:
gbase> load data infile 'sftp://ubuntu:cloud@10.62.118.53/home/ubuntu/txt/test.txt' into table A_L_CELL_RRC_CONN_H data_format 3 FIELDS TERMINATED BY ',' (collecttime,granularity,me,fddv3_enbfunction,fddv3_eutrancellfdd,C373200029,C373200030);
Query OK, 0 rows affected (Elapsed: 00:00:00.93)
Task 1883829 finished, Loaded 0 records, Skipped 2 records


数据表大概结构如下所示,数据表没有索引,后面还有很多类似 C373200029,C373200030 这样的列
gbase> show columns from A_L_CELL_RRC_CONN_H;
+---------------------+---------------+------+-----+-------------------+-----------------------------+
| Field                         | Type            | Null | Key | Default           | Extra                       |
+---------------------+---------------+------+-----+-------------------+-----------------------------+
| COLLECTTIME            | datetime      | YES  |     | NULL              |                             |
| COLLECTTIMEGMT      | datetime      | YES  |     | NULL              |                             |
| TIMEZONEOFFSET      | decimal(4,0)  | YES  |     | NULL              |                             |
| DSTSAVING               | decimal(2,0)  | YES  |     | NULL              |                             |
| LOADTIME                | timestamp     | NO   |     | CURRENT_TIMESTAMP | on update CURRENT_TIMESTAMP |
| GRANULARITY           | decimal(10,0) | YES  |     | NULL              |                             |
| STATUS                    | decimal(10,0) | YES  |     | NULL              |                             |
| meId                        | decimal(10,0) | YES  |     | NULL              |                             |
| ME                           | varchar(255)  | YES  |     | NULL              |                             |
| FDDV3_ENBFUNCTION   | varchar(255)  | YES  |     | NULL              |                             |
| FDDV3_EUTRANCELLFDD | varchar(255)  | YES  |     | NULL              |                             |
| C373200000             | decimal(12,0) | YES  |     | NULL              |                             |
| C373200001             | decimal(12,0) | YES  |     | NULL              |                             |


本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
iLeLe  发表于 2020-5-15 09:44 显示全部楼层 沙发
看你没指定datetime类型的数据格式,在load data sql中增加一个 datetime format '%Y-%m-%d %H:%i:%s' 参数。
可以看下具体失败的原因,参考sql手册。
KKKathyLi  发表于 2020-5-16 14:12 显示全部楼层 板凳
我添加了datetime format 还是全部 skipped 了

gbase> load data infile 'sftp://ubuntu:cloud@10.62.118.53/home/ubuntu/txt/test.txt' into table pm.A_L_CELL_RRC_CONN_H datetime format '%Y-%m-%d %H:%i:%s' FIELDS TERMINATED BY '\n' (collecttime,granularity,me,fddv3_enbfunction,fddv3_eutrancellfdd,C373200029,C373200030);
Query OK, 0 rows affected (Elapsed: 00:00:00.85)
Task 2062283 finished, Loaded 0 records, Skipped 2 records

而且数据库 datetime 默认的格式就是 '%Y-%m-%d %H:%i:%s' 了
gbase> show variables like '%datetime%';
+-----------------+-------------------+
| Variable_name   | Value             |
+-----------------+-------------------+
| datetime_format | %Y-%m-%d %H:%i:%s |
+-----------------+-------------------+
1 row in set (Elapsed: 00:00:00.00)


KKKathyLi  发表于 2020-5-16 14:37 显示全部楼层 地板
我成功啦

前辈告诉我去看报错日志,虽然也没看到报错,但是我看到有 loader_result 的日志,里面有 load data infile 相关的语句,我就按照日志里的语句,修改了一下,就成功加载啦~

成功加载的语句如下:
load data infile 'sftp://ubuntu:cloud@10.62.118.53/home/ubuntu/txt/test.txt' into table A_L_CELL_RRC_CONN_H DATA_FORMAT 3 NULL_VALUE ' ' FIELDS TERMINATED BY ',' TABLE_FIELDS 'collecttime DATE "%Y-%m-%d %H:%i:%s", granularity, me, fddv3_enbfunction, fddv3_eutrancellfdd, C373200029, C373200030';
您需要登录后才可以回帖 登录 | 立即注册