全部產品
Search
文件中心

Realtime Compute for Apache Flink:資料查詢

更新時間:Aug 16, 2025

查詢指令碼支援Call和DDL、DQL、DML文法。您可以通過查詢指令碼建立管理Catalog、表、資料查詢,可以使用explain文法查看執行計畫定位問題,也可以實現對Paimon的管理。

功能

  • 對SQL文法進行校正,校正失敗無法運行。

  • 支援指令碼全部語句運行和選中部分語句運行。

  • 支援Call命令和DDL、DQL、DML文法。

    重要

    對DDL或DML語句運行將會直接影響線上中繼資料或資料,請謹慎操作。

  • 編寫的內容每分鐘進行一次自動儲存,您也可以選擇手動將臨時查詢持久化儲存在左側檔案夾下。

操作步驟

  1. 登入Realtime Compute控制台

  2. 單擊目標工作空間操作列下的控制台

  3. 資料開發 > 資料查詢頁面,單擊查詢指令碼頁簽。

  4. 單擊image.png,建立查詢指令碼。

  5. 填寫SQL代碼。支援Call命令和DDL、DQL、DML文法。

    建立MySQL Catalog和查詢表的SQL程式碼範例如下:

    • 建立MySQL Catalog:具體可參見建立MySQL Catalog

      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. 選擇或建立Session叢集。

    單擊頁面右下角的執行環境,選擇對應版本的Session叢集(VVR 8.0.4及以上引擎版本)。如果沒有,請參見步驟一:建立Session叢集

  7. 選中目標程式碼片段後,單擊程式碼左側的運行

  8. (可選)單擊右上方的儲存,設定檔案名稱和儲存位置。

常見問題

在資料查詢頁面運行指令碼時,報錯:Querying an unbounded table 'XXX' in batch mode is not allowed. The table source is unbounded.

報錯原因

當前Source為無界流,批作業要求Source是有界流。請根據以下定義判斷資料流類型。

  • 有界流:資料集的大小已確定。

  • 無界流:資料集的大小未知或者是無限的。

解決方案

  • 使用SET文法修改為流模式。

    SET 'execution.runtime-mode' = 'streaming';
  • 資料開發 > ETL新增作業,重新執行。

    ETL新增作業後,通過調試功能查看運行結果,或者部署後查看運行結果。

相關文檔