Cloudera的流分析中除了包括Flink,还包括SQL Stream Builder创建对数据流的连续查询。我们在该系列的第一部分介绍了《Cloudera中的流分析概览》,今天我们来快速浏览一下SQL Stream Builder的概览。
SQL Stream Builder简介
Cloudera Streaming Analytics提供SQL Stream Builder作为服务,以使用Streaming SQL创建对数据流的连续查询。
SQL Stream Builder(SSB)是用于使用SQL创建有状态流处理作业的综合界面。通过使用SQL,您可以简单、轻松地声明对数据流进行过滤、聚合、路由和变异的表达式。SSB是作业管理界面,用于在流上编写和执行Continuous SQL,以及为结果创建持久的数据API。
SSB以交互方式运行,您可以在其中快速查看查询结果并迭代SQL语法。执行的SQL查询在Flink群集上作为作业运行,对无限的数据流进行操作,直到被取消。由于每个SQL查询都是Flink作业,因此您可以在SSB内创作,启动和监视流处理作业。
什么是连续SQL?
连续SQL使用结构化查询语言(SQL)来针对无限制的数据流创建计算,并在持久性存储中显示结果。可以将存储在持久性存储中的结果连接到其他应用程序,以对数据进行分析可视化。与传统SQL相比,连续SQL中的数据有一个开始,但没有结束。这意味着查询将结果连续处理为接收器或其他目标类型。当您在SQL中定义作业时,将根据模式解释和验证SQL语句。执行该语句后,将连续返回符合条件的结果。
SSB的主要功能
Cloudera中的SQL Stream Builder(SSB)支持与Flink、Kafka作为虚拟表接收器和源的现成集成。为了与Business Intelligence工具集成,您可以创建实例化视图。
与Flink集成
通过Flink的集成,您可以使用和提交Flink作业,而无需使用Java,因为SSB会在后台自动构建并运行Flink作业。
流式SQL控制台
SSB带有一个用户界面,使您可以在一个地方轻松创建和管理SQL作业。
虚拟表
SSB使用您在SQL查询中指定的内容处理从源到接收器的数据。您也可以在网络浏览器中显示结果。创建源或接收器后,可以为其分配虚拟表名称。该虚拟表名称用于寻址FROM查询中的表(源),并在界面中指定目标(接收器)。这使您可以针对流创建功能强大的聚合,过滤器或任何其他SQL表达式。
物化视图
SSB能够将流SQL查询的结果具体化为可通过REST读取的数据的持久视图。应用程序可以使用这种机制来查询数据流,而无需部署数据库系统。物化视图内置在SQL Stream Builder服务中,不需要进行配置或维护。物化视图就像一种特殊的接收器,甚至可以代替接收器使用。
检测架构
SSB能够读取主题中的消息,识别消息的数据结构并将模式采样到UI。当您不使用架构注册表时,此功能很有用。
输入转换
如果您不知道传入的数据结构或从传感器收集原始数据,则可以在查询之前使用“输入变换”来清理和组织它。
用户定义功能
您可以使用“用户定义的函数”来创建自定义的复杂SQL查询,以丰富数据,在其上应用计算或业务逻辑。
SQL Stream Builder架构
SBB服务集成在连接到Flink及其服务的Cloudera平台上:YARN、Kafka和Schema Registry。SQL Stream Builder的用户交互的主要点是控制台组件。使用UI提交查询时,将在集群上创建Flink作业。通过Schema Registry下载与查询相对应的架构。Flink作业提交也填充了Kafka主题。您可以使用YARN资源管理器或Flink仪表板监视和管理Flink作业。
SSB由以下主要组件组成:
- SQL流引擎
- 流式SQL控制台
- 物化视图引擎
SQL Stream Builder的用户交互的主要点是控制台组件。使用Streaming SQL Console提交查询时,将在群集的后台自动创建Flink作业。SSB还需要在同一群集上提供Kafka服务。此强制性的Kafka服务用于自动填充Websocket输出的主题。如果没有虚拟表接收器添加到SQL查询,则需要websocket输出将数据采样到控制台。
提交物化视图查询时,Flink会将数据生成到物化视图数据库,物化视图引擎从该数据库中查询所需数据。流SQL控制台和实例化视图需要存储SQL作业的元数据的数据库,实例化视图引擎从中查询数据以创建视图。SSB支持MySQL / MariaDB和PostgreSQL作为数据库。对于Streaming SQL Console,可以选择MySQL / MariaDB或PostgreSQL。但是,必须安装PostgreSQL才能创建实例化视图。
原文链接:https://docs.cloudera.com/csa/1.3.0/ssb-overview/topics/csa-ssb-intro.html