如何获取"锡拉"中特定分区密钥的流ID



我在"锡拉"中有一张表

CREATE TABLE event (
eventSource TEXT,        
createdAt TIMEUUID,
eventData TEXT,
PRIMARY KEY (eventSource, createdAt)
) WITH cdc = {'enabled':true};

现在,我希望使用CDC跟踪对该表执行的特定分区密钥的插入/更新

我知道CDC中的流ID取决于生成和基表分区键,但我如何获得流ID而不对CDC表进行完整的表扫描?

是否有一些函数可以将给定的分区键转换为当前活动生成的流id?

这里都有相关文档。

简而言之,有一个特殊的表,它存储不同世代的所有流。

你可以这样查询:

SELECT streams FROM system_distributed.cdc_description WHERE time = '2020-03-25 16:05:29.484+0000';

没有简单的方法可以为partition_key找到stream_id。不过,它可以进行逆向工程:

  1. stream_id是一个由16个字节组成的blob。前8个字节是分配给该流的令牌的值
  2. 与此令牌位于同一vnode和shard中的所有分区键都属于此流

最新更新