快捷搜索:  汽车  科技

apache分析软件哪个好:Apache Hudi 0.11.0

apache分析软件哪个好:Apache Hudi 0.11.0我们为什么要实现Time travel?从api层面,如果我们要写一个查询,需要设置不同的df,构造不同的operation,然后来查询这个动作。但是引用time travel的这个语句以后,一是可以在spark sql中直接使用,二是sql语句更容易去解释这样的一个行为和动作。现在可以通过timestamp as of语法支持时间旅行查询,但仅限Spark 3.2 。语法如下:select * from hudi_tbl timestamp as of '20210728141108100'2. SQL支持时间旅行查询1. 用户可以使用非主键字段更新或删除 Hudi 表中的记录Spark SQL改进Delete Operation。在t1时刻分别往mor表cow表中分别插入a b c三条数据。这样会在mor表中生成base file 文件和log file文件(下图中简化

  • 我们还对Upsert 性能做了测试。我们在metadata table中引入了一个bloom_filter 分区,取代了footer 中的 bloom filter,在大表中可以大幅减少文件读取的时间。每条记录包含单个数据文件(partition file name)的 bloom filter,支持 prefix lookup。据实测,在有 100k 文件的 Hudi 表中,相比于读取 footer,从 MDT 读取 bloom filter的速度有3倍的提升。t6.c
  • 基于多级索引,未来还有很多工作可以做,目前一个工作是针对record level index 的开发以及Luncene index的开发。

--

02

Spark SQL 新功能

接下来再讲Hudi在spark sql方面的改进。

1. 用户可以使用非主键字段更新或删除 Hudi 表中的记录

Spark SQL改进Delete Operation。

在t1时刻分别往mor表cow表中分别插入a b c三条数据。这样会在mor表中生成base file 文件和log file文件(下图中简化了示意图)。在cow表中只会生产base file 文件。t2时刻同时删除mor表和cow表中 b的数据。mor表操作是删除log file b的block是t2时刻的数据。而cow表中的操作是复制一份base file b保存到内存中,删除b数据之后会形成一个新版本的绿色的方框中的数据文件。如下图:

apache分析软件哪个好:Apache Hudi 0.11.0(1)

2. SQL支持时间旅行查询

我们为什么要实现Time travel?从api层面,如果我们要写一个查询,需要设置不同的df,构造不同的operation,然后来查询这个动作。但是引用time travel的这个语句以后,一是可以在spark sql中直接使用,二是sql语句更容易去解释这样的一个行为和动作。现在可以通过timestamp as of语法支持时间旅行查询,但仅限Spark 3.2 。语法如下:select * from hudi_tbl timestamp as of '20210728141108100'

①SQL Travel-场景1:查询多版本数据

如下图,我们在10:10分提交了insert和update语句,我们想要查10:05分版本的数据,通过下面的sql是可以实现的。

select * from test_hudi timestamp as of 20220512100510000 (10:05)

select * from test_hudi timestamp as of 20220512101030000 (10:10)

apache分析软件哪个好:Apache Hudi 0.11.0(2)

②Travel-场景2: 数据还原修复

  • 创建hudi表:create table test_hudi ...
  • 插入数据:insert into test_hudi ... (每插入一条数据会产生一个版本)

apache分析软件哪个好:Apache Hudi 0.11.0(3)

  • 查询数据:select * from test_hudi

apache分析软件哪个好:Apache Hudi 0.11.0(4)

  • 误删数据:delete from test_hudi where id=2
  • 查询数据:select * from test_hudi (删除id=2的数据后只剩下了两个版本)

apache分析软件哪个好:Apache Hudi 0.11.0(5)

猜您喜欢: