hudi开启了流读,read.streaming.enabled为true,还需要设置查询类型吗 如snapshot

本文主要是介绍hudi开启了流读,read.streaming.enabled为true,还需要设置查询类型吗 如snapshot,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

在使用 Apache Hudi 时,尤其是开启了流式读取(read.streaming.enabledtrue),配置查询类型非常重要。查询类型决定了如何读取数据,尤其是在处理更新和删除操作时。

查询类型选项

在 Hudi 中,常见的查询类型包括:

  1. Snapshot 查询
  2. Incremental 查询
  3. Read Optimized 查询

Snapshot 查询

Snapshot 查询类型会读取所有历史数据,并且会应用所有的增量更新和删除操作,确保你获取的是最新的快照数据。这种查询类型在需要完整视图并确保数据一致性时非常有用。

当开启流式读取时,通常需要设置查询类型为 snapshot 以确保能够实时获取最新的数据变更。

配置示例

假设你正在使用 Flink SQL 或 DataStream API 来读取 Hudi 数据表,可以参考以下配置:

Flink SQL

在 Flink SQL 中,可以使用如下 SQL 语句来设置:

CREATE TABLE hudi_table (...
) WITH ('connector' = 'hudi','path' = 'hdfs:///path/to/hudi/table','table.type' = 'MERGE_ON_READ','read.streaming.enabled' = 'true','read.streaming.check-interval' = '4','hoodie.datasource.query.type' = 'snapshot'
);
DataStream API

在 Flink DataStream API 中,可以通过配置 FlinkOptions 来设置:

Configuration conf = new Configuration();
conf.setString(FlinkOptions.PATH, "hdfs:///path/to/hudi/table");
conf.setString(FlinkOptions.TABLE_TYPE, "MERGE_ON_READ");
conf.setBoolean(FlinkOptions.READ_STREAMING_ENABLED, true);
conf.setString(FlinkOptions.QUERY_TYPE, "snapshot");StreamExecutionEnvironment env = StreamExecutionEnvironment.getExecutionEnvironment();
StreamTableEnvironment tableEnv = StreamTableEnvironment.create(env);Table hudiTable = tableEnv.fromDataStream(dataStream, schema);tableEnv.createTemporaryView("hudi_table", hudiTable);TableResult result = tableEnv.executeSql("SELECT * FROM hudi_table");

总结

即使在开启流式读取时,明确设置查询类型(如 snapshot)仍然是一个好习惯。这样可以确保你获取到最新的数据,并且与 Hudi 的流式处理特性相配合,提供一致且准确的实时数据视图。

因此,除了设置 read.streaming.enabledtrue 之外,还应设置 hoodie.datasource.query.typesnapshot,以确保流式读取能够正确应用所有更新和删除操作。

这篇关于hudi开启了流读,read.streaming.enabled为true,还需要设置查询类型吗 如snapshot的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1034087

相关文章

使用SQL语言查询多个Excel表格的操作方法

《使用SQL语言查询多个Excel表格的操作方法》本文介绍了如何使用SQL语言查询多个Excel表格,通过将所有Excel表格放入一个.xlsx文件中,并使用pandas和pandasql库进行读取和... 目录如何用SQL语言查询多个Excel表格如何使用sql查询excel内容1. 简介2. 实现思路3

IDEA如何将String类型转json格式

《IDEA如何将String类型转json格式》在Java中,字符串字面量中的转义字符会被自动转换,但通过网络获取的字符串可能不会自动转换,为了解决IDEA无法识别JSON字符串的问题,可以在本地对字... 目录问题描述问题原因解决方案总结问题描述最近做项目需要使用Ai生成json,可生成String类型

Spring MVC如何设置响应

《SpringMVC如何设置响应》本文介绍了如何在Spring框架中设置响应,并通过不同的注解返回静态页面、HTML片段和JSON数据,此外,还讲解了如何设置响应的状态码和Header... 目录1. 返回静态页面1.1 Spring 默认扫描路径1.2 @RestController2. 返回 html2

idea如何开启菜单栏

《idea如何开启菜单栏》文章介绍了如何通过修改IntelliJIDEA的样式文件`ui.lnf.xml`来重新显示被关闭的菜单栏,并分享了解决问题的步骤... 目录ijsdea开启菜单栏第一步第二步总结idea开启菜单栏手贱关闭了idea的js菜单栏,花费了半个小时终于解决,记录并分享一下第一步找

MySQL不使用子查询的原因及优化案例

《MySQL不使用子查询的原因及优化案例》对于mysql,不推荐使用子查询,效率太差,执行子查询时,MYSQL需要创建临时表,查询完毕后再删除这些临时表,所以,子查询的速度会受到一定的影响,本文给大家... 目录不推荐使用子查询和JOIN的原因解决方案优化案例案例1:查询所有有库存的商品信息案例2:使用EX

四种简单方法 轻松进入电脑主板 BIOS 或 UEFI 固件设置

《四种简单方法轻松进入电脑主板BIOS或UEFI固件设置》设置BIOS/UEFI是计算机维护和管理中的一项重要任务,它允许用户配置计算机的启动选项、硬件设置和其他关键参数,该怎么进入呢?下面... 随着计算机技术的发展,大多数主流 PC 和笔记本已经从传统 BIOS 转向了 UEFI 固件。很多时候,我们也

SpringBoot基于MyBatis-Plus实现Lambda Query查询的示例代码

《SpringBoot基于MyBatis-Plus实现LambdaQuery查询的示例代码》MyBatis-Plus是MyBatis的增强工具,简化了数据库操作,并提高了开发效率,它提供了多种查询方... 目录引言基础环境配置依赖配置(Maven)application.yml 配置表结构设计demo_st

Linux中chmod权限设置方式

《Linux中chmod权限设置方式》本文介绍了Linux系统中文件和目录权限的设置方法,包括chmod、chown和chgrp命令的使用,以及权限模式和符号模式的详细说明,通过这些命令,用户可以灵活... 目录设置基本权限命令:chmod1、权限介绍2、chmod命令常见用法和示例3、文件权限详解4、ch

Mysql 中的多表连接和连接类型详解

《Mysql中的多表连接和连接类型详解》这篇文章详细介绍了MySQL中的多表连接及其各种类型,包括内连接、左连接、右连接、全外连接、自连接和交叉连接,通过这些连接方式,可以将分散在不同表中的相关数据... 目录什么是多表连接?1. 内连接(INNER JOIN)2. 左连接(LEFT JOIN 或 LEFT

Redis的Hash类型及相关命令小结

《Redis的Hash类型及相关命令小结》edisHash是一种数据结构,用于存储字段和值的映射关系,本文就来介绍一下Redis的Hash类型及相关命令小结,具有一定的参考价值,感兴趣的可以了解一下... 目录HSETHGETHEXISTSHDELHKEYSHVALSHGETALLHMGETHLENHSET