Flink 对接 Hudi 查询数据,java代码编写

1.pom.xml文件需要引入下面包

    <properties><flink.version>1.15.4</flink.version><hudi.version>0.13.1</hudi.version></properties><dependencies><dependency><groupId>org.apache.flink</groupId><artifactId>flink-streaming-java</artifactId><version>${flink.version}</version><scope>provided</scope></dependency><dependency><groupId>org.apache.flink</groupId><artifactId>flink-table-common</artifactId><version>${flink.version}</version><scope>provided</scope></dependency><dependency><groupId>org.apache.flink</groupId><artifactId>flink-table-api-java-bridge</artifactId><version>${flink.version}</version><scope>provided</scope></dependency><dependency><groupId>org.apache.flink</groupId><artifactId>flink-table-planner_2.12</artifactId><version>${flink.version}</version><scope>provided</scope></dependency><dependency><groupId>org.apache.flink</groupId><artifactId>flink-connector-files</artifactId><version>${flink.version}</version><scope>provided</scope></dependency><dependency><groupId>org.apache.flink</groupId><artifactId>flink-clients</artifactId><version>${flink.version}</version><scope>provided</scope></dependency><!-- hudi --><dependency><groupId>org.apache.hudi</groupId><artifactId>hudi-flink1.15-bundle</artifactId><version>${hudi.version}</version><scope>provided</scope></dependency><dependency><groupId>org.apache.hudi</groupId><artifactId>hudi-flink-client</artifactId><version>0.14.1</version></dependency></dependencies>

2.java代码如下

import org.apache.flink.streaming.api.datastream.DataStream;
import org.apache.flink.streaming.api.environment.StreamExecutionEnvironment;
import org.apache.flink.table.api.Table;
import org.apache.flink.table.api.bridge.java.StreamTableEnvironment;
import org.apache.flink.types.Row;
import org.junit.Test;import java.util.List;public class HudiTest {@Testpublic void test01() throws Exception {StreamExecutionEnvironment streamEnv = StreamExecutionEnvironment.getExecutionEnvironment();StreamTableEnvironment  tableEnv = StreamTableEnvironment.create(streamEnv);tableEnv.executeSql("CREATE TABLE IF NOT EXISTS table_name (\n" +"    resume_id bigint,\n" +"    update_by STRING,\n" +"    gmt_modified Timestamp ,\n" +"    del_flag int, \n" +"    invite_operation_date STRING,\n" +"    induct_date date ,\n" +"    leave_date date ,\n" +"    PRIMARY KEY (resume_id) NOT ENFORCED\n" +") with (\n" +" 'connector' = 'hudi',\n" +" 'path' = 'hdfs://177.17.17.200:8088/user/hudi/resume_demo/hr_resume',\n" +" 'table.type' = 'MERGE_ON_READ'\n" +")");Table table = tableEnv.sqlQuery("select * from table_name");// 启动 Flink 作业DataStream<Row> dataStream = tableEnv.toDataStream(table);streamEnv.execute();List<Row> rows = dataStream.executeAndCollect(100);//收集100条数据for (Row row : rows) {StringBuilder rowString = new StringBuilder();for (int i = 0; i < row.getArity(); i++) {rowString.append(row.getField(i)).append("|");}System.out.println(rowString.toString());}}
}

3.说明

经过测试,这里的sql中,支持下面的一些sql
简单where条件
limit 10 offset 0
不支持
order by

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

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

相关文章

【推荐算法-特征工程】每种item单侧特征,都可产生对应user单侧特征

比如item的平均成单价格&#xff0c;可以分成10个档位&#xff0c;作为一个标签值打在item上&#xff0c; 那么对应user对item的click用户行为&#xff0c;就能产生user-click的10个档位作为特征值 作为user的标签。 比如item的平均点击率&#xff0c;也可以分成比如20个档位…

Java-Spring

为什么要使用spring 综述省去很多非业务层代码研发的工作&#xff0c;提升javaweb服务研发效率&#xff0c;降低研发难度详解1、spring非常轻量且非侵入式&#xff0c;耦合低&#xff0c;污染小2、通过非常方便的依赖注入以及面向接口编程&#xff0c;可以实现业务代码之间的松…

12、电科院FTU检测标准学习笔记-双路电源自动切换

作者简介&#xff1a; 本人从事电力系统多年&#xff0c;岗位包含研发&#xff0c;测试&#xff0c;工程等&#xff0c;具有丰富的经验 在配电自动化验收测试以及电科院测试中&#xff0c;本人全程参与&#xff0c;积累了不少现场的经验 ———————————————————…

P2. 配置MySQL和用户注册登录模块

P2. 配置MySQL和用户注册登录模块 0 概述Tips1 预备知识1.1 SpringBoot 常用模块1.2 pojo层的实现1.3 mapper层的实现1.4 controller层调试CRUD 2 Spring Security2.1 Spring Security 介绍2.2 Spring Security 对接数据库2.3 密码的加密 3 Jwt验证3.1 传统Session验证方式3.2 …

ViewFlipper常见小问题

与click事件冲突 问题描述 维护老代码&#xff0c;有一个需求&#xff0c;一个组件使用ViewFlipper开发&#xff0c;既能左右滑动&#xff0c;也可以点击内部的子view&#xff0c;这里需要区分click事件月fling事件&#xff0c;在click的时候做某些业务。 问题分析 父view点…

Monocular Model-Based 3D Tracking of Rigid Objects:2005年综述

1 Introduction 在视频序列中跟踪一个物体意味着在物体或摄像机移动时&#xff0c;持续识别其位置。根据物体类型、物体和摄像机的自由度以及目标应用的不同&#xff0c;有多种方法可供选择。二维跟踪通常旨在跟踪物体或物体部分的图像投影&#xff0c;这些物体的三维位移会导…

如何应对EI会议中的突发情况?

在参加EI会议时&#xff0c;难免会遇到一些突发情况&#xff0c;以下是几种常见的突发情况及应对策略&#xff1a; 突发情况及应对策略 1. 技术故障 投影设备故障&#xff1a;提前将演示文稿上传到会议主办方指定的平台&#xff0c;或带上多个版本&#xff08;如USB驱动器和云…

JAVA面试题大全(八)

1、说一下你熟悉的设计模式&#xff1f; 设计模式是软件开发中的一种常见解决方案&#xff0c;用于解决特定类型的问题。 单例模式&#xff08;Singleton Pattern&#xff09;&#xff1a;确保一个类只有一个实例存在。懒汉式&#xff08;先声明变量&#xff0c;等到实际用到…

牛客前端面试高频八股总结(1)

1.html语义化 要求使用具有语义的标签&#xff1a;header footer article aside section nav 三点好处&#xff1a; &#xff08;1&#xff09;提高代码可读性&#xff0c;页面内容结构化&#xff0c;更清晰 &#xff08;2&#xff09;无css时&#xff0c;时页面呈现出良好…

TCP通信流程

TCP通信流程 TCP和UDP的区别 TCP&#xff08;传输控制协议&#xff09; 面向连接的&#xff1a;在数据传输之前&#xff0c;TCP 需要三次握手来建立连接。可靠的传输&#xff1a;通过序列号、确认响应、重传机制、流量控制和拥塞控制来保证数据正确传输。基于字节流&#xf…

Docker访问文件权限受限问题解决

问题描述 运行项目的docker环境&#xff0c;新添加了一个数据集&#xff0c;但是数据集的访问权限受限&#xff08;Permission dinied&#xff09;&#xff0c;运行的命令如图所示 问题解决 chmod 777 xxx YYDS&#xff01;&#xff01;&#xff01;但是单纯直接运行会因为权限…

vue使用driver.js引导并自定义样式和按钮

参考网址https://driverjs.com/docs/installation 安装 npm install driver.js 以下是1.3.1版本的基本使用方法 import { driver } from driver.js import driver.js/dist/driver.css mounted() {// 实例化driver对象const driverObj driver({showProgress: true,steps: …

LeetCode674:最长连续递增序列

题目描述 给定一个未经排序的整数数组&#xff0c;找到最长且 连续递增的子序列&#xff0c;并返回该序列的长度。 连续递增的子序列 可以由两个下标 l 和 r&#xff08;l < r&#xff09;确定&#xff0c;如果对于每个 l < i < r&#xff0c;都有 nums[i] < nums…

uniapp微信小程序在ios端返回不显示弹窗的bug解决

这个问题其实是因为返回页面的时候弹的太快了导致的解决办法&#xff1a; 其实就是返回页面的弹窗加个延迟就好啦

iOS单元测试覆盖率报告导出功能实现

一、插件安装 在Mac电脑上&#xff0c;安装slather插件。插件地址&#xff1a;https://github.com/SlatherOrg/slather 安装命令&#xff1a; gem install slather二、在Xcode上设置Code Coverage&#xff0c;Targets指定XXX 三、在终端切换到项目根目录下&#xff0c;执行单…

在Windows上创建RAM Disk

在Windows 10上创建一个与Linux中的tmpfs相似的内存文件系统&#xff08;一个文件系统&#xff0c;它使用主内存作为存储&#xff09;通常不是操作系统直接提供的功能。不过&#xff0c;有一些方法可以实现类似的效果。 使用软件创建RAM Disk 有一些第三方软件可以帮助在Wind…

牛马真的沉默了,入职第一天就干活

入职第一天就干活的&#xff0c;就问还有谁&#xff0c;搬来一台N手电脑&#xff0c;第一分钟开机&#xff0c;第二分钟派活&#xff0c;第三分钟干活&#xff0c;巴适。。。。。。 打开代码发现问题不断 读取配置文件居然读取两个配置文件&#xff0c;一个读一点&#xff0c;…

Java时间工具类(Date和LocalDateTime)

Date package com.qiangesoft.utils.date;import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Calendar; import java.util.Date;/*** 日期工具类** author lq* date 2024-05-23*/ public class DateUtil {public static final String[] C…

Docker 安装最新版MongoDB 限制内存 配置权限

目录 一、Dokcer安装命令 二、配置MongoDB管理员 一、Dokcer安装命令 docker pull mongo docker run -m 512M --name mongo -p 27017:27017 -d mongo --auth 这里通过-m来限制mongodb使用内存的大小&#xff0c;可以按需求来设置。 二、配置MongoDB管理员 数据库权限有以…

HiWoo Box边缘计算网关

​在数字化浪潮汹涌的今天&#xff0c;边缘计算网关成为了连接物理世界与数字世界的桥梁&#xff0c;其重要性日益凸显。HiWoo Box&#xff0c;作为一款功能强大的边缘计算网关&#xff0c;不仅具备了传统网关的基本功能&#xff0c;更在数据采集、处理、传输等方面展现出了卓越…