雪花外部表:添加新列

Posted

技术标签:

【中文标题】雪花外部表:添加新列【英文标题】:Snowflake External Table : Add new column 【发布时间】:2020-01-07 22:57:59 【问题描述】:

我成功创建了一个雪花外部表,并且能够从 s3 加载数据。我想在这个外部表中添加一列。在雪花文档中,他们说 - “使用以下 ALTER TABLE 语法更改现有外部表以添加或删除列: 添加列:ALTER TABLE … ADD COLUMN。 删除列:ALTER TABLE … DROP COLUMN。”

当我尝试向我的外部表添加一列时,它给了我以下错误 - "外部表列 TEST_COL 必须有定义表达式。"

我正在使用以下命令添加列 - alter table EXTTABLE_TEST 添加列 TEST_COL 号;

这是我所指的雪花文档的链接 - https://docs.snowflake.net/manuals/user-guide/tables-external-intro.html#adding-or-dropping-columns

有人可以帮我解决这个问题吗?甚至可以从外部表中添加/删除列。 任何帮助表示赞赏。

谢谢!

【问题讨论】:

【参考方案1】:

对外部表试试这个语法:

alter table EXTTABLE_TEST add column TEST_COL number as (value:TEST_COL::number);

有关外部表和示例的更多文档: https://docs.snowflake.net/manuals/sql-reference/sql/create-external-table.html#usage-notes

如果可以在文档中更清楚地说明这一点,我们欢迎任何 Snowflake 官方文档建议。文档底部附近有一个“报告文档问题”选项,也可用于反馈。

【讨论】:

谢谢苏西!那行得通。看起来文档需要更新。我将在该链接上单独回复。我还有一个问题 - 有没有办法在外部表中使用 alter 或 create 语句添加自动增量列? 好问题!外部表当前不支持自动增量列。那将是您可以在 Ideas 论坛上提交的功能请求。 community.snowflake.com/s/ideas

以上是关于雪花外部表:添加新列的主要内容,如果未能解决你的问题,请参考以下文章

外部表的雪花外部阶段文件推荐

来自 S3(COPY) 的雪花负载数据与来自外部表的负载

外部表的用例?

C# 实体框架向来自外部库的实体添加新列

使用 sqitch 生成更改表脚本

刷新数据共享视图时运行雪花任务