我在"锡拉"中有一张表
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。不过,它可以进行逆向工程:
- stream_id是一个由16个字节组成的blob。前8个字节是分配给该流的令牌的值
- 与此令牌位于同一vnode和shard中的所有分区键都属于此流