日本熟妇hd丰满老熟妇,中文字幕一区二区三区在线不卡 ,亚洲成片在线观看,免费女同在线一区二区

CREATE EXTERNAL TABLE

更新時間:

云原生數據倉庫 AnalyticDB MySQL 版支持創建多種外表,包括:OSS外表、RDS MySQL外表、MongoDB外表、Tablestore外表、MaxCompute外表。

前提條件

  • 集群的產品系列為企業版、基礎版或湖倉版

  • 集群的內核版本為3.1.8.0及以上版本。

    說明

    查看企業版基礎版湖倉版集群的內核版本,請執行SELECT adb_version();。如需升級內核版本,請聯系技術支持。

  • 已創建外部數據庫。創建外部數據庫的方法,請參見CREATE EXTERNAL DATABASE

注意事項

僅支持跨賬號創建OSS外表。

OSS外表

重要
  • OSS Bucket需要與AnalyticDB for MySQL集群位于同一地域。

  • 僅3.1.9.2及以上內核版本的集群支持創建Hudi外表。

    查看企業版基礎版湖倉版集群的內核版本,請執行SELECT adb_version();。如需升級內核版本,請聯系技術支持。

  • 創建OSS分區外表后,請執行MSCK REPAIR TABLE語句同步外表的分區,否則將無法查詢到外表數據。

  • 如果您需要跨賬號創建OSS外表,請在創建外部數據庫時,添加對應參數。詳細信息,請參見CREATE EXTERNAL DATABASE

語法

CREATE EXTERNAL TABLE [IF NOT EXISTS] table_name
(column_name column_type[, …])
[PARTITIONED BY (column_name column_type[, …])]
ROW FORMAT DELIMITED FIELDS TERMINATED BY ','
STORED AS {TEXTFILE|ORC|PARQUET|JSON|RCFIL|HUDI}
LOCATION 'OSS_LOCATION';
[TBLPROPERTIES (
 'type' = 'cow|mor'
 'auto.create.location' = 'true|false')]

參數說明

參數

是否必填

說明

table_name (column_name column_type[, …])

定義表名和表結構。

表名和列名的命名規則,請參見命名約束

PARTITIONED BY (column_name column_type[, …])

創建分區外表時,需要配置該參數指定分區列。指定多個分區列,表示創建多級分區表。

ROW FORMAT DELIMITED FIELDS TERMINATED BY ','

指定列分隔符。您可以指定任意符號,但需和文件中的分隔符一致。本文以英文逗號(,)為例。

重要

STORED AS TEXTFILESTORED AS JSON時,支持配置該參數。

STORED AS {TEXTFILE|ORC|PARQUET|JSON|RCFILE|HUDI}

指定文件格式。

如果文件是.txt或.csv格式,請配置為STORED AS TEXTFILEPARQUET格式的文件支持STRUCT數據類型,且支持嵌套。

重要

僅3.1.8.0及以上內核版本的集群支持STRUCT數據類型的PARQUET格式文件。

LOCATION

指定OSS文件或目錄所在的路徑。

指定OSS目錄的路徑時,請遵循以下規則,否則可能導致查詢失敗或結果異常。

  • 目錄的路徑以/結尾。

  • 目錄中所有文件的文件格式相同。

  • 目錄中所有文件的字段數量、字段順序、字段類型相同。

創建分區外表時,請指定LOCATION為分區的上一級目錄。例如,OSS文件的路徑為oss://testBucketname/testfolder/p1=2023-06-13/data.csv。此時需指定LOCATION 'oss://testBucketname/testfolder/',才能創建出p1為分區列的分區外表。

重要
  • 創建Hudi外表時,需確保該路徑下存在Hudi元數據文件,即.hoodies文件。

  • 如果您已配置了auto.create.location=true,當創建分區外表所指定的LOCATION路徑不存在時,會自動創建OSS目錄。

type

Hudi外表的類型,取值:

  • COW(默認值):適用于對讀取效率要求高的場景。

  • MOR:適用于對寫入效率要求高的場景。

重要

僅當STORED AS HUDI時,需要填寫該參數。

auto.create.location

是否自動創建OSS文件或目錄所在的路徑。取值:

  • true:是。

  • false(默認值):否。

重要

該參數僅在創建分區外表時生效。

示例

示例1:創建非分區外表

  • 指定文件存儲格式為TEXTFILE

    CREATE EXTERNAL TABLE IF NOT EXISTS adb_external_demo.osstest1
    (id int,
    name string,
    age int,
    city string)
    ROW FORMAT DELIMITED FIELDS TERMINATED BY  ','
    STORED AS TEXTFILE
    LOCATION  'oss://testBucketName/osstest/p1=hangzhou/p2=2023-06-13/data.csv';
  • 指定文件存儲格式為HUDI

    CREATE EXTERNAL TABLE IF NOT EXISTS adb_external_demo.osstest2
    (id int,
    name string,
    age int,
    city string)
    STORED AS HUDI
    LOCATION  'oss://testBucketName/osstest/test'
    TBLPROPERTIES ('type' = 'cow');
    重要

    創建Hudi外表時,會自動創建_hoodie_commit_time_hoodie_commit_seqno_hoodie_record_key_hoodie_partition_path_hoodie_file_name5個固定列。

  • 指定文件存儲格式為PARQUET

    CREATE EXTERNAL TABLE IF NOT EXISTS adb_external_demo.osstest3
    (
    A STRUCT < var1:string, var2:int >
    ) 
    STORED AS PARQUET 
    LOCATION 'oss://testBucketName/osstest/Parquet';

示例2:創建分區外表

CREATE EXTERNAL TABLE IF NOT EXISTS adb_external_demo.osstest4
(id int,
name string,
age int,
city string)
PARTITIONED BY (p2 string)
ROW FORMAT DELIMITED FIELDS TERMINATED BY  ','
STORED AS TEXTFILE
LOCATION  'oss://testBucketName/osstest/p1=hangzhou/';

示例3:創建多級分區外表

CREATE EXTERNAL TABLE IF NOT EXISTS adb_external_demo.osstest5
(id int,
name string,
age int,
city string)
PARTITIONED BY (p1 string,p2 string)
ROW FORMAT DELIMITED FIELDS TERMINATED BY  ','
STORED AS TEXTFILE
LOCATION  'oss://testBucketName/osstest/';

RDS MySQL外表

重要
  • 創建RDS MySQL外表,請提前在AnalyticDB MySQL控制臺集群信息頁面打開ENI開關。

  • RDS MySQL實例需要AnalyticDB for MySQL集群位于同一VPC。

語法

CREATE EXTERNAL TABLE [IF NOT EXISTS] table_name
(column_name column_type[, …])
ENGINE='MYSQL'
TABLE_PROPERTIES='{  
	"url":"mysql_vpc_address",  
	"tablename":"mysql_table_name",  
	"username":"mysql_user_name",  
	"password":"mysql_user_password"
	[,"charset":"{gbk|utf8|utf8mb4}"]
  }';

參數說明

參數

是否必填

說明

table_name (column_name column_type[, …])

定義表名和表結構。

表名和列名的命名規則,請參見命名約束

ENGINE='MYSQL'

外表的存儲引擎。讀寫RDS MySQL數據時,取值為MYSQL。

TABLE_PROPERTIES

外表屬性。

url

RDS MySQL實例的內網地址、端口號和數據庫名。如何獲取RDS的內網地址,請參見查看或修改內外網地址和端口

tablename

RDS MySQL的表名稱。

username

RDS MySQL數據庫的賬號。

password

RDS MySQL數據庫賬號的密碼。

charset

MySQL外表字符集,取值說明:

  • gbk

  • utf8(默認值)

  • utf8mb4

示例

CREATE EXTERNAL TABLE IF NOT EXISTS adb_external_demo.mysqltest (
	id int,
	name varchar(1023),
	age int
 ) ENGINE = 'MYSQL'
 TABLE_PROPERTIES = '{
   "url":"jdbc:mysql://rm-bp1gx6h1tyd04****.mysql.rds.aliyuncs.com:3306/test_adb",
   "tablename":"person",
   "username":"testUserName",
   "password":"testUserPassword",
   "charset":"utf8"
}';

MongoDB外表

重要
  • 創建MongoDB外表,請提前在AnalyticDB MySQL控制臺集群信息頁面打開ENI開關。

  • MongoDB外表實例需要與AnalyticDB for MySQL集群位于同一VPC。

語法

CREATE EXTERNAL TABLE [IF NOT EXISTS] table_name
(column_name column_type[, …])
ENGINE='MONGODB'
TABLE_PROPERTIES = '{
	"mapped_name":"table",
  "location":"location",
  "username":"user",
  "password":"password",
}';

參數說明

參數

是否必填

說明

table_name (column_name column_type[, …])

定義表名和表結構。

表名和列名的命名規則,請參見命名約束

ENGINE='MYSQL'

外表的存儲引擎。讀寫MongoDB數據時,取值為MONGODB。

TABLE_PROPERTIES

外表屬性。

mapped_name

MongoDB集合的名稱。

location

MongoDB的專有網絡地址。如何獲取專有網絡的連接地址,請參見實例連接地址說明

username

MongoDB數據庫的賬號。如何創建數據庫賬號,請參見MongoDB數據庫賬號權限管理

說明

MongoDB需要在目標數據庫中校驗數據庫的賬號和密碼,請使用MongoDB專有網絡地址中指定數據庫的賬號,如遇問題,請聯系技術支持。

password

MongoDB數據庫賬號的密碼。

示例

CREATE EXTERNAL TABLE adb_external_demo.person (
  id int,
  name string,
  age int
) ENGINE = 'MONGODB' TABLE_PROPERTIES ='{
"mapped_name":"person",
"location":"mongodb://testuser:****@dds-bp113d414bca8****.mongodb.rds.aliyuncs.com:3717,dds-bp113d414bca8****.mongodb.rds.aliyuncs.com:3717/test_mongodb",
"username":"testuser",
"password":"password",
}';

Tablestore外表

重要

如果Tablestore實例綁定了VPC,則綁定的VPC需要與AnalyticDB for MySQL集群所在的VPC相同。

語法

CREATE EXTERNAL TABLE [IF NOT EXISTS] table_name
(column_name column_type[, …])
ENGINE='OTS'
TABLE_PROPERTIES = '{
	"mapped_name":"table_name",
	"location":"tablestore_vpc_address"
}';

參數說明

參數

是否必填

說明

table_name (column_name column_type[, …])

定義表名和表結構。表名和列名的命名規則,請參見命名約束

ENGINE='OTS’

外表的存儲引擎。讀寫Tablestore數據時,取值為OTS。

mapped_name

Tablestore實例中的表名稱。您可以登錄表格存儲控制臺,在實例管理頁面查看Tablestore實例的表名稱。

location

Tablestore實例的VPC訪問地址。您可以登錄表格存儲控制臺,在實例管理頁面查看實例的VPC訪問地址。

示例

CREATE EXTERNAL TABLE IF NOT EXISTS adb_external_demo.otstest (
	id int,
	name string,
	age int
) ENGINE = 'OTS' 
TABLE_PROPERTIES = '{
	"mapped_name":"person",
	"location":"https://w0****la.cn-hangzhou.vpc.tablestore.aliyuncs.com"
}';

MaxCompute外表

重要
  • MaxCompute項目需要AnalyticDB for MySQL集群位于同一地域。

  • 如需批量創建MaxCompute外表,相關語法請參見IMPORT FOREIGN SCHEMA

語法

CREATE EXTERNAL TABLE [IF NOT EXISTS] table_name
(column_name column_type[, …])
ENGINE='ODPS'
TABLE_PROPERTIES='{
	"endpoint":"endpoint",
	"accessid":"accesskey_id",
	"accesskey":"accesskey_secret",
	["partition_column":"partition_column"],
	"project_name":"project_name",
	"table_name":"table_name"
}'; 

參數說明

參數

是否必填

說明

table_name (column_name column_type[, …])

定義表名和表結構。其中,表結構需包含分區列。

table_name、column_name:表名和列名。表名和列名的命名規則,請參見命名約束

column_type:支持MaxCompute基礎數據類型和復雜數據類型(ARRAY、MAP、STRUCT)。

說明

3.2.1.0及以上版本支持MaxCompute復雜數據類型。復雜數據類型詳情,請參見復雜數據類型

查看企業版基礎版湖倉版集群的內核版本,請執行SELECT adb_version();。如需升級內核版本,請聯系技術支持。

ENGINE='ODPS'

外表的存儲引擎。讀寫MaxCompute數據時,取值為ODPS。

endpoint

MaxCompute的EndPoint(域名節點)。

說明

僅支持通過VPC網絡Endpoint訪問MaxCompute。如何查看MaxCompute Endpoint,請參見Endpoint

accessid

阿里云賬號或具備MaxCompute訪問權限的RAM用戶的AccessKey ID。

如何獲取AccessKey ID和AccessKey Secret,請參見賬號與權限

accesskey

阿里云賬號或具備MaxCompute訪問權限的RAM用戶的AccessKey Secret。

如何獲取AccessKey ID和AccessKey Secret,請參見賬號與權限

partition_column

分區列。MaxCompute表為分區表時,需要配置該參數。

project_name

MaxCompute項目的名稱。

table_name

MaxCompute的表名稱。

示例

CREATE EXTERNAL TABLE IF NOT EXISTS adb_external_demo.mctest (
	id int,
	name varchar(1023),
	age int,
	dt string
) ENGINE='ODPS'
TABLE_PROPERTIES='{
	"accessid":"LTAILd4****",
	"endpoint":"http://service.cn-hangzhou.maxcompute.aliyun.com/api",
	"accesskey":"4A5Q7ZVzcYnWMQPysX****",
	"partition_column":"dt",
	"project_name":"test_adb",
	"table_name":"person"
}';

相關文檔