CREATE FOREIGN TABLE語句用於建立外部表格,當前支援建立MaxCompute、OSS、DLF、Hologres類型的外部表格。本文為您介紹CREATE FOREIGN TABLE的用法。
使用限制
僅Hologres V1.3及以上版本支援MaxCompute的三層模型模式(即在原先的Project和Table之間增加了一層Schema的概念),更多描述請參見Schema操作。如果您想在Hologres中使用MaxCompute的三層模型的專案建立外部表格,且您的Hologres版本較低,請您使用自助升級或加入HologresDingTalk交流群反饋,詳情請參見如何擷取更多的線上支援?。
文法
CREATE FOREIGN TABLE [ IF NOT EXISTS ] table_name ( [
{ column_name data_type }
[, ... ]
] )
SERVER odps_server
[ OPTIONS ( option 'value' [, ... ] ) ]
參數說明如下表所示。
參數 | 描述 |
SERVER | 串連外部資料源的伺服器。 您可以直接調用Hologres底層已建立的名為odps_server的外部表格伺服器。詳細原理請參見Postgres FDW。 |
OPTIONS | 您需要指定project_name和table_name。如果您MaxCompute的Project是三層模型模式,您仍使用兩層模型的寫法調用,則會報錯,報錯範例如下。
|
Hologres建立的外部表格的欄位類型必須與MaxCompute的欄位類型一一對應。
樣本
直接查詢外部表格資料。
Hologres建立外部表格後,您可以直接查詢MaxCompute外部表格資料。樣本SQL語句如下。
--兩層模型模式 CREATE FOREIGN TABLE src_pt( id text, pt text) SERVER odps_server OPTIONS(project_name '<odps_project>', table_name '<odps_table>'); --三層模型模式 CREATE FOREIGN TABLE src_pt( id text, pt text) SERVER odps_server OPTIONS(project_name '<odps_project>#<odps_schema>', table_name '<odps_table>'); SELECT * FROM src_pt;
在Hologres中直接查詢MaxCompute外部表格資料,詳情請參見通過建立外部表格加速查詢MaxCompute資料。
匯入外部表格並查詢資料。
您可以匯入MaxCompute的資料至Hologres,再進行查詢。樣本語句如下。
CREATE FOREIGN TABLE src_pt_odps( id text, pt text) SERVER odps_server OPTIONS (project_name'<odps_project>', table_name'<odps_table>'); BEGIN; CREATE TABLE src_pt( id text, pt text); COMMIT; INSERT INTO src_pt SELECT * FROM src_pt_odps;
匯入MaxCompute資料至Hologres後,再進行查詢,詳情請參見使用SQL匯入MaxCompute的資料至Hologres。
MaxCompute與Hologres的資料類型映射
建立MaxCompute外部表格時,MaxCompute與Hologres的資料類型映射請參見MaxCompute與Hologres的資料類型映射。
DATETIME
使用東八區時間作為系統的標準時間。取值範圍為0000年1月1日~9999年12月31日,精確到毫秒。TIMESTAMPTZ
包含時區,取值範圍為4713BC~294276AD,精確到微秒。當MaxCompute資料表中含有Hologres不支援的類型欄位時,如果Hologres不訪問該欄位,則可以正常查詢所支援的類型欄位。