首批通过分布式安全可靠测评,为关键业务系统打造
CREATE EXTERNAL CATALOG
更新时间:2026-07-15 20:42:46
描述
该语句用来在数据库中创建外部数据目录(External Catalog),用于连接外部数据源,获取外部数据的元信息。可以通过它直接查询外部数据,无需进行数据导入或迁移。
说明
对于 OceanBase 数据库 V4.3.5 版本,从 V4.3.5 BP2 版本开始支持 CREATE EXTERNAL CATALOG 语句。
使用限制及注意事项
当前仅支持创建 ODPS 类型的 External Catalog。
权限要求
执行 CREATE EXTERNAL CATALOG 语句,需要当前用户拥有 CREATE CATALOG 权限。有关 OceanBase 数据库权限的详细介绍,参见 MySQL 模式下的权限分类。
语法
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。账号类型取值(不区分大小写)如下:
|
| ACCESSID | 当 ACCESSTYPE 的值是 aliyun/app 账号类型或者为空时,aliyun/app 账号或者具备 MaxCompute 访问权限的 RAM 用户的 AccessKey ID。 |
| ACCESSKEY | 当 ACCESSTYPE 的值是 aliyun/app 账号类型或者为空时,aliyun/app 账号或者具备 MaxCompute 访问权限的 RAM 用户的 AccessKey Secret。 |
| STSTOKEN | 当 ACCESSTYPE 的值是 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 | 可选项,指定数据源的压缩格式,不设置表示不开启压缩。取值(不区分大小写)如下:
|
| 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 = ''
);