【产品名称】oceanbase
【产品版本】3.1.1
【问题描述】:文件已上传至proxy的机器,通过proxy连接数据库,load data infile ‘file’ replace into table tablename 报错:ERROR 5010 (21000) at line 1: Unknown operator, bad internal cmd,请问是什么原因呢
【产品名称】oceanbase
【产品版本】3.1.1
【问题描述】:文件已上传至proxy的机器,通过proxy连接数据库,load data infile ‘file’ replace into table tablename 报错:ERROR 5010 (21000) at line 1: Unknown operator, bad internal cmd,请问是什么原因呢
LOAD DATA:该语句用于从外部导入数据。
目前, OceanBase 是分布式数据库,读写数据由 Leader 节点进行,而 CSV 文件需要上传到 Leader 节点所在服务器才能加载,因此需要提供 NAS 文件系统进行文件存放。OceanBase 数据库中的 LOAD DATA 语句仅支持加载 OBServer 本地的输入文件。因此,用户需要在导入之前将文件拷贝到某台 OBServer 上。
LOAD DATA 目前可以对 CSV 格式的文本文件进行导入,整个导入的过程可以分为以下的流程:
解析文件:OceanBase 数据库会根据用户输入的文件名,读取文件中的数据,并且根据指定的并行度来决定并行或者串行解析输入文件中的数据。
分发数据:由于 OceanBase 是分布式数据库,各个分区的数据可能分布在各个不同的 OBServer,LOAD DATA 会对解析出来的数据进行计算,决定数据需要被发送到哪个 OBServer。
插入数据:当目标 OBServer 收到数据后,在本地执行 INSERT 操作将数据插入到对应的分区当中。
要从外部文件导入数据,您需要具有 FILE 权限。
命令语法详见:https://open.oceanbase.com/docs/community/oceanbase-database/V3.1.1/load-data
上传文件至proxy的机器,通过连接proxy执行不可以吗
将文件上传至了observer,执行load data语句,没有报错,但是数据没有写进去呢,请问这是什么情况,是哪里不对呢
load data 我们经常用, 不应该有问题, 你这个给的信息太少了, 你show warning 看一下, 或者给一些observer 的log,
另外你单独连带数据文件的observer 再试一下
看了下日志报错信息有:Incorrect value和Invalid numeric,但是没有具体显示是哪个字段。文件中有些字段数据是NULL
导入数据跟表的列信息一致么?
是一致的,排查发现是有一列字段类型为datetime,文件中的值为NULL报的错,sql_mode值为“STRICT_ALL_TABLES”