1、Flink Table API&SQL-開発基礎コードサンプルとmaven依存


目次
MAVEN依存構造
Tableプログラム依存
拡張依存
ガイド人
Apache FlinkのTable APIとSQLは、統合されたストリームとバッチに使用されます.Table APIは、ScalaおよびJava言語統合クエリーAPIであり、選択、フィルタ、接続などの関係演算子からのクエリーを非常に直感的に組み合わせることができる.Flink SQLはApache Calciteに基づいてSQL標準を実現します.入力がバッチ入力(DataSet)であるかストリーム入力(DataStream)であるかにかかわらず、この2つのインタフェースで指定されたクエリは同じ意味を持ち、同じ結果が得られます.
Table APIとSQLインタフェース、およびFlinkのDataStreamとDataSet APIは緊密に統合されています.すべてのapiとapiベースのライブラリを簡単に切り替えることができます.たとえば、CEPライブラリを使用してデータ・ストリームからモデルを抽出し、Table APIを使用してモデルを解析するか、前処理データに対してGelly graphアルゴリズムを実行する前にSQL scan、filter、aggregateバッチ・テーブルを使用します.
注意:Table APIとSQLはまだ完全に開発されていません.すべての[Table API,SQL]および[stream,batch]の組合せをサポートするものではない.
MAVEN依存構造
Flink 1から9から、Blink plannerと1.9以前の古いplannerの2つの異なるplanner実装が提供される.Plannerは演算子をFlink実行可能で最適化されたFlink jobに変換する責任を負う.この2つのPlannerには、異なる最適化ルールとruntimeクラスがあります.サポートされているプロパティセットで異なる場合もあります.
注意:生産環境ではFlink 1.9以前のplannerを推奨
すべてのTable APIとSQLコンポーネントはflink-table or flink-table-blink Maven 。以下に、ほとんどのプロジェクトに関連する依存関係を示します.
  • flink-table-common:は、カスタム関数、フォーマットなどによって表生態系の汎用モジュールを拡張する.
  • flink-table-api-java: Java   Table&SQL API依存(初期開発段階では推奨されていない)
  • flink-table-api-scala: Scala   Table&SQL API依存(初期開発段階では推奨されていない)
  • flink-table-api-java-bridge: Javaを使用して、DataStream/DataSet APIのTableおよびSQL APIをサポートします.
  • flink-table-api-scala-bridge: Scalaを使用して、DataStream/DataSet APIのTableおよびSQL APIをサポートします.
  • flink-table-planner: Flink 1.9 planner runtime, 。
  • flink-table-planner-blink: Blink planner
  • flink-table-runtime-blink: Blink runtime
  • flink-table-uber:は、上のAPIモジュールおよび古いplannerをTableおよびSQL APIの使用例のリリースにパッケージ化する.デフォルトではuber JARファイルFlink-table-*.JArはFlinkリリースの/libディレクトリにあります.
  • flink-table-uber-blink:は、上のAPIモジュールおよびBlink固有のモジュールをTableおよびSQL API用例のリリースにパッケージ化する.デフォルトではuber JARファイルFlink-table-blink-*.JArはFlinkリリースの/libディレクトリにあります.

  • 古いplannerとblink plannerを切り替える方法については、//ODOを参照してください.
    Tableプログラム依存
    ターゲットプログラミング言語によっては、Table APIとSQLを使用してパイプを定義するために、プロジェクトにJavaまたはScala APIを追加する必要があります.
    
    
      org.apache.flink
      flink-table-api-java-bridge_2.11
      1.9.0
      provided
    
    
    
      org.apache.flink
      flink-table-api-scala-bridge_2.11
      1.9.0
      provided
    

    また、IDEでTable APIおよびSQLプログラムをローカルで実行する場合は、どのplannerを使用するかによって、次のいずれかの依存関係を追加する必要があります.
    
    
      org.apache.flink
      flink-table-planner_2.11
      1.9.0
      provided
    
    
    
      org.apache.flink
      flink-table-planner-blink_2.11
      1.9.0
      provided
    

    内部では,一部の表生態系はScalaに基づいて実現された.したがって、バッチおよびフロー・アプリケーションに次の依存項目が追加されていることを確認します.
    
      org.apache.flink
      flink-streaming-scala_2.11
      1.9.0
      provided
    

    拡張依存
    Kafkaまたはユーザー定義関数のセットと相互作用するカスタムフォーマットを実装するには、SQLクライアントのJARファイルに使用できる依存関係で十分です.
    
      org.apache.flink
      flink-table-common
      1.9.0
      provided
    

    現在、このモジュールには次の拡張クラスが含まれています.
  • SerializationSchemaFactory
  • DeserializationSchemaFactory
  • ScalarFunction
  • TableFunction
  • AggregateFunction

  • Table API&SQLのコンセプトと汎用APIs
    事前定義されたデータ型リストとその属性