使Aiven可以提供更好的Apache Flink®体验之旅
艾文为实现更好的Apache Flink®体验而踏上的旅程。
2023年3月2日 is paraphrased as “二零二三年三月二日” or “二零二三年三月第二日” in Chinese.
让您体验更好的Apache Flink®之旅,Aiven助您实现。
SQL、集成、自动完成、数据预览等等,Aiven会给您的Apache Flink®工作流带来好处。
每个公司的核心都有两个要素:数据和转换流程。聚合、过滤、屏蔽……需要很多步骤才能将原始输入转化为有价值的数据资产。
Aiven for Apache Flink®通过提供SQL接口,在托管的数据上定义流式和批处理数据转换流水线,满足了在多种技术上进行的数据主机(如Apache Kafka®,PostgreSQL®,OpenSearch®)的需求。
自从Aiven for Apache Flink的初始Beta版本发布以来,发生了许多事情。我们现在提供针对Apache Flink的全托管服务,并且从中学到了很多关于Flink的使用方式、稳定性和生命周期管理的知识!
我与Aiven的数据流服务主任Filip Yonov先生进行了对话,讨论了迄今为止的进程以及Aiven for Apache Flink的下一步发展方向。
自起源至今日,Aiven for Apache Flink的故事。
Aiven不只提供数据管道,还是一家数据公司,采用了开源技术供内部使用。我们不仅是一家数据公司,也采用开源技术来满足内部需求。当工具经过充分的经验和信任积累后,我们有将其打包并作为服务向我们的客户提供的选项。这一切始于PostgreSQL。PostgreSQL首先解决了我们的数据库需求,然后成为最广泛传播的数据解决方案之一。这个过程在Apache Kafka中也有所体现。我们使用Apache Kafka在流模式下跨技术提供数据。
当我们面临数据转换的需求时,我们寻找了一种能够统一技术间数据传输通道定义的工具。我们需要以几乎实时的方式操作Apache Kafka,并提供及时的分析和通知。Apache Flink在跨越各种后端技术的情况下能够定义通道,因此它被视为该领域的明确领导者。此外,Apache Flink还具备全面的SQL功能集、弹性和可扩展的架构,以及独特而合作的社区,使其成为对于关键性的生产工作负载来说可靠的选择。
自从Aiven for Apache Flink beta版初次发布以来,我们收到了来自客户和内部人员的宝贵反馈,从中受益并改善了服务和开发者体验。下面的段落将详细介绍最近的改进内容。
Apache Flink SQL在抽象化层上
最初的Aiven for Apache Flink产品提供了对Apache Flink SQL客户端的直接映射:您可以定义表(数据源和接收器)和作业(转换流水线)。然而,随着时间的推移,结构定义的演变可能会导致技术上的误解,尽管它反映了SQL客户端的发展过程。
在运行中的Apache Flink作业中,包含了在部署时定义的源、目标、以及转换SQL。然而,如果源或目标表的定义发生了更改,作业在停止并重新启动之前无法识别这些更新。这个微小的差异可能意味着在Aiven for Apache Flink的初始版本中保存的元数据定义与集群上运行的定义不同步,甚至可能在作业重新启动时导致混乱和错误。
我们通过添加应用程序的定义来解决了这个问题。
-
- ソース・テーブルとシンク・テーブルの定義
-
- SQL変換定義
- デプロイメント・パラメーター
通过在应用层级进行操作,可以随时了解当前定义的状态。
此外,Aiven现已添加了版本管理系统。此系统可实现版本之间的导航,功能增强的跟踪,新功能的探索,并且还能够对外观异常进行变更的回滚操作。
更流畅的管线定义
编写Flink的SQL并不容易。定义表格、整合、元数据参数有时会成为头痛的问题。在这里,我们将介绍Aiven for Apache Flink如何增强管道定义。
-
- 統合の簡素化**:データソースやシンクとの統合、ネットワーク、SSL証明書の難しさは忘れてください。Aiven Consoleで統合を作成し、数回クリックするだけで、Aiven for Apache Kafka、Aiven for PostgreSQL®、Aiven for OpenSearch®から読み取り、Aiven for OpenSearch®に書き込むことができます。
-
- Pure table SQL definition: テーブル定義の以前の反復では、カラム定義(つまり、どのカラムがテーブルに含まれるか)とメタデータ構文(つまり、どのコネクター、トピック、コンシューマーグループを使用するか)を分離しました。しかし、ユーザーからのフィードバックに基づき、これはエクスペリエンスに追加的な利点をもたらさないことに気づきました。そこで、テーブル定義を純粋な SQL に戻し、Apache Flink SQL Client と完全に互換性を持たせました。
-
- SQLオートコンプリート**:完全なテーブルと変換定義の両方がSQLになっているため、開発者が作業を迅速に進めることができるオートコンプリート機能を追加しました。
-
- 新しいパイプライン・プレビュー機能により、テーブル定義が正しいデータを取得し、SQL 変換が正しい操作を実行することを、ターゲット環境にレコードを 1 つもプッシュすることなく確認できます。対話型クエリにより、テーブル定義や変換 SQL の出力を Aiven コンソールで直接確認できます。
- 改善された**OpenSearchとSlackコネクタ**:データはPostgreSQLとApache Kafkaだけに存在するわけではありません。接続オプションのセットを強化することで、データパイプラインの結果をOpenSearchインデックスに直接ストリーミングしたり、Slackメッセージングツールで人々に通知したりできるようになりました。
更快速的定义、再利用、重复性方法
仅仅解决模糊性并不是Aiven for Apache Flink的应用程序概念的唯一优点。通过保存表和转换SQL的定义,并进行版本管理,它还可以成为高速迭代、测试新部署以及撤销代码更改的最佳实验场。
此外,一旦正确的原型制作出来后,通过新的用户界面,可以快速复制表定义在应用程序之间。这样就可以避免”空白画布综合症”,并缩短开发新应用程序所需的时间。
部署的严格管理.
数据管道的定义各不相同,执行内容也各有不同。通过添加阶段,我们可以定义应用程序执行参数,如并行任务数量等。另外,使用Flink savepoints可以停止部署并保存其状态。我们可以通过重用savepoint来从已生成的现有状态开始应用程序的执行。savepoint的兼容性将自动进行评估。如果匹配成功,则该savepoint将用于从已知时间点开始应用程序的执行。
由于每个应用程序最多可以保存5个保存点,因此您可以根据需求选择新部署的“起点”,从而在Flink应用程序中轻松进行“时光旅行”。
生命周期管理
为了使Aiven for Apache Flink更加稳定,我们征求了Beta版本的客户和内部相关人员的合作。本地的Apache Flink的checkpoint和savepoint系统已经得到增强,可以自动化备份管道状态并实现优雅的关闭和启动。此外,我们还可以根据工作负载正确设置服务的规模,并在需要时随时进行更改。另外,如果需要在云端或不同地区之间迁移数据,管道定义可以跟随数据并尽量减少等待时间。
Aiven for Apache Flink的未来
Aiven for Apache Flink只是优化开发者体验的第一步。Aiven致力于进一步优化服务。显然,Flink正在成为数据处理领域的事实标准。
Aiven将通过添加新的集成和连接功能,并将整合即将发布的所有Flink SQL功能,持续加强其服务。我们的计划是扩展以满足现有和新客户的新用例和需求。
请直接通过Aiven控制台,体验全新的Aiven for Apache Flink开发者体验。