snowflake-cloud-data-platform - 从 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)
希望这可以帮助。
推荐阅读
- python - Python OpenCV - 是否可以更改整个 numpy 数组的图像尺寸/颜色类型?
- mysql - 如何编写 mysql 查询以从一个表中获取记录列表,其中列与多个其他表连接
- r - 使用循环检索R中向量中每个元素的数据并组装一个新的数据框
- elasticsearch - logstash geo_point 错误麋鹿纬度必须是数字
- android - 如何使 Jetpack 撰写复选框四舍五入
- java - 已经赋值后如何修改对象属性的值?
- java - 当结果是 Map 类型(不是 ConcurrentHashMap)时,执行“并发减少”是否有效?
- c++ - 如何检查所有向量值是否等于确定值
- python - 如何从行中提取列名并将它们提升为标题?
- c++ - 具有多个可执行文件的 C++ Makefile 自动依赖