雪花云数据平台 - 从 s3 阶段读取时需要选择存储桶名称



我正在通过阶段从雪花中的 S3 文件夹中读取。 s3 中的存储桶有多个文件夹(如果我们想调用它,也可以调用它(。 存储桶中的文件夹基于日期

date=2020-06-01
date=2020-06-02
date=2020-06-03
date=2020-06-04
date=2020-06-05

我正在使用下面的查询一次读取所有文件夹。 这工作正常。

select raw.$1:name name,
raw.$1:id ID
from
@My_Bucket/student_date/
(FILE_FORMAT => PARQUET, 
PATTERN =>'.*date=.*gz.parquet') raw
;   

现在我想在我的查询中选择文件夹名称,有没有办法做到这一点。

喜欢要包含的输出

name | id | date..

请求建议

Snowflake 有一个内置的元数据字段,提供完整的文件名,包括路径。 您应该能够运行以下查询:

select raw.$1:name name,
raw.$1:id ID,
METADATA$FILENAME 
from
@My_Bucket/student_date/
(FILE_FORMAT => PARQUET, 
PATTERN =>'.*date=.*gz.parquet') raw
; 

我知道你只在日期部分之后,但是一旦你有了文件名,你就可以使用SPLIT_PART函数从文件名中获取日期部分。

例如
SPLIT_PART(METADATA$FILENAME, '/', 4)

希望这有帮助。

最新更新