专家
我们将JSON文件存储在S3的以下文件夹结构中,如下所示: / appname / lob / 2020/07/24/12,/ appname / lob / 2020/07/24/13,/ appname / lob / 2020/07/24/14
stage @SFSTG = /appname/lob/
我们需要根据小时数创建一个带有分区的外部表。我们可以从metadata $ filename导出分区部分。但是,这里的问题是应该将分区列创建为时间戳还是varchar?
使用外部表从雪花访问文件时,哪种分区数据类型可以帮助我们提高性能。
答案 0 :(得分:0)
雪花的建议如下:
date_part date as to_date(substr(metadata$filename, 14, 10), 'YYYY/MM/DD'),
*仔细检查14是您阶段URL中分区的正确开始,我可能在这里不正确。
完整示例:
CREATE OR REPLACE EXTERNAL TABLE Database.Schema.ExternalTableName(
date_part date as to_date(substr(metadata$filename, 14, 10), 'YYYY/MM/DD'),
col1 varchar AS (value:col1::varchar)),
col2 varchar AS (value:col2::varchar))
PARTITION BY (date_part)
INTEGRATION = 'YourIntegration'
LOCATION=@SFSTG/appname/lob/
AUTO_REFRESH = true
FILE_FORMAT = (TYPE = JSON);