【 使用环境 】= 测试环境
【 OB or 其他组件 】OB
【 使用版本 】4.1
【问题描述】请问ETL导出导入OB数据,是选择OB dumper/Loader 好,还是选择select into file/Load data方式比较好?
【复现路径】
【问题现象及影响】
【附件】
【 使用环境 】= 测试环境
【 OB or 其他组件 】OB
【 使用版本 】4.1
【问题描述】请问ETL导出导入OB数据,是选择OB dumper/Loader 好,还是选择select into file/Load data方式比较好?
【复现路径】
【问题现象及影响】
【附件】
推荐使用obloader,它是目前效率最高的导数工具
回复:
obloader与load data 是相同的导入原理,两款工具都是读取并解析文件,组织成Insert SQL插入数据库。最大的区别是 obloader 是Java开发的客户端工具,消耗的是客户端资源;而 load data 是C++开发的服务端工具,消耗的是数据库服务器的资源;obloader 也提供大文件自动拆分,并行解析,分区路由,批量插入等若干特性加速导入性能。更多功能可以查阅官方文档。这里我贴一下 obloader 4.0.0 版本在内部的性能测试报告:
环境配置
OBDUMPER 4.0.0 导出 100GB TPC-H 数据
OBLOADER 4.0.0 导入 100GB TPC-H 数据
注意事项
回复:
obdumper 也支持复杂的查询导出 —— 自定义查询导出。该功能与 select … into outfile; 相似。但是 obdumper 支持多种导出格式,例如:CSV, Insert SQL, ORC, Parquet。使用 ORC, Parquet 列存格式,默认启用压缩,存储成本会降低 70% 左右。
样例:
./obdumper ...省略若干命令行选项... --query-sql ‘任意的查询语句’
用户只要保证 --query-sql 中指定的SELECT语句正确且性能符合预期,即可完成数据导出。典型的应用,例如:复杂联表查询等。
旁路导入功能做到更全面的话,后续可以使用旁路导入
是的,等待内核旁路写入接口正式发布的时候,LOAD DATA, INSERT INTO…SELECT, OBLOADER 都会支持旁路插入。数据的导入性能会再提升一些。