跳到主要内容

CREATE CONNECTION

引入或更新于:v1.2.780

创建到外部存储的连接。

注意

创建 Stage 和表时,它们通常复制连接参数。替换连接不会更新这些已存储参数。需要重新创建对象,或使用该对象支持的连接更新命令。

Share 不复制连接参数。消费方读取数据时,Share 使用当前连接。参见数据共享连接。

语法​

CREATE [ OR REPLACE ] CONNECTION [ IF NOT EXISTS ] <connection_name>
STORAGE_TYPE = '<type>'
[ <storage_params> ]
参数描述
STORAGE_TYPE存储服务类型。可选值包括 s3、azblob、gcs、oss、cos 等。
storage_params根据存储类型和认证方式而变化。完整参数请参阅 连接参数。

连接参数​

连接用于封装外部存储的凭据和配置。创建连接时请选择合适的 STORAGE_TYPE 并填写所需参数。

STORAGE_TYPE常见参数说明
s3ACCESS_KEY_ID/SECRET_ACCESS_KEY、或 ROLE_ARN/EXTERNAL_ID,可选 ENDPOINT_URL、REGIONAmazon S3 及兼容服务(MinIO、Cloudflare R2 等)。
azblobACCOUNT_NAME、ACCOUNT_KEY、ENDPOINT_URLAzure Blob Storage。
gcsCREDENTIAL(Base64 编码的服务账号密钥)Google Cloud Storage。
ossACCESS_KEY_ID、ACCESS_KEY_SECRET、ENDPOINT_URL阿里云对象存储 OSS。
cosSECRET_ID、SECRET_KEY、ENDPOINT_URL腾讯云对象存储 COS。
hfREPO_TYPE、REVISION,可选 TOKENHugging Face Hub 数据集与模型。

展开下列选项卡以查看各存储类型示例:

Amazon S3 及兼容服务支持以下两种认证方式:

CREATE CONNECTION <connection_name>
STORAGE_TYPE = 's3'
ACCESS_KEY_ID = '<your-access-key-id>'
SECRET_ACCESS_KEY = '<your-secret-access-key>';
参数描述
ACCESS_KEY_IDAWS Access Key ID。
SECRET_ACCESS_KEYAWS Secret Access Key。

访问控制要求​

权限对象类型描述
CREATE CONNECTION全局创建连接

创建连接时,执行操作的用户或 current_role 必须拥有 CREATE CONNECTION 权限。

更新已存在表的连接​

若要将现有外部表切换到新的连接,可使用 ALTER TABLE ... CONNECTION 命令,无需重新创建表。

数据共享连接​

Share 使用提供方租户的连接。消费方读取共享表时,Databend 使用该连接的凭证。消费方无法获得这些凭证。

  • 连接的存储类型必须与已授权表的存储类型相同。
  • S3、Azure Blob 和 GCS 连接可以提供凭证。不带参数的 fs 连接使用提供方的文件系统配置。
  • 更换消费方读取使用的凭证时,创建新连接,然后使用 ALTER SHARE ... SET CONNECTION。此操作不改变提供方外部位置表的连接。
  • 不要删除 Share 正在使用的连接。如果 Databend 找不到连接,读取会失败。

详细信息参见存储与连接。

示例​

使用访问密钥​

示例:创建名为 toronto 的 Amazon S3 连接,并建立外部 Stage my_s3_stage 指向 s3://databend-toronto。更多与连接相关的示例请参阅 使用示例。

CREATE CONNECTION toronto
STORAGE_TYPE = 's3'
ACCESS_KEY_ID = '<your-access-key-id>'
SECRET_ACCESS_KEY = '<your-secret-access-key>';

CREATE STAGE my_s3_stage
URL = 's3://databend-toronto'
CONNECTION = (CONNECTION_NAME = 'toronto');

使用 AWS IAM 角色​

示例:使用 IAM Role 创建 Amazon S3 连接,并让 Stage 复用该连接,无需在 Databend 中存储访问密钥。

CREATE CONNECTION databend_test
STORAGE_TYPE = 's3'
ROLE_ARN = 'arn:aws:iam::987654321987:role/databend-test';

CREATE STAGE databend_test
URL = 's3://test-bucket-123'
CONNECTION = (CONNECTION_NAME = 'databend_test');

-- 现在可直接查询 S3 桶中的数据
SELECT * FROM @databend_test/test.parquet LIMIT 1;
信息

在 Databend Cloud 中使用 IAM 角色,需要在 AWS 账户与 Databend Cloud 之间建立信任关系。详见 使用 AWS IAM 角色进行认证。

欢迎体验 Databend Cloud

基于 Rust + 对象存储构建的新一代多模态数仓,一个平台即可进行 BI、向量、全文检索及地理空间分析。

支持标准 SQL,自动弹性伸缩,助您快速构建现代化数据平台。

注册即领 ¥200 代金券。

注册体验