随笔分类 -  大数据

摘要:语法 MERGE INTO target USING source ON source.a = target.a WHEN MATCHED THEN UPDATE SET a = source.a, b = source.b, c = source.c WHEN NOT MATCHED THEN I 阅读全文
posted @ 2025-03-15 23:30 Aitozi 阅读(448) 评论(0) 推荐(0)
摘要:deletion vector 是通过一组向量, 维护一个文件中被删除的行, 可以理解为一种索引. 这种方式可以以 Merge On Write 的方式, 来避免 Merge On Read 的过程, 从而以写入性能换取读取性能. 对于写少读多, 或者对读取性能有更高要求的场景会比较适合. 避免 M 阅读全文
posted @ 2024-11-18 08:23 Aitozi 阅读(674) 评论(0) 推荐(1)
摘要:Lookup Store 主要用于 Paimon 中的 Lookup Compaction 以及 Lookup join 的场景. 会将远程的列存文件在本地转化为 KV 查找的格式. Hash https://github.com/linkedin/PalDB Sort https://github 阅读全文
posted @ 2024-10-29 23:31 Aitozi 阅读(428) 评论(0) 推荐(1)
摘要:数据类型要求 BatchPhysicalHashAggRule match 条件会判断 isAggBufferFixedLength(agg) 为什么要求 aggCall 的类型是 Fixed Length 的才可以使用 HashAggregate ? 因为在 HashAggregate 中, 依赖 阅读全文
posted @ 2024-05-12 14:54 Aitozi 阅读(273) 评论(0) 推荐(0)
摘要:介绍 目的 Chaneglog producer 的主要目的是为了在 Paimon 表上产生流读的 changelog, 所以如果只是批读的表是可以不用设置 Chaneglog producer 的. 一般对于数据库如 MySQL 来说, 当执行的语句涉及数据的修改例如插入、更新、删除时,MySQL 阅读全文
posted @ 2023-12-17 14:01 Aitozi 阅读(3038) 评论(0) 推荐(3)
摘要:类型有什么作用, 类型可以提供编译期检查, 避免到运行期才报错. # 类型 首先Flink中自己定义了一套类型, 有`LogicalType`和`DataType`两个表示 ## LogicalType `LogicalType`表示的逻辑类型, 并不涉及类型的物理表示, 会包含nullable属性 阅读全文
posted @ 2023-08-05 00:21 Aitozi 阅读(1283) 评论(0) 推荐(1)
摘要:在Delta Lake官网上提到的一篇新一代湖仓架构的论文. 这篇论文由Databricks团队2021年发表于CIDR会议. 这个会议是对sigmod和vldb会议的补充. 可以看到这篇论文和前一篇Delta Lake: High-Performance ACID Table Storage ov 阅读全文
posted @ 2023-07-15 21:40 Aitozi 阅读(434) 评论(0) 推荐(0)
摘要:论文发表于 2020年, 研究数据湖产品的很好的学习资料. # 概要 开篇很明确的表明了为什么要做Delta lake这样一个产品. Databricks尝试将数据仓库直接架在云上对象存储之上, 这种尝试的过程中遇到了对象存储的一些问题, 为了解决这些问题, 提出了Delta lake这套技术方案. 阅读全文
posted @ 2023-07-13 23:07 Aitozi 阅读(461) 评论(0) 推荐(1)
摘要:Compact主要涉及以下几个组件 CompactManager 管理Compact task CompactRewriter 用于compact过程中数据的重写实现, 比如compact过程中产生changelog等 CompactStrategy 决定哪些文件需要被compact Append 阅读全文
posted @ 2023-06-26 17:08 Aitozi 阅读(2562) 评论(2) 推荐(1)
摘要:# 查询模式 先来看看官网关于Paimon查询模式的说明 ![image.png](https://img2023.cnblogs.com/blog/697236/202306/697236-20230625192823219-2121282029.png) ![image.png](https:/ 阅读全文
posted @ 2023-06-25 19:29 Aitozi 阅读(2574) 评论(0) 推荐(1)
摘要:> 基于Paimon 0.5版本 写入流程的构建`org.apache.paimon.flink.sink.FlinkSinkBuilder#build` 算子的流向 BucketingStreamPartitioner 分区 -> RowDataStoreWriteOperator 写入 -> C 阅读全文
posted @ 2023-06-23 21:16 Aitozi 阅读(2444) 评论(0) 推荐(0)
摘要:sql2rel的过程是将SqlNode 转化成RelNode的过程 在 `SqlToRelConverterTest`中添加样例测试 ```java @Test void testScan() { String sql = "SELECT * FROM EMP WHERE empno When va 阅读全文
posted @ 2023-06-17 17:43 Aitozi 阅读(477) 评论(0) 推荐(1)
摘要:Hudi 文中部分代码对应 0.14.0 版本 发展背景 初始的需求是Uber公司会有很多记录级别的更新场景,Hudi 在Uber 内部主要的一个场景,就是乘客打车下单和司机接单的匹配,乘客和司机分别是两条数据流,通过 Hudi 的 Upsert 能力和增量读取功能,可以分钟级地将这两条数据流进行拼 阅读全文
posted @ 2023-05-05 11:12 Aitozi 阅读(951) 评论(0) 推荐(1)
摘要:子图复用优化是为了找到SQL执行计划中重复的节点,将其复用,避免这部分重复计算的逻辑。先回顾SQL执行的主要流程 parser -> validate -> logical optimize -> physical optimize -> translateToExecNode。 而子图复用的逻辑就 阅读全文
posted @ 2022-09-12 22:37 Aitozi 阅读(598) 评论(0) 推荐(0)
摘要:背景 今天我们来聊一聊flink中状态rescale的性能优化。我们知道flink是一个支持带状态计算的引擎,其中的状态分为了operator state和 keyed state两类。简而言之operator state是和key无关只是到operator粒度的一些状态,而keyed state是 阅读全文
posted @ 2022-01-22 15:13 Aitozi 阅读(505) 评论(0) 推荐(0)
摘要:因为目前我司使用的版本还是和Blink对齐的版本,所以本文还是先针对Blink中对于回撤的实现来进行源码分析。 概念 回撤这个概念,是流计算中特有的,简单理解起来就是将先前的计算结果回撤,那什么场景下会出现回撤呢?当"中间计算结果"被提前下发时,后续更新结果时,需要将先前的中间值回撤,并下发更新后的 阅读全文
posted @ 2021-12-26 19:06 Aitozi 阅读(598) 评论(0) 推荐(0)