-- create stream of unpaid orders:
CREATE STREAM UNPAID AS
SELECT * FROM ORDERS
LEFT JOIN PAYMENTS WITHIN 30 MINUTES ON ORDERS.ORDERID = PAYMENTS.ORDERID
WHERE PAYMENTS.ORDERID IS NULL;
第二个例子,如果我理解正确的话,可能会更棘手。您可以轻松地构建用户表,包括用户的订阅何时结束。但是,这还不足以满足您需要的“到期前3天”。问题是 NOW 您所说的自定义项仅在处理数据时执行,而不是在挂钟时间变化时执行。您需要的是另一种方法来提示ksqldb重新计算表达式。 我认为这在ksqldb中是不可能的,至少在它支持非键联接之前是不可能的。
1条答案
按热度按时间mec1mxoz1#
我认为您提出的解决方案不会像您预期的那样起作用,因为流数据会尽快得到处理。结果不会随着时间的推移而重新计算。
然而,你可以通过其他方式实现你想要的。
举一个例子,如果没有收到付款,就想在30分钟后自动关闭订单。这可以通过在30分钟内将订单流与支付流连接起来,然后通过支付过滤掉任何结果来实现。这会给您一系列未付订单:
第二个例子,如果我理解正确的话,可能会更棘手。您可以轻松地构建用户表,包括用户的订阅何时结束。但是,这还不足以满足您需要的“到期前3天”。问题是
NOW
您所说的自定义项仅在处理数据时执行,而不是在挂钟时间变化时执行。您需要的是另一种方法来提示ksqldb重新计算表达式。我认为这在ksqldb中是不可能的,至少在它支持非键联接之前是不可能的。