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

相关推荐
Joker时代3 分钟前
WebKey备受瞩目的Web3.0新叙事,硬件与加密生态完美融合特性成为数字世界的新入口
大数据·web3·区块链
B站计算机毕业设计超人2 小时前
计算机毕业设计Python深度学习美食推荐系统 美食可视化 美食数据分析大屏 美食爬虫 美团爬虫 机器学习 大数据毕业设计 Django Vue.js
大数据·python·深度学习·机器学习·数据分析·课程设计·推荐算法
喻师傅2 小时前
Hadoop权威指南-读书笔记-01-初识Hadoop
大数据·hadoop·分布式
电商运营花2 小时前
告别盲目跟风!1688竞品数据分析实战指南(图文解析)
大数据·人工智能·经验分享·笔记·数据挖掘·数据分析
是程序喵呀3 小时前
git的基本使用
大数据·git
小白学大数据4 小时前
爬虫进阶:Selenium与Ajax的无缝集成
大数据·开发语言·爬虫·selenium·ajax
小冷在努力4 小时前
elasticsearch入门基本知识+使用案例
大数据·elasticsearch·搜索引擎·es
2402_857589364 小时前
WebKit中Websockets的全面支持:实现高效实时通信
大数据·前端·webkit
一切如来心秘密7 小时前
kafka 实现精确一次性语义实践总结
大数据·kafka
lupai7 小时前
车牌号查车辆信息-车牌号查车辆信息接口-汽车API接口
大数据·汽车·生活