跳到主要内容
最后于 更新

Aliyun OSS

本文档介绍访问阿里云 OSS 所需的参数,这些参数适用于以下场景:

  • Catalog 属性
  • Table Valued Function 属性
  • Broker Load 属性
  • Export 属性
  • Outfile 属性

何时配置 OSS 访问参数​

这些参数用于访问 OSS 中的文件,应配置在实际读写文件的操作中:

场景配置位置示例
直接查询 CSV、Parquet 或 ORC 文件S3(...) 表值函数中见下方查询示例
将 OSS 文件导入已有的 Doris 表INSERT INTO ... SELECT 中的 S3(...),或 Broker Load 的 WITH S3 子句中OSS 数据导入
查询数据存储在 OSS 的 Hive 表CREATE CATALOG 的 Catalog 属性中Hive Catalog
将查询结果导出到 OSS导出语句的属性中SELECT INTO OUTFILE

例如,将不含表头的 UTF-8 文件 users.csv 上传到 OSS bucket:

1,Alice
2,Bob

确保 Doris FE、BE 节点可以访问 OSS endpoint,且所提供的凭据有该对象的读取权限。替换下方的 bucket、对象路径和凭据。此查询直接读取文件,无需先创建 Doris 表;示例使用兼容 S3 的 s3.* 参数名。

SELECT id, name
FROM S3(
"uri" = "s3://your-bucket/users.csv",
"format" = "csv",
"s3.endpoint" = "oss-cn-beijing.aliyuncs.com",
"s3.region" = "cn-beijing",
"s3.access_key" = "<your-access-key>",
"s3.secret_key" = "<your-secret-key>",
"column_separator" = ",",
"csv_schema" = "id:int;name:string"
)
ORDER BY id;

上述文件的预期结果:

+------+-------+
| id | name |
+------+-------+
| 1 | Alice |
| 2 | Bob |
+------+-------+

如需将数据保存到 Doris,请先建目标表,再按上方 OSS 数据导入指南使用 INSERT INTO ... SELECT。其他场景则在对应的 Catalog、导入或导出语句中设置连接属性。

OSS​

Doris 使用 S3 Client,通过 S3 兼容协议访问阿里云 OSS。

参数总览​

属性名称曾用名描述默认值
oss.endpoints3.endpointOSS endpoint,指定阿里云 OSS 的访问端点。注意,OSS 和 OSS HDFS 的 endpoint 不相同。无
oss.access_keys3.access_keyOSS Access Key,用于身份验证无
oss.secret_keys3.secret_keyOSS Secret Key,与 Access Key 配合使用无
oss.session_tokens3.session_tokenOSS 临时安全令牌(STS Security Token),使用临时访问凭证时与临时 AK/SK 配合使用。自 4.0.6 版本起支持。无
oss.regions3.regionOSS region,指定阿里云 OSS 的区域无
oss.use_path_styles3.use_path_style是否使用 path-style(路径风格)访问。兼容 MinIO 等非 AWS S3 服务建议设置为 trueFALSE
oss.connection.maximums3.connection.maximum最大连接数,指定与 OSS 服务建立的最大连接数50
oss.connection.request.timeouts3.connection.request.timeout请求超时时间(毫秒),指定连接 OSS 服务时的请求超时时间3000
oss.connection.timeouts3.connection.timeout连接超时时间(毫秒),指定与 OSS 服务建立连接时的超时时间1000

3.1 版本之前,请使用曾用名。

示例配置​

"oss.access_key" = "your-access-key",
"oss.secret_key" = "your-secret-key",
"oss.endpoint" = "oss-cn-beijing.aliyuncs.com",
"oss.region" = "cn-beijing"

3.1 之前的版:

"s3.access_key" = "your-access-key",
"s3.secret_key" = "your-secret-key",
"s3.endpoint" = "oss-cn-beijing.aliyuncs.com",
"s3.region" = "cn-beijing"

使用建议​

  • 推荐使用 oss. 前缀配置参数,保证与阿里云 OSS 的一致性和清晰度。
  • 3.1 之前的版本,请使用曾用名 s3. 作为前缀。
  • 配置 oss.region 能提升访问的准确性和性能,建议设置。
  • 连接池参数可根据并发需求调整,避免连接阻塞。

OSS-HDFS​

OSS-HDFS 服务(JindoFS 服务)是一个阿里云云原生数据湖存储功能。基于统一的元数据管理能力,兼容 HDFS 文件系统接口,满足大数据和 AI 等领域的数据湖计算场景。

访问 OSS-HDFS 上存储的数据,和直接访问 OSS 服务稍有区别,详见本文档。

参数总览​

属性名称曾用名描述默认值是否必须
oss.hdfs.endpointoss.endpoint阿里云 OSS-HDFS 服务的 Endpoint,例如 cn-hangzhou.oss-dls.aliyuncs.com。无是
oss.hdfs.access_keyoss.access_keyOSS Access Key,用于身份验证无是
oss.hdfs.secret_keyoss.secret_keyOSS Secret Key,与 Access Key 配合使用无是
oss.hdfs.regionoss.regionOSS bucket 所在的地域 ID,例如 cn-beijing。无是
oss.hdfs.fs.defaultFS3.1 版本支持。指定 OSS 的文件系统访问路径,例如 oss://my-bucket/。无否
oss.hdfs.hadoop.config.resources3.1 版本支持。指定包含 OSS 文件系统配置的路径,需使用相对路径,默认目录为(FE/BE)部署目录下的 /plugins/hadoop_conf/(可修改 fe.conf/be.conf 中的 hadoop_config_dir 来更改默认路径)。所有 FE 和 BE 节点需配置相同相对路径。示例:hadoop/conf/core-site.xml,hadoop/conf/hdfs-site.xml。无否
fs.oss-hdfs.supportoss.hdfs.enabled3.1 版本支持。显示声明启用 OSS-HDFS 功能。需要设置为 true无否

3.1 版本之前,请使用曾用名。

Endpoint 配置​

oss.hdfs.endpoint: 用于指定 OSS-HDFS 服务的 Endpoint。

Endpoint 是访问阿里云 OSS 的入口地址,格式为 <region>.oss-dls.aliyuncs.com,例如 cn-hangzhou.oss-dls.aliyuncs.com。

我们会对格式进行强校验,确保 Endpoint 符合阿里云 OSS Endpoint 格式。

为保证向后兼容,Endpoint 配置项允许包含 https:// 或 http:// 前缀,系统在格式校验时会自动解析并忽略协议部分。

如使用曾用名,则系统会根据 endpoint 中是否包含 oss-dls 判断是否是 OSS-HDFS 服务。

配置文件​

自 4.1.5 版本起,oss.hdfs.hadoop.config.resources 中的 XML 路径不得包含 .. 父目录路径段,正斜杠和反斜杠分隔形式都会检查。请使用正常文件路径。

3.1 版本支持

OSS-HDFS 支持通过 oss.hdfs.hadoop.config.resources 参数来指定 HDFS 相关配置文件目录。

配置文件目录需包含 hdfs-site.xml 和 core-site.xml 文件,默认目录为(FE/BE)部署目录下的 /plugins/hadoop_conf/。所有 FE 和 BE 节点需配置相同的相对路径。

如果配置文件包含文档上述参数,则优先使用用户显示配置的参数。配置文件可以指定多个文件,多个文件以逗号分隔。如 hadoop/conf/core-site.xml,hadoop/conf/hdfs-site.xml。

示例配置​

"fs.oss-hdfs.support" = "true",
"oss.hdfs.access_key" = "your-access-key",
"oss.hdfs.secret_key" = "your-secret-key",
"oss.hdfs.endpoint" = "cn-hangzhou.oss-dls.aliyuncs.com",
"oss.hdfs.region" = "cn-hangzhou"

3.1 之前的版本:

"oss.hdfs.enabled" = "true",
"oss.access_key" = "your-access-key",
"oss.secret_key" = "your-secret-key",
"oss.endpoint" = "cn-hangzhou.oss-dls.aliyuncs.com",
"oss.region" = "cn-hangzhou"