Flink系列之:Table API Connectors之Raw Format

Flink系列之:Table API Connectors之Raw Format

  • 一、Raw Format
  • 二、示例
  • 三、Format 参数
  • 四、数据类型映射

一、Raw Format

  • Raw format 允许读写原始(基于字节)值作为单个列。
  • 注意: 这种格式将 null 值编码成 byte[] 类型的 null。这样在 upsert-kafka 中使用时可能会有限制,因为 upsert-kafka 将 null 值视为 墓碑消息(在键上删除)。因此,如果该字段可能具有 null 值,我们建议避免使用 upsert-kafka 连接器和 raw format 作为 value.format。
  • Raw format 连接器是内置的。

二、示例

例如,你可能在 Kafka 中具有原始日志数据,并希望使用 Flink SQL 读取和分析此类数据。

47.29.201.179 - - [28/Feb/2019:13:17:10 +0000] "GET /?p=1 HTTP/2.0" 200 5316 "https://domain.com/?p=1" "Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/72.0.3626.119 Safari/537.36" "2.75"

下面的代码创建了一张表,使用 raw format 以 UTF-8 编码的形式从中读取(也可以写入)底层的 Kafka topic 作为匿名字符串值:

CREATE TABLE nginx_log (log STRING
) WITH ('connector' = 'kafka','topic' = 'nginx_log','properties.bootstrap.servers' = 'localhost:9092','properties.group.id' = 'testGroup','format' = 'raw'
)

然后,你可以将原始数据读取为纯字符串,之后使用用户自定义函数将其分为多个字段进行进一步分析。例如 示例中的 my_split。

SELECT t.hostname, t.datetime, t.url, t.browser, ...
FROM(SELECT my_split(log) as t FROM nginx_log
);

相对应的,你也可以将一个 STRING 类型的列以 UTF-8 编码的匿名字符串值写入 Kafka topic。

三、Format 参数

参数是否必选默认值类型描述
format必选(none)String指定要使用的格式, 这里应该是 ‘raw’。
raw.charset可选UTF-8String指定字符集来编码文本字符串。
raw.endianness可选big-endianString指定字节序来编码数字值的字节。有效值为’big-endian’和’little-endian’。

四、数据类型映射

下表详细说明了这种格式支持的 SQL 类型,包括用于编码和解码的序列化类和反序列化类的详细信息。

Flink SQL类型
CHAR / VARCHAR / STRINGUTF-8(默认)编码的文本字符串。
编码字符集可以通过 ‘raw.charset’ 进行配置。
BINARY / VARBINARY / BYTES字节序列本身。
BOOLEAN表示布尔值的单个字节,0表示 false, 1 表示 true。
TINYINT有符号数字值的单个字节。
SMALLINT采用big-endian(默认)编码的两个字节。字节序可以通过 ‘raw.endianness’ 配置。
INT采用 big-endian (默认)编码的四个字节。字节序可以通过 ‘raw.endianness’ 配置。
BIGINT采用 big-endian (默认)编码的八个字节。字节序可以通过 ‘raw.endianness’ 配置。
FLOAT采用 IEEE 754 格式和 big-endian (默认)编码的四个字节。字节序可以通过 ‘raw.endianness’ 配置。
DOUBLE采用 IEEE 754 格式和 big-endian (默认)编码的八个字节。字节序可以通过 ‘raw.endianness’ 配置。
RAW通过 RAW 类型的底层 TypeSerializer 序列化的字节序列。

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

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

相关文章

STM32——时钟树与滴答计时器

STM32——时钟树与滴答计时器 使用的开发板为stm32F407VET6的芯片,主要介绍stm32的时钟树与滴答计时器的一些理论和一个自己编写的delay函数。 时钟树的结构图可以在STM32F4xx中文参考手册.pdf中的时钟这块找到。而滴答计时器是内核资源,需要到Cortex M3与M4权威指南…

【VScode】设置语言为中文

1、下载安装好vscode 2、此时可看到页面为英文,为方便使用可切换为中文 3、键盘按下 ctrlshiftP 4、在输入框内输入configure display language 5、选择中文,restart即可(首次会有install安装过程,等待安装成功后重启即可&am…

CMPXCHG和lwarx (LL)/stwcx (SC)

CMPXCHG 指令和 lwarx/stwcx(LL/SC)指令是在不同体系结构中常见的原子操作指令。 CMPXCHG: CMPXCHG 是 x86 架构中用于执行原子比较并交换操作的指令。这个指令会比较某个内存位置的值与累加器中的值,如果相等,则将累加器中的值赋…

算法设计与分析2023秋-头歌客观题-张超(云南农业大学)

文章目录 第一章客观题练习关于算法描述正确的是( )算法的要素包括( )分析算法,最重要的是衡量算法哪两个方面的效率( )算法的表示方法有( ) 第二章客观题练习关于算法分…

nodejs+vue+微信小程序+python+PHP国漫推荐系统-计算机毕业设计推荐

使得本系统的设计实现具有可使用的价。做出一个实用性好的国漫推荐系统,使其能满足用户的需求,并可以让用户更方便快捷地国漫推荐。这个系统的设计主要包括系统页面的设计和方便用户互动的后端数据库,在开发后需要良好的数据处理能力、友好的…

git push提交出现Everything up-to-date提示问题

以前通过git提交代码到GitHub上的个人main分支时,曾出现过这样一个很低级的错误—— 出现这个错误原因,其实就是没有正确执行指令造成的,也就是没有正常提交数据。 一般按照以下命令提交,基本就没什么问题了—— git add . #添…

5路开关量转继电器 Modbus TCP远程I/O模块 YL95 RJ-45网络接口通信

特点: ● 五路开关量输入,五路继电器输出 ● 支持Modbus TCP 通讯协议 ● 内置网页功能,可以通过网页查询电平状态 ● 可以通过网页设定继电器输出状态 ● DI信号输入,DO输出及电源之间互相隔离 ● 宽电源供电范围&#x…

面试题,手写soft_nms

目录 有原理步骤: 加注释版: soft_nms的优点 有原理步骤: soft-nms详解_笔记大全_设计学院 Soft-nms的实现过程可以分为几个步骤: 1. 输入预测框 输入神经网络预测输出的所有框,每个框有四个坐标和一个类别得分…

选择排序、快速排序和插入排序

1. 选择排序 xuanze_sort.c #include<stdio.h> #include<stdlib.h>//选择排序void xuanze_sort(int arr[],int sz){//正着for(int i0;i<sz;i){//外层循环从第一个数据开始依次作为基准数据for(int j i1;j<sz;j){//int j i1 因为第一个数据作为了基准数据&…

本地缓存与多级缓存

一、前言 缓存对于一个高并发场景下的微服务应用来说具有重要的作用&#xff0c;不管是在架构选型还是设计阶段&#xff0c;缓存都是应用扛高并发提升吞吐量的有效手段。缓存对于大多数开发的同学来说并不陌生&#xff0c;一个基本的缓存使用流程如下&#xff1a; 简而言之&am…

Hugging Face实战-系列教程20:文本摘要建模实战2 之 Tokenizer处理

&#x1f6a9;&#x1f6a9;&#x1f6a9;Hugging Face 实战系列 总目录 有任何问题欢迎在下面留言 本篇文章的代码运行界面均在Jupyter Notebook中进行 本篇文章配套的代码资源已经上传 文本摘要建模实战1 之 数据清洗 文本摘要建模实战2 之 Tokenizer处理 3 Tokenizer处理 …

ArcGIS Pro SDK导出的几何XML和Json

本博主会持续更新关于ArcGIS Pro SDK的相关内容&#xff0c;请读者关注一下 圆 XML <PolygonN xmlns:xsi"http://www.w3.org/2001/XMLSchema-instance" xmlns:xs"http://www.w3.org/2001/XMLSchema" xmlns:typens"http://www.esri.com/schemas/…

NNDL 作业11 LSTM [HBU ]

目录 习题6-4 推导LSTM网络中参数的梯度&#xff0c; 并分析其避免梯度消失的效果 >LSTM前向传播 >反向传播 求梯度 >梯度消失和梯度爆炸怎么来的&#xff1f; >关键点&#xff1a;LSTM如何缓解梯度消失&#xff1f; 习题6-3P 编程实现下图LSTM运行过程 1…

jQuery Ajax 缓存

在jQuery中&#xff0c;Ajax请求的默认行为可能会根据浏览器和数据类型的不同而有所差异。通常&#xff0c;对于GET类型的请求&#xff0c;浏览器会缓存响应结果以提高性能。然而&#xff0c;在某些情况下&#xff0c;我们可能不希望使用缓存&#xff0c;特别是在需要获取实时数…

力扣日记12.18-【二叉树篇】合并二叉树

力扣日记&#xff1a;【二叉树篇】合并二叉树 日期&#xff1a;2023.12.18 参考&#xff1a;代码随想录、力扣 617. 合并二叉树 题目描述 难度&#xff1a;简单 给你两棵二叉树&#xff1a; root1 和 root2 。 想象一下&#xff0c;当你将其中一棵覆盖到另一棵之上时&#xf…

【Axure RP9】实现登入效验及实现左侧菜单栏跳转各页面

目录 一 效验简介 1.1 校验好处 1.2 应用场景 二 登入校验 2.1 效果 2.2 实现流程 三 左边菜单栏左侧菜单栏跳转各页面 3.1 效果 3.2 实现图 一 效验简介 1.1 校验好处 提高安全性&#xff1a; 在传统的用户名和密码登录的基础上&#xff0c;引入了另一种或多种验证…

C++中的继承(二)

文章目录 前言多继承虚继承虚继承的底层组合 前言 上一篇文章我们C的正常继承其实已经讲完了&#xff0c;但是后面还有一个大坑。 实际当中继承有单继承和多继承。 单继承就是直接继承一个类。 只有一个直接父类的就叫做单继承。 如果是单继承那就比较简单。 现实世界除了有…

Docker部署MinIO对象存储服务器结合内网穿透实现远程访问

文章目录 前言1. Docker 部署MinIO2. 本地访问MinIO3. Linux安装Cpolar4. 配置MinIO公网地址5. 远程访问MinIO管理界面6. 固定MinIO公网地址 前言 MinIO是一个开源的对象存储服务器&#xff0c;可以在各种环境中运行&#xff0c;例如本地、Docker容器、Kubernetes集群等。它兼…

基于三维激光点云的隧道开挖岩体结构面识别与信息提取

摘要: 岩体结构面几何参数是评价岩体稳定性与渗流特征的重要研究基础。在隧道施工中,识别开挖面岩体结构并分析为后续施工提供了重要参考价值。采用三维激光扫描技术,获取隧道开挖面岩体点云数据,采用球面投影,对投影数据进行三角剖分,得到隧道施工开挖面三角剖分模型,利…

OpenCV技术应用(7)— 将图像转为热力图

前言&#xff1a;Hello大家好&#xff0c;我是小哥谈。本节课就手把手教大家如何将一幅图像转化成热力图&#xff0c;希望大家学习之后能够有所收获~&#xff01;&#x1f308; 目录 &#x1f680;1.技术介绍 &#x1f680;2.实现代码 &#x1f680;1.技术介绍 伪彩色处…