Apache Impala 4.4.0正式发布了!

历时半年多,Impala 4.4终于发布了!本次更新带来了不少新功能,受限于篇幅,这里简要列举一些,后续文章再挑重点的进行介绍。

支持更多Iceberg表上的语句

支持对 Iceberg V2 表的 UPDATE 语句,用来更新已有数据。

支持 DROP PARTITION 语句删除 Iceberg 表的分区。

支持 OPTIMIZE 语句做 compaction 来清理小文件和delete文件等。

支持读取包含 equality delete 的数据。

支持用SQL语句查询 Iceberg 表的元数据(如history、snapshots等)。

支持建表时指定主键。

此外还优化了Iceberg V2表上的读性能。

历史信息查询

Impala会维护一个内部 Iceberg 表记录历史查询信息,该表由 Coordinator 自动创建,记录了每个查询的基本信息,包括从query profile中提取的信息,如内存使用量、spill-to-disk数据量等(IMPALA-12426)。

值得一提的是,Impala也维护了一个内存中的表来查询正在运行的查询信息 (IMPALA-12540)。

Event Processor增强

EventProcessor是Catalogd中的一个组件,用来从HMS拉取更新(即event)并回放到元数据缓存中。Impala 4.4对EventProcessor做了若干提升,如:

  • Event处理失败时自动Invalidate对应的表并继续处理下一个Event (IMPALA-12832)。之前的版本需要管理员执行全局 Invalidate Metadata 来恢复,代价较大。
  • 更多的性能提升,如
    • 更高效地处理不连续的同表事件(IMPALA-12463)
    • ALTER_TABLE事件尽可能不刷新文件元信息(IMPALA-12487)
    • 只拉取需要的事件类型(IMPALA-12399、IMPALA-12933)
  • 更多的bug修复,如 IMPALA-12561、IMPALA-12719等
  • 提高了EventProcessor的可见性,如展示与HMS元数据的延迟、展示当前正在处理的一批事件的信息、日志展示导致事件处理延迟的Top-10个事件等。

更丰富的查询WebUI展示

Impala 4.3开始增加了查询各个Fragment的Timeline展示,Impala 4.4在同个页面增加了资源负载(如CPU、网络、磁盘)的展示。如图

另外/queries页面还支持导入JSON格式的profile,可以展示同样的信息。

Catalogd 和 Statestore HA

Impala的Coordinator天然就是HA的,如果有服务(impalad/catalogd/statestore)挂了,集群还能部分提供服务。Impala 4.4开始支持 Catalogd 和 Statestore 的 HA,保证有单一节点宕机时,集群能正常提供服务。

支持读取JSON格式的表

支持读取文件格式为JSON的Hive表。具体地说,JSON表也是Text格式的表,只不过 SerDe Library 设的是 org.apache.hadoop.hive.serde2.JsonSerDe。这种表也可以启用压缩,Impala都能读取。

通过JDBC读取外部数据源的数据

Impala 4.4开始支持读取 MySQL/Postgres 等提供JDBC接口的数据源,建表语句示例:

sql 复制代码
CREATE EXTERNAL TABLE alltypes_jdbc_datasource (
 id INT,
 bool_col BOOLEAN,
 tinyint_col TINYINT,
 smallint_col SMALLINT,
 int_col INT,
 bigint_col BIGINT,
 float_col FLOAT,
 double_col DOUBLE,
 date_col DATE,
 string_col STRING,
 timestamp_col TIMESTAMP)
STORED BY JDBC
TBLPROPERTIES (
"database.type"="POSTGRES",
"jdbc.url"="jdbc:postgresql://localhost:5432/functional",
"jdbc.driver"="org.postgresql.Driver",
"driver.url"="/test-warehouse/data-sources/jdbc-drivers/postgresql-jdbc.jar",
"dbcp.username"="hiveuser",
"dbcp.password"="password",
"table"="alltypes");

其它改进

内存预估改善,如考虑RuntimeFilter的影响(IMPALA-12018)、优化聚合的预估(IMPALA-11842、IMPALA-12183)等。

Query Profile提供更多信息,如DDL/DML在catalogd中执行的Timeline、Executor负载(IMPALA-12834)等。

catalogd网页展示DDL/DML运行时信息和历史信息

支持SHOW VIEWS语句

在executor中预聚合RuntimeFilter(IMPALA-3825)

支持生成DEB/RPM包

开发者名单

以下是Impala 4.4的开发者名单(按英文名首字母排序),感谢他们的贡献!

Abhishek Rawat

Andrew Sherman

Anshula Jain

Csaba Ringhofer

Daniel Becker

David Rorke

Fang-Yu Rao

Fucun Chu

Gabor Kaszab

Gaurav Singh

Gaurav Singh (gaurav1086)

Gergely Farkas

Gergely Fürnstáhl

Halim Kim (halim.kim)

Jason Fehr (jasonmfehr)

Ji Chen (jichen0919)

Joe McDonnell

Kurt Deschler

Laszlo Gaal

Lili Fu (fulili)

Maxwell Guo

Michael Smith

Noemi Pap-Takacs

Peter Rozsa

Pranav Yogi Lodha (pranavyl)

Quanlong Huang (stiga-huang)

Riddhi Jain

Riza Suminto

Sai Hemanth Gantasala

Saurabh Katiyal

Sebastian Pop

Shajini Thayasingh

Surya Hebbar

Tamas Mate

Venu Reddy

Wenzhe Zhou (wzhou-code)

Xiang Yang

Yida Wu

Yifan Zhang (zhangyifan27)

Zhi Tang (ttttttz)

Zihao Ye (Eyizoha)

Zinway Liu

Zoltan Borok-Nagy

相关推荐
得物技术1 小时前
深入剖析Spark UI界面:参数与界面详解|得物技术
大数据·后端·spark
武子康2 小时前
大数据-238 离线数仓 - 广告业务 Hive分析实战:ADS 点击率、购买率与 Top100 排名避坑
大数据·后端·apache hive
武子康1 天前
大数据-237 离线数仓 - Hive 广告业务实战:ODS→DWD 事件解析、广告明细与转化分析落地
大数据·后端·apache hive
大大大大晴天1 天前
Flink生产问题排障-Kryo serializer scala extensions are not available
大数据·flink
武子康3 天前
大数据-236 离线数仓 - 会员指标验证、DataX 导出与广告业务 ODS/DWD/ADS 全流程
大数据·后端·apache hive
武子康4 天前
大数据-235 离线数仓 - 实战:Flume+HDFS+Hive 搭建 ODS/DWD/DWS/ADS 会员分析链路
大数据·后端·apache hive
DianSan_ERP5 天前
电商API接口全链路监控:构建坚不可摧的线上运维防线
大数据·运维·网络·人工智能·git·servlet
够快云库5 天前
能源行业非结构化数据治理实战:从数据沼泽到智能资产
大数据·人工智能·机器学习·企业文件安全
AI周红伟5 天前
周红伟:智能体全栈构建实操:OpenClaw部署+Agent Skills+Seedance+RAG从入门到实战
大数据·人工智能·大模型·智能体
B站计算机毕业设计超人5 天前
计算机毕业设计Django+Vue.js高考推荐系统 高考可视化 大数据毕业设计(源码+LW文档+PPT+详细讲解)
大数据·vue.js·hadoop·django·毕业设计·课程设计·推荐算法