Loading
0

Cloudera资讯|在Cloudera流分析中引入FlinkSQL

由Apache Flink提供支持的Cloudera Streaming Analytics的1.2.0.0版本提供了广泛的新功能,包括通过Apache Atlas支持沿袭和元数据跟踪,支持连接到Apache Kudu以及期待已久的FlinkSQL API的第一次迭代。

Flink的SQL接口使流处理民主化,因为它可以迎合比当前广泛使用的Java和Scala API(面向数据工程人群)更大的社区。将SQL推广到流处理和流分析用例提出了一系列挑战:必须解决表达无限流和记录的及时性的问题。可以考虑以下查询:

该查询产生每个用户会话的点击计数,该计数由会话之间30分钟的不活动状态定义,并在遇到新会话时实时更新。这是在流处理中已经很好建立的概念的示例,在这种情况下,会话窗口被引入到SQL语法中以表示记录的及时性。 重要的是要强调Flink支持的语法是ANSI SQL,它不是特定的方言。实际上,Flink社区正在与Apache Beam和Apache Calcite社区合作,以统一的方式应对FlinkSQL的挑战。

转变流媒体组织

从上述查询来看,很明显,更大的用户群可以有效地制定查询,从而为企业增加价值。但是,它给组织带来了以下问题:

  • 在流域中可以用SQL制定多少业务逻辑?
  • 这如何改变从开发到生产的流式作业旅程?
  • 这如何影响数据工程团队的范围?

今天编写的大多数流查询都可以通过FlinkSQL表示,以提供有根据的猜测,希望它能达到今天遇到的流查询的80%左右,这很适合通过此SQL API实施。可能你会觉得夸大其词,后面我们会向你一一介绍实现的过程。

当前,Cloudera经常遇到使用Flink的组织,其中近实时地获得业务价值是数据工程师的特权。数据分析人员通常是特定领域知识的专家,他们倾向于使用标准MPP或OLAP系统中存储的这些流的快照,例如通过Apache Impala查询存储在Kudu中的数据。这从本质上在寻找见解与以流化方式对其进行生产化之间引入了差距。分析师在证明其假设之后,必须与几个数据工程师确保数周甚至数月的项目资金投入,以细致地重新实现已经用另一种语言(通常是SQL)制定的业务逻辑。 FlinkSQL使分析人员可以直接与流进行交互,并单击按钮即可部署流作业。

反过来,这使数据工程师可以将精力集中在具有挑战性的20%的查询上,并建立可重用的特定于域的库,这些库可以直接从SQL中用作一组用户定义的函数来利用。

FlinkSQL功能

为了展示FlinkSQL的功能,最近Cloudera在标准教程套件下发布了一个SQL教程。这里重点介绍一些功能。

这个教程主要针对Apache Kafka主题进行操作,其中包含JSON格式的项目交易。首先,可以为此定义一个表模式,并指定我们要测量timestamp列记录的时间流逝(称为事件时间语义)。

请注意,在使用事件时间语义时,必须指定水印以为Flink提供启发式方法以测量事件时间的经过。这可以是返回时间戳的任意表达式。在较高级别上,水印指定了正确性(无限期等待潜在的延迟到达)和延迟(尽可能快地产生结果)之间的折衷。

创建上表后,可以提交以下查询:

第一个查询提供了直接的采样。使用limit子句是可选的,省略会导致结果以流方式不断更新。第二个查询实现一个简单的窗口聚合。这些查询的结果可以返回到交互式Flink SQL cli,或者可以通过INSERT INTO语句直接写入输出表。

FlinkSQL还提供了更复杂的子句,例如,可以按如下公式查找在每10分钟的窗口中查找交易次数最多的前3个项目:

除了这些内置语言元素之外,您还可以将Java和Scala中实现的功能注册到FlinkSQL环境中。FlinkSQL还支持访问外部目录以访问存储在外部系统中的架构和数据,当前,Cloudera支持Hive,Kudu和Schema注册表目录。

下一步

在当前版本中,提交SQL查询的两个选项是使用SQL CLI或将它们包装到Java程序中。正如Cloudera在Flink Forward San Francisco上最近的主题演讲中所讨论的,他们正在积极地致力于图形用户界面,以帮助进行交互式查询编辑。

在添加GUI之后,Cloudera将在短期内公开其针对第三方工具的编程后端,以公开与FlinkSQL等效的JDBC接口,该接口很有可能基于REST和Kafka构建。

Cloudera试用和报价

关于Cloudera

在 Cloudera,我们相信数据可以使今天的不可能,在明天成为可能。我们使人们能够将复杂的数据转换为清晰而可行的洞察力。Cloudera 为任何地方的任何数据从边缘到人工智能提供企业数据云平台服务。在开源社区不懈创新的支持下,Cloudera推动了全球最大型企业的数字化转型历程。

慧都大数据专业团队为企业提供Cloudera大数据平台搭建,免费业务咨询,定制开发等完整服务,快速、轻松、低成本将任何Hadoop集群从试用阶段转移到生产阶段。