暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

LightDB-A gpfdist 命令初体验

原创 姚崇 2023-06-07
526

gpfdist是LightDB-A数据库的一个辅助工具,用于帮助LightDB-A数据库高效地读取和写入大量数据。它的主要功能包括:

  1. 数据加载:gpfdist可以帮助你将大量数据并行地加载到LightDB-A数据库中。你可以使用CREATE EXTERNAL TABLE语句在LightDB-A数据库中创建一个外部表,这个外部表的数据来源就是通过gpfdist服务读取的文件。然后你可以使用这个外部表来加载数据,LightDB-A数据库将并行地读取和加载这个文件中的数据。
  2. 数据导出:你也可以使用gpfdist来并行地将数据从LightDB-A数据库中导出到文件中。你可以创建一个writable external table,然后将数据插入到这个外部表中,LightDB-A数据库将并行地将这个外部表中的数据写入到文件中。
  3. 数据转换:gpfdist支持使用程序或者脚本来在线转换数据。你可以提供一个程序或者脚本,gpfdist将在读取或者写入数据时使用这个程序或者脚本来转换数据。这可以帮助你处理复杂的数据格式,或者进行数据清洗和预处理。
  4. 数据压缩和解压缩:gpfdist支持读取和写入gzip或者bzip2压缩的文件,可以帮助你节省存储空间,并提高数据传输效率。

请注意,虽然gpfdist是一个强大的工具,但是它并不适合处理小量的数据,因为并行处理的开销可能会消耗掉并行处理带来的好处。gpfdist主要用于处理GB到TB级别的大数据。

测试导出数据

tm_bond_valuation.csv是我通过下面命令导出的

copy tm_bond_valuation TO '/data/gpfdist/tm_bond_valuation.csv' DELIMITER ',' CSV HEADER;

用gpdist导入数据

1、首先,确保gpfdist服务正在运行。你可以使用以下命令启动服务:

在这里,使用8081做为gpfdist监听的端口,/data/gpfdist/是包含你的CSV文件的目录:

mkdir -p /data/gpfdist
gpfdist -d /data/gpfdist -p 8081 -l /data/gpfdist/gpfdist.log & 

然后,你可以创建一个外部表以加载数据。假设你的LightDB-A数据库协调节点正在运行在192.168.19.243,你可以使用以下SQL命令:

CREATE EXTERNAL TABLE ext_tm_bond_valuation (LIKE tm_bond_valuation)
LOCATION ('gpfdist://19x.16x.xx.xxx:8081/tm_bond_valuation.csv')
FORMAT 'CSV' (HEADER);

创建完之后,执行SQL命令操作

进行数据测试

copy 10个segment

image.png

\timing
COPY tm_bond_valuation_test FROM '/data/gpfdist/tm_bond_valuation.csv' DELIMITER ',' CSV HEADER;
240秒

image.png
image.png
image.png

gpfdist 10个segment

insert into tm_bond_valuation_test select * from ext_tm_bond_valuation;
106秒

image.png
image.png
image.png

gpfdist 14个segment

\timing
insert into tm_bond_valuation_test select * from ext_tm_bond_valuation;
78秒

此时内存已经达到瓶颈了
image.png
image.png
image.png
image.png

copy 14个segment

\timing
COPY tm_bond_valuation_test FROM '/data/gpfdist/tm_bond_valuation.csv' DELIMITER ',' CSV HEADER;
241秒

image.png

结论

两台虚拟机服务器,配置基本如下:
image.png
image.png

segment10 gpfdist segment14 gpfdist segment10 copy segment14 copy
13G csv 106秒 13G csv 78秒 13G csv 240秒 13G csv 241秒

说明:测14个segment的时候,物理内存已经到到了瓶颈,便不继续扩展segment再进行测试了

  1. gpfdist导入性能取决于segment数量和服务器的物理资源瓶颈,带宽、IO、CPU、内存只要不达到物理瓶颈,性能便可线性增加
  2. 而传统的copy导入数据命令不具备性能线性的扩展的能力。
最后修改时间:2023-11-14 09:55:50
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论