第11章. これからどこへ行くのか?
この作品はAIを使って翻訳されている。ご意見、ご感想をお待ちしている:translation-feedback@oreilly.com
長い旅だったが、本書の最後までたどり着いた!しかし、Flink の旅はまだ始まったばかりであり、この章はここからあなたが進むことのできるパスを点示している。本書には含まれていないFlinkの追加機能を簡単に紹介し、さらにFlinkのリソースを紹介する。Flinkの周りには活気あるコミュニティが存在し、他のユーザとつながったり、貢献を始めたり、企業がFlinkを使ってどのようなものを作っているかを発見したりすることで、あなた自身の仕事のインスピレーションを得ることができる。
フリンク・エコシステムの残りの部分
本書は特にストリーム処理に焦点を当てているが、実際にはFlinkは汎用の分散データ処理フレームワークであり、他のタイプのデータ分析にも使用できる。さらに、Flinkはリレーショナルクエリ、複雑なイベント処理(CEP)、グラフ処理のためのドメイン固有のライブラリとAPIを提供している。
バッチ処理のためのデータセットAPI
Flink は本格的なバッチプロセッサーであり、境界のある入力データに対して単発または定期的なクエリを必要とするユースケースの実装に使用できる。DataSetプログラムは、DataStreamプログラムと同様に一連の変換として指定されるが、DataSetが境界のあるデータコレクションであるという違いがある。DataSet APIは、フィルタリング、マッピング、選択、結合、グループ化を実行する演算子や、 ファイルシステムやデータベースなどの外部システムからデータセットを読み書きする コネクタを提供する。DataSet APIを使えば、ループ関数を一定のステップ数だけ、あるいは収束基準を満たすまで実行する反復型Flinkプログラムを定義することもできる。
バッチ・ジョブは内部的にはデータフロー・プログラムとして表現され、ストリーミング・ジョブと同じ実行ランタイム上で実行される。現在、この2つのAPIは別々の実行環境を使用しており、混在させることはできない。しかし、Flinkコミュニティはすでにこの2つのAPIの統一に取り組んでおり、同じプログラム内で境界のあるデータストリームと境界のないデータストリームを解析するための単一のAPIを提供することは、Flinkの将来のロードマップにおける優先事項である。
関係分析のためのテーブルAPIとSQL
基礎となるDataStreamとDataSet APIは別個のものだが、Flinkの上位レベルのリレーショナルAPIを使って、統合されたストリーム分析とバッチ分析を実装することができる:Table APIとSQLである。
Table APIは、ScalaとJavaのための言語統合クエリ(LINQ)APIである。クエリはバッチでもストリーミングでもそのまま実行できる。選択、投影、集約、結合を含む関係クエリを記述するための一般的な演算子を提供し、さらにIDEによる自動補完と構文検証をサポートしている。
Flink SQLはANSI SQL標準に準拠しており、クエリの解析と最適化のために Apache Calciteを活用している。Flinkは、バッチ・クエリとストリーミング・クエリに統一された構文とセマンティクスを提供する。ユーザ定義関数の広範なサポートにより、様々なユースケースをSQLでカバーすることができる。SQLクエリを通常のFlink ...
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Read now
Unlock full access