Greenplum 排序算法
Greenplum内核揭秘之排序算法 5 ● 内排序算法 ● 外排序算法 ● Greenplum TupleSort ● 排序在Greenplum中的应用 Outline 6 ● 冒泡排序 ● 插入排序 ● 快速排序 ● 堆排序 ● 基数排序 内排序算法 7 快速排序是最常用的排序算法,由Tony Hoare在1959年发明。 快速排序算法的三个步骤: ● 挑选基准值 列分 别进行排序 快速排序 8 ● 快速排序算法每次选取一个基准元素,将比基准元素小的排到基准元素左边, 比基准元素大的排到基准元素的右边,从而将待排序数组分成两个子集。 快速排序 6 8 3 2 7 1 7 9 8 7 7 9 6 3 2 1 分治法 9 快速排序 ● 快速排序算法: 10 堆排序是最常用的排序算法,由J.Williams在1964年发明。 ● 堆 堆是一种近似完全二叉树的结构,最大值堆要求每个子节点的键值总是小于父 节点。最小值堆要求每个子节点的键值总是大于父节点。 堆排序算法 ● 步骤1:建立最大值堆,最大元素在堆顶 ● 步骤2:重复将堆顶元组移除并插入到排序数组,更新堆使其保持堆的性质 ● 步骤3:当堆的元素个数为零时,数组排序完毕 堆排序 11 ● 建堆 堆排序 9 5 8 1 3 6 2 1 2 5 9 80 码力 | 52 页 | 2.05 MB | 1 年前3Greenplum上云与优化
张广舟(明虚) 阿里云高级专家 Greenplum上云与优化 — ApsaraDB for Greenplum介绍 2016Postgres中国用户大会 目 录 content ApsaraDB for GP的定位 ApsaraDB for GP的内核优化 未来的规划 2016Postgres中国用户大会 ApsaraDB for GP的定位 2016Postgres中国用户大会 2016Postgres中国用户大会 GP vs. RDS? Select count(*) from customer where status = valid group by city 列存与压缩原理举例 ….. ….. Name Id status city 列存块 ….. 列存块 列存 ≈索引 + index only 2016Postgres中国用户大会 GP vs0 码力 | 26 页 | 1.13 MB | 1 年前3Brin Index主Greenplum 7中的理论与实现
Confidential │ ©2021 VMware, Inc. 3 Confidential │ ©2021 VMware, Inc. Brin Index 在Greenplum 7中的 理论与实践 陈金豹,VMWare内核工程师 Confidential │ ©2021 VMware, Inc. 目录 Brin Index On Heap AppendOnly Table0 码力 | 32 页 | 1.04 MB | 1 年前3并行不悖- OLAP 在互联网公司的实践与思考
1 并行不悖 – OLAP 在互联网公司的实践与思考 赵飞祥 2 Greenplum现状说明 三 Greenplum体系架构 二 数据仓库体系架构 一 Greenplum开发规范 五 Greenplum运维体系 四 Greenplum扩展规划 六 3 数据仓库体系架构 业务数据与数据使用归类 时间维度:过去 - 现在 - 未来 (数据的生命周期) • “现在”的数据 —— —— 趋势分析 4 数据仓库体系架构 业务数据与数据特点 • 现在的数据 —— OLTP Ø实时,在线系统,客户使用 Ø事务小,频率高,并发高 • 过去的数据 —— OLAP Ø非实时(T+1,或小时级),离线系统,分析决策 Ø事务大,频率相对小,并发低 • 未来的数据 —— 趋势分析 Ø非实时,离线+在线流系统,趋势分析 Ø算法分析,持续计算 5 数据仓库体系架构 OLAP场景举例 业务相关场景 Ø用户状态 (注册数,活跃数,并发量,峰值) Ø金币状态 Ø道具/物品状态 Ø对账状态 Ø活动反馈 • 架构相关场景 Ø不同数据量,不同事务特点,不同查询需求 Ø历史数据归档与冷热分离 Ø实时与延时需求的权衡 6 数据仓库体系架构 数据流转过程 • 1 业务数据的产生 —— OLTP • 2 业务数据的中转 —— ETL服务器 • 3 数据的存储和计算 —— OLAP集群 •0 码力 | 43 页 | 9.66 MB | 1 年前3Greenplum分布式事务和两阶段提交协议
log。保 证事务的原子性。 第二点:No-Force policy。提交事务时,必须记录redo log。保证事务的持久性。 Write Ahead Logging 采用WAL协议的恢复算法: Dr. C. Mohan ARIES: Algorithms for Recovery and Isolation Exploiting Semantics, 1993, IBM DB2 19 在PG里,执行完PREPARE语句之后,此时把数据库停掉(或者杀掉所有数据库进程)再启动起来,会发 现pg_locks里,prepared事务所申请的还在pg_lock表里。 问题2: 既然pg_locks是一个内存的数据结构,记录各个backend进程申请的锁,那数据库重启后,为什 么已经prepared事务申请的锁仍在pg_lock表呢? prepared事务的恢复过程: 当执行prepare时候,PG会把该事务 恢复成功后,删掉pg_twophase目录下的文件 《数据库系统概念》19.4.1.3节,参与者在响应prepare消息之前记录32 Greenplum实现分布式事务与并发控制 • 分布式事务管理 • 分布式事务的创建、状态迁移等 • QD向QE发起两阶段提交 • 分布式快照 • QD向QE发送全局快照信息 • Writer QE和Reader QE共享本地快照信息 0 码力 | 42 页 | 2.12 MB | 1 年前3Greenplum Database 管理员指南 6.2.1
有些观点与官方手册有 出入,仅代表编者本人观点,与官方手册无关。本书中可能会提及一些非官方的命令和 工具等,仅用于讲解相关知识,如有缺失相关细节的情况,请谅解。 致读者 如果您在阅读和参考本书的过程中发现有任何不妥之处,或者有任何的建议和意见, 欢迎联系编者,本书主要针对 GP 数据库的爱好者进行编写,包括产品的安装和使用说 明,以及最佳实践等内容。本书的发布更新情况与编者的时间有关,不做承诺。 ........................................................................................ - 14 - 冗余与故障切换 ............................................................................................... ............................................................................. - 15 - Instance 故障切换与恢复 .................................................................................... - 17 - Master0 码力 | 416 页 | 6.08 MB | 1 年前3Greenplum 精粹文集
引类型等等非常方便,只要按照 API 接口开发,无需对 PG 重新编译。 PG 中 contrib 目录下的各个第三方模块,在 GP 中的 postgis 空间 数据库、R、Madlib、pgcrypto 各类加密算法、gptext 全文检索都 是通过这种方式实现功能扩展的。 4) 在诸如 ACID 事物处理、数据强一致性保证、数据类型支持、独特 的 MVCC 带来高效数据更新能力等还有很多方面,Postgresql ython psycopg2 等,所以 Greenplum 与第三方工具、BI 报表集成的时候非 常容易;对于 postgresql 的 contrib 中的一些常用模块 Greenplum 提 供了编译后的模块开箱即用,如:oraface、postgis、pgcrypt 等, 对于其它模块,用户可以自行将 contrib 下的代码与 Greenplum 的 include 头文件编译后,将动态 的良好扩展性(这里是 extension,不 是 scalability),Greenplum 可以采用各种开发语言来扩展用户自定 义函数(UDF)(我个人是 Python 和 C 的 fans,后续章节与大家分享)。 这些自定义函数部署到 Greenplum 后可用充分享受到实例级别的并行 性能优势,我们强烈建议用户将库外的处理逻辑,部署到用 MPP 数 据库的 UDF 这种 In-Database 的方式来处理,你将获得意想不到的性0 码力 | 64 页 | 2.73 MB | 1 年前3完全兼容欧拉开源操作系统的 HTAP 数据平台 Greenplum
社区和欧拉开源社区深化合作,在欧拉开源操作系统(openEuler, 简称“欧拉”)编译测试了高级分 析数据平台 Greenplum,用实践证明了 Greenplum 与支持多样性计算的欧拉开源操作系统完全兼容,是 Greenplum 与中国本地 IT 厂商的深入合作的典型模板,大大丰富了中国本地国产化应用生态。本白皮书着眼介绍了欧拉开源操作系 统平台架构、创新性及核心特点, 同时介绍了 Greenplum 欧拉开源操作系统是一款面向数字基础设施的操作系统,支持服务器、云计算、边缘计算、嵌入式等应用场景,支持多 样性计算,致力于提供安全、稳定、易用的操作系统。 Greenplum 与欧拉开源社区强强联手,不仅是双方业务用户所期盼的,同时也是 Greenplum 社区与对中国本地开源社 区的深入合作尝试。本次合作对双方打造丰富应用生态注入了鲜活动力! 完全兼容欧拉开源操作系统的 HTAP 数据平台 Greenplum 持服务 器、云计算、边缘计算、嵌入式等应用场景,支持多样性计算,致力于提供安全、稳定、易用的操作系统。通过为应用 提供确定性保障能力,支持 OT 领域应用及 OT 与 ICT 的融合。 欧拉开源社区通过开放的社区形式与全球的开发者共同构建一个开放、多元和架构包容的软件生态体系,孵化支持多种 处理器架构、覆盖数字设施全场景,推动企业数字基础设施软硬件、应用生态繁荣发展。 openEuler0 码力 | 17 页 | 2.04 MB | 1 年前3Greenplum 6新特性: 在线扩容工具GPexpand剖析
Greenplum 6新特性: 在线扩容工具GPexpand剖析 杜佳伦 (jdu@pivotal.io) 大纲 • Greenplum 集群部署 • GPExpand简介与具体用法 • Greenplum 6中GPExpand的改进与实现 Greenplum 集群部署 Greenplum 集群部署 • gp_segment_configuration 字段名 描述 dbid 每个节点的唯一id GPExpand简介与具体用法 • GPExpand是Greenplum的扩容工具,可以为集群增加新的节 点来支持更大容量的存储和更高的计算能力。 • 随着Greenplum一起安装发布,在$GPHOME/bin下面,和其 他辅助工具,如gpstart,gpstop,gpactivatestandby一样,是一个 用python写的命令行脚本。 GPExpand简介与具体用法 • GPExpand工作流程 GPExpand工作流程 – 建立并添加新节点 – 数据重分布 GPExpand简介与具体用法 • 增加新节点 – gpexpand –i 配置文件 • 数据重分布 – gpexpand • 清理 – gpexpand -c GPExpand简介与具体用法 • 增加新节点 – gpexpand –i 配置文件(gpexpand生成或手动编辑) sdw:sdw:25438:/dat0 码力 | 37 页 | 1.12 MB | 1 年前3Pivotal Greenplum 5: 新一代数据平台
模并行处理 (MPP) SQL 的设计核心是一个称为 GPORCA 的新一代查 询优化器。GPORCA 专为满足在多结构数据环境中进行高级分析的需求而设计,能够处理多种并发混合工作负载的复杂查 询。与旧式 MPP 数据库中常用的传统 RDBMS 查询优化器相比,GPORCA 大幅度地提高了查询性能。 Pivotal Greenplum 5:新一代数据平台 作为重要的新版本,Pivotal Greenplum 开源项目及其相关源代码的版本。这意味着,可以通 过 greenplum.org 网站下载和编译的版本以及通过 Pivotal Network 分发的打包版本将具有相同的内核(只有个别微小差 别)。这是两年来致力于与 PostgreSQL 8.3.23 集成的成果,目的在于扩展和融入以 Greenplum 为中心的生态系统和社 区。为了更好地贴合 PostgreSQL 社区的模式,他们对代码库进行了重构,这样一来,便可以更轻松地从最新版本(未来 um 5 支持适用于数据挖掘和数据科学工作的最全面、 最先进的分析程序包和扩展。 Greenplum 5 还针对最受欢迎的 Python 和 R 语言算法库提供简单易用的安装程序。 • Greenplum 5 中支持的 Python 语言算法库和程序包有:Tensorflow、NumPy、SciPy、scikit-learn、Pandas、 NLTK、Pattern-en、Statsmode0 码力 | 9 页 | 690.33 KB | 1 年前3
共 24 条
- 1
- 2
- 3