PostgreSQL列存扩展hydra简单测试

本文涉及的产品
云原生数据库 PolarDB MySQL 版,Serverless 5000PCU 100GB
简介: Hydra是一款PostgreSQL的扩展,为PostgreSQL增加了列存引擎,使得PostgreSQL的olap性能大幅提升,本文介绍Hydra基本的使用方法。

一、Hydra简介

Hydra 是一个列式存储扩展,旨在为 PostgreSQL 提供高性能的向量化列存储扩展。PostgreSQL 生态其实已经有一些列式存储扩展,例如 Citus 自带的 columnar,以及 TimescaleDB 针对时序数据的压缩列存引擎。不过看起来 hydra 在这个领域又达到了新的高度:在它给出的样例场景中(500G count),它可以达到令人震惊的加速比:从四五分钟到亚秒级。兼容性也还不错,支持分区表,可以与pg_hint_plan、pg_ivm等扩展配合使用。

微信图片_20231028142609.png

Hydra Fork 自 Citus 的列存插件 columnar,但进行了许多改进优化,例如矢量化执行,查询并性化,并进行了一系列针对性的调优。hydra 目前已经发布1.0.1 Release版,目前还不支持最新的PostgreSQL 16。

二、安装

安装环境:服务器44核88线程,内存128G,硬盘5400转SATA x 3 Raid5,操作系统:Rocky Linux 9.2 (Blue Onyx),PostgreSQL 15.4。

# 安装依赖包dnf install autoconf libcurl-devel liblz4-devel libzstd-devel
git clone https://github.com/hydradatabase/hydra.git -b v1.0.1
cd hydra/columnar
./autogen.sh
./configure
makemake install

三、使用

-- 创建扩展,需要超级用户权限CREATE EXTENSION IF NOT EXISTS columnar;-- Hydra支持列存表(columnar)和传统的PostgreSQL堆表(heap),默认创建时是columnar表。可在建表时指定要创建的类型:CREATETABLE heap_table (...) USING heap;CREATETABLE columnar_table (...) USING columnar;-- Hydra支持列存、行存相互转换CREATETABLE my_table (i INT8) USING heap;-- convert to columnarSELECT columnar.alter_table_set_access_method('my_table','columnar');-- convert back to row (heap)SELECT columnar.alter_table_set_access_method('my_table','heap');--也支持通过拷贝数据手动转换CREATETABLE table_heap (i INT8) USING heap;CREATETABLE table_columnar (LIKE table_heap) USING columnar;INSERTINTO table_columnar SELECT*FROM table_heap;--支持分区表,分区表可以是heap表,也可以是columna表CREATETABLE parent(ts timestamptz, i int, n numeric, s text)PARTITION BY RANGE (ts);-- columnar partitionCREATETABLE p0 PARTITION OF parent
FOR VALUESFROM('2020-01-01') TO ('2020-02-01')USING columnar;-- columnar partitionCREATETABLE p1 PARTITION OF parent
FOR VALUESFROM('2020-02-01') TO ('2020-03-01')USING columnar;-- row partitionCREATETABLE p2 PARTITION OF parent
FOR VALUESFROM('2020-03-01') TO ('2020-04-01')USING heap;INSERTINTO parent VALUES('2020-01-15',10,100,'one thousand');-- columnarINSERTINTO parent VALUES('2020-02-15',20,200,'two thousand');-- columnarINSERTINTO parent VALUES('2020-03-15',30,300,'three thousand');-- row

四、实测

导入生产环境数据到测试环境,其中一张表5000万+行数据,一张表1.2亿+行,两张与若干辅表join,然后聚合,heap表耗时40s,将两张大表转换成columnar表,耗时仅1.7s,性能提升巨大。空间占用情况:1.2亿+行数据的表heap表时占用空间40G+,转换成columnar表后仅占用5.2G,空间节省也很可观。但转换表时需要注意:如果heap表有序列或者字段带有generated by default as identity 属性,转换时可能会报错,建议先删除相应属性再转换,转换完成后再重新设置。

五、限制

  • 不支持逻辑复制
  • 不支持ON CONFLICT子句
  • 在某些情况下,索引可能会导致查询变慢,大部分情况下索引不是必须的
  • 不支持BRIN索引


相关实践学习
使用PolarDB和ECS搭建门户网站
本场景主要介绍基于PolarDB和ECS实现搭建门户网站。
阿里云数据库产品家族及特性
阿里云智能数据库产品团队一直致力于不断健全产品体系,提升产品性能,打磨产品功能,从而帮助客户实现更加极致的弹性能力、具备更强的扩展能力、并利用云设施进一步降低企业成本。以云原生+分布式为核心技术抓手,打造以自研的在线事务型(OLTP)数据库Polar DB和在线分析型(OLAP)数据库Analytic DB为代表的新一代企业级云原生数据库产品体系, 结合NoSQL数据库、数据库生态工具、云原生智能化数据库管控平台,为阿里巴巴经济体以及各个行业的企业客户和开发者提供从公共云到混合云再到私有云的完整解决方案,提供基于云基础设施进行数据从处理、到存储、再到计算与分析的一体化解决方案。本节课带你了解阿里云数据库产品家族及特性。
目录
相关文章
|
6天前
|
Cloud Native 关系型数据库 分布式数据库
掌阅科技采用云原生数据库PolarDB,大幅降低使用成本,提升业务稳定性和扩展性
掌阅科技将数据库迁移到PolarDB后,数据压缩到之前的30%,整体成本节省50%。
122 0
|
6天前
|
存储 SQL 关系型数据库
PolarDB这个sql行存和列存性能差别好大 ,为什么?
PolarDB这个sql行存和列存性能差别好大 ,为什么?
41 0
|
6天前
|
SQL 容灾 关系型数据库
[版本更新] PolarDB-X V2.4 列存引擎开源正式发布
[版本更新] PolarDB-X V2.4 列存引擎开源正式发布!
[版本更新] PolarDB-X V2.4 列存引擎开源正式发布
|
6天前
|
负载均衡 关系型数据库 数据管理
关系型数据库的横向扩展
【5月更文挑战第2天】关系型数据库的横向扩展
22 6
关系型数据库的横向扩展
|
6天前
|
存储 负载均衡 关系型数据库
关系型数据库垂直扩展限制
【5月更文挑战第2天】关系型数据库垂直扩展限制
25 4
关系型数据库垂直扩展限制
|
6天前
|
SQL 关系型数据库 OLAP
PostgreSQL从小白到高手教程 - 第46讲:poc-tpch测试
PostgreSQL从小白到高手教程 - 第46讲:poc-tpch测试
96 3
|
6天前
|
存储 关系型数据库 分布式数据库
PolarDB-X最佳实践系列(五):使用通义千问和存储过程快速生成测试数据
我们在测试数据库性能的过程中,通常需要生成一批测试数据。 以前,一般要写一段程序或者脚本来完成这项工作,但现在是2024年啦!时代变了!
PolarDB-X最佳实践系列(五):使用通义千问和存储过程快速生成测试数据
|
6天前
|
关系型数据库 OLAP OLTP
PostgreSQL从小白到高手教程 - 第45讲:poc-tpcc测试
CUUG PostgreSQL技术大讲堂系列公开课第45讲-POC-TPCC测试的内容,往期视频及文档,请联系CUUG。
58 1
|
6天前
|
SQL 关系型数据库 C语言
PostgreSQL【应用 03】Docker部署的PostgreSQL扩展SQL之C语言函数(编写、编译、载入)计算向量余弦距离实例分享
PostgreSQL【应用 03】Docker部署的PostgreSQL扩展SQL之C语言函数(编写、编译、载入)计算向量余弦距离实例分享
52 0
|
6天前
|
SQL 关系型数据库 数据库
PostgreSQL【应用 02】扩展SQL之C语言函数(编写、编译、载入)实例分享
PostgreSQL【应用 02】扩展SQL之C语言函数(编写、编译、载入)实例分享
59 0

热门文章

最新文章