IMPORT FOREIGN SCHEMA語句用於大量建立外部表格。本文為您介紹IMPORT FOREIGN SCHEMA語句的用法和使用限制。
使用限制
使用
IMPORT FOREIGN SCHEMA
語句時,建議您添加LIMIT TO
限制,並使用括弧將需要添加限制的表名稱括起來。如果不添加該限制,系統則將目標MaxCompute工作空間中的所有表大量建立至Hologres中。僅Hologres V1.1.26及以上版本支援對使用
IMPORT FOREIGN SCHEMA
建立的外部表格名稱增加首碼和尾碼,如果您的執行個體是V1.1.26以下版本,請您使用自助升級或加入HologresDingTalk交流群反饋,詳情請參見如何擷取更多的線上支援?。僅Hologres V1.3及以上版本支援MaxCompute的三層模型模式(即在原先的Project和Table之間增加了一層Schema的概念),更多描述請參見Schema操作。如果您想在Hologres中使用MaxCompute的三層模型的專案建立外部表格,且您的Hologres版本較低,請您使用自助升級或加入HologresDingTalk交流群反饋,詳情請參見如何擷取更多的線上支援?。
命令格式
在Hologres中大量建立外部表格的命令格式如下。
IMPORT FOREIGN SCHEMA remote_schema
[ { LIMIT TO | EXCEPT } ( table_name [, ...] ) ]
FROM SERVER odps_server
INTO local_schema
[ OPTIONS ( option 'value' [, ... ] ) ]
參數說明
參數說明如下表所示。
參數 | 描述 |
remote_schema |
|
table_name | 需要匯入的MaxCompute表名稱。 |
server_name | MaxCompute表所在的外部伺服器名稱,預設為odps_server。 您可以直接調用Hologres底層已建立的名為odps_server的外部表格伺服器。詳細原理請參見Postgres FDW。 |
local_schema | Hologres外部表格所在的Schema名(如public)。 |
options | Hologres支援如下四個option:
|
Hologres僅支援建立MaxCompute外部表格。建立的外部表格名稱需要同MaxCompute表的名稱一致。
使用樣本
MaxCompute兩層模型。
樣本選取MaxCompute公用資料集public_data中的表,在Hologres中大量建立外部表格。
樣本1:為public Schema建立一張外部表格,若表存在則更新表。
IMPORT FOREIGN SCHEMA public_data LIMIT to (customer) FROM server odps_server INTO PUBLIC options(if_table_exist 'update');
樣本2:為public Schema批量建立外部表格。
IMPORT FOREIGN SCHEMA public_data LIMIT to( customer, customer_address, customer_demographics, inventory,item, date_dim, warehouse) FROM server odps_server INTO PUBLIC options(if_table_exist 'update');
樣本3:建立一個testdemo Schema並批量建立外部表格。
create schema testdemo; IMPORT FOREIGN SCHEMA public_data LIMIT to( customer, customer_address, customer_demographics, inventory,item, date_dim, warehouse) FROM server odps_server INTO testdemo options(if_table_exist 'update'); set search_path to testdemo;
樣本4:在public Schema大量建立外部表格,已有外表則報錯。
IMPORT FOREIGN SCHEMA public_data LIMIT to (customer, customer_address) FROM server odps_server INTO PUBLIC options(if_table_exist 'error');
樣本5:在public Schema中大量建立外部表格,已有外表則跳過該外部表格。
IMPORT FOREIGN SCHEMA public_data LIMIT to (customer, customer_address) FROM server odps_server INTO PUBLIC options(if_table_exist 'ignore');
MaxCompute三層模型。
基於MaxCompute
odps_hologres
專案的tpch_10g
這個Schema中的odps_region_10g
表建立Hologres中的外部表格。IMPORT FOREIGN SCHEMA "odps_hologres#tpch_10g" LIMIT to ( odps_region_10g ) FROM SERVER odps_server INTO public OPTIONS(if_table_exist 'error',if_unsupported_type 'error');
HoloWeb可視化大量建立外部表格
HoloWeb提供可視化大量建立外部表格功能,無需寫SQL命令就能建立外部表格,步驟如下。
進入HoloWeb頁面,詳情請參見串連HoloWeb。
在HoloWeb開發頁面的頂部功能表列,選擇
,單擊大量建立外部表格。您也可以在中繼資料管理介面的已登入執行個體列表。單擊目標資料庫,滑鼠右擊資料庫下已建立的目標模式,選擇大量建立外部表格。
在大量建立外部表格頁面,配置各項參數。
類別
參數
描述
MaxCompute 資料來源
專案名
MaxCompute的專案名稱。
Schema Name
MaxCompute的Schema名稱,對於使用兩層模型的MaxCompute專案,預設不展示;對於使用三層模型的MaxCompute專案,此處可下拉選擇當前專案下有許可權的所有Schema。
目標表位置
Schema Name
模式名稱。
您可以選擇預設建立的public模式,也可以選擇建立的模式名稱。
進階選項
選擇要直接加速的表
整庫加速:大量建立所選專案或Schema下的所有表。
部分加速:您可以通過搜尋表名稱或關鍵字,選擇需要建立的表。
說明部分加速最多支援顯示200張表,超出部分將不顯示,但是也會建立成功。
例如,目標專案中共有203個名稱中包含test的表,搜尋test時,此處最多隻會顯示200個相關的表,但實際上203個表都會建立成功。
表名衝突
忽略,繼續建立其他表:建立表時,如果資料庫中已存在當前建立的表名稱,則忽略當前建立的表,繼續建立其他表。
更新,修改同名表:建立表時,如果資料庫中已存在當前建立的表名稱,則更新已有表的資料。
報錯,不再重複建立:建立表時,如果資料庫中已存在當前建立的表名稱,則發送報錯,不再重複建立。
資料類型不支援
報錯,匯入失敗:如果建立表時存在不支援的資料類型,則產生報錯,匯入資料失敗。
忽略,跳過不支援欄位:如果建立表時存在不支援的資料類型,則忽略不支援的欄位,繼續匯入資料。
單擊運行,大量建立外部表格。