欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 文旅 > 旅游 > doris:阿里云 OSS 导入数据

doris:阿里云 OSS 导入数据

2025/4/21 6:00:10 来源:https://blog.csdn.net/qq_36070104/article/details/145280557  浏览:    关键词:doris:阿里云 OSS 导入数据

Doris 提供两种方式从阿里云 OSS 导入文件:

  • 使用 S3 Load 将阿里云 OSS 文件导入到 Doris 中,这是一个异步的导入方式。
  • 使用 TVF 将阿里云 OSS 文件导入到 Doris 中,这是一个同步的导入方式。

使用 S3 Load 导入​

使用 S3 Load 导入对象存储上的文件,详细步骤可以参考 Broker Load 手册

第 1 步:准备数据​

创建 CSV 文件 s3load_example.csv 文件存储在阿里云 OSS 上,其内容如下:

1,Emily,25
2,Benjamin,35
3,Olivia,28
4,Alexander,60
5,Ava,17
6,William,69
7,Sophia,32
8,James,64
9,Emma,37
10,Liam,64

第 2 步:在 Doris 中创建表​

CREATE TABLE test_s3load(user_id            BIGINT       NOT NULL COMMENT "user id",name               VARCHAR(20)           COMMENT "name",age                INT                   COMMENT "age"
)
DUPLICATE KEY(user_id)
DISTRIBUTED BY HASH(user_id) BUCKETS 10;

第 3 步:使用 S3 Load 导入数据​

注意

阿里云 OSS 公网和内网的 endpoint 是不同的。 如果服务器与 OSS 在同一个 region 下,建议使用内网的 endpoint 链接。

  • 内网 endpoint:oss-cn-hangzhou-internal.aliyuncs.com
  • 公网 endpoint:oss-cn-hangzhou.aliyuncs.com
LOAD LABEL s3_load_2022_04_01
(DATA INFILE("s3://your_bucket_name/s3load_example.csv")INTO TABLE test_s3loadCOLUMNS TERMINATED BY ","FORMAT AS "CSV"(user_id, name, age)
)
WITH S3
("provider" = "OSS","s3.endpoint" = "oss-cn-hangzhou.aliyuncs.com",  "s3.region" = "oss-cn-hangzhou","s3.access_key" = "<your-ak>","s3.secret_key" = "<your-sk>"
)
PROPERTIES
("timeout" = "3600"
);

第 4 步:检查导入数据​

SELECT * FROM test_s3load;

结果:

mysql> select * from test_s3load;
+---------+-----------+------+
| user_id | name      | age  |
+---------+-----------+------+
|       5 | Ava       |   17 |
|      10 | Liam      |   64 |
|       7 | Sophia    |   32 |
|       9 | Emma      |   37 |
|       1 | Emily     |   25 |
|       4 | Alexander |   60 |
|       2 | Benjamin  |   35 |
|       3 | Olivia    |   28 |
|       6 | William   |   69 |
|       8 | James     |   64 |
+---------+-----------+------+
10 rows in set (0.04 sec)

使用 TVF 导入​

第 1 步:准备数据​

创建 CSV 文件 s3load_example.csv 文件存储在阿里云 OSS 上,其内容如下:

1,Emily,25
2,Benjamin,35
3,Olivia,28
4,Alexander,60
5,Ava,17
6,William,69
7,Sophia,32
8,James,64
9,Emma,37
10,Liam,64

第 2 步:在 Doris 中创建表​

CREATE TABLE test_s3load(user_id            BIGINT       NOT NULL COMMENT "user id",name               VARCHAR(20)           COMMENT "name",age                INT                   COMMENT "age"
)
DUPLICATE KEY(user_id)
DISTRIBUTED BY HASH(user_id) BUCKETS 10;

第 3 步:使用 TVF 导入数据​

注意

阿里云 OSS 公网和内网的 endpoint 是不同的。 如果服务器与 OSS 在同一个 region 下,建议使用内网的 endpoint 链接。

  • 内网 endpoint:oss-cn-hangzhou-internal.aliyuncs.com
  • 公网 endpoint:oss-cn-hangzhou.aliyuncs.com
INSERT INTO test_s3load
SELECT * FROM S3
("uri" = "s3://your_bucket_name/s3load_example.csv","format" = "csv","provider" = "OSS","s3.endpoint" = "oss-cn-hangzhou.aliyuncs.com","s3.region" = "oss-cn-hangzhou","s3.access_key" = "<your-ak>","s3.secret_key" = "<your-sk>","column_separator" = ",","csv_schema" = "user_id:int;name:string;age:int"
);

第 4 步:检查导入数据​

SELECT * FROM test_s3load;

结果:

mysql> select * from test_s3load;
+---------+-----------+------+
| user_id | name      | age  |
+---------+-----------+------+
|       5 | Ava       |   17 |
|      10 | Liam      |   64 |
|       7 | Sophia    |   32 |
|       9 | Emma      |   37 |
|       1 | Emily     |   25 |
|       4 | Alexander |   60 |
|       2 | Benjamin  |   35 |
|       3 | Olivia    |   28 |
|       6 | William   |   69 |
|       8 | James     |   64 |
+---------+-----------+------+
10 rows in set (0.04 sec)

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词