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

相关推荐
Java 第一深情2 小时前
零基础入门Flink,掌握基本使用方法
大数据·flink·实时计算
MXsoft6182 小时前
华为服务器(iBMC)硬件监控指标解读
大数据·运维·数据库
PersistJiao3 小时前
Spark 分布式计算中网络传输和序列化的关系(二)
大数据·网络·spark·序列化·分布式计算
九河云3 小时前
如何对AWS进行节省
大数据·云计算·aws
FreeIPCC4 小时前
谈一下开源生态对 AI人工智能大模型的促进作用
大数据·人工智能·机器人·开源
梦幻通灵4 小时前
ES分词环境实战
大数据·elasticsearch·搜索引擎
Elastic 中国社区官方博客4 小时前
Elasticsearch 中的热点以及如何使用 AutoOps 解决它们
大数据·运维·elasticsearch·搜索引擎·全文检索
天冬忘忧5 小时前
Kafka 工作流程解析:从 Broker 工作原理、节点的服役、退役、副本的生成到数据存储与读写优化
大数据·分布式·kafka
sevevty-seven5 小时前
幻读是什么?用什么隔离级别可以防止幻读
大数据·sql
Yz98767 小时前
hive复杂数据类型Array & Map & Struct & 炸裂函数explode
大数据·数据库·数据仓库·hive·hadoop·数据库开发·big data