跳到主要内容

连接参数

引入或更新: 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'
);