使用iceberg-flink读取iceberg v2表
一、背景
mysql数据入湖后,有同事需要实时抽取iceberg v2表,想通过iceberg做分钟级实时数仓。目前flink社区暂不支持读取v2表。腾讯内部支持
目前只能用Oceanus内置connector,支持flink1.13版本。需要读写时都用iceberg-1.1去处理,因为写入是定制iceberg有对iceberg格式内容做增强,增强后才支持流式读取。
流式读取做加工时,sum函数因iceberg不支持,具体内容看图三
流式写入v2表
CREATE TABLE `iceberg_sink`(
`id` int,
`name` char(50),
`age` int,
`weight` double,
PRIMARY KEY (id) NOT ENFORCED
) WITH (
'connector' = 'iceberg-1.1',
'incremental.sequence.mode'='true',
'format-version' = '2',
'write.upsert.enabled' = 'true'
-- other properties ...
);
insert into iceberg_sink select * from xxx_source;
流式读取v2表
CREATE TABLE `iceberg_source`(
`id` int,
`name` char(50),
`age` int,
`weight` double,
PRIMARY KEY (id) NOT ENFORCED
) WITH (
'connector' = 'iceberg-1.1',
'incremental.sequence.mode'='true',
'format-version' = '2',
'write.upsert.enabled' = 'true'
'connector.iceberg.starting-strategy' = 'TABLE_SCAN_THEN_INCREMENTAL'
-- connector.iceberg.starting-strategy 有 4 个选项:
-- (1) TABLE_SCAN_THEN_INCREMENTAL: 先全量读,再增量读
-- (2) INCREMENTAL_FROM_LATEST_SNAPSHOT: 从最新的 snapshot 开始增量读 (inclusive)
-- (3) INCREMENTAL_FROM_EARLIEST_SNAPSHOT: 从最老的 snapshot 开始增量读 (inclusive)
-- (4) INCREMENTAL_FROM_SNAPSHOT_TIMESTAMP: 从指定时间戳的快照开始增量读(inclusive)。如果时间戳在两个快照之间,则应该从时间戳之后的快照开始。
-- other properties ...
);
insert into xxx_sink select * from iceberg_source;

使用iceberg-flink读取iceberg v2表的更多相关文章
- INNO SETUP 读取可变注册表路径的问题
;INNO 读取可变注册表路径的问题 ;问题:;我想自动为 FireFox 安装上 Real 的 Mozilla 插件~但是它的路径存放在"HKEY_CURRENT_USER\Softwar ...
- 如何实现MySQL表数据随机读取?从mysql表中读取随机数据
文章转自 http://blog.efbase.org/2006/10/16/244/如何实现MySQL表数据随机读取?从mysql表中读取随机数据?以前在群里讨论过这个问题,比较的有意思.mysql ...
- 读取hive的表结构,生成带comment的视图建表语句
### 读取hive的表结构,生成带comment的视图建表语句 # 读取配置文件中的表并进行遍历 grep -v '^#' tablesFile|while read tableName do st ...
- 基于Java使用Flink读取CSV文件,针对批处理,多表联合两种方式Table类和Join方法的实现数据处理,再入CSV文件
Maven依赖 源头 <dependencies> <dependency> <groupId>org.projectlombok</groupId> ...
- 使用C#实现读取/写入Excel表
C#实现写入Excel表 using System; using System.Reflection; using System.IO; using Microsoft.Office.Interop. ...
- C# 读取 Access 数据库表的例子
using System;using System.Data;using System.Data.OleDb;using System.Collections.Generic;using System ...
- 多线程下不反复读取SQL Server 表的数据
在进行一些如发送短信.邮件的业务时,我们常常会使用一个表来存储待发送的数据,由后台多个线程不断的从表中读取待发送的数据进行发送.发送完毕后再将数据转移到历史表中,这样保证待发送表的数据普通情况下不会太 ...
- 利用ADO让普通人用excel读取oracle数据库表的通用办法
Ref:http://blog.csdn.net/iamlaosong/article/details/8465177 Excel通过ADO方式连接到Oracle并操作Oracle给那些编程能力不强的 ...
- 多线程下不重复读取SQL Server 表的数据
在进行一些如发送短信.邮件的业务时,我们经常会使用一个表来存储待发送的数据,由后台多个线程不断的从表中读取待发送的数据进行发送,发送完成后再将数据转移到历史表中,这样保证待发送表的数据一般情况下不会太 ...
- ABAP案例:灵活读取SAP各表的数据
案例说明 RFC读取表中数据. Import 参数名称 Type spec. 参考打印 FIELDS_NAME1 TYPE CHAR25 TABLE_NAME1 TYPE CHAR25 WHE ...
随机推荐
- java中并发包简要分析01
参考<分布式java应用>一书,简单过一遍并发包(java.util.concurrent) ConcurrentHashMap ConcurrentHashMap是线程安全的HashMa ...
- C# 学习笔记 0415
关于零碎的知识笔记总结,你可能需要知道的 一.Linq相关 Find()和First()与FirstOrDefault Find方法只能在List上使用,而后者能更广泛应用在IEnemerable上. ...
- Excel VLOOKUP 函数入门教程
一.引言 在日常工作中,Excel 是处理数据的强大工具之一,而 VLOOKUP 函数作为 Excel 中最常用的查找函数之一,能够帮助用户在表格或数值数组中快速定位并返回所需的数据.它的工作原理是在 ...
- 中电金信:加快企业 AI 平台升级,构建金融智能业务新引擎
在当今数字化时代的浪潮下,人工智能(AI)技术的蓬勃发展正为各行业带来前所未有的变革与创新契机.尤其是在金融领域,AI 模型的广泛应用已然成为提升竞争力.优化业务流程以及实现智能化转型的关键驱动力 ...
- Macos 安装md5sum、sha1sum、md5deep、sha1deep
一.安装md5sum和sha1sum 方法一:brew 安装 # brew install md5sha1sum 方法二:编译安装 源码下载地址:http://www.microbrew.org/to ...
- Python中定位元素包含文本信息的详细解析与代码示例
在Python编程中,特别是在进行网页自动化测试或数据抓取时,定位包含特定文本信息的元素是一个常见的需求.通过合适的工具和库,可以高效地查找和操作这些元素.本文将详细介绍如何在Python中定位包含文 ...
- Java中MessageFormat的坑
目录 Java中MessageFormat的坑 问题现象 问题排查 如何解决 Java中MessageFormat的坑 问题现象 某个业务功能需要通过SSH协议执行命令查询一些数据,而某次查询居然没有 ...
- 波折重重:Linux实时系统Xenomai宕机问题的深度定位
目录 一 前言 二 背景 三 原因分析及措施 硬件原因 应用软件 操作系统 四 分析定位 转机 拨云见雾 irq计数 Schedstat coreclk 现象结论 五 原因一 六 原因二 七 解决 八 ...
- CSP-J2/S2 2024 游记
前情提要:CSP-J/S 2023 写这篇文章的时候,心情比较复杂. 哎,结局还算圆满. 初赛 之前那个写的不好再写一遍() 两个都在 WFLS,也就是本校考 qaq. J 在大礼堂考,没啥好说的,太 ...
- 即时通讯技术文集(第39期):推送技术合集(Part1) [共18篇]
为了更好地分类阅读 52im.net 总计1000多篇精编文章,我将在每周三推送新的一期技术文集,本次是第 39 期. [- 1 -] iOS的推送服务APNs详解:设计思路.技术原理及缺陷等 [链接 ...