资讯专栏INFORMATION COLUMN

导数界顶端的pg_bulkload

IT那活儿 / 1319人阅读
导数界顶端的pg_bulkload


前言

PostgroSQL提供了许多插件,不同的插件实现了不同的功能,而这些功能能够辅助我们的日常运维,例如表膨胀插件pg_squeeze,实现了锁表时间短而且能回收空间的功能。 pg_bulkload插件是一种用于PostgreSQL的高速数据加载工具,可以将大量数据快速加载到数据库。






pg_bulkload原理



pg_bulkload主要包括两个模块:reader和writer。reader负责读取文件、解析tuple,writer负责把解析出的tuple写入输出源中。早期版本中,功能很简单,只是用来加载数据,在3.1版本增加了数据过滤的功能。其架构如下图:






pg_blukload使用




下载pg_blukload包,下载地址:

https://github.com/ossc-db/pg_bulkload/tree/VERSION3_1_16

安装pg_blukload插件

建测试表tb_a1和测试文件tb_a1_output.txt

创建测试表tb_a1

测试文件tb_a1_output.txt

01
不使用控制文件使用参数

数据导入之前应该先清理表数据,再使用如下命令:

pg_bulkload -i /app/telepg/tb_a1_output.txt -O lh.tb_a1 -l/app/telepg/tbl_a1_output.log -P /app/telepg/tbl_a1_bad.txt -o "DELIMITER=|" -d lh -U root -p 18802

先确定环境,再将tb_a1_output.txt文件里的数据快速导入tb_a1中。

      

查看日志,进行校验

进入数据库再次核查导入数据是否一致


02
使用控制文件


创建测试表tb_a2

新建控制文件tb_a2.ctl

确认环境变量

使用控制文件进行加载操作

进入数据库再次核查导入数据是否一致






总   结


pg_bulkload相较于copy而言pg_bulkload最大的优势就是速度,其优势可以让我们跳过sharedbuffer,walbuffer,直接写文件。pg_bulkload的direct模式就是利用这种思路来实现的,它还包含了数据恢复功能,即导入失败的话,需要恢复。不足的是,表字段的顺序要跟导入的文件报错一致。


End


文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/130049.html

相关文章

  • 被Geoffrey Hinton抛弃,反向传播为何饱受质疑?

    摘要:在最近的一次人工智能会议上,表示自己对于反向传播非常怀疑,并提出应该抛弃它并重新开始。在人工智能多年的发展过程中,反向传播已经成为了深度学习不可或缺的一部分。最后,我们会将这些规则组合成可用于任意神经网络的反向传播算法。 现在的深度学习发展似乎已经陷入了大型化、深度化的怪圈,我们设计的模型容易被对抗样本欺骗,同时又需要大量的训练数据——在无监督学习上我们取得的突破还很少。作为反向传播这一深度...

    yvonne 评论0 收藏0
  • WebGL 着色器偏导数dFdx和dFdy介绍

    摘要:偏导数函数可以用于片元着色器中的任何变量。偏导数和用于计算纹理的一些列的子图,每个子图都比前一个的尺寸缩小了倍。在纹理取样过程中使用偏导数来选择最佳的级数。 本文适合对webgl、计算机图形学、前端可视化感兴趣的读者。 偏导数函数(HLSL中的ddx和ddy,GLSL中的dFdx和dFdy)是片元着色器中的一个用于计算任何变量基于屏幕空间坐标的变化率的指令(函数)。在WebGL中,使用...

    Hanks10100 评论0 收藏0
  • 从ReLU到Sinc,26种神经网络激活函数可视化

    摘要:修正线性单元,是神经网络中最常用的激活函数。顾名思义,值激活函数返回输入的值。如同余弦函数,或简单正弦函数激活函数为神经网络引入了周期性。此外,激活函数为零点对称的奇函数。 在神经网络中,激活函数决定来自给定输入集的节点的输出,其中非线性激活函数允许网络复制复杂的非线性行为。正如绝大多数神经网络借助某种形式的梯度下降进行优化,激活函数需要是可微分(或者至少是几乎完全可微分的)。此外,复杂的激...

    Jeff 评论0 收藏0

发表评论

0条评论

IT那活儿

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<