tencent cloud

文档反馈

S3 Load(对象存储 COS)

最后更新时间:2024-06-27 10:56:17
    Doris 可通过 S3 协议直接从支持 S3 协议的在线存储系统导入数据。
    本文档主要介绍如何导入腾讯云对象存储(兼容 S3 协议) 中存储的数据。也支持导入其他支持 S3 协议的对象存储系统导入,如 AWS S3 、百度云的 BOS 和阿里云的 OSS 等。

    适用场景

    源数据在支持 S3 协议的存储系统中,如 COS、S3、BOS、OSS 等。
    数据量在几十到百 GB 级别。

    准备工作

    1. 准备 AWS_ACCESS_KEY 和 AWS_SECRET_KEY。 首先需要找到或者添加腾讯云的访问密钥。路径是:在腾讯云搜索访问密钥,使用已有密钥或单击新建密钥。然后获取其中的 SecretId,SecretKey,SecretId 为 AWS_ACCESS_KEY,SecretKey 为 AWS_SECRET_KEY,如下图所示:
    
    
    2. 准备 REGION 和 ENDPOINT。 REGION 可以在创建桶的时候选择也可以在桶列表中查看到,与存储桶所在地域相关,如 ap-beijing,ap-guangzhou。ENDPOINT 的格式就是https://cos.<REGION>.myqcloud.com。其他云存储系统可以从相应的文档中找到与 S3 兼容的相关信息。

    开始导入

    导入方式和 Broker Load(HDFS 数据) 基本相同,只需要将 WITH BROKER broker_name () 语句替换成如下部分:
    WITH S3
    (
    "AWS_ENDPOINT" = "http://cos.<REGION>.myqcloud.com",
    "AWS_ACCESS_KEY" = "AWS_ACCESS_KEY",
    "AWS_SECRET_KEY"="AWS_SECRET_KEY",
    "AWS_REGION" = "<REGION>"
    )
    完整示例如下:
    LOAD LABEL example_db.exmpale_label_1
    (
    DATA INFILE("s3://your_bucket_name/your_path/your_file.txt")
    INTO TABLE load_test
    COLUMNS TERMINATED BY ","
    )
    WITH S3
    (
    "AWS_ENDPOINT" = "http://cos.<REGION>.myqcloud.com",
    "AWS_ACCESS_KEY" = "AWS_ACCESS_KEY",
    "AWS_SECRET_KEY"="AWS_SECRET_KEY",
    "AWS_REGION" = "<REGION>"
    )
    PROPERTIES
    (
    "timeout" = "3600"
    );

    常见问题

    S3 SDK 默认使用 virtual-hosted style 方式。但某些对象存储系统可能没开启或没支持 virtual-hosted style 方式的访问,此时我们可以添加 use_path_style 参数来强制使用 path style 方式:
    WITH S3
    (
    "AWS_ENDPOINT" = "http://cos.<REGION>.myqcloud.com",
    "AWS_ACCESS_KEY" = "AWS_ACCESS_KEY",
    "AWS_SECRET_KEY"="AWS_SECRET_KEY",
    "AWS_REGION" = "<REGION>",
    "use_path_style" = "true"
    )
    
    联系我们

    联系我们,为您的业务提供专属服务。

    技术支持

    如果你想寻求进一步的帮助,通过工单与我们进行联络。我们提供7x24的工单服务。

    7x24 电话支持