hudi时间旅行查询

hudi每次数据写入时都会生成一个时间戳,用于表示数据写入的时间,基于该特性,在进行数据查询时可使用该时间对hudi中数据进行查询。

使用flink引擎查询时可指定如下参数

  • ‘read.start-commit’ = ‘20220617160237493’
  • ‘read.end-start’ = ‘20220617160826396’

当进行数据查询时,可通过上述参数查询指定时间段写入的数据。

参考示例:

  1. 查询20220617160237493 – 20220617160826396时间段数据
CREATE TABLE orders_detail_hudi(
  id INT,
  num INT,
  name STRING,
  PRIMARY KEY(id) NOT ENFORCED
) WITH (
  'connector' = 'hudi',
  'table.type' = 'MERGE_ON_READ',
  'read.streaming.enabled' = 'false',
  'read.start-commit' = '20220617160237493',
  'read.end-start' = '20220617160826396',
  'compaction.async.enabled' = 'false',
  'path' = 'hdfs://bigdata:9000/user/hive/warehouse/huditest_1/orders_detail_hudi'
);
  1. 查询20220617160237493到当前时刻数据
CREATE TABLE orders_detail_hudi(
  id INT,
  num INT,
  name STRING,
  PRIMARY KEY(id) NOT ENFORCED
) WITH (
  'connector' = 'hudi',
  'table.type' = 'MERGE_ON_READ',
  'read.streaming.enabled' = 'false',
  'read.start-commit' = '20220617160237493',
  'compaction.async.enabled' = 'false',
  'path' = 'hdfs://bigdata:9000/user/hive/warehouse/huditest_1/orders_detail_hudi'
);
  1. 使用增量数据读取方式,查询从20220617160237493开始的数据
CREATE TABLE orders_detail_hudi(
  id INT,
  num INT,
  name STRING,
  PRIMARY KEY(id) NOT ENFORCED
) WITH (
  'connector' = 'hudi',
  'table.type' = 'MERGE_ON_READ',
  'read.streaming.enabled' = 'true',
  'read.start-commit' = '20220617160237493',
  'compaction.async.enabled' = 'false',
  'path' = 'hdfs://bigdata:9000/user/hive/warehouse/huditest_1/orders_detail_hudi'
);
5 1 投票
文章评分

本文为从大数据到人工智能博主「xiaozhch5」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。

原文链接:https://lrting.top/backend/bigdata/hudi/hudi-basic/6631/

(1)
上一篇 2022-06-19 23:26
下一篇 2022-06-20 18:14

相关推荐

订阅评论
提醒
guest

1 评论
最旧
最新 最多投票
内联反馈
查看所有评论
trackback
1 年 前

[…] 本文从头开始讲述使用Flink引擎实现hudi数据湖基于commit_time的查询语义。基本使用可参考前面文章hudi时间旅行查询 […]

1
0
希望看到您的想法,请您发表评论x