[翻訳] FLINKテーブルAPIとSQL

公式サイトからこの翻訳:https://ci.apache.org/projects/flink/flink-docs-release-1.9/dev/table/

テーブルには、再びゆっくりと自分を見やすい最近の機能の一部を使用し始めた使用済みのFLINKまたはSQL API、対応する文書の翻訳の最初の公式サイトされていません

 

 

-----------------------------------------------

統一された流れとバッチ処理- ApacheのFLINKは、関連する2つのAPI-表のAPIとSQLを持っています。スカラ表APIは、(フィルタリングおよび結合、例えば選択など)の関係演算子クエリの組み合わせから非常に直感的な方法を可能にするクエリ言語とJava APIを、一体化されています。FLINKのSQLベースのSQL標準の実現 のApache方解石かかわらず、入力の入力バッチ(データセット)、または入力ストリーム(でDataStream)、クエリで指定された2つのインターフェイスが同じ意味を有し、同一の結果を指定します。

テーブルAPIおよびSQLインタフェースFLINKのでDataStreamとDataSetのAPIとの緊密な統合。あなたは簡単にすべてのAPIとAPIベースのライブラリを切り替えることができます。たとえば、あなたが使用することができます  CEPライブラリでDataStreamから抽出されたパターンを、その後、表のAPIモードを使用して分析し、またはすることができますプリプロセッサに走る ゼリー図アルゴリズムを、SQLクエリを使用して、前にスキャンし、濾過し、重合バッチテーブルのデータ。

ノート、表API関数とSQLが活発に開発中、完了していないしてください。入力の組み合わせごとに、[表のAPI、SQL]と[ストリーム、バッチ]はすべての操作をサポートしていません。

依存構造

ブリンクプランナーと古いプランナー前に、使用可能なFLINK 1.9:FLINK 1.9以降、FLINKは、テーブル&SQL APIの手続きを評価するためのプログラムを実装するには、2つの異なるプランを提供しています。プランナー  関係演算子を変換するための責任は、最適化されたFLINKジョブ実行可能です。異なる最適化ルールとランタイムクラスを持つ2つの種類のプランナー。彼らはまた、サポートされている機能の点で異なる場合があります。

例生産のためFLINK 1.9古いプランナー前に推奨されることに注意してください。

テーブルAPIおよびすべてのコンポーネントは、SQLにバンドルされている  flink-table か、  flink-table-blink Mavenのアセンブリ。

に関連したほとんどのプロジェクトで、次の依存関係:

  • flink-table-common:機能拡張テーブル形式のエコシステムの汎用モジュールをカスタマイズするために使用します。
  • flink-table-api-java:純粋な表は、Javaプログラミング言語テーブル&SQL APIを使用してのために(開発の初期段階では、お勧めしません!)。
  • flink-table-api-scala:純粋なスプレッドシートプログラムのScalaプログラミング言語テーブル&SQL API(開発の初期段階では、お勧めしません!)。
  • flink-table-api-java-bridge:でDataStream / DataSetのAPIのでJavaプログラミング言語のサポートテーブル&SQLのAPIを使用します。
  • flink-table-api-scala-bridge:でDataStream / DataSetのAPIのではScalaプログラミング言語のサポートテーブル&SQLのAPIを使用します。
  • flink-table-planner:表プログラムプランナーとランニング。これは、バージョン1.9より前のみプランナーFLINKです。今、それはまだお勧めします。
  • flink-table-planner-blink:新ブリンクプランナー。
  • flink-table-runtime-blink:新点滅ランタイム。
  • flink-table-uber:分布表&SQL APIほとんどのユースケースにAPIモジュールと、上述した古いプランナーのパッケージ。デフォルトでは、スーパーJARファイル flink-table-*.jar に位置  FLINKバージョンディレクトリ/ libに。
  • flink-table-uber-blink:APIモジュールおよびモジュールの点滅の形態にテーブル&SQL APIの大部分分布に上記特定のパッケージ。デフォルトでは、ユーバーJARファイルが flink-table-blink-*.jar上にある/libFLINKバージョンディレクトリ。

プログラムは、どのようにテーブルに古いものと新しいプランナーの切り替えの詳細については参照してください。共通APIのページを。

表プログラムの依存関係

ターゲットプログラミング言語によると、あなたは、SQL表APIおよびカスタムパイプラインを使用するためには、プロジェクトにJavaやScalaのAPIを追加する必要があります。

<! -どちらか... - > 
<依存> 
  <groupIdを> org.apache.flink </ groupIdを> 
  <たartifactId> FLINKテーブル-API-javaの-bridge_2.11 </たartifactId> 
  <バージョン> 1.9.0 </バージョン> 
  <スコープ>提供</スコープ> 
</依存関係> 
<! -や... - > 
<依存> 
  <groupIdを> org.apache.flink </ groupIdを> 
  <たartifactId> FLINKテーブル-API -scala-bridge_2.11 </たartifactId> 
  <バージョン> 1.9.0 </バージョン> 
  <スコープ>提供</スコープ> 
</依存>

あなたはIDEでローカルプログラムとSQLテーブルAPIを実行したい場合はまた、あなたが使用するプランナーに応じて、モジュールの以下のセットの1つを追加する必要があります。

 

<! - (どちらか... のための FLINK 1.9の前に利用できた古いプランナー) - > 
<依存> 
  <groupIdを> org.apache.flink </ groupIdを> 
  <たartifactId> FLINK・テーブルplanner_2.11 </たartifactId> 
  <バージョン> 1.9.0 </ version>の
  <スコープ>提供</スコープ> 
</依存関係> 
<! -や..(のための新しいブリンクプランナー) - > 
<依存> 
  <groupIdを> org.apache .flink </のgroupId> 
  <たartifactId> FLINK・テーブルプランナー-blink_2.11 </たartifactId> 
  <バージョン> 1.9.0 </バージョン> 
  <スコープ>提供</スコープ> 
</依存>

内部的には、テーブルの生態系の一部をScalaで実装されています。そのため、バッチ処理に確認し、ストリーミングアプリケーションは、以下の依存関係を追加します。 

<依存性> 
  <のgroupId> org.apache.flink </のgroupId> 
  <たartifactId> FLINKストリーミング-scala_2.11 </たartifactId> 
  <バージョン> 1.9.0 </バージョン> 
  <範囲> </スコープ>提供
</依存>

依存拡張

達成するためにカフカや一連のユーザ定義関数と対話するためのカスタムフォーマットを、以下の依存性は十分であり、かつSQLクライアントJARファイルを使用することができます。

<依存性> 
  <のgroupId> org.apache.flink </のgroupId> 
  <たartifactId> FLINKテーブル共通</たartifactId> 
  <バージョン> 1.9.0 </バージョン> 
  <スコープ>提供</スコープ> 
</依存>

現在、あってこの拡張ポイントモジュール:

  • SerializationSchemaFactory
  • DeserializationSchemaFactory
  • ScalarFunction
  • TableFunction
  • AggregateFunction

次どこへ行きますか?

ようこそルーキー世間の注目FLINK番号は時折FLINK(技術開発)に関連するツイートを更新します

おすすめ

転載: www.cnblogs.com/Springmoon-venn/p/11826359.html