全部產品
Search
文件中心

E-MapReduce:變數管理

更新時間:Apr 29, 2025

使用變數可以有效降低重複編寫相同值的工作量,從而提升組態管理的效率。通過變數的複用,可以在SQL開發、批任務開發及工作流程等情境中簡化代碼的維護和調整,進而提高開發效率。本文將為您詳細介紹如何建立變數及其在不同情境下的具體使用方法。

背景資訊

變數由變數名和變數值組成。其中,變數名是您自訂的名稱,用於代替真實資料;變數值則是變數名所對應的具體內容。在運行時,您可以通過${變數名}的方式引用變數,系統會自動將其替換為對應的真實值。以下情境支援自訂變數的使用:

  • 資料開發:支援在SQL開發、批任務開發中使用變數,具體使用方法請參見資料開發變數

  • 任務編排:支援在該專案空間下的工作流程層級和節點層級定義變數,具體建立和使用方法請參見任務編排變數

資料開發變數

新增自訂變數

SparkSQL開發

建立SparkSQL資料開發的具體操作,請參見SparkSQL開發快速入門

  1. 拷貝如下代碼到新增的SparkSQL開發頁簽中。

    CREATE TABLE IF NOT EXISTS students_info (
      name VARCHAR(64),
      address VARCHAR(64)
    )
    USING PARQUET
    PARTITIONED BY (data_date STRING);
    
    INSERT OVERWRITE TABLE students_info PARTITION (data_date = '${my_date}') VALUES
      ('Ashua Hill', '456 Erica Ct, Cupertino'),
      ('Brian Reed', '723 Kern Ave, Palo Alto');
  2. 單擊右側的變數管理,設定變數值(例如,2025-04-15)。

    image

  3. 在新增的頁簽中,再輸入並運行以下命令,查詢表資料。

    SELECT * FROM students_info;

    返回以下資訊,確認變數是否被正確解析。

    image

批任務開發

建立批任務資料開發的具體操作,請參見批任務或流任務開發

  1. 在新增的批任務開發頁簽的運行參數中,設定變數名(例如,${osspath} )。

  2. 單擊右側的變數管理,設定變數值。

    image

使用內建變數

建立SparkSQL資料開發的具體操作,請參見SparkSQL開發快速入門

拷貝如下代碼到新增的頁簽中並運行。

CREATE TABLE IF NOT EXISTS students_address (
  name VARCHAR(64),
  address VARCHAR(64)
)
USING PARQUET
PARTITIONED BY (data_date STRING);

INSERT OVERWRITE TABLE students_address PARTITION (data_date = '${ts}') VALUES
  ('Ashua Hill', '456 Erica Ct, Cupertino'),
  ('Brian Reed', '723 Kern Ave, Palo Alto');

SELECT * FROM students_address;

返回以下資訊。

image

使用內建變數時,其值預設基於系統時區(UTC+8)的前一日產生,且不支援自訂修改。目前支援以下基礎日期變數。

變數

資料類型

說明

{data_date}

str

表示日期資訊的變數,格式為YYYY-MM-DD

例如,2023-09-18。

{ds}

str

{dt}

str

{data_date_nodash}

str

表示日期資訊的變數,格式為YYYYMMDD

例如,20230918。

{ds_nodash}

str

{dt_nodash}

str

{ts}

str

表示時間戳記,格式為YYYY-MM-DDTHH:MM:SS

例如,2023-09-18T16:07:43。

{ts_nodash}

str

表示時間戳記,格式為YYYYMMDDHHMMSS

例如,20230918160743。

查看或修改變數值

  1. 單擊您已有資料開發頁簽右側的變數管理

  2. 變數管理地區,會為您展示當前資料開發的所有變數資訊。

  3. 您可以在該地區查看或修改自訂變數的值。

    image

任務編排變數

說明
  • 任務編排支援設定工作流程和節點層級的變數。遵循就近優先原則:節點層級變數的定義將覆蓋工作流程層級的同名變數。

  • 使用內建變數,不支援設定變數名。

新增工作流程層級的變數

建立工作流程面板的變數設定地區,可以直接自訂變數,後續工作流程調度時將自動對任務中的變數進行替換。

image

您可以在變數值的下拉式清單中選擇常用的時間變數,並且支援對時間變數進行自訂修改。

image

新增節點層級的變數

添加節點面板,選擇來源檔案路徑後,單擊節點層級變數後的添加變數,新增節點層級的變數。

image

您可以在變數值的下拉式清單中選擇常用的時間變數,並且支援對時間變數進行自訂修改。

image