vertica最佳实践之 tuple_mover操作

本文详细介绍了Vertica数据库中Tuple Mover的服务,包括Moveout和Mergeout操作,提供了优化WOS溢出、配置参数调整、避免Too Many ROS containers问题等最佳实践。建议使用COPY DIRECT加载大数据文件,调整MoveOutInterval参数以提高效率,避免在WOS中保留未提交数据,并优化表分区和删除操作。此外,针对mergeout操作,推荐使用WOS进行加载或直接批量加载,调整TM资源池的内存大小,并监控ActivePartitionCount等参数。
摘要由CSDN通过智能技术生成

本博文翻译整理自:
https://www.vertica.com/kb/Tuple-Mover-Best-Practices/Content/BestPractices/Tuple-Mover-Best-Practices.htm

**适用于Vertica 7.2.x和更早的版本**

Tuple Mover Overview

Vertica analytics平台提供了不同的存储选项,可以在内存中缓慢加载小数据文件(称为WOS),也可以将大数据文件直接批量加载到文件系统(称为ROS)。加载到WOS的数据存储方式为未排序的数据,而加载到ROS的数据存储为基于projection 设计的排序、编码和压缩的数据。

Tuple Mover是一个Vertica服务,在后台运行,执行两个操作:

Moveout: Moveout操作定期将数据从WOS容器移动到一个新的ROS容器中,防止WOS填满并溢出到ROS。Moveout一次只能在一个特定的WOS容器集合上运行。当moveout操作选择要转移到ROS的projection 时,它将从所有已提交的事务中加载的projection 数据组合起来,并将它们写入到一个ROS容器中。
Mergeout: Tuple Mover 合并ROS容器并清除已删除的记录。

在大多数用例中,除了默认参数外,Tuple Mover几乎不需要或不需要任何配置。但是,有些工作负载可能需要调优配置参数。本文档:

  1. 常见问题的答案
  2. 提供故障排除技巧
  3. 介绍有关WOS、数据加载和模式设计的最佳实践

Tuple Mover Moveout Operation

检测wos spillover

WOS内存由名为WOSDATA的内置资源池控制,其默认最大内存大小为每个节点2GB(9.1版本最大内存设置为主机内存的25%,在 9.3及以后版本中创建的新数据库中,WOSDATA资源池的默认值为0。因此,Vertica始终直接向ROS写)。如果将数据加载到WOS的速度快于元组移动器将数据移出的速度,则数据会溢出到ROS中,直到WOS中的空间可用为止。溢出不会发生数据丢失,但是溢出会比预期更快地创建ROS容器并减慢moveout操作。

可以通过运行以下查询来检测数据库是否正在发生WOS溢出:

SELECT node_name, count(*) from dc_execution_engine_events  WHERE event_type = 'WOS_SPILL'  group by node_name;

moveout最佳实践

使用COPY DIRECT加载大数据文件

如果加载大数据文件(每个节点超过100 MB),则将COPY语句转换为COPY DIRECT语句。这使您可以绕过WOS的加载,而直接将文件加载到ROS。

配置参数: MoveOutInterval

将此参数设置为小于填充一半WOS所花费的时间的值。此参数确定在检测到没有要从WOS移出的元组移动器移出操作休眠的时间(以秒为单位)。该参数的默认值为300秒,减小该值可以更频繁地将数据从WOS移到ROS中。

WOS中未提交的数据

不要将未提交的数据留在WOS中的时间超过必要的时间,因为元组移动器仅移出已提交的数据。如果WOS充满了来自未提交事务的数据,则移出无法将数据移出。这可能导致WOS溢出到ROS中。

不要将WOS用于大型临时表

不要使用WOS加载具有大型数据集(每个节点超过50 MB)的临时表。移出操作不会移出临时表数据,并且在事务或会话结束时将删除数据。

WOSDATA资源池的maxMemorySize

如果您同时将负载trickle load到10个以上的表中,并且经历了WOS溢出,则以前的一种或多种最佳实践应有助于解决您的问题。您可以通过增加WOS资源池的maxMemorySiz

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值