すべてのプロダクト
Search
ドキュメントセンター

Realtime Compute for Apache Flink:コードテンプレート

最終更新日:Jan 08, 2025

フルマネージド Flink は、さまざまなコードテンプレートを提供しています。各コードテンプレートには、ユースケース、コードサンプル、および手順が用意されています。コードテンプレートを使用すると、フルマネージド Flink の機能と関連構文をすばやく理解し、独自のビジネスロジックを実装できます。このトピックでは、コードテンプレートのユースケースと使用方法について説明します。

制限事項

エンジンバージョンが vvr-4.0.12-flink-1.13 以後の Realtime Compute for Apache Flink のみ、コードテンプレートを提供します。

注意事項

ドラフトに使用されるコードテンプレートに INSERT INTO ステートメントが含まれていない場合、ドラフトをデプロイすることはできません。

サポートされているコードテンプレート

次の表に、フルマネージド Flink によって提供されるコードテンプレートと、各コードテンプレートのユースケースを示します。サポートされているコードテンプレートは、フルマネージド Flink のコンソールで確認できます。

カテゴリ

テンプレート名

シナリオ

基本テンプレート

テーブルの作成

テーブルを作成してカタログに保存する場合、CREATE TABLE ステートメントを実行できます。テーブルに対する操作は、データベースに対する操作に似ています。

一時テーブルの作成

現在のセッションまたは SQL スクリプトでのみテーブルを使用する場合、CREATE TEMPORARY TABLE ステートメントを実行して一時テーブルを作成できます。

一時ビューの作成

Flink SQL ドラフトを開発するときに、コードを再利用したり、長いクエリを作成したり、SQL スクリプトを作成してドラフト開発を簡素化したりする場合、CREATE TEMPORARY VIEW ステートメントを実行して一時ビューを作成できます。

INSERT INTO

クエリ結果をダウンストリームストレージシステムのテーブルに書き込む場合、INSERT INTO ステートメントを実行できます。

STATEMENT SET

クエリ結果を複数のダウンストリームストレージシステムに書き込む場合、STATEMENT SET 構文を使用できます。

ウォーターマーク

フルマネージド Flink で順序が正しくないデータを想定どおりに処理する場合、DDL ステートメントで WATERMARK 句を使用できます。CREATE TABLE DDL ステートメントで WATERMARK 句を使用してウォーターマークを作成できます。この句は、既存のフィールドに基づいてウォーターマークを生成する式を定義し、フィールドを時間属性フィールドとしてマークします。詳細については、「イベント時間とウォーターマーク」をご参照ください。

集計および分析テンプレート

GROUP BY

データをリアルタイムで集計および分析する場合、GROUP BY 句を使用できます。

タンブルウィンドウの集計

時系列データをグループ化し、各グループのデータを集計および分析する場合、TUMBLE 関数を使用できます。

ホップウィンドウの集計

指定された間隔でウィンドウ内のデータを更新する場合、HOP 関数を使用できます。

累積ウィンドウの集計

ウィンドウの計算結果を事前に表示する場合(1 分間隔でウィンドウの最新結果を表示するなど)、CUMULATE 関数を使用できます。

説明

CUMULATE 関数を使用して Change Data Capture(CDC)データを集計することはできません。 CUMULATE 関数を使用して CDC データを集計すると、"org.apache.flink.table.api.TableException: Not supported window type: CUMULATE(max_size=[xxx ms], step=[xxx min])" というエラーメッセージが表示されます。

セッションウィンドウの集計

アクティブセッションのデータの統計情報をリアルタイムで収集する場合、SESSION 関数を使用できます。

オーバーウィンドウの集計

ウィンドウ内の各要素に対して統計分析を実行する場合、OVER ウィンドウを使用できます。

チェーンウィンドウの集計

同じストリームのデータを異なる時間次元(1 分、5 分、30 分、1 時間など)で集計する場合、カスケードウィンドウを使用できます。

重複排除テンプレート

重複排除

データストリームから重複データを削除する場合、重複排除構文を使用できます。

トップ N テンプレート

トップ N

ビジネス要件に基づいて計算結果を昇順または降順にソートし、最初の N 個のデータレコードを取得する場合、トップ N 構文を使用できます。

ウィンドウ トップ N

計算結果を昇順または降順にソートし、指定された時間範囲の最初の N 個のデータレコードを取得する場合、ウィンドウトップ N 構文を使用できます。

複合イベント処理(CEP)テンプレート

パターン認識

データストリームで一連のイベントパターンを検索する場合、MATCH_RECOGNIZE 構文を使用できます。

JOIN テンプレート

標準 JOIN

テーブルとストリームテーブルのデータに対して JOIN クエリを実行する場合、標準 JOIN を使用できます。

インターバル JOIN

指定された期間内にテーブルとストリームテーブルのデータに対して JOIN クエリを実行する場合、インターバル JOIN を使用できます。

テンポラル JOIN

ストリームテーブルのデータと別のテーブルの関連する時間バージョンのデータに対して JOIN クエリを実行する場合、テンポラル JOIN を使用できます。

ルックアップ JOIN

静的ディメンションテーブルとストリームテーブルのデータに対して JOIN クエリを実行する場合、ルックアップ JOIN を使用できます。

手順

この手順では、コードテンプレートの使用方法について説明します。この例では、[テーブルの作成] テンプレートを使用します。

  1. Realtime Compute for Apache Flink コンソール にログインします。

  2. 管理するワークスペースを見つけ、コンソール[アクション] 列の をクリックします。

  3. 左側のナビゲーションペインで、[開発] > ETL をクリックします。 SQL エディターページの左上隅にある [新規] をクリックします。

  4. [SQLスクリプト] タブの [新規ドラフト] ダイアログボックスで、目的のテンプレートの名前をダブルクリックします。または、目的のテンプレートの名前をクリックし、ダイアログボックスの右下隅にある [次へ] をクリックすることもできます。

    image..png

  5. ドラフト構成セクションで、[名前][場所]、および [エンジンバージョン] パラメーターをビジネス要件に基づいて構成します。プレビューセクションで、SQL コードを記述します。

    image..png

  6. [作成] をクリックします。

    後続の操作は、ドラフトを開発するために行われる操作と同じです。ドラフトの開発方法の詳細については、「SQL ドラフトの開発」をご参照ください。