首页/新闻资讯/正文详情

Presto Release 0.129 技术解读:P4HyperLogLog 类型、网络拓扑感知调度与 S3 加密增强

发布时间:2026/9/24 5:28:24 来源:云帆数科 栏目:资讯中心
Presto Release 0.129 技术解读:P4HyperLogLog 类型、网络拓扑感知调度与 S3 加密增强
大数据数据库后端【免费下载链接】prestoThe official home of the Presto distributed SQL query engine for big data项目地址https://gitcode.com/gh_mirrors/pre/presto点击查看免费下载本文是 Presto 开源版本 0.129 发布说明release-0.129.rst的深度技术解读覆盖该版本在查询引擎、JDBC 驱动、CLI、调度器与 Hive 连接器上的全部功能变更并结合当前仓库源码如NodeSchedulerConfig、NetworkTopology、HiveS3Config等剖析其底层实现原理。读完本文你将掌握 P4HyperLogLog 的适用场景、node-scheduler.network-topology的配置语义、S3 服务端加密与区域固定选项的正确用法以及 JDBC 驱动非查询语句支持的具体能力边界。版本总览与已知问题Release 0.129 是一次功能型迭代版本主要亮点包括引入全新的P4HyperLogLog数据类型在基数估计场景中以少量精度换性能调度器支持网络拓扑感知的 split 调度node-scheduler.network-topologyHive 连接器新增 S3 服务端加密、EC2 区域固定与retention_days表属性支持JDBC 驱动补全非查询语句DDL/DML的执行支持。⚠️ 已知性能回退务必先读该版本存在一处已知性能回退当GROUP BY或JOIN查询的 key 长度介于16 到 31 字节时性能会明显下降。此问题已在 Release 0.130release-0.130.rst中修复。升级建议若生产环境大量使用 1631 字节的字符串作为分组或关联键如部分 UUID 短格式、定长业务编码建议关注此区间查询性能必要时直接评估升级到包含修复的后续版本。General Changes查询引擎与优化器变更本节逐一解读该版本通用引擎核心部分的变更每条均对应一个可验证的行为差异。OUTER JOIN 规划器修复修复了一个可能导致OUTER JOINLEFT/RIGHT/FULL 外连接查询返回错误结果的 planner 问题。这类 bug 通常源于 join 谓词与过滤条件下推时的等价性判断错误影响面涉及正确性而非性能属于必须升级修复的类别。若你在此前的版本中遇到过外连接结果与预期不一致、且 SQL 本身逻辑无误的案例可以重点回归验证。max_by / min_by 内存统计更真实使用max_by/min_by聚合函数的查询现在能更准确地反映真实内存使用量。这意味着从该版本起这类查询在监控中显示的内存用量会变大属于统计口径修正而非真实泄漏。原因是此前这两个函数在计算过程中保留的辅助状态未被完整计入用户内存统计导致基于内存阈值如查询内存上限的评估失真。SHOW SESSION 隐藏属性过滤修复了 SHOW SESSION 会展示隐藏hidden会话属性的问题。隐藏属性通常用于内部或实验性参数不应对用户暴露此修复使会话属性列表更干净、更安全。ORDER BY LIMIT 大查询挂起修复修复了大型查询在ORDER BY与LIMIT组合下可能发生的挂起hang。该问题一般出现在排序算子与 top-N 算子配合时下游无法感知上游完成状态导致管道阻塞。此修复对取全量数据排序后仅保留前 N 行这类常见报表查询的稳定性有直接意义。空数组 / 全 NULL 数组的强制转换修复修复了将空数组或仅含NULL的数组强制转换为其他类型时的问题。此前CAST(ARRAY[] AS ARRAYINTEGER)一类操作可能产生未定义行为或报错修复后空数组与全 NULL 数组的类型转换行为符合预期。表属性名大小写不敏感表属性名table property names现在被正确视为大小写不敏感。此前 Hive 等连接器的表属性如formatvsFORMAT匹配可能受大小写影响现在统一按不区分大小写处理提升了配置容错性。其他引擎级改进查询详情页 UI 优化coordinator 的 Web UI 查询详情页面有小幅改进Verifier 异常栈精简verifier 对预期中的异常不再打印无用的堆栈信息降低日志噪声UNION ALL 写入性能提升涉及UNION ALL且需要写出数据的查询性能得到改善。新增 P4HyperLogLog 类型该版本引入了P4HyperLogLog数据类型它基于 HyperLogLog 基数估计数据结构核心 trade-off 是在处理较小集合时以少量精度与内存开销换取显著的性能提升。P4P 代表参数化/优化的 HLL 实现变体实现在小基数场景下优化了稀疏表示的读写路径。从当前仓库的架构看Presto 的近似去重函数族如approx_distinct与 HLL 相关类型均由引擎内部的统计数据结构支撑P4HyperLogLog适合追求更高吞吐、且对极小误差不敏感的高基数去重统计场景如流量 UV 统计、去重计数仪表盘。如果你使用 Presto 做大规模去重统计可在该版本起关注此类型在查询中的实际表现并对比原有 HLL 类型的精度-性能曲线。JDBC Driver 变更Release 0.129 对 JDBC 驱动做了两项行为层面的大改动直接影响下游应用代码的兼容性。SET / RESET SESSION 由静默忽略改为抛异常此前驱动对SET SESSION/RESET SESSION参见 SET SESSION 与 RESET SESSION会静默忽略导致应用误以为设置会话属性成功。从该版本起驱动改为抛出异常明确告知调用方该操作不被支持。兼容性提醒如果你的应用此前通过 JDBC 发送SET SESSION且依赖静默通过的行为升级后必须改用连接 URL 参数如session.namevalue或 Presto CLI 的--session选项来设置会话属性否则会收到异常。非查询语句支持补全驱动现在能正确处理非查询语句DDL/DML 等具体能力包括Statement接口支持execute方法的全部变体execute(String)、execute(String, int)、execute(String, int[])、execute(String, String[])支持getUpdateCount与getLargeUpdateCount方法用于获取受影响行数。这意味着通过 JDBC 执行CREATE TABLE、INSERT、DELETE、UPDATE等语句时驱动行为与标准 JDBC 契约保持一致应用可以依赖getUpdateCount()判断写入影响行数。CLI 变更ctrl-C取消查询时总是清屏取消查询后终端不再残留查询输出碎片交互体验更干净客户端请求超时可配置新增对客户端请求超时的配置能力便于在慢网络或长任务场景下调整等待上限。Network Topology Aware Scheduling网络拓扑感知调度Release 0.129 允许调度器在分发 split 时考虑网络拓扑通过node-scheduler.network-topology配置启用详见 Tuning Presto。配置项与取值在 admin/properties.rst 中对该配置的完整定义如下类型string允许值legacy、flat默认值legacy取值行为legacy调度 split 时忽略网络拓扑默认行为flat尝试将 split 调度到数据所在主机为本地 split 保留50% 的工作队列官方建议当分布式存储与 Presto worker 部署在同一批节点上时推荐使用flat可显著减少跨网络数据传输。示例配置写入 coordinator 的config.propertiesnode-scheduler.network-topologyflat源码级实现从当前仓库源码可以完整还原该特性的实现结构配置绑定NodeSchedulerConfig通过Config(node-scheduler.network-topology)读取该配置NodeSchedulerConfig.java默认值为legacy同时内部还预留了benchmark类型同文件NetworkTopologyType常量拓扑抽象NetworkTopology接口定义了两个核心方法——NetworkLocation locate(HostAddress address)将主机地址映射为网络位置与getLocationSegmentNames()返回位置分段语义说明并标注ThreadSafe要求实现必须线程安全NetworkTopology.java实现类FlatNetworkTopology将每个主机映射为单段位置machine/hostnameFlatNetworkTopology.javaLegacyNetworkTopology则维持原有忽略拓扑的行为模块装配在 ServerMainModule.java 中根据配置值将NetworkTopology接口绑定到LegacyNetworkTopology或FlatNetworkTopology单例。因此flat模式的核心机制是调度器优先把 split 派发给持有对应数据副本的 worker并保留 50% 队列容量给本地 split从而最大化数据本地性。若你的集群是存算一体架构worker 同时运行 HDFS 等服务此配置几乎是零成本的传输优化项。Hive ChangesS3 支持增强S3 区域固定pin to current region此前的版本在 EC2 中运行时会自动将 S3 客户端固定到当前区域Release 0.129 改为默认不再自动固定。如需启用在 Hive catalog 属性文件中设置hive.s3.pin-client-to-current-regiontrue启用该特性的影响有两面性必须启用才能访问**中国隔离区域China isolated region**的 S3 数据但启用后无法访问当前区域之外的数据客户端被钉死在本地区域。源码佐证该选项在 HiveS3Config.java 中定义Config(hive.s3.pin-client-to-current-region)的说明为 Should the S3 client be pinned to the current EC2 region。同时S3ConfigurationUpdaterS3ConfigurationUpdater.java中对应系统属性常量为presto.s3.pin-client-to-current-region。S3 服务端加密Server-Side Encryption该版本新增 S3 服务端加密支持启用方式hive.s3.sse.enabledtrue源码佐证在 HiveS3Config.java 中定义ConfigDescription(Enable S3 server side encryption)。与之配套的还有加密类型与密钥配置# 加密类型S3SSE-S3或 KMSSSE-KMS hive.s3.sse.typeKMS # 使用 KMS 时指定密钥 ID hive.s3.sse.kms-key-idyour-kms-key-id对应源码hive.s3.sse.type绑定到PrestoS3SseType枚举S3或KMS见 HiveS3Config.javahive.s3.sse.kms-key-id用于 SSE-KMS 模式。使用场景包括满足数据静态加密合规要求、防止 S3 服务端明文存储敏感数据。新增 S3 EncryptionMaterialsProvider 支持该版本还支持自定义 S3EncryptionMaterialsProvider允许用户通过实现该接口注入自定义加密材料如自定义密钥管理流程适用于对加密密钥生命周期有特殊管控需求的场景。具体接入方式是在 Hive catalog 属性中指定实现了EncryptionMaterialsProvider的类。新增 retention_days 表属性Hive 连接器新增retention_days表属性用于为表设置保留天数。该属性允许你在建表时声明数据保留周期如配合定时清理任务使用例如CREATE TABLE orders ( order_id bigint, ... ) WITH ( format ORC, retention_days 30 );注意retention_days只是向元数据Hive Metastore写入保留周期声明实际的过期数据清理仍需由外部运维任务依据该属性执行。升级与验证清单围绕 Release 0.129 的变更建议升级后依次验证正确性回归重点跑一遍包含OUTER JOIN、空数组/全 NULL 数组CAST、ORDER BY ... LIMIT的查询用例内存监控核对确认使用max_by/min_by的查询内存曲线变化符合预期统计口径修正JDBC 行为测试验证应用对SET SESSION的异常处理以及INSERT/DELETE后getUpdateCount()返回值S3 配置生效在 Hive catalog 中按需开启hive.s3.sse.enabled与hive.s3.pin-client-to-current-region并用SHOW CREATE TABLE确认retention_days属性写入调度优化存算一体集群可将node-scheduler.network-topology设为flat对比前后查询延迟与网络流量。相关延伸阅读完整的节点调度属性清单见 admin/properties.rst性能调优指南见 Tuning PrestoSQL 语法参考见 SET SESSION、RESET SESSION 与 SHOW SESSION。赞分享大数据数据库后端【免费下载链接】prestoThe official home of the Presto distributed SQL query engine for big data项目地址https://gitcode.com/gh_mirrors/pre/presto点击查看免费下载相关推荐Presto Release 0.75 技术解读Hive S3 调优、JSON 路径语法、负载感知调度与 Row Number 优化Presto Release 0.75 技术解读Hive S3 调优、JSON 路径语法、负载感知调度与 Row Number 优化 Release 0.75大数据数据库后端Kubernetes 批处理工作组 2022 年度报告解读Job API 增强、Kueue 与拓扑感知调度Kubernetes 批处理工作组 2022 年度报告解读Job API 增强、Kueue 与拓扑感知调度 导读 本文围绕 Kubernetes 社区仓库中开源治理文档研发协作Volcano HyperNode 网络拓扑自动发现实战从 ConfigMap 配置到调度器拓扑感知Volcano HyperNode 网络拓扑自动发现实战从 ConfigMap 配置到调度器拓扑感知 本文围绕 Volcano 的 HyperNode 网络拓云原生后端任务调度批处理创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

相关推荐

SimpleFOC、VESC与ODrive三大FOC方案本质区别与选型指南
SimpleFOC、VESC与ODrive三大FOC方案本质区别与选型指南

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/9/24 5:28:18

开发串口屏小白视角
开发串口屏小白视角

我是刚接触串口屏的小白,以前只听过单片机,没碰过显示屏方案。放在以前,做项目想加屏幕,得自己从头折腾:写底层驱动、调通信、处理UI界面,还要解决I2C丢包、信号干扰、电源不稳这些麻烦问题,单片… · 2026/9/24 5:27:35

TaskNexus:开源免费任务聚合插件,让Obsidian任务管理更高效
TaskNexus:开源免费任务聚合插件,让Obsidian任务管理更高效

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/9/24 5:27:29

有了这款真香笔记软件OpenText,妈妈再也不担心我的Markdown创作了
有了这款真香笔记软件OpenText,妈妈再也不担心我的Markdown创作了

兄弟们,谁懂啊! 现在写个 Markdown 简直内卷到离谱!以前无脑冲 Typora,现在打开就弹窗口逼你付费。 不付钱不让好好写,免费替代品又一个比一个拉胯: ✅ MarkText:卡得像老年机,体… · 2026/9/24 11:08:52

单视频三维实时重构驱动的武警突发事件力量调度推演与区域封控方案智能生成技术白皮书
单视频三维实时重构驱动的武警突发事件力量调度推演与区域封控方案智能生成技术白皮书

前言武警突发事件应急处置、现场力量调度、区域立体封控是遂行处突维稳、应急安保、风险隔离任务的核心关键环节。面对人群聚集滋事、突发冲闯、现场险情、陌生区域突发警情等各类突发事件,传统处置模式长期依赖“人工看屏、经验研判、口头调度、固定预案”&#xf… · 2026/9/24 11:08:52

从寄存器到总线:一个嵌入式新手的 I2C 调试手记
从寄存器到总线:一个嵌入式新手的 I2C 调试手记

一、先搞懂物理层:为什么 I2C 只有两根线?1. 线与特性I2C 总线上可以挂多个设备,但 SDA 和 SCL 两根线是所有设备共享的。如果像普通 GPIO 那样"推挽输出",一个设备输出高、另一个输出低,就会直接短路烧毁。… · 2026/9/24 11:08:40

【TSDB 科普】时序数据压缩技术:差分压缩、增量压缩、浮点压缩核心机制解析
【TSDB 科普】时序数据压缩技术:差分压缩、增量压缩、浮点压缩核心机制解析

文章目录一、为什么通用压缩算法面对时序数据“力不从心”表 1 通用压缩与时序专属压缩对比二、差分压缩:把完整时间戳变成差值三、增量压缩:处理现实世界的采样抖动四、浮点压缩:只保存发生变化的比特位五、时序数据库不是只选一种压缩&… · 2026/9/24 11:08:34

微信二次开发如何做多账号任务隔离?WechatApi 避免一个账号异常拖垮整套系统
微信二次开发如何做多账号任务隔离?WechatApi 避免一个账号异常拖垮整套系统

官网友情链接: wechatapi.net 个人微信二次开发进入多账号阶段以后,一个非常容易被忽略的问题是:账号之间到底应该隔离到什么程度。 在只有一个微信账号时,系统结构通常比较简单。消息进入同一个队列,文件进入同一个队… · 2026/9/24 11:08:27

AI 编程工具怎么选:当你需要多方案并行和代码评审
AI 编程工具怎么选:当你需要多方案并行和代码评审

选 AI 编程工具时,大部分测评盯着两个指标:模型多强、补全多快。这两点当然重要,但真到了每天靠它干活的阶段,你会发现决定体验的往往是另外两件事——能不能让它同时试几种方案,以及它写完的代码有没有人帮你把关。 … · 2026/9/24 11:08:21

基于YOLOv8的渔船作业监控系统:从环境搭建到边缘部署全流程
基于YOLOv8的渔船作业监控系统:从环境搭建到边缘部署全流程

简介:这是一套面向计算机、人工智能、自动化等专业学生与教师的毕业设计级项目资源,围绕YOLOv8实现渔船作业监控系统,可用于毕设、课程设计、大作业或项目立项演示。压缩包共97个文件,约24.21MB,以70个Python源码文件为… · 2026/9/24 0:00:13

1D-CNN时间序列建模实战:从Conv1d原理到工业落地
1D-CNN时间序列建模实战:从Conv1d原理到工业落地

简介:面向时间序列数据建模的一维卷积神经网络完整实现,适合深度学习入门者及需要快速验证时序模型的研究者,能够从音频、文本、传感器或股价等序列中挖掘局部特征与时间依赖。压缩包体积很小,只有3KB,内含3个Python脚… · 2026/9/24 0:00:26

柔软的L:汉语语流中被忽视的舌肌张力控制
柔软的L:汉语语流中被忽视的舌肌张力控制

1. 这个“L”不是字母表里的L,而是舌尖上的L最近在几个方言群和语音教学社群里,反复看到有人发一句:“也说字母L:柔软的长舌”。初看以为是英语发音课笔记,点开才发现全是方言爱好者、播音系学生、语言康复师甚至戏曲演… · 2026/9/24 0:00:44

了解更多?预约专属演示

我们的顾问将为您一对一讲解产品与方案

企业微信二维码