首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Flink SQL凭空创建了一些东西

Flink SQL凭空创建了一些东西
EN

Stack Overflow用户
提问于 2021-03-27 08:40:42
回答 2查看 329关注 0票数 1

早些时候,我问Flink是否可以白手起家,答案是肯定的。现在,我将更多地研究Flink SQL的功能。

在SQL中,这种类型的挑战有时很容易(例如,SELECT 1在常规引擎(如MySQL)中工作),但有时也是不可能的,例如Apache Pig不能白手起家。

对于Flink SQL,我不太确定,当然,如果您想要运行一个快速测试或构建一个可移植的示例,那么它可以消除对其他解决方案的任何硬依赖。

为了简单起见:假设我希望每秒至少生成一条消息,并且不介意里面是什么。

我的第一个想法是:

  • 一个简单的select语句不会起到这个作用,因为当没有选择时,您不会得到任何输出。
  • 从概念上讲,时间窗口上的计数(*)可以工作,但我还没有让它正常工作。也许这是一个特性,如果没有任何可计数的输出,则输出将为零(而不是0)。

除了窗口之外,我在Flink SQL中看不到有时间概念的任何东西,因此在外部,我怀疑这是不可能的。

我不是在找什么:

  • 从一条信息开始,然后用它制造更多信息。假设我有一个kafka主题,并且有一条消息进入,那么继续循环它并创建无限消息可能是微不足道的。但我的问题更多的是当卡夫卡空的时候如何开始。
  • 不是SQL的Flink代码,甚至不是其他工具。
EN

回答 2

Stack Overflow用户

发布于 2021-03-27 10:55:39

比datagen连接器更好的是弗林克Flink SQL Cookbook中使用了许多示例。我想你会发现这些例子特别有趣。

Flink对事件时间和系统时间(包括水印 )都有强大的支持。例如,Flink SQL使用水印来确定在处理流事件时间窗口和间隔联接时哪些记录可以从Flink状态过期。

有关利用时间的其他Flink SQL操作,请参见时间版本表模式检测时态连接基于时间的查找联接

票数 4
EN

Stack Overflow用户

发布于 2021-03-27 09:14:37

您可能会发现“datagen”连接器对此很有用。

https://ci.apache.org/projects/flink/flink-docs-release-1.12/dev/table/connectors/datagen.html

例如:

代码语言:javascript
复制
CREATE TABLE Orders (
order_number BIGINT,
price        DECIMAL(32,2),
buyer        ROW<first_name STRING, last_name STRING>,
order_time   TIMESTAMP(3)
) WITH (
  'connector' = 'datagen'
)
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66829453

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档