访问OSS数据

更新时间:
复制为 MD 格式

OLAP 资源组提供了 FILES 函数来直接访问 OSS 中的文件,以便于进行文件的导入与导出。本文档介绍了使用 FILES 函数读写 OSS 文件的方法。

函数说明

FILES 函数中提供 OSS 的访问凭证及相关参数后,FILES 函数就可以当成一张表,作为 INSERT 的目的地或者 SELECT 的数据源,实现数据的读取或导出。

语法:

FILES( path , format, compression, ...)

参数配置说明:

所有参数均为 "key" = "value" 对。

参数

说明

path

OSS 路径(需以 s3:// 开头),例如"s3://bucket_name/path/to/dir/"

format

文件格式,支持 parquetcsv

compression

压缩算法,支持uncompressed(无压缩)、gzipsnappyzstd

single

是否将数据导出到单个文件:true(数据存储在单个数据文件中)或 false(默认,如果导出数据量超过 512 MB,数据将存储在多个文件中)

aws.s3.access_key

OSS 访问密钥 AK

aws.s3.secret_key

OSS 访问密钥 SK

aws.s3.endpoint

OSS 访问端点,例如"oss-cn-hangzhou-internal.aliyuncs.com"

数据导出到OSS

SQL示例如下:

INSERT INTO FILES(
  "path" = "s3://bucket_name/path/to/dir/",
  "format" = "parquet",
  "compression" = "snappy",
  "single" = "true",
  "aws.s3.access_key" = "your_ak",
  "aws.s3.secret_key" = "your_sk",
  "aws.s3.endpoint" = "oss-cn-hangzhou-internal.aliyuncs.com"
) SELECT * FROM sometable;

将查询的结果写入到指定的 OSS 目录中。

查询OSS数据

示例代码如下:

select * from FILES(
  "path" = "s3://bucket_name/path/to/dir/*.parquet",
  "format" = "parquet",
  "aws.s3.access_key" = "your_ak",
  "aws.s3.secret_key" = "your_sk",
  "aws.s3.endpoint" = "oss-cn-hangzhou-internal.aliyuncs.com" 
);
说明
  • path 不可直接写目录路径,需使用 /dir/* 格式来指定目录下所有文件,或用 *.parquet 来匹配特定后缀的文件。

  • format 为必填参数。

  • 查询时 compression 可省略,系统自动识别文件压缩格式。