flinkCDC在Delta.io中是什么 是CDF

这篇具有很好参考价值的文章主要介绍了flinkCDC在Delta.io中是什么 是CDF。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

类似flink CDC

databricks 官方文档:

How to Simplify CDC With Delta Lake's Change Data Feed - The Databricks Blog

delta.io 官方文档:

Change data feed — Delta Lake Documentation

概述

更改数据馈送 (CDF) 功能允许 Delta 表跟踪 Delta 表版本之间的行级更改

在 Delta 表上启用时,运行时会记录写入表中的所有数据的“更改事件”。这包括行数据以及指示指定行是被插入、删除还是更新的元数据。

CDF的使用方式

您可以使用 DataFrame API(即 df.read )在批查询中读取更改事件,也可以在使用 DataFrame API(即 df.readStream )的流式查询中读取更改事件。

delta表开启CDF

CREATE TABLE student (id INT, name STRING, age INT) TBLPROPERTIES (delta.enableChangeDataFeed = true)

已存在的表开启CDF:

ALTER TABLE myDeltaTable SET TBLPROPERTIES (delta.enableChangeDataFeed = true)

查看CDF变更

preimage 为更新前的值

postimage 为更新后的值

CREATE TABLE delta.`/tmp/delta/student` (id INT, name STRING, age INT) USING DELTA TBLPROPERTIES (delta.enableChangeDataFeed = true) ;
insert into table delta.`/tmp/delta/student` values (1,'name1',11),(2,'name2',12),(3,'name3',13);
update delta.`/tmp/delta/student` set age = 33 where id = 1;
delete from delta.`/tmp/delta/student` where id=2;
scala>     spark.sql(""" SELECT * FROM table_changes_by_path('/tmp/delta/student', 0,3) """).show(false)
+---+-----+---+----------------+---------------+-----------------------+
|id |name |age|_change_type    |_commit_version|_commit_timestamp      |
+---+-----+---+----------------+---------------+-----------------------+
|1  |name1|11 |update_preimage |2              |2023-05-01 19:41:39.237|
|1  |name1|33 |update_postimage|2              |2023-05-01 19:41:39.237|
|2  |name2|12 |delete          |3              |2023-05-01 19:42:18.601|
|1  |name1|11 |insert          |1              |2023-05-01 19:41:32.211|
|2  |name2|12 |insert          |1              |2023-05-01 19:41:32.211|
|3  |name3|13 |insert          |1              |2023-05-01 19:41:32.211|
+---+-----+---+----------------+---------------+-----------------------+

注意: SELECT * FROM table_changes_by_path('/tmp/delta/student', 0) 等效于 SELECT * FROM table_changes_by_path('/tmp/delta/student', 0 , latest版本)

CDF配合Merge语句

How to Simplify CDC With Delta Lake's Change Data Feed - The Databricks Blog

flinkCDC在Delta.io中是什么 是CDF

__change_data 文件夹

Delta Lake 在Delta 表目录下的 _change_data 文件夹中记录了 UPDATE 、 DELETE 和 MERGE 操作的更改数据。当 Delta Lake 检测到它可以直接从事务日志中有效地计算更改数据馈送时,可能会跳过这些记录。特别是insert-only操作和full partition delete不会在 _change_data 目录下产生数据。

VACUUM会剔除CDF

_change_data 文件夹中的文件遵循表的保留策略。因此,如果您运行 VACUUM 命令,更改数据馈送数据也会被删除.

CDF支持速率控制

支持速率限制( maxFilesPerTrigger 、 maxBytesPerTrigger ).文章来源地址https://www.toymoban.com/news/detail-431039.html

到了这里,关于flinkCDC在Delta.io中是什么 是CDF的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【Flink】FlinkCDC获取mysql数据时间类型差8小时时区解决方案

    1、背景: 在我们使用FlinkCDC采集mysql数据的时候,日期类型是我们很常见的类型,但是FlinkCDC读取出来会和数据库的日期时间不一致,情况如下 FlinkCDC获取的数据中create_time字段1694597238000转换为时间戳2023-09-13 17:27:18  而数据库中原始数据如下,并没有到下午5点,这就导致了

    2024年02月07日
    浏览(53)
  • flinkcdc 3.0 源码学习之任务提交脚本flink-cdc.sh

    大道至简,用简单的话来描述复杂的事,我是Antgeek,欢迎阅读. 在flink 3.0版本中,我们仅通过一个简单yaml文件就可以配置出一个复杂的数据同步任务, 然后再来一句 bash bin/flink-cdc.sh mysql-to-doris.yaml 就可以将任务提交, 本文就是来探索一下这个shell脚本,主要是研究如何通过一个shell命

    2024年02月19日
    浏览(41)
  • FlinkCDC第三部分-同步mysql到mysql,ctrl就完事~(flink版本1.16.2)

    本文介绍了  来源单表-目标源单表同步,多来源单表-目标源单表同步。 注:1.16版本、1.17版本都可以使用火焰图,生产上最好关闭,详情见文章末尾 Flink版本:1.16.2 环境:Linux CentOS 7.0、jdk1.8 基础文件: flink-1.16.2-bin-scala_2.12.tgz、 flink-connector-jdbc-3.0.0-1.16.jar、(maven仓库目录:

    2024年02月11日
    浏览(46)
  • 【Java se】为什么大部分小数在计算机中是不精确的

    目录 目录 一、什么是小数 二、浮点数在计算机中的转换规则 (1)整数部分转换步骤 (2) 小数部分转换步骤 三、使用代码说明 四、手动转换小数 五、解决办法         在计算机中,也称小数为浮点数,因为在使用科学计数法时,数字的小数点是可以“浮动”的。    

    2024年02月08日
    浏览(60)
  • IOS 类似探探卡片滑动效果

    IOS 类似探探卡片滑动效果 之前写的类似的效果,现在整理一下demo,方便之后可能会用到。 卡片要实现 1、实现左右滑动 2、滑动之后删除或者还原 首先有数据Cards数组,以及CardViews数组,一次性只显示三个卡片,当滑动删除第一个后,从cards数组中取出数据,创建一个新的

    2024年02月13日
    浏览(40)
  • flink operator 拉取阿里云私有镜像(其他私有类似)

    注意命名空间指定你使用的 我的命名空间是flink secret type = docker-registry 这个是固定值不需要动 aliyun-docker-registry 为你的secret 取的固定名称 –docker-server 就是你私库地址 –docker-username 登录名称 –docker-password 登录密码 目前对k8s 刚刚接触1周所有对podTemplate 还是不太了解 目前这

    2024年01月21日
    浏览(38)
  • Android SwitchCompat 实现类似IOS的UI效果

    在Android中,可以通过自定义样式和选择器来实现类似iOS的开关效果。请按照以下步骤进行操作: 首先,创建一个选择器 xml 文件,例如 switch_selector.xml,用来设置 Switch 的样式,示例代码如下: 在这里,我们定义了两个 item,通过设置 state_checked 来设置 Switch 的状态,如果 S

    2024年02月08日
    浏览(39)
  • IOS 类似直播的tableView 顶部透明度渐变效果

    IOS 类似直播的tableView 顶部透明度渐变效果 在工程中,需要类似直播的tableView 顶部透明度渐变效果。这个渐变的效果呢,而且不能有覆盖在背景图上的感觉。底部背景图在没有数据的情况下,没有遮罩效果。首先想到了CAGradientLayer。 CAGradientLayer主要属性 colors var colors: [AnyO

    2024年02月12日
    浏览(45)
  • iOS swift 类似AirDrop的近场数据传输 MultipeerConnectivity 框架

    insidegui/MultipeerDemo – github insidegui/MultipeerKit – github(我用的是这个写我的项目) Info.plist 要求 从 iOS 14 开始,为了使 MultipeerKit 正常工作,您需要在应用的 Info.plist 文件中包含两个。 这些键是 Privacy - Local Network Usage Description (NSLocalNetworkUsageDescription) 和 Bonjour services

    2024年02月11日
    浏览(41)
  • IOS 类似抖音下拉刷新与自定义上拉加载

    IOS 类似抖音下拉刷新与自定义上拉加载 首先考虑在UICollection与拖动手势之间的问题。 解决UICollectionView上添加手势不能触发。 这里使用了子类继承UICollectionView 在View上添加拖动手势 self.startPoint = CGPointZero; self.isInLoading = NO; 处理手势判断 // 给加的手势设置代理, 并实现此协议

    2024年02月09日
    浏览(43)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包