首页 > 解决方案 > 创建指向 S3 的外部表

问题描述

我们如何使用指向 S3 中目录的 Snowflake sql 创建外部表?以下是我迄今为止尝试过的代码,但没有奏效。非常感谢任何帮助。

create external table my_table
(
column1 varchar(4000),
column2 varchar(4000)
)
LOCATION 's3a://<externalbucket>'

注意:我在 S3 存储桶中的文件是一个 csv 文件(逗号分隔,双引号括起来并带有标题)。

标签: sqlamazon-s3snowflake-cloud-data-platformexternal-tablessnowsql

解决方案


您需要将您的位置更新为外部阶段,包括file_format参数,并包括列的正确表达式。
位置参数:

Specifies the external stage where the files containing data to be read are staged.  

此外,您需要定义file_format

https://docs.snowflake.com/en/sql-reference/sql/create-external-table.html#required-parameters

所以你的陈述应该更像这样:

create external table my_table
(
column1 varchar as (value:c1::varchar),
column2 varchar as (value:c2::varchar)
)
location = @[namespace.]ext_stage_name[/path]
file_format = (type = CSV)

您可能需要在文件格式中定义其他参数以适当地处理您的文件


推荐阅读