跳到主要内容

CREATE EXTERNAL CATALOG

描述

该语句用来在数据库中创建外部数据目录(External Catalog),用于连接外部数据源,获取外部数据的元信息。可以通过它直接查询外部数据,无需进行数据导入或迁移。

使用限制及注意事项

当前仅支持创建 ODPS 类型的 External Catalog。

权限要求

执行 CREATE EXTERNAL CATALOG 语句,需要当前用户拥有 CREATE CATALOG 权限。有关 seekdb 权限的详细介绍,参见 seekdb 的权限分类

语法

CREATE EXTERNAL CATALOG [IF NOT EXISTS] external_catalog_name
PROPERTIES [=] (
TYPE = 'ODPS',
[ACCESSTYPE = 'accesstype_string',]
ACCESSID = 'string',
ACCESSKEY = 'string',
STSTOKEN = 'string',
ENDPOINT = 'string',
TUNNEL_ENDPOINT = 'string',
PROJECT_NAME = 'string',
[QUOTA_NAME = 'string',]
[COMPRESSION = 'compression_string',]
REGION = 'string'
);

accesstype_string:
aliyun
| sts
| app

compression_string:
zlib
| zstd
| lz4
| odps_lz4

参数说明

参数描述
IF NOT EXISTS可选项,如果指定该子句,即使要创建的外部数据目录在当前租户中已存在,也不会报错,系统会提示一条 Warning 信息;如果不指定,则会报错。
external_catalog_name指定要创建的外部数据目录的名称。
TYPE指定外部数据目录的类型。当前版本取值为 ODPS,即外表读写 MaxCompute 数据时,取值为 ODPS
ACCESSTYPE可选项,MaxCompute 的账号类型,默认值为 aliyun。账号类型取值(不区分大小写)如下:
  • aliyun
  • sts
  • app
ACCESSIDACCESSTYPE 的值是 aliyun/app 账号类型或者为空时,aliyun/app 账号或者具备 MaxCompute 访问权限的 RAM 用户的 AccessKey ID。
ACCESSKEYACCESSTYPE 的值是 aliyun/app 账号类型或者为空时,aliyun/app 账号或者具备 MaxCompute 访问权限的 RAM 用户的 AccessKey Secret。
STSTOKENACCESSTYPE 的值是 sts 账号类型时,这里是访问 MaxCompute 服务的 token。
ENDPOINT指定 MaxCompute 的 EndPoint(域名节点)。
TUNNEL_ENDPOINT表示 Tunnel Endpoint,MaxCompute Catalog 使用 Tunnel SDK 获取数据。
PROJECT_NAME指定 MaxCompute 中的项目空间名称。项目空间(Project)是 MaxCompute 的基本组织单元,它类似于传统数据库的 Database 或 Schema 的概念。
QUOTA_NAME可选项,Quota 在 MaxCompute 中代表计算资源池(计算、访问、写入),如果用户配置了对应的 Quota,通过该参数指定特定的 Quota。
COMPRESSION可选项,指定数据源的压缩格式,不设置表示不开启压缩。取值(不区分大小写)如下:
  • zlib
  • zstd
  • lz4
  • odps_lz4
REGION指定 MaxCompute 开通的地域。

示例

CREATE EXTERNAL CATALOG test_odps_catalog
PROPERTIES = (
TYPE = 'ODPS',
ACCESSID = '$odps_accessid',
ACCESSKEY = '$odps_accesskey',
ENDPOINT = '$odps_endpoint',
TUNNEL_ENDPOINT = 'http://dt.cn-hangzhou.maxcompute.aliyun.com',
PROJECT_NAME = 'mysqltest_regression_sqlqa',
QUOTA_NAME = '',
COMPRESSION_CODE = ''
);