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

Realtime Compute for Apache Flink:データクエリ

最終更新日:Nov 09, 2025

クエリスクリプトは、CALL コマンドとデータ定義言語 (DDL) 、データクエリ言語 (DQL) 、およびデータ操作言語 (DML) 文をサポートしています。スクリプトを使用して、カタログとテーブルの作成と管理、データのクエリ、および Paimon の管理ができます。また、EXPLAIN 構文を使用して実行計画を表示し、問題をトラブルシューティングすることもできます。

機能

  • システムは SQL 構文を検証します。検証に失敗した場合、スクリプトは実行できません。

  • スクリプト内のすべての文を実行することも、選択した文のみを実行することもできます。

  • CALL コマンドと DDL、DQL、および DML 文をサポートしています。

    重要

    DDL または DML 文を直接実行すると、オンラインのメタデータやデータに影響します。注意して実行してください。

  • 作成した内容は 1 分ごとに自動的に保存されます。左側のナビゲーションウィンドウのフォルダに一時的なクエリを手動で保存することもできます。

手順

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

  2. ターゲットワークスペースの [アクション] 列で、[コンソール] をクリックします。

  3. [データ開発] > [データクエリ] に移動し、[クエリスクリプト] タブをクリックします。

  4. image.png をクリックしてクエリスクリプトを作成します。

  5. SQL コードを入力します。CALL コマンドと DDL、DQL、および DML 構文がサポートされています。

    次の例は、MySQL カタログを作成し、テーブルをクエリするための SQL コードを示しています。

    • MySQL カタログを作成します。詳細については、「MySQL カタログの作成」をご参照ください。

      CREATE CATALOG mysql_catalog WITH(
        'type' = 'mysql',
        'hostname' = 'rm-bp1x********.mysql.rds.aliyuncs.com',
        'port' = '3306',
        'username' = 'db_user',
        'password' = '${secret_values.mysqlpw}',
        'default-database' = 'flinktest'
      );
    • テーブルをクエリします。デフォルトではバッチモードが使用されます。

      • バッチモード: このモードは有界ジョブにのみ使用でき、より高い効率を提供します。データセットのサイズが固定されている場合、ジョブは有界と見なされます。

      • ストリーミングモード: このモードは有界ジョブと無界ジョブの両方に使用できます。連続データストリームを処理する無界ジョブには、ストリーミングモードを使用する必要があります。データセットのサイズが不明または無限である場合、ジョブは無界と見なされます。SET 構文を使用してストリーミングモードに切り替えることができます。

        説明

        クエリスクリプトは「変数管理」をサポートしていません。

        SET 'execution.runtime-mode' = 'streaming';
        SELECT * FROM `mysql_catalog`.flinktest.orders;
  6. セッションクラスターを選択または作成します。

    ページの右下隅で、[実行環境] をクリックし、必要なバージョンを使用するセッションクラスターを選択します。Ververica Runtime (VVR) 8.0.4 以降が必要です。セッションクラスターが利用できない場合は、「ステップ 1: セッションクラスターの作成」をご参照ください。

  7. ターゲットコードスニペットを選択し、スニペットの左側にある [実行] をクリックします。

  8. (任意) 右上隅で、[保存] をクリックします。ファイル名と保存場所を指定します。

よくある質問

データクエリページでスクリプトを実行すると、「バッチモードでは無界テーブル 'XXX' のクエリは許可されていません。テーブルソースは無界です。」というエラーが表示されるのはなぜですか。

原因

ソースは無界ストリームですが、バッチジョブには有界ストリームが必要です。ストリームタイプは次のように定義されます。

  • 有界ストリーム: データセットのサイズが固定されています。

  • 無界ストリーム: データセットのサイズが不明または無限です。

解決策

  • SET 構文を使用してストリーミングモードに切り替えます。

    SET 'execution.runtime-mode' = 'streaming';
  • [データ開発] > [ETL] で、新しいジョブを作成して実行できます。

    [ETL] でジョブを作成した後、デバッグ機能を使用するか、デプロイ後に実行結果を表示できます。

参照