一、背景

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表的更多相关文章

  1. INNO SETUP 读取可变注册表路径的问题

    ;INNO 读取可变注册表路径的问题 ;问题:;我想自动为 FireFox 安装上 Real 的 Mozilla 插件~但是它的路径存放在"HKEY_CURRENT_USER\Softwar ...

  2. 如何实现MySQL表数据随机读取?从mysql表中读取随机数据

    文章转自 http://blog.efbase.org/2006/10/16/244/如何实现MySQL表数据随机读取?从mysql表中读取随机数据?以前在群里讨论过这个问题,比较的有意思.mysql ...

  3. 读取hive的表结构,生成带comment的视图建表语句

    ### 读取hive的表结构,生成带comment的视图建表语句 # 读取配置文件中的表并进行遍历 grep -v '^#' tablesFile|while read tableName do st ...

  4. 基于Java使用Flink读取CSV文件,针对批处理,多表联合两种方式Table类和Join方法的实现数据处理,再入CSV文件

    Maven依赖 源头 <dependencies> <dependency> <groupId>org.projectlombok</groupId> ...

  5. 使用C#实现读取/写入Excel表

    C#实现写入Excel表 using System; using System.Reflection; using System.IO; using Microsoft.Office.Interop. ...

  6. C# 读取 Access 数据库表的例子

    using System;using System.Data;using System.Data.OleDb;using System.Collections.Generic;using System ...

  7. 多线程下不反复读取SQL Server 表的数据

    在进行一些如发送短信.邮件的业务时,我们常常会使用一个表来存储待发送的数据,由后台多个线程不断的从表中读取待发送的数据进行发送.发送完毕后再将数据转移到历史表中,这样保证待发送表的数据普通情况下不会太 ...

  8. 利用ADO让普通人用excel读取oracle数据库表的通用办法

    Ref:http://blog.csdn.net/iamlaosong/article/details/8465177 Excel通过ADO方式连接到Oracle并操作Oracle给那些编程能力不强的 ...

  9. 多线程下不重复读取SQL Server 表的数据

    在进行一些如发送短信.邮件的业务时,我们经常会使用一个表来存储待发送的数据,由后台多个线程不断的从表中读取待发送的数据进行发送,发送完成后再将数据转移到历史表中,这样保证待发送表的数据一般情况下不会太 ...

  10. ABAP案例:灵活读取SAP各表的数据

    案例说明     RFC读取表中数据. Import 参数名称 Type spec. 参考打印 FIELDS_NAME1 TYPE CHAR25 TABLE_NAME1 TYPE CHAR25 WHE ...

随机推荐

  1. re模块 函数模式详解

    re模块 python爬虫过程中,实现页面元素解析的方法很多,正则解析只是其中之一,常见的还有BeautifulSoup和lxml,它们都支持网页HTML元素解析,re模块提供了强大的正则表达式功能 ...

  2. rabbitmq-c与amqp扩展安装

    最近需要使用RabbitMQ进行消息队列处理 1.安装rabbitmq-c 在安装amqp之前需要先安装rabbitmq-c扩展 rabbitmq-c下载网址:https://github.com/a ...

  3. 接口压力测试工具之go-wrk

    go-wrk 是一个用Go语言实现的轻量级的http基准测试工具,类似于wrk,本文将简单介绍一下如何使用go-wrk实现接口的性能(压力)测试. github地址:https://github.co ...

  4. Numpy本征值求解

    技术背景 Numpy是一个Python库中最经常被用于执行计算任务的一个包,得益于其相比默认列表的高性能表现,以及易用性和可靠性,深受广大Python开发者的喜爱.这里介绍的是使用Numpy计算矩阵本 ...

  5. ZCMU-1153

    思路 一个感觉是规律问题的数学问题 因为输入的是n所以要的出有关n的关系或者关系 有关排序,所以可以从位次入手,设双胞胎前一个位置在ai,后一个在bi. Sum(bi-ai)=(2+3+4+5+6+. ...

  6. 通过NPOI读取 excel指定Sheet 到 DataTable

    public static DataTable ReadExcelToDataTable(string fileName, string sheetName = null, bool isFirstR ...

  7. 前端跨平台调试代理神器Whistle

    概述 抓包一直是平时开发中经常要做的,有一款好用的抓包工具可以让开发体验更棒,以前一直用fiddler,fiddler虽然强悍,但是入手有一定难度,而且较笨重,今天介绍另一款抓包工具:Whistle. ...

  8. .NET 6 探索 Minimal API 系列

    今天看到来自 https://www.dotnetdeveloper.cn/ 的一个 .NET 6 Minimal API 系列,感觉质量不错,特别收录在这里. .Net 6探索 (1) Minima ...

  9. docker-compose network名称定义

    docker-compose启动的网络名称: 1.没有自定义网络名 $ cat docker-compose.yaml version: '2' services: zookeeper1: image ...

  10. Idea如何关闭单词拼写检查

    打开Intellij Idea,在代码中输入lisi或zhangsan单词,可见这两个单词下面出现了绿色波浪线,表明词库中找不到这两个单词 2 鼠标移到波浪线上,可以看到如下提示信息,点击[more] ...