【发布时间】:2021-02-24 03:40:52
【问题描述】:
如何使用 ksqldb REST API 接收 tombstone 值?
表格示例:
CREATE TABLE movies (
title VARCHAR PRIMARY KEY,
id INT,
release_year INT
) WITH (
KAFKA_TOPIC='movies',
PARTITIONS=1,
VALUE_FORMAT = 'JSON'
);
INSERT INTO MOVIES (ID, TITLE, RELEASE_YEAR) VALUES (48, 'Aliens', 1986);
罗宾。 M.posted a workaround 如何将墓碑值插入到表中。
以下通过 REST API 的 ksql 查询没有收到那些“已删除”的值:
POST /query HTTP/1.1
Accept: application/vnd.ksql.v1+json
Content-Type: application/vnd.ksql.v1+json
{"ksql":"SELECT * FROM Movies EMIT CHANGES;","streamsProperties":{"ksql.streams.auto.offset.reset":"earliest"}}
收到的行插入示例:
[{"header":{"queryId":"none","schema":"`TITLE` STRING, `ID` INTEGER, `RELEASE_YEAR` INTEGER"}},
{"row":{"columns":["Die Hard",2,1998]}},
插入 tombstone 值后预期的 response 是具有布尔 row.tombstone 属性的行:
{"row":{"columns":["Die Hard",null,null],"tombstone":true}}
该值不会发送给客户端。这是一个错误还是我做错了什么?如果可以接收这些值,我可以对 /query-stream API 做同样的事情吗?
【问题讨论】:
标签: ksqldb