AnalyticDB for PostgreSQL 提供多种数据写入/加载方式,本文将介绍 INSERT 语句、COPY命令、OSS外表的并行写入、使用 Client SDK 写入四种写入方式。

其中 INSERT 语句和 COPY 命令的写入数据均通过 Master 节点,INSERT 语句每秒支持3MB的数据写入量, COPY 命令的写入性能快于 INSERT,可以达到每秒 30MB。OSS 外表为各个数据分区(Segment)并行读取,单分区从 OSS 加载的能力即可达到 30MB,整体加载速率随分区数线性扩展。

方式一:INSERT 语句

通过 INSERT 语句写入数据,为提升写入速度,建议单条 INSERT 语句拼装多个值 VALUE 执行,可实现每秒 3MB 数据量写入。

INSERT INTO performers (name, specialty) VALUES (‘Sinatra’, ‘Singer’), …;
注意

执行高吞吐的写入时,建议关闭 ORCA SQL 优化器。ORCA 适合复杂查询优化,但对简单语句,会带来不必要的解析和优化CPU计算代价。Session 会话级别关闭ORCA优化器命令: “set optimizer = off;”;或提工单在实例级别关闭。

方式二:COPY命令

使用\COPY命令,可以将本地的文本文件数据导入 AnalyticDB for PostgreSQL,本地的文本文件要求是格式化的,如通过逗号、分号或特有符号作为分割符号的文件。同时也支持用户使用 JDBC 执行 COPY 语句,JDBC 中封装了 CopyIn 方法。采用 COPY 方式,支持每秒 30MB 的数据写入或导入速度。

COPY命令的操作细节可以参见COPY命令的使用

方式三:OSS 外表导入和导出

通过 OSS 外表,数据可以从各个节点(Segment )并行的写入或导出。整体写入或导出速度,随节点数线性扩展,单节点每秒支持 30MB 的数据写入。

建立OSS外表及数据写入和导出操作,可以参见OSS 外部表的使用

方式四:通过Client SDK 开发高效写入程序

AnalyticDB PostgreSQL版Client SDK通过 API 形式旨在为用户提供高性能写入数据到AnalyticDB PostgreSQL版的方式,支持用户定制化开发或对接写入程序。通过 SDK 开发写入程序,可简化在AnalyticDB PostgreSQL版中写入数据的流程,无需担心连接池、缓存等问题,相比较直接COPY/INSERT写入,通过并行化等内部机制有几倍性能提升。

Client SDK客户端API,请参照Client SDK的使用