HAWQ--运行时执行弹性查询

HAWQ使用动态分配的虚拟段为查询执行提供资源。

在HAWQ 1.x,用于运行查询的segments(计算资源载体)是固定的,不管底层查询是需要很多资源的大查询还是需要很少资源的小查询。这个架构很简单,然而它使用资源的效率很低。

为了解决这个问题,HAWQ现在使用运行时执行弹性查询特性,它基于虚拟段。HAWQ根据查询的成本需求分配虚拟段。换句话说,对于大型查询,HAWQ启动了大量的虚拟段,而对于小型查询,HAWQ启动的虚拟段较少。

Storage

在HAWQ中,被调用segments 的数量根据查询成本的不同而不同。为了简化表数据管理,一个关系的所有数据都保存在一个HDFS文件夹下。

对于所有HAWQ表存储格式、AO (append only)和Parquet,数据文件都是可分割的,这样HAWQ就可以分配多个虚拟段并发地使用一个数据文件,以增加查询的并行性。

Physical Segments and Virtual Segments

在HAWQ中,一台主机上只有安装一个物理segment,在这台主机上可以启动多个虚拟segment来运行查询。HAWQ根据需要在不同主机之间分配多个虚拟segment以运行一个查询。虚拟segment是内存和CPU等资源的载体(容器)。查询由虚拟segment中的查询执行程序执行。

Note: 在本文档中,当我们提到段本身时,我们指的是物理段。

Virtual Segment Allocation Policy

根据虚拟段分配策略分配不同数量的虚拟段。以下因素决定用于查询的虚拟段的数量:

  • 查询运行时可用的资源
  • 查询的成本
  • 表的分布;换句话说,随机分布的表和哈希分布的表
  • 查询是否涉及UDFs 和外部表
  • 特定的服务器配置参数,例如用于哈希表查询的default_hash_table_bucket_number和hawq_rm_nvseg_perquery_limit
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值