腾讯云数据仓库 TCHouse-D S3 Load(对象存储 COS)

腾讯云数据仓库 TCHouse-D 可通过 S3 协议直接从支持 S3 协议的在线存储系统导入数据。这篇档主要介绍如何导入腾讯云对象存储 COS(兼容 S3 协议)中存储的数据。

相关产品
腾讯云数据仓库 TCHouse-D 产品页,含版本规格、价格与购买入口。

一、适用场景

·源数据在支持 S3 协议的存储系统中,如腾讯云对象存储 COS、S3 等。

·数据量在几十到百 GB 级别。

二、准备工作

1. 准备 AWS_ACCESS_KEY 和 AWS_SECRET_KEY。

首先需要找到或者添加腾讯云的访问密钥。路径是:在腾讯云搜索访问密钥,或在控制台点击用户头像,选择访问管理,进入API密钥管理页面,使用已有密钥或单击新建密钥。然后获取其中的 SecretId,SecretKey,SecretId 为 AWS_ACCESS_KEY,SecretKey 为 AWS_SECRET_KEY:


2. 准备 REGION 和 ENDPOINT。
REGION 可以在创建桶的时候选择也可以在桶列表中查看到,与存储桶所在地域相关,如 ap-beijing,ap-guangzhou。ENDPOINT 的格式就是http://cos.<REGION>.myqcloud.com。其他云存储系统可以从相应的文档中找到与 S3 兼容的相关信息。

三、开始导入

导入方式和 Broker Load 基本相同,只需要将 WITH BROKER broker_name () 语句替换成如下部分:

WITH S3 ( "AWS_ENDPOINT" = "http://cos.<REGION>.myqcloud.com", "AWS_ACCESS_KEY" = "AWS_ACCESS_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_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_REGION" = "<REGION>", "use_path_style" = "true" )

赞 (0)
上一篇 4天前
下一篇 4天前