全部產品
Search
文件中心

MaxCompute:OSS外部表格根據欄位名稱Mapping資料

更新時間:Sep 12, 2025

OSS支援使用者在OSS目錄下上傳不同表結構的資料,MaxCompute建立的OSS外部表格可以根據欄位名稱對資料進行讀寫。本文為您介紹在MaxCompute中使用OSS外部表格根據欄位名稱對資料進行讀寫。

前提條件

根據欄位名稱對資料進行讀寫

  1. 上傳ORC資料至OSS指定目錄。

    本樣本在OSS上建立目錄demo7並上傳兩個資料檔案。

    說明

    實際使用過程中,請以您OSS和檔案的實際情況為準。

    • orc_file_with_schema0

      -- 欄位資訊
      `#id` bigint,`#name` stirng
      -- 對應資料如下:
      {`#id`:1,`#name`:"a"}
      {`#id`:2,`#name`:null}
    • orc_file_with_schema1

      -- 欄位資訊
      age bigint,`#name` string,`#id` string
      -- 對應資料如下
      {age:10,`#name`:"c",`#id`:"3"}
      {age:20,`#name`:"d",`#id`:"4"}
  2. 登入MaxCompute串連開發工具。

    MaxCompute支援您從如下平台建立OSS外部表格,選擇一個開發工具使用。

    建立方式

    平台

    基於MaxCompute SQL建立OSS外部表格

    MaxCompute用戶端

    使用DataWorks串連

    DataWorks控制台-ODPS SQL節點

    MaxCompute Studio-SQL程式

    以可視化方式建立OSS外部表格

    MaxCompute Studio-SQL程式

    DataWorks控制台-外部表格

  3. 在MaxCompute中建立OSS外部表格。

    通過執行如下樣本命令建立OSS外部表格,建立外部表格文法詳情請參見建立OSS外部表格

    CREATE EXTERNAL TABLE mf_oss_diff_schm
    (
        `#name` string, `#id` string, age bigint
    )
    ROW FORMAT SERDE 'org.apache.hadoop.hive.ql.io.orc.OrcSerde'
    WITH SERDEPROPERTIES (
        'mcfed.orc.schema.resolution'='name'
    )
    STORED AS ORC
    LOCATION 'oss://oss-cn-beijing-internal.aliyuncs.com/mfoss*******/demo7/';
  4. 查詢資料。

    SET odps.ext.oss.orc.native=true;
    
    -- 查詢資料。
    SELECT * FROM mf_oss_diff_schm;
    
    -- 返回結果。
    +------------+------------+------------+
    | #name      | #id        | age        |
    +------------+------------+------------+
    | a          | 1          | NULL       |
    | NULL       | 2          | NULL       |
    | c          | 3          | 10         |
    | d          | 4          | 20         |
    +------------+------------+------------+
  5. 向OSS外部表格寫入資料並查詢。

    INSERT into TABLE mf_oss_diff_schm values("e","5",30);
    
    -- 查詢資料。
    SELECT * FROM mf_oss_diff_schm;
    
    -- 返回結果。
    +------------+------------+------------+
    | #name      | #id        | age        |
    +------------+------------+------------+
    | a          | 1          | NULL       |
    | NULL       | 2          | NULL       |
    | e          | 5          | 30         |
    | c          | 3          | 10         |
    | d          | 4          | 20         |
    +------------+------------+------------+