跳到主要内容

连接参数

Introduced or updated: v1.2.294

运行 CREATE CONNECTION 时需要给出一组键值对作为连接参数,用来定义可复用的外部连接。创建好连接后,可以在 Stage、COPY 等语句中通过 CONNECTION = (CONNECTION_NAME = '<connection-name>') 直接引用。完整语法请参见 CREATE CONNECTION

不同存储服务的连接参数见下表。

下表列出了访问 Amazon S3 及其兼容存储服务所需的连接参数:

ParameterRequired?Description
endpoint_urlYesAmazon S3 兼容存储的 Endpoint URL。
access_key_idYes请求方的 Access Key ID。
secret_access_keyYes用于认证的 Secret Access Key。
enable_virtual_host_styleNo是否使用虚拟主机样式 URL,默认 false
master_keyNo用于高级加密的 Master Key。
regionNoBucket 所在的 AWS 区域。
security_tokenNo临时凭证的安全令牌。
备注
  • 如果命令里没有 endpoint_url,Databend 会默认把 Stage 建在 Amazon S3。因此在 S3 兼容对象存储或其他对象存储上建外部 Stage 时,记得显式填写 endpoint_url

  • region 通常不需手动填写,Databend 会自动识别区域信息;若识别失败,则回落到 us-east-1。例如在 MinIO 未配置区域时仍能正常工作。如果看到 “region is missing” 或 “The bucket you are trying to access requires a specific endpoint...” 之类的错误提示,请确认实际区域并为 region 指定正确值。

示例
-- 创建可复用的 Amazon S3 连接
CREATE CONNECTION my_s3_conn
STORAGE_TYPE = 's3'
ACCESS_KEY_ID = '<your-ak>'
SECRET_ACCESS_KEY = '<your-sk>';

-- 创建 Stage 时引用连接
CREATE STAGE my_s3_stage
URL = 's3://my-bucket'
CONNECTION = (CONNECTION_NAME = 'my_s3_conn');

-- 为 MinIO 等 S3 兼容服务创建连接
CREATE CONNECTION my_minio_conn
STORAGE_TYPE = 's3'
ENDPOINT_URL = 'http://localhost:9000'
ACCESS_KEY_ID = 'ROOTUSER'
SECRET_ACCESS_KEY = 'CHANGEME123';

CREATE STAGE my_minio_stage
URL = 's3://databend'
CONNECTION = (CONNECTION_NAME = 'my_minio_conn');

也可以改用 AWS IAM Role 和 External ID 认证,以更细粒度地控制可访问的 S3 Bucket,同时增加额外的安全校验。更多背景请参考 AWS 文档

下表列出了使用 AWS IAM 角色访问 Amazon S3 的连接参数:

ParameterRequired?Description
endpoint_urlNoAmazon S3 的 Endpoint URL。
role_arnYes用于授权访问 S3 的 AWS IAM 角色 ARN。
external_idNo用于增强角色授权安全性的 External ID。
示例
-- 使用 IAM 角色创建连接
CREATE CONNECTION my_iam_conn
STORAGE_TYPE = 's3'
ROLE_ARN = 'arn:aws:iam::123456789012:role/my-role'
EXTERNAL_ID = 'my-external-id';

-- 创建 Stage 时引用连接
CREATE STAGE my_iam_stage
URL = 's3://my-bucket'
CONNECTION = (CONNECTION_NAME = 'my_iam_conn');