PostgreSQL快速导入千万条数据

本文涉及的产品
云原生数据库 PolarDB MySQL 版,Serverless 5000PCU 100GB
简介: PostgreSQL快速导入千万条数据

为了与MySQL做个对比,做一个PG的数据导入测试,使用COPY方式,测试环境保持一致,具体如下所述。

一、测试环境

■ 48CPU/376G

CPU(s):                48
Thread(s) per core:    2
Core(s) per socket:    12
Socket(s):             2
Model name:            Intel(R) Xeon(R) Gold 5118 CPU @ 2.30GHz
L1d cache:             32K
L1i cache:             32K
L2 cache:              1024K
L3 cache:              16896K

■ DISK

Model: AVAGO HW-SAS3508 (scsi)
Disk /dev/sdb: 12.0TB
test write:1.1GB/s
test read: 3.9GB/s

■ OS
Red Hat Enterprise Linux Server 7.4 (Maipo)
■ FS

Filesystem                  Type      Size  Used Avail Use% Mounted on
/dev/mapper/vgora-lv_u01    xfs        11T  792G   11T   8% /u01

■ db version

[postgres@adg1:2 ~]$ psql -V
psql (PostgreSQL) 14.2
[postgres@adg1:2 ~]$ pg_ctl -V
pg_ctl (PostgreSQL) 14.2

二、修改源数据为COPY可用的格式

源数据:与MySQL测试保持一致
格式:MySQL导出的DOS文本文件格式(\n\r),修改为unix文本文件格式(\n)
【此处使用csv格式】
使用head、awk、sed工具取出所需的记录行,并修改各行数据格式。
由于源数据存在\',导致无法正确导入,需把\'替换成"或其他字符。
sed -i "s/\\\'/\"/g" mydata.sql

三、DDL

■ 根据最原始的源数据,调整DDL语句

CREATE TABLE tablename (
  id int4 NOT NULL,
  code varchar(100) DEFAULT NULL,
  init_value text,
  master_id text DEFAULT NULL,
  code_id varchar(11) DEFAULT NULL,
  end_value text
);
ALTER TABLE tablename ADD PRIMARY KEY (id);
CREATE INDEX tablename_master_id ON tablename USING btree (master_id);
CREATE INDEX tablename_code ON tablename USING btree (code);

四、COPY

COPY tablename FROM '/u01/pg/mydata.sql' WITH DELIMITER ',' CSV QUOTE '''';
耗时记录如下:

■ 100万
COPY 1000000
Time: 8938.071 ms (00:08.938)

■ 500万
COPY 4999966
Time: 70209.830 ms (01:10.210)
COPY 5000000
Time: 56365.434 ms (00:56.365)
COPY 5000000
Time: 65061.424 ms (01:05.061)

■ 2000万
COPY 19999961
Time: 257502.571 ms (04:17.503)
COPY 19999962
Time: 252777.564 ms (04:12.778)
COPY 20000000
Time: 250620.213 ms (04:10.620)
COPY 10578983
Time: 138167.048 ms (02:18.167)

■ 3000万
COPY 30578975
Time: 397111.329 ms (06:37.111)
COPY 30578983
Time: 391768.993 ms (06:31.769)
COPY 30578983
Time: 388049.729 ms (06:28.050)

五、结论

pg用LOAD方法的大数据量导入,千万条数据需要1分钟以上。
关于pg的数据导入,后续再探讨一下其他更好的方式。

相关实践学习
使用PolarDB和ECS搭建门户网站
本场景主要介绍基于PolarDB和ECS实现搭建门户网站。
阿里云数据库产品家族及特性
阿里云智能数据库产品团队一直致力于不断健全产品体系,提升产品性能,打磨产品功能,从而帮助客户实现更加极致的弹性能力、具备更强的扩展能力、并利用云设施进一步降低企业成本。以云原生+分布式为核心技术抓手,打造以自研的在线事务型(OLTP)数据库Polar DB和在线分析型(OLAP)数据库Analytic DB为代表的新一代企业级云原生数据库产品体系, 结合NoSQL数据库、数据库生态工具、云原生智能化数据库管控平台,为阿里巴巴经济体以及各个行业的企业客户和开发者提供从公共云到混合云再到私有云的完整解决方案,提供基于云基础设施进行数据从处理、到存储、再到计算与分析的一体化解决方案。本节课带你了解阿里云数据库产品家族及特性。
目录
相关文章
|
25天前
|
SQL 关系型数据库 PostgreSQL
把PostgreSQL的表导入SQLite
把PostgreSQL的表导入SQLite
17 0
|
1月前
|
存储 关系型数据库 分布式数据库
PolarDB常见问题之PolarDB冷存数据到OSS之后恢复失败如何解决
PolarDB是阿里云推出的下一代关系型数据库,具有高性能、高可用性和弹性伸缩能力,适用于大规模数据处理场景。本汇总囊括了PolarDB使用中用户可能遭遇的一系列常见问题及解答,旨在为数据库管理员和开发者提供全面的问题指导,确保数据库平稳运行和优化使用体验。
|
1月前
|
SQL 关系型数据库 分布式数据库
在PolarDB中,行数评估是通过对表的统计数据、基数估计以及算子代价模型来进行估算的。
【2月更文挑战第14天】在PolarDB中,行数评估是通过对表的统计数据、基数估计以及算子代价模型来进行估算的。
84 1
|
6月前
|
关系型数据库 MySQL Linux
TiDB实时同步数据到PostgreSQL(三) ---- 使用pgloader迁移数据
使用PostgreSQL数据迁移神器pgloader从TiDB迁移数据到PostgreSQL,同时说明如何在最新的Rocky Linux 9(CentOS 9 stream也适用)上通过源码编译安装pgloader。
238 0
|
9天前
|
SQL 关系型数据库 MySQL
关系型数据库插入数据的语句
使用SQL的`INSERT INTO`语句向关系型数据库的`students`表插入数据。例如,插入一个`id`为1,`name`为'张三',`age`为20的记录:`INSERT INTO students (id, name, age) VALUES (1, '张三', 20)。如果`id`自增,则可简化为`INSERT INTO students (name, age) VALUES ('张三', 20)`。
11 2
|
9天前
|
SQL 存储 Oracle
关系型数据库查询数据的语句
本文介绍了关系型数据库中的基本SQL查询语句,包括选择所有或特定列、带条件查询、排序、分组、过滤分组、表连接、限制记录数及子查询。SQL还支持窗口函数、存储过程等高级功能,是高效管理数据库的关键。建议深入学习SQL及相应数据库系统文档。
9 2
|
16天前
|
人工智能 Cloud Native 算法
数据之势丨AI时代,云原生数据库的最新发展趋势与进展
AI与云数据库的深度结合是数据库发展的必然趋势,基于AI能力的加持,云数据库未来可以实现更快速的查询和决策,帮助企业更好地利用海量数据进行业务创新和决策优化。
数据之势丨AI时代,云原生数据库的最新发展趋势与进展
|
1月前
|
关系型数据库 MySQL OLAP
PolarDB +AnalyticDB Zero-ETL :免费同步数据到ADB,享受数据流通新体验
Zero-ETL是阿里云瑶池数据库提供的服务,旨在简化传统ETL流程的复杂性和成本,提高数据实时性。降低数据同步成本,允许用户快速在AnalyticDB中对PolarDB数据进行分析,降低了30%的数据接入成本,提升了60%的建仓效率。 Zero-ETL特性包括免费的PolarDB MySQL联邦分析和PolarDB-X元数据自动同步,提供一体化的事务处理和数据分析,并能整合多个数据源。用户只需简单配置即可实现数据同步和实时分析。
|
6月前
|
关系型数据库 数据管理 Go
《PostgreSQL数据分区:原理与实战》
《PostgreSQL数据分区:原理与实战》
85 0
|
2月前
|
关系型数据库 分布式数据库 PolarDB
电子书阅读分享《PolarDB开发者大会:PolarDB在线数据实时分析加速》
电子书阅读分享《PolarDB开发者大会:PolarDB在线数据实时分析加速》
85 3