CloudberryDB(四)并行执行

要查看CloudberryDB & Greenplum数据库的并行度配置,可以使用以下几种方法:

### 方法一:使用`SHOW`命令

在Greenplum数据库中,可以使用`SHOW`命令来查看当前的并行度配置。例如:

```sql

SHOW gp_parallel_degree ;
SHOW max_parallel_workers_per_gather;
```

这条命令将显示当前会话的最大并行工作进程数。

### 方法二:查询系统表

Greenplum数据库的系统表中存储了有关并行度配置的信息。可以通过查询这些系统表来获取并行度配置。例如:

```sql
SELECT name, setting FROM pg_settings WHERE name LIKE 'max_parallel_workers_per_gather';
```

这条SQL语句将查询`pg_settings`系统表,返回与`max_parallel_workers_per_gather`相关的配置信息。

### 方法三:查看`postgresql.conf`文件

Greenplum数据库的并行度配置也存储在`postgresql.conf`文件中。可以打开该文件并查找与并行度相关的配置项,例如:

```conf
max_parallel_workers_per_gather = 4
```

### 方法四:使用`gpconfig`命令

如果你有足够的权限,可以使用`gpconfig`命令来查看当前的并行度配置。例如:

```bash
gpconfig -s max_parallel_workers_per_gather
```

这条命令将显示当前集群中所有节点的`max_parallel_workers_per_gather`配置值。

greenplum 并行执行

Greenplum 是一个基于 PostgreSQL 的大规模并行处理(MPP)数据库,专为大数据分析和数据仓库设计。其核心特性之一就是能够并行执行查询,以提升处理大规模数据时的性能。

以下是 Greenplum 并行执行的关键点:

1. 架构设计Greenplum 采用无共享(shared-nothing)架构,数据分布在多个节点上,每个节点独立处理自己的数据部分,查询执行时各节点并行工作,最后汇总结果。

2. 数据分布数据通过分布键(Distribution Key)分散到不同节点,确保数据均匀分布,避免倾斜。查询时,每个节点只处理本地数据,减少数据传输。

3. 并行查询执行Greenplum 将查询分解为多个并行任务,分配到各节点执行。每个节点独立处理自己的任务,最后将结果汇总返回。

4. 并行操作类型

•并行扫描:多个节点同时扫描数据。

•并行连接:连接操作在多个节点上并行执行。

•并行聚合:聚合操作分散到多个节点,最后汇总结果。

•并行排序:排序操作在多个节点上并行进行。

5. 资源管理Greenplum 通过资源队列(Resource Queue)管理查询资源,确保高并发下的资源公平分配,防止单个查询占用过多资源。

6. 优化器Greenplum 的查询优化器会生成并行执行计划,选择最优的并行策略,如数据分布、连接顺序等,以最大化并行效率。

7. 性能调优•数据分布优化:选择合适的分发键,确保数据均匀分布。

•分区表:使用分区表减少扫描数据量。

•索引:合理使用索引加速查询。

•统计信息:定期更新统计信息,帮助优化器生成更好的执行计划。

8. 并行执行示例sql复制EXPLAIN SELECT * FROM large_table WHERE column = 'value';执行计划会显示查询如何并行执行,包括扫描、连接、聚合等操作的并行化。

9. 并行执行的限制

•数据倾斜:数据分布不均会导致部分节点负载过高。

•资源竞争:高并发时,资源竞争可能影响性能。

•查询复杂度:复杂查询可能难以完全并行化。

总结Greenplum 的并行执行是其高性能的关键,通过数据分布、并行操作和资源管理,能够高效处理大规模数据。合理的数据分布和查询优化是确保并行执行效率的重要因素。

并行参数

在 Greenplum 数据库中,并行执行是其高性能的核心特性之一。为了优化并行执行的性能,Greenplum 提供了多个参数来控制并行度、资源分配和执行行为。

以下是一些常用的 Greenplum 并行参数及其作用:

1. 并行度控制参数这些参数用于控制查询执行的并行度,即同时使用多少个 Segment 来处理任务。

•gp_resource_manager 指定资源管理器类型,可选值为 group(基于资源组)或 queue(基于资源队列)。 

示例:SET gp_resource_manager = 'group';

•gp_resource_group_concurrency 控制资源组的并发查询数。 

示例:SET gp_resource_group_concurrency = 20;

•gp_resqueue_priority 启用或禁用查询优先级调度。 

示例:SET gp_resqueue_priority = ON;

•gp_max_parallel_workers_per_gather 控制每个 Gather 操作(汇总结果)的最大并行工作进程数。 示例:SET gp_max_parallel_workers_per_gather = 8;

•gp_interconnect_queue_depth 控制节点间数据传输的队列深度,影响并行查询的通信性能。 

示例:SET gp_interconnect_queue_depth = 16;

2. 资源分配参数这些参数用于控制查询执行时的资源分配,如内存、CPU 等。•statement_mem 设置单个查询可以使用的最大内存量。 

示例:SET statement_mem = '2GB';

•max_statement_mem 设置所有查询的最大内存总量。 

示例:SET max_statement_mem = '10GB';

•gp_vmem_protect_limit 设置每个 Segment 的最大内存使用量,防止内存溢出。

 示例:SET gp_vmem_protect_limit = '8GB';

•gp_workfile_limit_files_per_query 控制每个查询可以创建的临时文件数量,用于防止磁盘空间耗尽。 

示例:SET gp_workfile_limit_files_per_query = 10000;

3. 并行执行优化参数这些参数用于优化并行查询的执行行为。

•gp_enable_parallel_append 控制是否启用并行追加(Parallel Append)操作。 

示例:SET gp_enable_parallel_append = ON;

•gp_enable_parallel_hash 控制是否启用并行哈希连接(Parallel Hash Join)。 

示例:SET gp_enable_parallel_hash = ON;

•gp_enable_parallel_sort 控制是否启用并行排序(Parallel Sort)。 

示例:SET gp_enable_parallel_sort = ON;

•gp_enable_global_deadlock_detector 控制是否启用全局死锁检测器,用于避免分布式死锁。 示例:SET gp_enable_global_deadlock_detector = ON;

4. 节点间通信参数这些参数用于优化节点间的数据传输和通信性能。

•gp_interconnect_type 设置节点间通信协议,可选值为 UDP 或 TCP。 

示例:SET gp_interconnect_type = 'UDP';•gp_interconnect_snd_queue_depth 控制发送队列的深度,影响数据传输性能。 

示例:SET gp_interconnect_snd_queue_depth = 16;

•gp_interconnect_rcv_queue_depth 控制接收队列的深度,影响数据传输性能。 

示例:SET gp_interconnect_rcv_queue_depth = 16;

5. 统计信息与优化器参数这些参数用于控制统计信息和查询优化器的行为。•gp_autostats_mode 控制自动统计信息收集的行为,可选值为 ON_NO_STATS、ON_CHANGE 或 NONE。

 示例:SET gp_autostats_mode = 'ON_CHANGE';•gp_enable_predicate_propagation 控制是否启用谓词下推优化。 

示例:SET gp_enable_predicate_propagation = ON;•gp_enable_multiphase_agg 控制是否启用多阶段聚合优化。 

示例:SET gp_enable_multiphase_agg = ON;

6. 并行加载参数这些参数用于优化并行数据加载的性能。

•gp_parallel_procs 控制并行加载时的并发进程数。 

示例:SET gp_parallel_procs = 16;

•gp_external_max_segs 控制外部表扫描时的最大 Segment 数。 

示例:SET gp_external_max_segs = 64;

7. 其他常用参数

•gp_fts_probe_timeout 设置故障检测服务的超时时间。 

示例:SET gp_fts_probe_timeout = '10s';

•gp_segment_connect_timeout 设置 Segment 连接的超时时间。 

示例:SET gp_segment_connect_timeout = '180s';

DML并行相关的参数:

1. **gp_vmem_protect_limit**:这个参数用于控制每个Greenplum节点进程可以使用的内存量。通过调整这个参数,可以影响并行查询的性能和资源分配。

2. **gp_workfile_limit_per_segment**:这个参数用于限制每个Segment节点上生成的临时工作文件的数量。通过调整这个参数,可以控制并行查询过程中临时文件的使用,从而优化性能。

3. **gp_max_distributed joins**:这个参数用于限制并行查询中分布式连接的最大数量。通过调整这个参数,可以控制并行查询的复杂度和资源使用。

4. **gp_parallel_dml**:这个参数用于控制是否启用并行DML操作。将其设置为on可以启用并行DML,从而提高数据插入、更新和删除的性能。

5. **gp_parallel_tuple_cost**:这个参数用于估计并行查询中每个元组的成本。通过调整这个参数,可以影响查询优化器选择并行执行计划的决策。

6. `gp_enable_global_deadlock_detector`
- **作用**: 启用全局死锁检测器,避免在并行执行 DML 时出现死锁。
- **默认值**: `on`
- **建议**: 在并发 DML 操作较多时,建议启用此参数。

7. `gp_enable_fast_sri`
- **作用**: 启用快速序列化隔离级别(Serializable Isolation Level),提高并行 DML 操作的性能。
- **默认值**: `off`
- **建议**: 在需要高并发 DML 操作时,可以尝试启用此参数。

8. `gp_autostats_mode`
- **作用**: 控制自动统计信息收集的行为,影响 DML 操作后的统计信息更新。
- **默认值**: `on_no_stats`
- **建议**: 根据数据变化频率调整,频繁 DML 操作时建议设置为 `on_change`。

9. `gp_workfile_compression`
- **作用**: 控制工作文件是否压缩,影响 DML 操作的磁盘 I/O 性能。
- **默认值**: `off`
- **建议**: 在磁盘 I/O 成为瓶颈时,可以启用此参数以减少磁盘空间使用。

10. `gp_resqueue_priority`
- **作用**: 设置查询优先级,影响 DML 操作的资源分配。
- **默认值**: `off`
- **建议**: 在高并发环境下,可以启用此参数以优先处理重要 DML 操作。

11. `gp_parallel_retrieve_cursor`
- **作用**: 控制并行检索游标的数量,影响 DML 操作的并发度。
- **默认值**: `off`
- **建议**: 在需要高并发 DML 操作时,可以启用此参数。

12. `gp_max_packet_size`
- **作用**: 设置网络传输的最大数据包大小,影响 DML 操作的网络传输性能。
- **默认值**: `8192`
- **建议**: 在网络带宽充足的情况下,可以适当增大此参数以提高传输效率。

13. `gp_segment_connect_timeout`
- **作用**: 设置段服务器连接超时时间,影响 DML 操作的连接稳定性。
- **默认值**: `10min`
- **建议**: 在网络不稳定的环境下,可以适当增大此参数以避免连接超时。

14. `gp_connections_per_thread`
- **作用**: 设置每个线程的最大连接数,影响 DML 操作的并发度。
- **默认值**: `1`
- **建议**: 在高并发环境下,可以适当增大此参数以提高并发处理能力。

15. `gp_interconnect_type`
- **作用**: 设置段服务器之间的互联类型,影响 DML 操作的网络传输性能。
- **默认值**: `TCP`
- **建议**: 在高速网络环境下,可以设置为 `UDP` 以提高传输效率。

### 示例配置
```sql
SET gp_enable_global_deadlock_detector = on;
SET gp_enable_fast_sri = on;
SET gp_autostats_mode = on_change;
SET gp_workfile_compression = on;
SET gp_resqueue_priority = on;
SET gp_parallel_retrieve_cursor = on;
SET gp_max_packet_size = 16384;
SET gp_segment_connect_timeout = '20min';
SET gp_connections_per_thread = 2;
SET gp_interconnect_type = 'UDP';
 

总结Greenplum 的并行参数涵盖了并行度、资源分配、优化器行为、节点通信等多个方面。通过合理配置这些参数,可以显著提升查询性能和系统稳定性。在实际使用中,建议根据具体的工作负载和硬件资源进行调整,并通过测试验证参数设置的效果。

- 并行度配置可以在系统级别、数据库级别或会话级别进行设置。使用上述方法查看的是当前会话或系统的并行度配置。
- 如果你在多个节点上运行Greenplum集群,确保所有节点的并行度配置一致,以避免潜在的性能问题。
- 并行度配置会影响系统的资源消耗和性能。根据实际需求和硬件资源合理设置并行度。

通过以上方法,你可以查看Greenplum数据库的并行度配置,并根据需要进行调整。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/5522.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

在Ubuntu上安装RabbitMQ教程

1、安装erlang 因为rabbitmq是基于erlang开发的,所以要安装rabbitmq,首先需要安装erlang运行环境 apt-get install erlang执行命令查是否安装成功:erl,疯狂 Ctrlc 就能退出命令行 2、安装rabbitmq 1、查看erlang与rabbitmq版本…

latin1_swedish_ci(latin1 不支持存储中文、日文、韩文等多字节字符)

文章目录 1、SHOW TABLE STATUS WHERE Name batch_version;2、latin1_swedish_ci使用场景注意事项修改字符集和排序规则修改表的字符集和排序规则修改列的字符集和排序规则修改数据库的默认字符集和排序规则 3、ALTER TABLE batch_version CONVERT TO CHARACTER SET utf8mb4 C…

使用vue-next-admin框架后台修改动态路由

vue-next-admin框架是一个基于 Vue 3 和 Vite 构建的后台管理系统框架。它采用了最新的前端技术栈,旨在提供一个高效、灵活、现代化的管理后台解决方案。该框架主要用于构建功能丰富且易于定制的管理后台应用,适合各种中大型项目。 其主要特点包括&am…

qiankun+vite+vue3

基座与子应用代码示例 本示例中,基座为Vue3,子应用也是Vue3,由于qiankun不支持Vite构建的项目,这里还要引入 vite-plugin-qiankun 插件 基座(主应用) 加载qiankun依赖 npm i qiankun -S qiankun配置(src/qiankun) src/qiankun/config.ts export default {subApp…

深度学习中Batch Normalization(BN)原理、作用浅析

最近做剪枝学习,其中一种是基于BN层的γ作为缩放因子进行剪枝的,那么我想搞懂BN的工作原理更好的理解网络、剪枝等,所以有了该文。 首先先说BN的作用在详细拆解,理解。以知乎一条高赞评论说明BN层到底在干什么。 Batch Norm 为什…

Python----Python高级(正则表达式:语法规则,re库)

一、正则表达式 1.1、概念 正则表达式,又称规则表达式,(Regular Expression,在代码中常简写为regex、 regexp或RE),是一种文本模式,包括普通字符(例如,a 到 z 之间的字母&#xff0…

【16届蓝桥杯寒假刷题营】第1期DAY5

5.依依的询问最小值 - 蓝桥云课 问题描述 依依有个长度为 n 的序列 a,下标从 1 开始。 她有 m 次查询操作,每次她会查询下标区间在 [li​,ri​] 的 a 中元素和。她想知道你可以重新排序序列 a,使得这 m 次查询的总和最小。 求你求出 m 次…

机器学习10-解读CNN代码Pytorch版

机器学习10-解读CNN代码Pytorch版 我个人是Java程序员,关于Python代码的使用过程中的相关代码事项,在此进行记录 文章目录 机器学习10-解读CNN代码Pytorch版1-核心逻辑脉络2-参考网址3-解读CNN代码Pytorch版本1-MNIST数据集读取2-CNN网络的定义1-无注释版…

【机器学习实战中阶】使用SARIMAX,ARIMA预测比特币价格,时间序列预测

数据集说明 比特币价格预测(轻量级CSV)关于数据集 致谢 这些数据来自CoinMarketCap,并且可以免费使用该数据。 https://coinmarketcap.com/ 数据集:链接: 价格预测器 源代码与数据集 算法说明 SARIMAX(Seasonal AutoRegressive …

将 AzureBlob 的日志通过 Azure Event Hubs 发给 Elasticsearch(1.标准版)

问题 项目里使用了 AzureBlob 存储了用户上传的各种资源文件,近期 AzureBlob 的流量费用增长很快,想通过分析Blob的日志,获取一些可用的信息,所以有了这个需求:将存储账户的日志(读写,审计&…

【Red Hat8】:搭建FTP服务器

目录 一、匿名FTP访问 1、新建挂载文件 2、挂载 3、关闭防火墙 4、搭建yum源 5、安装VSFTPD 6、 打开配置文件 7、设置配置文件如下几个参数 8、重启vsftpd服务 9、进入图形化界面配置网络 10、查看IP地址 11、安装ftp服务 12、遇到拒绝连接 13、测试 二、本地…

Redis的Windows版本安装以及可视化工具

文章目录 redis安装redis安装包下载解压文件夹启动redis服务Redis路径配置环境变量打开redis客户端进行连接基础操作测试 redis可视化工具下载Redis Desktop Manager redis安装 redis安装包下载 windows版本readis下载:Releases tporadowski/redis 解压文件夹 我…

汽车钥匙发展史

介绍 最近在研究UWB数字钥匙的过程中,了解到汽车钥匙在短短的100多年以来的发展历程,让我不禁感慨科技的发展速度,本文主要介绍汽车发展过程中,车钥匙形态变化的历程及技术原理。 总体概述,汽车钥匙的发展&#xff0…

react install

react 安装 React 是一个用于构建用户界面的 JavaScript 库。以下是安装 React 的步骤: 使用 Create React App Create React App 是一个官方支持的命令行工具,用于快速搭建 React 应用。 安装 Node.js 和 npm 确保你的计算机上安装了 Node.js 和 npm…

Ubuntu如何安装redis服务?

环境: Ubuntu22.04 WSL2 问题描述: 如何安装redis服务? 解决方案: 1.在 Linux 上(如 Ubuntu/Debian)安装 1.通过包管理工具安装 Redis 服务器: sudo apt update sudo apt install redis…

element el-table合并单元格

合并 表格el-table添加方法:span-method"” <el-table v-loading"listLoading" :data"SHlist" ref"tableList" element-loading-text"Loading" border fit highlight-current-row :header-cell-style"headClass" …

【BUUCTF】[GXYCTF2019]BabySQli

进入页面如下 尝试万能密码注入 显示这个&#xff08;qyq&#xff09; 用burp suite抓包试试 发现注释处是某种编码像是base编码格式 MMZFM422K5HDASKDN5TVU3SKOZRFGQRRMMZFM6KJJBSG6WSYJJWESSCWPJNFQSTVLFLTC3CJIQYGOSTZKJ2VSVZRNRFHOPJ5 可以使用下面这个网页在线工具很方便…

R语言基础| 回归分析

写在前面 R语言拥有丰富的数据处理、统计分析和机器学习工具包&#xff0c;涵盖了从简单的描述统计到复杂的模型建立的各个方面。再加上数据的处理可以完美的衔接后续的可视化&#xff0c;这使得它成为处理各种类型和规模的数据集的理想选择。回归分析是统计学中一种用于探究自…

高并发内存池_CentralCache(中心缓存)和PageCache(页缓存)申请内存的设计

三、CentralCache&#xff08;中心缓存&#xff09;_内存设计 &#xff08;一&#xff09;Span的创建 // 页编号类型&#xff0c;32位下是4byte类型&#xff0c;64位下是8byte类型 // #ifdef _WIN64 typedef unsigned long long PageID; #else _WIN32 typedef size_t PageI…

【云网】云网络基础概念(华为云)

云网络基础概念&#xff08;华为云&#xff09; 一、虚拟网络 1、VPC概念 华为云提供的虚拟网络环境的基础单元是虚拟私有云&#xff08;Virtual Private Cloud&#xff09;。 VPC和传统的物理三层网络类似,也包括路由器、子网、子网网关、IP地址等传统概念。 典型组网逻辑…