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-8 | String | 指定字符集来编码文本字符串。 |
| raw.endianness | 可选 | big-endian | String | 指定字节序来编码数字值的字节。有效值为’big-endian’和’little-endian’。 |
四、数据类型映射
下表详细说明了这种格式支持的 SQL 类型,包括用于编码和解码的序列化类和反序列化类的详细信息。
| Flink SQL类型 | 值 |
|---|---|
| CHAR / VARCHAR / STRING | UTF-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 序列化的字节序列。 |
相关文章:
Flink系列之:Table API Connectors之Raw Format
Flink系列之:Table API Connectors之Raw Format 一、Raw Format二、示例三、Format 参数四、数据类型映射 一、Raw Format Raw format 允许读写原始(基于字节)值作为单个列。注意: 这种格式将 null 值编码成 byte[] 类型的 null。这样在 ups…...
社交网络分析3:社交网络隐私攻击、保护的基本概念和方法 + 去匿名化技术 + 推理攻击技术 + k-匿名 + 基于聚类的隐私保护算法
社交网络分析3:社交网络隐私攻击、保护的基本概念和方法 去匿名化技术 推理攻击技术 k-匿名 基于聚类的隐私保护算法 写在最前面社交网络隐私泄露用户数据暴露的途径复杂行为的隐私风险技术发展带来的隐私挑战经济利益与数据售卖防范措施 社交网络 用户数据隐私…...
2023大湾区汽车创新大会在深圳坪山开幕
12月15日,2023大湾区汽车创新大会在深圳坪山开幕。 本次大会是由广东省科学技术厅、深圳市发展和改革委员会、深圳市工业和信息化局、中共深圳市新能源和智能网联汽车产业链委员会、坪山区人民政府指导,北京理工大学深圳汽车研究院、广东省大湾区新能源汽…...
Graylog 中日志级别及其对应的数字
在 Graylog 中,日志级别 level 通常使用数字表示,数字越低表示日志级别越高。以下是常见的日志级别及其对应的数字表示: DEBUG(调试):对应数字 7。INFO(信息):对应数字 …...
智能手表上的音频(五):录音
上篇讲了语音通话,本篇讲录音。录音功能就是把录到的音频保存成文件。保存文件的格式支持两种:一是PCM(16K采样)的WAV格式,二是AMR-NB(8k采样)的AMR格式。WAV格式简单:44字节的文件头PCM 数据,示…...
2023.12.17 关于 Redis 的特性和应用场景
目录 引言 Redis 特性 内存中存储数据 可编程性 可扩展性 持久化 支持集群 高可用性 Redis 优势 Redis 用作数据库 Redis 相较于 MySQL 优势 Redis 相较于 MySQL 劣势 Redis 用作缓存 典型场景 Redis 存储 session 信息 Redis 用作消息队列 初心 消息队列的…...
智能优化算法应用:基于社会群体算法3D无线传感器网络(WSN)覆盖优化 - 附代码
智能优化算法应用:基于社会群体算法3D无线传感器网络(WSN)覆盖优化 - 附代码 文章目录 智能优化算法应用:基于社会群体算法3D无线传感器网络(WSN)覆盖优化 - 附代码1.无线传感网络节点模型2.覆盖数学模型及分析3.社会群体算法4.实验参数设定5.算法结果6.…...
Kotlin 笔记 -- Kotlin 语言特性的理解(二)
都是编译成字节码,为什么 Kotlin 能支持 Java 中没有的特性? kotlin 有哪些 Java 中没有的特性: 类型推断、可变性、可空性自动拆装箱、泛型数组高阶函数、DSL顶层函数、扩展函数、内联函数伴生对象、数据类、密封类、单例类接口代理、inter…...
数据结构【1】:数组专题
一、定义 数组是编程中一种强大的数据结构,它允许您存储和操作相同类型元素的集合。在 Python 中,数组是通过数组模块创建的,该模块提供了一个简单的接口来创建、操作和处理数组。 二、创建数组 在 Python 中,可以使用内置的 a…...
【Spring】Spring 事务
Spring 事务 文章目录 Spring 事务1. 简介2. Spring事务管理器3. 基本使用4. 属性剖析5. 声明式事务问题场景5.1 事务不生效5.2 事务不回滚5.3 大事务问题 6. 编程式事务 1. 简介 编程式事务:指手动编写程序来管理事务,即通过编写代码的方式直接控制事务…...
Ubuntu 虚拟机环境,编译AOSP源码
环境 : VMware虚拟机 Ubuntu 20.04.3 LTS 搭建配置开发环境 sudo apt-get install git-core gnupg flex bison build-essential zip curl zlib1g-dev gcc-multilib g-multilib libc6-dev-i386 libncurses5 lib32ncurses5-dev x11proto-core-dev libx11-dev lib32z1-dev libgl…...
2023.12.18杂记
今天特地搜了一下国内不错的博客网站,本来想在掘金上写的,但是怕被人喷(,所以还是决定在csdn上写了哈哈哈。 这篇文章主要整理一下我今天写代码时遇到的疑惑以及记录一下思考过程吧。 第一个注意的地方,我们的get查询…...
智能优化算法应用:基于阿基米德优化算法3D无线传感器网络(WSN)覆盖优化 - 附代码
智能优化算法应用:基于阿基米德优化算法3D无线传感器网络(WSN)覆盖优化 - 附代码 文章目录 智能优化算法应用:基于阿基米德优化算法3D无线传感器网络(WSN)覆盖优化 - 附代码1.无线传感网络节点模型2.覆盖数学模型及分析3.阿基米德优化算法4.实验参数设定…...
K8s内容器拓扑图工具
1.背景:随着线上容器越来越多,需要一个可视化的方式展示各个容器之间的拓扑图。 2.需求:轻量级,部署方便。 3.部署 helm repo add groundcover https://helm.groundcover.com/ helm repo update helm install caretta --namespa…...
掌握 Babel:让你的 JavaScript 与时俱进(上)
🤍 前端开发工程师(主业)、技术博主(副业)、已过CET6 🍨 阿珊和她的猫_CSDN个人主页 🕠 牛客高级专题作者、在牛客打造高质量专栏《前端面试必备》 🍚 蓝桥云课签约作者、已在蓝桥云…...
Mysql进阶-InnoDB引擎事务原理及MVCC
事务原理 事务基础 事务是一组操作的集合,它是一个不可分割的工作单位,事务会把所有的操作作为一个整体一起向系 统提交或撤销操作请求,即这些操作要么同时成功,要么同时失败。 事务的四大特性: 原子性(A…...
「X」Embedding in NLP|神经网络和语言模型 Embedding 向量入门
在「X」Embedding in NLP 进阶系列中,我们介绍了自然语言处理的基础知识——自然语言中的 Token、N-gram 和词袋语言模型。今天,我们将继续和大家一起“修炼”,深入探讨神经网络语言模型,特别是循环神经网络,并简要了解…...
JVM-11-运行时栈帧结构
“栈帧”(Stack Frame)则是用于支持虚拟机进行方法调用和方法执行背后的数据结构,它也是虚拟机运行时数据区中的虚拟机栈(Virtual MachineStack)的栈元素。 栈帧存储了方法的局部变量表、操作数栈、动态连接和方法返回…...
【经典LeetCode算法题目专栏分类】【第6期】二分查找系列:x的平方根、有效完全平方数、搜索二位矩阵、寻找旋转排序数组最小值
《博主简介》 小伙伴们好,我是阿旭。专注于人工智能AI、python、计算机视觉相关分享研究。 ✌更多学习资源,可关注公-仲-hao:【阿旭算法与机器学习】,共同学习交流~ 👍感谢小伙伴们点赞、关注! X的平方根 class Soluti…...
【大麦小米学量化】使用xtquant调用迅投MiniQMT客户端定时操作逆回购,再也不担心忘了赚零花钱了(含完整源代码)
文章目录 前言一、逆回购是什么?1. 什么是逆回购?2. 最低参与金额是多少?3. 逆回购交易是否安全?4. 逆回购交易适合什么类型的客户? 二、讯投XtQuant是什么?1. XtQuant运行依赖环境2. XtQuant运行逻辑 三、…...
DETR模型ONNX推理实战:从输出张量到可视化检测框的完整解析
DETR模型ONNX推理实战:从输出张量到可视化检测框的完整解析 在目标检测领域,DETR(Detection Transformer)以其独特的端到端架构和简洁的流程设计,正在改变传统基于锚框(anchor-based)方法的格局…...
从GMM到MDN:想给神经网络加上‘概率思维’?这份融合指南请收好
从GMM到MDN:赋予神经网络概率思维的工程实践指南 当我们需要预测一个复杂系统的行为时,单一的点估计往往显得力不从心。想象一下,在自动驾驶系统中,车辆需要预测前方行人的运动轨迹;或者在量化交易中,我们…...
38岁大厂P9被裁后卖保险:成年人的职场,没有铁饭碗
来自:推荐一个程序员编程资料站:http://cxyroad.com副业赚钱专栏:https://xbt100.top2024年IDEA最新激活方法后台回复:激活码CSDN免登录复制代码插件下载:CSDN复制插件以下是正文。01 | P9也不是免死金牌最近在网上看到…...
Python自动化资源管理工具closeclaw:智能清理闲置窗口与进程
1. 项目概述与核心价值最近在GitHub上看到一个挺有意思的项目,叫closeclaw,作者是krishpranav。乍一看这个仓库名,你可能会有点摸不着头脑——“关闭爪子”?这到底是干嘛的?点进去研究了一番,发现这是一个用…...
Arduino与FastLED库驱动WS2812B实现彩虹闪烁可穿戴灯光系统
1. 项目概述:用代码点亮创意的可穿戴灯光几年前,我第一次尝试把LED灯带缝进一件卫衣的帽子里,初衷很简单,就是想在做夜跑时更醒目一些。但当那些WS2812B灯珠第一次随着音乐节奏亮起彩虹般流动的色彩时,我知道我打开了一…...
从“玩原神不”到AC:手把手教你用概率DP解决湘潭邀请赛F题(期望计算避坑指南)
从队友闲聊到AC代码:概率DP在算法竞赛中的实战拆解 "玩原神不~"——这句看似随意的队友闲聊,竟成了解决湘潭邀请赛F题的关键灵感。在算法竞赛中,概率与期望DP问题往往让选手望而生畏,但通过这道题的完整解析࿰…...
终极免费离线OCR解决方案:Umi-OCR完整使用指南
终极免费离线OCR解决方案:Umi-OCR完整使用指南 【免费下载链接】Umi-OCR OCR software, free and offline. 开源、免费的离线OCR软件。支持截屏/批量导入图片,PDF文档识别,排除水印/页眉页脚,扫描/生成二维码。内置多国语言库。 …...
告别迷茫!在嵌入式Linux上用libwebsockets v4.0实现WebSocket客户端(含SSL配置避坑)
嵌入式Linux实战:libwebsockets v4.0客户端开发与SSL避坑指南 当树莓派的GPIO引脚需要与云端实时同步数据时,WebSocket往往是嵌入式开发者的首选协议。但面对内存仅512MB的ARMv7开发板,选用一个既支持SSL加密又能兼容C99标准的轻量级库&#…...
制造业数字鸿沟的终结者:零依赖STL到STEP转换引擎的技术突破与应用实践
制造业数字鸿沟的终结者:零依赖STL到STEP转换引擎的技术突破与应用实践 【免费下载链接】stltostp Convert stl files to STEP brep files 项目地址: https://gitcode.com/gh_mirrors/st/stltostp 在数字化制造与工业4.0的浪潮中,制造业企业面临着…...
DLSS Swapper终极指南:免费开源工具让游戏DLSS管理变得简单快速
DLSS Swapper终极指南:免费开源工具让游戏DLSS管理变得简单快速 【免费下载链接】dlss-swapper 项目地址: https://gitcode.com/GitHub_Trending/dl/dlss-swapper 如果你正在寻找一款能够智能管理游戏DLSS、FSR和XeSS文件的免费开源工具,那么DLS…...
