全部產品
Search
文件中心

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

更新時間:Jun 19, 2024

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

前提條件

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

  1. 上傳ORC資料至OSS指定目錄。
    本樣本在OSS上建立目錄demo7並上傳兩個資料檔案。
    說明 實際使用過程中,請以您OSS和檔案的實際情況為準。
  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         |
    +------------+------------+------------+