写点什么

Flink 生态提供的其它工具 (十一)

发布于: 1 小时前
Flink生态提供的其它工具(十一)

写在前面:

大家好,我是强哥,一个热爱分享的技术狂。目前已有 12 年大数据与 AI 相关项目经验, 10 年推荐系统研究及实践经验。平时喜欢读书、暴走和写作。

业余时间专注于输出大数据、AI 等相关文章,目前已经输出了 40 万字的推荐系统系列精品文章,强哥的畅销书「构建企业级推荐系统:算法、工程实现与案例分析」已经出版,需要提升可以私信我呀。如果这些文章能够帮助你快速入门,实现职场升职加薪,我将不胜欢喜。

想要获得更多免费学习资料或内推信息,一定要看到文章最后喔。

内推信息

如果你正在看相关的招聘信息,请加我微信:liuq4360,我这里有很多内推资源等着你,欢迎投递简历。

免费学习资料

如果你想获得更多免费的学习资料,请关注同名公众号【数据与智能】,输入“资料”即可!

学习交流群

如果你想找到组织,和大家一起学习成长,交流经验,也可以加入我们的学习成长群。群里有老司机带你飞,另有小哥哥、小姐姐等你来勾搭!加小姐姐微信:epsila,她会带你入群。


这是一段漫长的旅程,你已经完成了这本书!但是你的 Flink 之旅才刚刚开始,本章将指出你可以从这里采取的可能途径。 我们将为你简要介绍本书中未包含的其他 Flink 功能,并为你提供一些指向更多 Flink 资源的提示。 Flink 周围有一个充满活力的社区,我们鼓励你与其他用户建立联系、开始贡献或了解公司正在使用 Flink 构建哪些内容来帮助激发你自己的工作。

 

Flink 生态的其他组成部分

虽然本书特别关注流处理,但 Flink 实际上是一个通用的分布式数据处理框架,也可以用于其他类型的数据分析。 此外,Flink 为关系查询、复杂事件处理 (CEP) 和图形处理提供了特定领域的库和 API。

 

用于批处理的 DataSet API

Flink 是一个成熟的批处理程序,可用于实现需要对有界输入数据进行一次性或定期查询的用例。 DataSet 程序被指定为一系列转换,就像 DataStream 程序一样,区别在于 DataSet 是一个有界数据集合。 DataSet API 提供运算符来执行过滤、映射、选择、连接和分组,以及从外部系统(例如文件系统和数据库)读取和写入数据集的连接器。 使用 DataSet API,你还可以定义迭代 Flink 程序,这些程序执行固定步数或直到满足收敛标准的循环函数。

 

批处理作业在内部表示为数据流程序,并在与流作业相同的底层执行运行时上运行。目前,这两个 API 使用单独的执行环境,不能混合使用。 但是,Flink 社区已经在致力于将两者统一起来,并且在同一程序中提供单一 API 来分析有界和无界数据流是 Flink 未来路线图中的优先事项。

 

用于关系型分析的 Table API 及 SQL

尽管底层的 DataStream 和 DataSet API 是分开的,但你可以使用其更高级别的关系 API:Table API 和 SQL,在 Flink 中实现统一的流和批处理分析。

Table API 是 Scala 和 Java 的语言集成查询 (LINQ) API。 无需修改即可为批处理或流分析执行查询。 它提供了常见的运算符来编写关系查询,包括选择、投影、聚合和连接,并进一步具有自动完成和语法验证的 IDE 支持。

 

Flink SQL 遵循 ANSI SQL 标准,并利用 Apache Calcite 进行查询解析和优化。 Flink 为批处理和流式查询提供了统一的语法和语义。 由于对用户定义函数的广泛支持,SQL 可以涵盖各种各样的用例。 你可以将 SQL 查询嵌入到常规的 Flink DataSet 和 DataStream 程序中,或者使用 SQL CLI 客户端直接将 SQL 查询提交到 Flink 集群。 CLI 客户端允许你在命令行中检索和可视化查询结果,这使其成为尝试和调试 Flink SQL 查询或对流、批处理数据运行探索性查询的绝佳工具。 此外,你可以使用 CLI 客户端提交分离的查询,这些查询将结果直接写入外部存储系统。

 

用于复杂事件处理和模式匹配的 FlinkCEP

FlinkCEP 是一个用于复杂事件模式检测的高级 API 和库。 它在 DataStream API 之上实现,并允许你指定要在流中检测的模式。 常见的 CEP 用例包括金融应用程序、欺诈检测、复杂系统中的监控和警报,以及检测网络入侵或可疑用户行为。

 

用于图计算的 Gelly

Gelly 是 Flink 的图形处理 API 和库。 它建立在 DataSet API 和 Flink 对高效批处理迭代的支持之上。 Gelly 在 Java 和 Scala 中都提供了高级编程抽象,以执行图转换、聚合和迭代处理,例如以顶点为中心和 gather-sum-apply。 它还包括一组随时可用的常用图形算法。

 

Flink 的高级 API 和接口相互之间以及与 DataStream 和 DataSet API 很好地集成在一起,因此你可以轻松地将它们混合在同一程序中,在库和 API 之间切换。 例如,你可以使用 CEP 库从 DataStream 中提取模式,然后使用 SQL 分析提取的模式,或者你可以使用 Table API 在使用 Gelly 库中的图形算法分析它们之前将表过滤并投影到图形中。

 

欢迎加入社区

Apache Flink 拥有一个不断增长且受欢迎的社区,社区的贡献者和用户遍布世界各地。 这里有一些资源,你可以用来提问、参加 Flink 相关的活动,以及了解人们使用 Flink 的目的。

 

发布于: 1 小时前阅读数: 5
用户头像

还未添加个人签名 2018.05.14 加入

公众号【数据与智能】主理人,个人微信:liuq4360 12 年大数据与 AI相关项目经验, 10 年推荐系统研究及实践经验,目前已经输出了40万字的推荐系统系列精品文章,并有新书即将出版。

评论

发布
暂无评论
Flink生态提供的其它工具(十一)