跳到主要内容

连接参数

引入或更新于:v1.2.294

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

有关每种存储服务的具体连接详情,请参见下表。

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

参数是否必填描述
endpoint_urlAmazon S3 类似存储服务的端点 URL。
access_key_id用于标识请求者的访问密钥 ID。
secret_access_key用于身份验证的密钥访问密钥。
enable_virtual_host_style是否使用虚拟主机风格的 URL。默认为 false
master_key用于高级数据加密的可选主密钥。
region存储桶所在的 AWS 区域。
security_token用于临时凭证的安全令牌。
备注
  • 如果命令中未指定 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 参数。

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

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

参数是否必填描述
endpoint_urlAmazon S3 的端点 URL。
role_arn用于授权访问 S3 的 AWS IAM 角色的 ARN。
external_id用于角色假设中增强安全性的外部 ID。
示例
CREATE STAGE my_s3_stage
's3://my-bucket'
CONNECTION = (
ROLE_ARN = 'arn:aws:iam::123456789012:role/my-role',
EXTERNAL_ID = 'my-external-id'
);