使用COPY命令在Vertica中加载数据

使用COPY语句批量加载

COPY语句是将大量数据加载到Vertica数据库中的最有效方式。您可以使用COPY命令将一个或多个文件复制到群集主机上。对于批量加载,最有用的COPY命令是:

COPY LOCAL:将数据文件或所有指定的文件从本地客户端系统加载到服务器处理文件的Vertica主机。

在Vertica群集中COPY源数据:将数据文件或来自不同来源的所有指定文件(如JSON和CSV)加载到Vertica群集中的Vertica内部格式。

使用自定义源,过滤器或解析器的用户定义加载(UDL)功能COPY:通过控制数据加载设置从定制的用户定义的源,解析器和过滤器加载数据文件或指定的文件。

所有类型的COPY语句共享相同的方法和过程,但它们都有不同的限制。无论差异如何,COPY声明总是有两个阶段:

第一阶段(启动器)加载和解析文件并将文件分发到其他节点。

第二阶段(执行者)处理所有节点上的数据。

通过COPY,您可以使用许多执行引擎操作符进行批量加载。一些用于加载一个或多个文件的执行引擎操作符是加载,解析,加载联合,段,排序/合并和Data Target。

如果目标表被分段,则COPY语句为每个Projection创建段。分段定义了数据如何在集群节点之间传播以用于查询性能和快速数据清除。

COPY语句如何加载数据

加载一个或多个文件的COPY语句工作流分为两个阶段:

第一阶段

1.负载运算符将源文件加载到数据库中。 Parse操作符解析数据库中加载的数据。

2.在分组数据之前,Load Union运算符将解析的数据合并到一个容器中。Operator在加载多个文件时处于活动状态,加载一个文件时无效。

3. Segment operator根据数据的大小将解析的数据分成一个或多个Projection。另外,表分区会隔离每个节点上的数据,以便在多个数据库节点间均匀分布数据。这样做确保所有节点都参与执行查询。

第二阶段

1. 排序运算符对分段数据和Projection进行排序。合并运算符适当地合并排序数据。排序和合并运算符用于聚合数据。

2. Data Target操作员复制磁盘上的数据。

下图显示了两个阶段加载一个或多个文件的工作负载。浅蓝色和深蓝色框代表执行引擎操作员。

在具有分摊负载特性的Vertica 8.0中,如果所有节点都可以访问源数据,则在几个节点上发生阶段I。分摊负载是可分割的负载,因此您可以在多个节点上加载单个数据文件。如果源在多个节点上可用并且可以分割,内置的分隔符可以自动分配负载。如果分配的负载不可用,则阶段I仅在读取文件的节点上发生。

阶段II使用额外的执行引擎操作员预先连接预测和Live Aggregate 预测。下图pre-join Projection显示维度表的附加执行引擎操作符JOIN和SCAN。下图显示了其他GROUP BY / Top-K执行引擎运算符。

Pre-join Projection为维度表添加了额外的执行引擎运算符JOIN和SCAN。

实时聚合预测添加GROUP BY / Top-K执行引擎运算符。

负载方式

根据要加载的数据,COPY语句具有多种加载方法。您可以从三种加载方式中选择:

COPY AUTO

COPY DIRECT

COPY TRICKLE

何时使用COPY AUTO

COPY使用AUTO方法将数据加载到Vertica WOS中。对于较小的批量装载,请使用此默认的自动加载方法; 当您无法确定文件的大小时,AUTO选项最为有用。一旦WOS已满,COPY将继续直接加载到磁盘上的ROS容器。对ROS数据进行排序和编码。

何时使用COPY DIRECT

COPY使用DIRECT方法将数据直接加载到ROS容器中。对于大批量负载(100 MB或更多),请使用DIRECT加载方法。 DIRECT方法通过避免WOS并将数据加载到ROS容器中来提高大文件的性能。使用DIRECT加载许多较小的数据集会导致许多ROS容器,这些容器必须稍后组合。

何时使用COPY TRICKLE

COPY使用TRICKLE方法将数据直接加载到WOS中。 完成初始批量加载后,使用TRICKLE加载方法递增地加载数据。 如果WOS已满,则会发生错误,并回滚整个数据加载。 只有在您的站点上进行了精细调整的负载和移出过程时,才能使用此方法,并且您确信WOS可以保存正在加载的数据。 当将数据加载到分区表中时,此选项比AUTO更有效。

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值