跳到主要内容

连接参数

Introduced or updated: v1.2.294

连接参数是用于建立与外部存储服务(如 Amazon S3)安全连接的键值对。这些参数对于创建 Stage、将数据复制到 Databend 以及查询外部文件等任务至关重要。

有关每个存储服务的具体连接详细信息,请参见下表。

下表列出了用于访问类似 Amazon S3 的存储服务的连接参数:

ParameterRequired?Description
endpoint_urlYes类似 Amazon 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 默认在 Amazon S3 上创建 Stage。因此,当您在 S3 兼容的对象存储或其他对象存储解决方案上创建外部 Stage 时,请务必包含 endpoint_url 参数。

  • region 参数不是必需的,因为 Databend 可以自动检测区域信息。通常不需要手动为此参数指定值。如果自动检测失败,Databend 将默认使用 'us-east-1' 作为区域。当使用 MinIO 部署 Databend 且未配置区域信息时,它将自动默认使用 'us-east-1',并且可以正常工作。但是,如果您收到诸如 "region is missing" 或 "The bucket you are trying to access requires a specific endpoint. Please direct all future requests to this particular endpoint" 之类的错误消息,则需要确定您的区域名称并显式将其分配给 region 参数。

Examples
CREATE STAGE my_s3_stage
's3://my-bucket'
CONNECTION = (
ACCESS_KEY_ID = '<your-ak>',
SECRET_ACCESS_KEY = '<your-sk>'
);

CREATE STAGE my_minio_stage
's3://databend'
CONNECTION = (
ENDPOINT_URL = 'http://localhost:9000',
ACCESS_KEY_ID = 'ROOTUSER',
SECRET_ACCESS_KEY = 'CHANGEME123'
);

要访问您的 Amazon S3 Bucket,您还可以指定 AWS IAM 角色和外部 ID 进行身份验证。通过指定 AWS IAM 角色和外部 ID,您可以更精细地控制用户可以访问哪些 S3 Bucket。这意味着,如果 IAM 角色已被授予仅访问特定 S3 Bucket 的权限,则用户将只能访问这些 Bucket。外部 ID 可以通过提供额外的验证层来进一步增强安全性。有关更多信息,请参见 https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-role.html

下表列出了使用 AWS IAM 角色身份验证访问 Amazon S3 存储服务的连接参数:

ParameterRequired?Description
endpoint_urlNoAmazon S3 的 Endpoint URL。
role_arnYes用于授权访问 S3 的 AWS IAM 角色的 ARN。
external_idNo用于增强角色承担安全性的外部 ID。
Examples
CREATE STAGE my_s3_stage
's3://my-bucket'
CONNECTION = (
ROLE_ARN = 'arn:aws:iam::123456789012:role/my-role',
EXTERNAL_ID = 'my-external-id'
);