Time Travel Queries|在 RisingWave 中访问历史数据
对于许多组织来说,能够访问历史数据十分关键。以金融交易公司为例:
- 特定时间点的数据快照与合规审查、审计流程息息相关。
- 企业的关键业务系统也依赖历史数据来恢复故障并重建系统。
- 分析过去事件及其对当前状况的影响,还有助于准确预测并制定战略规划。
- 此外,回顾历史事件如何影响当下也是数据治理和数据完整性的关键,能帮助组织追踪变化并保持清晰的可追溯记录。
因此,我们在 RisingWave 2.0 版本中推出了时间旅行查询(Time Travel Queries)功能。通过时间旅行查询,您可以在指定的时间旅行窗口内检索过去某个时间点的数据。同时,时间旅行查询也支持将数据保存为单独的表,或将其发送到下游系统进行进一步分析或处理。下面将为大家分享如何使用 RisingWave 中的时间旅行查询。
1. 获取 Premium Edition 许可证
时间旅行查询是 RisingWave Premium 特有功能,需要购买许可证以使用。
目前 Premium 版本为期 30 天的免费试用活动还在进行中,赶快行动吧~
可通过运行以下 SQL 查询验证您的 RisingWave 实例是否具有有效的许可证密钥,如果许可证密钥设置正确且有效,将返回 t。
SELECT rw_test_paid_tier();
2. 设置环境
为了在 RisingWave 中运行时间旅行查询,请参照以下要求设置环境:
- 确保元存储类型与 SQL 兼容,并至少保留 50 GB 的磁盘空间。默认情况下,RisingWave 使用 PostgreSQL 作为元存储。
- 系统参数
time_travel_retention_ms设置为大于 0 的值。该值确定历史数据的保留时间,超过该值的数据将被删除。例如,以下 SQL 命令将系统参数设置为历史数据保留一天。
ALTER SYSTEM SET time_travel_retention_ms = 86400000;
3. 时间旅行查询的语法
在 SELECT 查询中使用 FOR SYSTEM_TIME AS OF 子句,以访问指定时间点的数据。该子句应包含一个时间值。
根据以下格式指定历史时间。以下查询从表 historic_table 查询历史数据。
- Unix 时间戳(以秒为单位)
SELECT * FROM historic_table
FOR SYSTEM_TIME AS OF 1728025608;
- 日期时间字符串
SELECT * FROM historic_table
FOR SYSTEM_TIME AS OF '2024-10-02T12:13:14-08:30';
- 相对于当前时间的时间间隔
SELECT * FROM historic_table
FOR SYSTEM_TIME AS OF NOW() - '1' HOUR;
如果指定的时间超出时间旅行期间,查询将报错。
4. 持久化历史数据
如果需要持久化某个时间点的数据,可以创建表或 sink,这样即使在数据超出时间旅行保留窗口后也能访问数据。如下所示,要保存一小时前的表状态,可以根据历史数据创建新表。
CREATE TABLE table_at_202409202300 AS
SELECT * FROM historic_table
FOR SYSTEM_TIME AS OF NOW() - '1' HOUR;
5. 自动空间回收
元存储和对象存储中的过时时间旅行数据会在后台自动移除,以释放存储空间。默认配置通常适用于大多数情况,但也支持自定义。
- 元存储的回收间隔默认设置为 30 秒,也可以通过调整
vacuum_interval_sec设置来更改此间隔。设置完需要重启元节点以使其生效。 - 对象存储的回收间隔默认设置为 1 天,也可以通过调整两个设置
full_gc_interval_sec和min_sst_retention_time_sec来自定义此计划。同样,设置完需要重启元节点以生效。
6. 结论
随着 RisingWave 成功引入时间旅行查询,我们期待看到客户开发出各种创新用例。从增强金融服务中的欺诈检测和审计追踪,到优化预测性维护,这些应用前景广阔。此外,我们诚邀您试用时间旅行查询以及 2.0 中发布的众多新功能并向我们分享反馈,共同完善 RisingWave 这一广受喜爱的流式数据库系统。
关于 RisingWave
RisingWave 是一款开源的分布式流处理数据库,旨在帮助用户降低实时应用的开发成本。RisingWave 采用存算分离架构,提供 Postgres-style 使用体验,具备比 Flink 高出 10 倍的性能以及更低的成本。
👨🔬加入 RW 社区,欢迎关注公众号:RisingWave中文开源社区
🧑💻想要了解和探索 RisingWave,欢迎浏览我们的官网:risingwave.com/
🔧快速上手 RisingWave,欢迎体验入门教程:github.com/risingwave
💻深入理解使用 RisingWave,欢迎阅读用户文档:zh-cn.risingwave.com/docs
相关文章:
Time Travel Queries|在 RisingWave 中访问历史数据
对于许多组织来说,能够访问历史数据十分关键。以金融交易公司为例: 特定时间点的数据快照与合规审查、审计流程息息相关。企业的关键业务系统也依赖历史数据来恢复故障并重建系统。分析过去事件及其对当前状况的影响,还有助于准确预测并制定…...
Unity之UnityWebRequest
复习UnityWebRequest 介绍下载文件和上传文件下载进度和异常验证文件DownloadHandlerScript 介绍 unity中使用UnityWebRequest来代替所有HTTP请求提供了三种API,UnityWebRequest.Get,UnityWebRequest.Post,UnityWebRequest.Put分别处理GET,POST,PUT请求…...
使用 pkg 打包 Puppeteer 应用:跨平台自动化的轻量级选择
使用 pkg 打包 Puppeteer 应用 pkg 是一个非常强大的工具,它允许你将 Node.js 项目打包成独立的可执行文件,这意味着你可以在没有安装 Node.js 环境的设备上运行该应用。这对于希望分发不暴露源代码的应用程序、创建跨平台的快速演示版本或简化部署流程…...
【Flask】三、Flask 常见项目架构
目录 前言 简单项目结构 中型项目结构 复杂项目结构 前言 Flask是一个轻量级的Web应用框架,它被广泛用于快速开发简单的网站和复杂的大型应用。随着项目规模的增长,合理的项目架构变得尤为重要。这里探讨Flask项目中的三种常见架构&…...
AI机西使用体验:你不知道的强大功能揭秘!
AI机西有人用过吗?用户体验和功能详解 最近我听说了很多关于AI机西的讨论,很多人都在问:这款工具好用吗?有没有人用过?今天我就从我的使用体验出发,给大家分享一下AI机西的功能和我的感受。 1. 绘画功能&a…...
什么是护网(HVV)需要什么技术?(内附护网超全资料包)
文章目录 一、什么是护网行动?二、护网分类三、护网的时间四、护网的影响五、护网的规则六、什么是红队? 6.1、红队测试的意义 七、什么是蓝队 一、什么是护网行动? 护网行动是以公安部牵头的,用以评估企事业单位的网络安全的…...
opencv优秀文章集合
文章目录 一、 CV领域1.1 图像处理1.2 目标检测与识别1.3 图像分割、目标追踪1.4 姿态估计1.5 3D视觉1.6 图像生成1.7 机器视觉1.8 其它 二、 nlp三、语音四、推荐系统 《OpenCV优秀文章集合》《OpenCV系列课程一:图像处理入门(读写、拆分合并、变换、注…...
php处理文件上传的五种方式
dd($_FILES); //方式一 if(!empty($_FILES[file])){ //获取文件后缀方式一 //strrchr()函数查找字符在指定字符串中从右面开始的第一次出现的位置, //如果成功,返回该字符以及其后面的字符…...
C#与C++交互开发系列(十一):委托和函数指针传递
前言 在C#与C的互操作中,委托(delegate)和函数指针的传递是一个复杂但非常强大的功能。这可以实现从C回调C#方法,或者在C#中调用C函数指针的能力。无论是跨语言调用回调函数,还是在多线程、异步任务中使用委托&#x…...
【window】补充一些powershell基本命令
刚才说了一下如何用powershell管理,下边是一些常见的 PowerShell 命令及其参数的示例,补充给大家: 1. 获取帮助 Get-Help:获取命令的帮助信息。 Get-Help Get-Process Get-Help Get-Process -Examples Get-Help Get-Process -Fu…...
精准触达用户,私域三步法!
发现没?现在很多人都开始利用私域来增加潜在的客户,维护现有客户。而在私域管理中,精准触达用户是非常重要的一环。 接下来,就和大家聊聊私域精准触达用户的三个方法,让你可以实现精准营销。 1、数据分析与用户画像构…...
Tcl脚本介绍(一)
芯冰乐知识星球入口:芯冰乐 TCL就是Tool Command Language的简称,广泛应用在各大eda工具中。 EDA工具能够高度自动化的运行得益于TCL。 用户在编写完相关的tcl脚本后,让eda工具自动运行,便能够很大程度地解放双手了。 其实,网络上介绍TCL脚本的课程层出不穷了。应很多粉…...
安全运营 -- 监控linux命令history
0x00 背景 最近,有个IT的同事给我提了一个需求,说想监控/root/.ssh/ 文件夹下的文件变动,于是我灵机一动,这个需求只要对执行过的历史命令做审计就可以了。 0x01 实践 我实现这个功能使用 rsyslog 和 firewalld 两个组件。 我的…...
MyBatis3(动态SQL 常用的动态SQL 元素 映射器注解 基本注解 结果映射注解)
动态SQL 什么是MyBatis的动态SQL? **定义:**根据不同的条件拼接SQL语句,实现对数据库更准确的操作; **实现:**映射器配置文件或者注解 常用的动态SQL元素 if 元素:判断语句,单条件分 支判断…...
C#自定义事件的案例
方法一,详细的声明 namespace HelloWorldConsole {internal class Program{static void Main(string[] args){Customer customer new Customer();Waiter waiter new Waiter();customer.Order waiter.Action;customer.Action();}}public class OrderEventArgs : …...
flume系列之:flume机器做条带划分提高磁盘性能和吞吐量的详细步骤
flume系列之:flume机器做条带划分提高磁盘性能和吞吐量的详细步骤 磁盘条带划分新磁盘直接条带划分步骤有数据的磁盘做条带划分步骤磁盘条带划分 磁盘条带划分是将一个文件或数据块分散存储在多个物理磁盘上的技术。它可以提高磁盘的性能和吞吐量。以下是磁盘做了条带划分后可…...
C++基于opencv的视频质量检测--图像清晰度检测
文章目录 0.引言1. 原始算法实现2. 优化思路3. 优化后的代码4. 代码详细解读 0.引言 视频质量图像清晰度检测已在C基于opencv4的视频质量检测中有所介绍,本文将详细介绍其优化版本。 1. 原始算法实现 原始代码: double sharpnessDetect(const cv::Ma…...
力扣11.1
2518. 好分区的数目 给你一个正整数数组 nums 和一个整数 k 。 分区 的定义是:将数组划分成两个有序的 组 ,并满足每个元素 恰好 存在于 某一个 组中。如果分区中每个组的元素和都大于等于 k ,则认为分区是一个好分区。 返回 不同 的好分区…...
打印室预约系统|基于java和小程序的打印室预约系统设计与实现(源码+数据库+文档)
打印室预约系统 目录 基于java和小程序的打印室预约系统设计与实现 一、前言 二、系统设计 三、系统功能设计 四、数据库设计 五、核心代码 六、论文参考 七、最新计算机毕设选题推荐 八、源码获取: 博主介绍:✌️大厂码农|毕设布道师&#x…...
操作系统-多线程案例
一、单例模式(是一种设计模式) 设计模式有很多种,不同的语法中也有不同的设计模式 单例 单个实例(对象) 某个类,在一个进程中,只应该创建出一个实例,(原则上不该有多个ÿ…...
基于MATLAB的齿轮系统非线性动力学特性分析:参数阻尼比变化调节下的输出结果
基于matlab的齿轮系统非线性动力学特性分析 基于matlab的齿轮系统非线性动力学特性分析,综合考虑齿侧间隙、时变啮合刚度、综合啮合误差等因素下,参数阻尼比变化调节下,输出位移、相图、载荷、频率幅值结果 程序已调通,可直接运行…...
解锁3大高效创作模式:无需安装的在线演示神器全解析
解锁3大高效创作模式:无需安装的在线演示神器全解析 【免费下载链接】PPTist PowerPoint-ist(/pauəpɔintist/), An online presentation application that replicates most of the commonly used features of MS PowerPoint, allowing for …...
TMSpeech终极指南:如何在Windows上实现零延迟的本地语音实时转文字,彻底告别会议记录焦虑
TMSpeech终极指南:如何在Windows上实现零延迟的本地语音实时转文字,彻底告别会议记录焦虑 【免费下载链接】TMSpeech 腾讯会议摸鱼工具 项目地址: https://gitcode.com/gh_mirrors/tm/TMSpeech 想象一下,当你在重要的视频会议中&#…...
暗黑破坏神2存档全功能解决方案:d2s-editor高效修改与管理指南
暗黑破坏神2存档全功能解决方案:d2s-editor高效修改与管理指南 【免费下载链接】d2s-editor 项目地址: https://gitcode.com/gh_mirrors/d2/d2s-editor d2s-editor是一款专为《暗黑破坏神2》玩家设计的开源存档编辑工具,提供d2s格式(…...
避坑指南:Volcano负载感知重调度实战,解决K8s节点负载不均问题
Volcano负载感知重调度实战:解决Kubernetes节点资源冷热不均的终极方案 凌晨三点,告警铃声刺破运维室的宁静——某电商大促期间,Kubernetes集群中三个节点CPU飙升至95%,而其他节点利用率不足20%。这种典型的"热点"现象不…...
GLM-4.1V-9B-Base效果展示:低光照/模糊图像中的主体鲁棒识别实例
GLM-4.1V-9B-Base效果展示:低光照/模糊图像中的主体鲁棒识别实例 1. 模型能力概览 GLM-4.1V-9B-Base是智谱开源的视觉多模态理解模型,专为复杂视觉场景设计。这个模型最令人印象深刻的能力之一,就是在低光照、模糊等恶劣图像条件下依然能准…...
OpenClaw技能扩展:安装Qwen3-4B专用插件实现代码生成
OpenClaw技能扩展:安装Qwen3-4B专用插件实现代码生成 1. 为什么需要Qwen3-4B专用技能 作为一个长期与代码打交道的开发者,我一直在寻找能够提升编码效率的工具。当我第一次接触OpenClaw时,最吸引我的不是它的基础自动化能力,而是…...
快速验证dify部署方案:用快马生成环境检查与部署脚本原型
最近在折腾dify的本地部署,发现环境配置这块特别容易踩坑。作为一个开源AI应用开发平台,dify的部署涉及Python版本、Docker环境、端口占用等一系列依赖项检查,手动操作既繁琐又容易遗漏步骤。正好发现InsCode(快马)平台能快速生成这类工具的原…...
Qwen3.5-9B效果展示:中文新闻事件抽取+时间线生成+关联人物图谱
Qwen3.5-9B效果展示:中文新闻事件抽取时间线生成关联人物图谱 1. 模型核心能力概览 Qwen3.5-9B是一款拥有90亿参数的开源大语言模型,在中文处理和多模态理解方面展现出卓越能力。这个模型特别适合处理复杂的文本分析任务,能够从海量信息中提…...
Python医学影像处理实战:5分钟搞定NII/NRRD/DICOM格式互转(附完整代码)
Python医学影像格式转换实战:NII/NRRD/DICOM互转与可视化技巧 医学影像处理是医疗AI和临床研究的基础环节,而格式转换往往是数据处理流程中的第一个技术门槛。本文将带您快速掌握Python环境下NII、NRRD、DICOM三大主流医学影像格式的互转技巧,…...
