我正在通过阶段从雪花中的 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)
希望这有帮助。