LOAD DATA问题

【产品名称】OceanBase

【产品版本】2.2.76

【问题描述】有计划支持LOAD DATA LOCAL写法吗,在跑批时经常会导入大文件数据。咨询过我司的DBA,说OB使用LOAD DATA文件只能放在数据库上,这个对于大多数业务场景来说就是不支持。加工文件内容拼成SQL虽然可以导进去,但是效率不行,四五十字段的表,1秒导个1w条左右的数据甚至更慢,这效率相比LOAD DATA差了好多。

可以参考ob自己的导入导出工具obdumper/obloader

详细请参考官方文档:https://www.oceanbase.com/docs/obloader-obdumper/obloader-obdumper/V2.1.12/what-s-new

1 个赞

多谢,看介绍大多数范围能包住。除了上交所港股通的一个奇葩文件,普通非中文ascii字段+utf16le的中文,有些中文其中一个字节就是换行符

今天有时间试了下,从入门到放弃就不到半天。我找同事要了个2.1.11版本的工具包,倒腾了两个小时,最后提示[ERROR] Load failed! Error: The manifest file: "/home/xxx/data/OB/data/MANIFEST.bin" is missing就走不下去了。命令行、参数、命名规范让人很难受,天下皆阿里指导下的产品确实挺难用的,2.1.11和2.1.12的控制文件格式竟然不一样,太随意了,那后续修复什么BUG,是不是我的程序处理逻辑还得改过。

又找我们公司的同事,他给我一个2.1.12版本的工具,后面导进去了。发现如下问题,1、要求导入控制文件字段顺序及个数与数据库一致,这个不能忍,没有指定的字段不能用默认值吗,字段顺序又有什么关系,反正它里面实际是拼SQL插入的;2、插入实际是拼SQL插入的,故意弄错,打印出信息是insert语句;3、启动工具的代价很大,我测试环境简单的数据6个字段,350调数据工具打出来的花了1.5秒,相同环境30+字段的表拼个大SQL每秒也有1W左右的速度;

从功能及维护性、性能看,大家没必要用这个工具,这个工具估计只是给运维在简单场景下用用。批量导数据就现状可能还是自己拼SQL实现快点。

  1. 我们正在实现并支持local 模式, 估计9月前肯定可以完成
  2. 可以将数据文件放到服务器上, 采用并行加载的方式, 速度会非常的快, 远远超过load data, 类似如下
load data /*+ parallel(80) */ infile '%s/customer.tbl' into table customer fields terminated by '|';


请问local模式可以支持了吗


使用obloader导入csv文件。在社区官网上有使用文档和资源下载。

使用文档:https://open.oceanbase.com/docs/productDocs