sql - 创建指向 S3 的外部表
问题描述
我们如何使用指向 S3 中目录的 Snowflake sql 创建外部表?以下是我迄今为止尝试过的代码,但没有奏效。非常感谢任何帮助。
create external table my_table
(
column1 varchar(4000),
column2 varchar(4000)
)
LOCATION 's3a://<externalbucket>'
注意:我在 S3 存储桶中的文件是一个 csv 文件(逗号分隔,双引号括起来并带有标题)。
解决方案
您需要将您的位置更新为外部阶段,包括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)
您可能需要在文件格式中定义其他参数以适当地处理您的文件
推荐阅读
- amazon-web-services - Lambda.Unknown 未在 Step 函数中重试 lambda 执行
- python - 程序在调试会话期间停止,等待解决承诺
- javascript - 如何在带有 javascript 条件的媒体查询中使用 css?
- java - 带注解的 Java 类验证
- ansible - Ansible:根据先前任务的输出创建条件
- python - 如何解决 Kivy Launcher 回收视图错误?
- android - Android:我怎么知道哪些依赖项需要某个 mincompileapk?
- rust - 给定 Path 实例编写 File 的最佳方法是什么?
- go - 将 YAML 清单解析为 Kubernetes []client.Object
- angular - 当我在Angular .kendo上下文菜单中单击它时如何创建一个插入单词的函数