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

相关文章

idea设置快捷键风格方式

《idea设置快捷键风格方式》在IntelliJIDEA中设置快捷键风格,打开IDEA,进入设置页面,选择Keymap,从Keymaps下拉列表中选择或复制想要的快捷键风格,点击Apply和OK即可使... 目录idea设www.chinasem.cn置快捷键风格按照以下步骤进行总结idea设置快捷键pyth

MySQL中between and的基本用法、范围查询示例详解

《MySQL中betweenand的基本用法、范围查询示例详解》BETWEENAND操作符在MySQL中用于选择在两个值之间的数据,包括边界值,它支持数值和日期类型,示例展示了如何使用BETWEEN... 目录一、between and语法二、使用示例2.1、betwphpeen and数值查询2.2、be

MyBatis配置文件中最常用的设置

《MyBatis配置文件中最常用的设置》文章主要介绍了MyBatis配置的优化方法,包括引用外部的properties配置文件、配置外置以实现环境解耦、配置文件中最常用的6个核心设置以及三种常用的Ma... 目录MyBATis配置优化mybatis的配置中引用外部的propertis配置文件⚠️ 注意事项X

MyBatis中的两种参数传递类型详解(示例代码)

《MyBatis中的两种参数传递类型详解(示例代码)》文章介绍了MyBatis中传递多个参数的两种方式,使用Map和使用@Param注解或封装POJO,Map方式适用于动态、不固定的参数,但可读性和安... 目录✅ android方式一:使用Map<String, Object>✅ 方式二:使用@Param

MyBatis-Plus使用动态表名分表查询的实现

《MyBatis-Plus使用动态表名分表查询的实现》本文主要介绍了MyBatis-Plus使用动态表名分表查询,主要是动态修改表名的几种常见场景,文中通过示例代码介绍的非常详细,对大家的学习或者工作... 目录1. 引入依赖2. myBATis-plus配置3. TenantContext 类:租户上下文

C# WebAPI的几种返回类型方式

《C#WebAPI的几种返回类型方式》本文主要介绍了C#WebAPI的几种返回类型方式,包括直接返回指定类型、返回IActionResult实例和返回ActionResult,文中通过示例代码介绍的... 目录创建 Controller 和 Model 类在 Action 中返回 指定类型在 Action

MySQL基本表查询操作汇总之单表查询+多表操作大全

《MySQL基本表查询操作汇总之单表查询+多表操作大全》本文全面介绍了MySQL单表查询与多表操作的关键技术,包括基本语法、高级查询、表别名使用、多表连接及子查询等,并提供了丰富的实例,感兴趣的朋友跟... 目录一、单表查询整合(一)通用模版展示(二)举例说明(三)注意事项(四)Mapper简单举例简单查询

MySQL 数据库进阶之SQL 数据操作与子查询操作大全

《MySQL数据库进阶之SQL数据操作与子查询操作大全》本文详细介绍了SQL中的子查询、数据添加(INSERT)、数据修改(UPDATE)和数据删除(DELETE、TRUNCATE、DROP)操作... 目录一、子查询:嵌套在查询中的查询1.1 子查询的基本语法1.2 子查询的实战示例二、数据添加:INSE

springboot+mybatis一对多查询+懒加载实例

《springboot+mybatis一对多查询+懒加载实例》文章介绍了如何在SpringBoot和MyBatis中实现一对多查询的懒加载,通过配置MyBatis的`fetchType`属性,可以全局... 目录springboot+myBATis一对多查询+懒加载parent相关代码child 相关代码懒

Java JAR 启动内存参数配置指南(从基础设置到性能优化)

《JavaJAR启动内存参数配置指南(从基础设置到性能优化)》在启动Java可执行JAR文件时,合理配置JVM内存参数是保障应用稳定性和性能的关键,本文将系统讲解如何通过命令行参数、环境变量等方式... 目录一、核心内存参数详解1.1 堆内存配置1.2 元空间配置(MetASPace)1.3 线程栈配置1.