当前位置: 首页 > news >正文

paimon中批和流查看过去的快照的数据及变动的数据

1、批处理

创建表并插入三条数据

CREATE TABLE ws_t (id INT,ts BIGINT,vc INT,PRIMARY KEY (id) NOT ENFORCED
);
INSERT INTO ws_t VALUES(2,2,2),(3,3,3),(4,4,4),(5,5,5);
--设置执行模式为批处理
RESET 'execution.checkpointing.interval';
SET 'execution.runtime-mode' = 'batch';
+----+----+----+
| id | ts | vc |
+----+----+----+
|  2 |  2 |  2 |
|  3 |  3 |  3 |
|  4 |  4 |  4 |
|  5 |  5 |  5 |
+----+----+----+
4 rows in set

变动两次数据让数据产生新的快照

第一次删除一条数据
delte from ws_t where id=2;
+----+----+----+
| id | ts | vc |
+----+----+----+
|  3 |  3 |  3 |
|  4 |  4 |  4 |
|  5 |  5 |  5 |
+----+----+----+
3 rows in set
----------------------------------------
第二次变更一次数据
update ws_t set ts=6 where id=3;
+----+----+----+
| id | ts | vc |
+----+----+----+
|  3 |  6 |  3 |
|  4 |  4 |  4 |
|  5 |  5 |  5 |
+----+----+----+
3 rows in set

现在在hdfs上有三个快照

1.1、通过指定快照id来查询数据

SELECT * FROM ws_t /*+ OPTIONS('scan.snapshot-id' = '1') */;

1.2、读取指定时间戳的快照

SELECT * FROM ws_t$snapshots;
+-------------+-----------+--------------------------------+---------------------+-------------+-------------------------+--------------------+--------------------+------------------------+----------------------+
| snapshot_id | schema_id |                    commit_user |   commit_identifier | commit_kind |             commit_time | total_record_count | delta_record_count | changelog_record_count |            watermark |
+-------------+-----------+--------------------------------+---------------------+-------------+-------------------------+--------------------+--------------------+------------------------+----------------------+
|           1 |         0 | fdf3e8ff-d8e4-47a6-a9b2-759... | 9223372036854775807 |      APPEND | 2025-05-13 17:22:18.457 |                  4 |                  4 |                      0 | -9223372036854775808 |
|           2 |         0 | a631b852-19f4-463b-aee8-67a... | 9223372036854775807 |      APPEND | 2025-05-13 17:30:21.173 |                  5 |                  1 |                      0 | -9223372036854775808 |
|           3 |         0 | 9940bb36-7e55-40b7-90cf-cc1... | 9223372036854775807 |      APPEND | 2025-05-13 17:51:10.679 |                  6 |                  1 |                      0 | -9223372036854775808 |
+-------------+-----------+--------------------------------+---------------------+-------------+-------------------------+--------------------+--------------------+------------------------+----------------------+
需要把时间转换为数字,也可以直接去hdfs页面查询
SELECT * FROM ws_t /*+ OPTIONS('scan.timestamp-millis' = '1688369660841') */;

1.3、增量查询(查询几个快照之间的变化)

只能查询出修改的
SELECT * FROM ws_t /*+ OPTIONS('incremental-between' = '1,3') */;
+----+----+----+
| id | ts | vc |
+----+----+----+
|  3 |  6 |  3 |
+----+----+----+
1 row in setaudit_log 系统表能查询出不同快照之间删除的数据
SELECT * FROM ws_t$audit_log /*+ OPTIONS('incremental-between' = '1,2') */;
+---------+----+----+----+
| rowkind | id | ts | vc |
+---------+----+----+----+
|      -D |  2 |  2 |  2 |
+---------+----+----+----+
1 row in set

2、流式查询

先把环境修改成流式

SET 'execution.checkpointing.interval'='30s';
SET 'execution.runtime-mode' = 'streaming';

op值对应的含义

+I:插入操作。-U:使用更新行的先前内容进行更新操作。+U:使用更新行的新内容进行更新操作。-D:删除操作。

2.1从指定快照id开始读取变更数据

SELECT * FROM ws_t /*+ OPTIONS('scan.snapshot-id' = '1') */;
+----+-------------+----------------------+-------------+
| op |          id |                   ts |          vc |
+----+-------------+----------------------+-------------+
| +I |           2 |                    2 |           2 |
| +I |           3 |                    3 |           3 |
| +I |           4 |                    4 |           4 |
| +I |           5 |                    5 |           5 || -D |           2 |                    2 |           2 |
| -U |           3 |                    3 |           3 |
| +U |           3 |                    6 |           3 |

2.2、从指定时间戳开始读取

SELECT * FROM ws_t /*+ OPTIONS('scan.timestamp-millis' = '1688369660841') */;

2.3、第一次启动时读取指定快照数据,并继续读取变化

SELECT * FROM ws_t /*+ OPTIONS('scan.mode'='from-snapshot-full','scan.snapshot-id' = '2') */;
+----+-------------+----------------------+-------------+
| op |          id |                   ts |          vc |
+----+-------------+----------------------+-------------+
| +I |           3 |                    3 |           3 |
| +I |           4 |                    4 |           4 |
| +I |           5 |                    5 |           5 |
| -U |           3 |                    3 |           3 |
| +U |           3 |                    6 |           3 |

相关文章:

  • OSCP备战-Kioptrix4详细教程
  • Python+1688 API 开发教程:实现商品实时数据采集的完整接入方案
  • Conda在powershell终端中无法使用conda activate命令
  • React百日学习计划-Grok3
  • 如何学习VBA_3.3.3 VBA程序写好后,如何进行调试,直到程序运行
  • 数据结构—(链表,栈,队列,树)
  • 重生之我是CSDN大佬
  • 在VirtualBox中安装虚拟机后不能全屏显示的问题及解决办法
  • 从零实现一个高并发内存池 - 1
  • [ctfshow web入门] web72
  • Linux精确列出非法 UTF-8 字符的路径或文件名
  • logback 日志归档,解决主日志和归档日志分别定义不同的周期
  • EXCEL Python 实现绘制柱状线型组合图和树状图(包含数据透视表)
  • Redis Cluster 集群搭建和集成使用的详细步骤示例
  • 获取accesstoken时,提示证书解析有问题,导致无法正常获取token
  • NumPy 2.x 完全指南【十】基础索引
  • 网络协议与系统架构分析实战:工具与方法全解
  • 五大静态博客框架对比:Hugo、Hexo、VuePress、MkDocs、Jekyll
  • 聊天项目总结
  • 多边形,矩形,长方体设置
  • 山东:小伙为救同学耽误考试属实,启用副题安排考试
  • 经济日报整版聚焦:上海构建法治化营商环境,交出高分答卷
  • 深圳中院回应“退休夫妻月入1.2万负债1.2亿”:其自述因经营不善负债
  • 从“求生”到“生活”:医保纳入创新药让梗阻性肥厚型心肌病患者重拾生活掌控权
  • 退休10年后,70岁成都高新区管委会原巡视员王晋成被查
  • 水豚“豆包”出逃已40天,扬州茱萸湾景区追加悬赏