OSS支援使用者在OSS目錄下上傳不同表結構的資料,MaxCompute建立的OSS外部表格可以根據欄位名稱對資料進行讀寫。本文為您介紹在MaxCompute中使用OSS外部表格根據欄位名稱對資料進行讀寫。
前提條件
- 已開通MaxCompute並建立專案,詳情請參見建立MaxCompute專案。
- 已開通OSS並建立儲存空間,詳情請參見控制台建立儲存空間。
根據欄位名稱對資料進行讀寫
- 上傳ORC資料至OSS指定目錄。本樣本在OSS上建立目錄
demo7
並上傳兩個資料檔案。說明 實際使用過程中,請以您OSS和檔案的實際情況為準。 - 登入MaxCompute串連開發工具。MaxCompute支援您從如下平台建立OSS外部表格,選擇一個開發工具使用。
建立方式 平台 基於MaxCompute SQL建立OSS外部表格 MaxCompute用戶端 使用DataWorks串連 DataWorks控制台-ODPS SQL節點 MaxCompute Studio-SQL程式 以可視化方式建立OSS外部表格 MaxCompute Studio-SQL程式 DataWorks控制台-外部表格 - 在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/';
- 查詢資料。
返回結果如下。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 | +------------+------------+------------+
- 向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 | +------------+------------+------------+