Apache Impala 4.4.0正式发布了!

news2024/10/7 12:23:02

历时半年多,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、网络、磁盘)的展示。如图
Query Timeline展示
另外/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接口的数据源,建表语句示例:

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1710788.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

已解决ModuleNotFoundError : No module named ‘pandas亲测有效!!!

已解决ModuleNotFoundError : No module named ‘pandas亲测有效!!! 亲测有效 报错问题解决思路解决方法 报错问题 在运行Python代码时,你可能会遇到以下报错信息: ModuleNotFoundError: No module named pandas这个…

计算机组成原理----原码,反码与补码

目录 1.原码的出现 2.反码的出现 3.补码的出现 4.关于补码 1.原码的出现 我们通常使用"","-"判断数字的正负,而在计算机中,则将二进制的首位当作标记符号,"0"表示正数,"1"表示负数,这样就解决了在计算机中表示数值正负的问题,唯一…

剖析【C++】——类与对象(中)——小白篇—超详解

目录 1.类的6个默认成员函数: 1. 默认构造函数(Default Constructor) 2. 析构函数(Destructor) 3. 拷贝构造函数(Copy Constructor) 4. 拷贝赋值运算符(Copy Assignment Operato…

【Mybatis】映射文件中#{}里的其他属性

#{}里除了可以写接收参数的名称外,还可以设置javaType,jdbcType,mode,numericScale,resultMap,typeHandler,jdbcTypeName这些属性的。 其他的属性除mode(存储过程相关讲到存储过程的时候在讲)外使用方式都…

单链表的相关题目

1.删除链表中给定值val的所有结点 public void removeall(int key) {//由于是删除链表中所有和key值相同的结点,所以可以设置两个ListNode类型的数据,一个在前面,一个在后面.//直到前面的走到链表的最后,这样完成了遍历.//先判断一下这个链表是否为空if(headnull){System.out.…

Vim安装与配置教程(解决软件包Vim没有安装可候选)

一、Vim检测是否安装 1-输入vi查看是否安装; 2-按Tab键,显示以下字符为未安装; 3-显示以下字符为已安装(可以看到有Vim) 二、Vim安装过程 1. 打开终端,输入 sudo apt install vim; 2. 输入Y/y&#xff…

STM32Cube系列教程11:使用STM32 RNG硬件随机数模块生成彩票号码

文章目录 配置RNG模块编写代码获取生成的随机数运行测试 今天写段代码测试一下STM32U083RC的(RNG)硬件随机数模块 顺便写个小demo生成7位真随机数的彩票号码,帮助那些买彩票还有选择困难症的人群 (doge)(手动狗头)。 全部代码以上传到github:https://gi…

C++ (week5):Linux系统编程3:线程

文章目录 三、线程1.线程的基本概念①线程相关概念②我的理解 2.线程的基本操作 (API)(1)获取线程的标识:pthread_self(2)创建线程:pthread_create()(3)终止线程①pthread_exit():当前线程终止,子线程主动退出②pthread_cancel()&…

C语言 | Leetcode C语言题解之第118题杨辉三角

题目&#xff1a; 题解&#xff1a; int** generate(int numRows, int* returnSize, int** returnColumnSizes) {int** ret malloc(sizeof(int*) * numRows);*returnSize numRows;*returnColumnSizes malloc(sizeof(int) * numRows);for (int i 0; i < numRows; i) {re…

【RocketMQ】安装RocketMQ5.2.0(单机版)

下载 官网下载地址&#xff1a;下载 | RocketMQ github地址&#xff1a;Tags apache/rocketmq GitHub 选择对应的版本下载。https://dist.apache.org/repos/dist/release/rocketmq/5.2.0/rocketmq-all-5.2.0-bin-release.zip 5.2.0的二进制包&#xff1a;下载地址 5.2.0的…

C语言 | Leetcode C语言题解之第117题填充每个节点的下一个右侧节点指针II

题目&#xff1a; 题解&#xff1a; void handle(struct Node **last, struct Node **p, struct Node **nextStart) {if (*last) {(*last)->next *p;}if (!(*nextStart)) {*nextStart *p;}*last *p; }struct Node *connect(struct Node *root) {if (!root) {return NULL…

随机森林算法实现分类

随机森林算法实现对编码后二进制数据的识别 1.直接先上代码&#xff01; import numpy as np import pandas as pd from sklearn.model_selection import train_test_split, GridSearchCV from sklearn.ensemble import RandomForestClassifier from sklearn.metrics import …

数据结构之堆(优先级队列)

前言 在上一章我们讲了二叉树&#xff0c;这一节我们来讲堆&#xff08;优先级队列&#xff09;&#xff0c;所以想知道堆创建&#xff0c;可以看一下二叉树的一些简单概念。http://t.csdnimg.cn/4jUR6http://t.csdnimg.cn/4jUR6 目录 前言 堆 1.概念 2.优先级队列的模拟实…

Day06-Mybatis

1. Mybatis介绍 2. Mybatis连接数据库并返回数据事例 连接oracle数据的设置方式 spring.application.namespringboot-mybatis spring.datasource.driver-class-nameoracle.jdbc.OracleDriver spring.datasource.urljdbc:oracle:thin:192.168.100.66:1521:orcl spring.datasour…

每日一题《leetcode--59.螺旋矩阵 》

https://leetcode.cn/problems/spiral-matrix-ii/ 这道题跟我昨天发布的那道题一模一样&#xff0c;只需要注意这个矩阵是n*n。 文章代码如下&#xff1a; int** generateMatrix(int n, int* returnSize, int** returnColumnSizes) {int** array (int**)malloc(sizeof(int*) *…

Python | Leetcode Python题解之第118题杨辉三角

题目&#xff1a; 题解&#xff1a; class Solution:def generate(self, numRows: int) -> List[List[int]]:ret list()for i in range(numRows):row list()for j in range(0, i 1):if j 0 or j i:row.append(1)else:row.append(ret[i - 1][j] ret[i - 1][j - 1])ret…

HCIP-Datacom-ARST自选题库__BGP多选【22道题】

1.BGP认证可以防止非法路由器与BGP路由器建立邻居&#xff0c;BGP认证可以分为MD5认证和Keychain认证&#xff0c;请问以下哪些BGP报文会携带BCGP Keychain认证信息?(报头携带) open Update Notication Keepalive 2.传统的BGP-4只能管理IPv4单播路由信息&#xff0c;MP-B…

总线带宽(总线系统的数据传送速率)

定义 总线上每秒钟传输的最大字节数或比特数 表示方法 通常使用“比特率”来表示&#xff0c;单位为比特每秒&#xff08;bps&#xff0c;b/s&#xff09;。 计算公式 总线带宽总线宽度/传输周期 其中&#xff0c;总线宽度是指数据总线的位数&#xff08;单位&#xff1a…

GBB和Prob IoU[旋转目标检测理论篇]

在开始介绍YOLOv8_obb网络之前,需要先介绍一下arxiv.org/pdf/2106.06072 这篇文章的工作,因为v8_obb就是基于这篇论文提出的GBB和prob IoU来实现旋转目标检测的。 1.高斯分布 一维高斯分布的规律是中间高两边低,且当x为均值的时候取到最大值,表达式如下,标准正态分布图如…

数据库(10)——图形化界面工具DataGrip

以后关于数据库的图片演示就使用DataGrip了 : ) 创建数据库和表 在连接上数据库之后&#xff0c;可以选择Schema创建一个新的数据库。 点击OK后&#xff0c;就已经创建了一个空的表。 要在数据库中建立一张新的表&#xff0c;右键数据库&#xff0c;点击new table 要给新表添…