2 个回答
使用时间旅行功能
1、根据快照id或者时间查询数据
1、根据快照id或者时间查询数据
-- 读取ID为1的快照
SELECT*FROM t /*+ OPTIONS('scan.snapshot - id' = '1') */;
-- 从指定的Unix毫秒时间戳读取快照
SELECT*FROM t /*+ OPTIONS('scan.timestamp - millis' = '1678883047356') */;
-- 从指定的时间戳字符串读取快照,会自动转换为Unix毫秒时间戳
-- 支持的格式包括:yyyy - MM - dd, yyyy - MM - dd HH:mm:ss, yyyy - MM - dd HH:mm:ss.SSS,使用默认本地时区
SELECT*FROM t /*+ OPTIONS('scan.timestamp' = '2023 - 12 - 09 23:09:12') */;
-- 从watermark读取快照,将匹配watermark之后的第一个快照
SELECT*FROM t /*+ OPTIONS('scan.watermark' = '1678883047356') */;
-- 从某一个Tag读取数据
SELECT*FROM t /*+ OPTIONS('scan.tag - name' = 'my - tag') */;
2、查询对应分区表的数据-- 从快照ID 1L读取更改
SELECT*FROM your_table WHERE.../* 结合时间条件 */
发布于:21小时前 IP属地:四川省
使用tag标签功能关联,具体步骤如下:
1、创建tag
用户可以为指定的快照创建Tag。Tag会保留该快照的所有数据文件和元数据,确保历史数据可查询。示例
如果昨天的快照还未过期,我们可以为昨天对应的快照创建Tag。首先,需要确定昨天快照的ID。可以通过系统表或者日志信息来查找。假设我们已经确定了昨天快照的ID为 yesterday_snapshot_id,则可以使用以下语句创建Tag:
1、创建tag
用户可以为指定的快照创建Tag。Tag会保留该快照的所有数据文件和元数据,确保历史数据可查询。示例
CALL sys.create_tag('default.T','my_tag',10,'1 d')
2、关联昨天的数据如果昨天的快照还未过期,我们可以为昨天对应的快照创建Tag。首先,需要确定昨天快照的ID。可以通过系统表或者日志信息来查找。假设我们已经确定了昨天快照的ID为 yesterday_snapshot_id,则可以使用以下语句创建Tag:
CALL sys.create_tag('your_database.your_table','yesterday_tag', yesterday_snapshot_id,'1 d')
这样,我们就为昨天的快照创建了一个名为 yesterday_tag 的标签,后续可以通过这个标签来查询昨天的数据。发布于:21小时前 IP属地:四川省
我来回答
您需要 登录 后回答此问题!