sql - 如何在雪花加载期间加入表?
问题描述
我已经将数据加载到他们的阶段,我想将它们连接在一起,但似乎我无法join
在管道中执行语句。
这是我的代码:
create or replace pipe publictransportation.public.busstop_pipe
as
copy into publictransportation.public.DIM_BUSSTOP
from (
select bsr.$1, bsr.$2,bsr.$3, bsr.$4, bsr.$5, bsr.$6
from
(
select bs.$1, bs.$2, bs.$3, bs.$4, sr.$2, sr.$3
from @publictransportation.public.busstop_stage bs
join @publictransportation.public.stoproute_stage sr
on bs.$1 = sr.$1
) bsr
)
file_format = csv_format;
我的代码只是在每个表中选择一些列并将它们连接在一起形成一个DIM_BUSSTOP
表。
我得到的错误是:
SQL compilation error: COPY statement only supports simple SELECT from stage statements for import.
如何执行join
并将其加载到DIM_BUSSTOP
表中?
解决方案
根据Snowflake 文档,COPY 转换不支持 JOIN 语法(尽管他们也说支持的函数列表可能会随着时间的推移而扩展)。
因此,您需要在两个不同的数据库表中创建两个PIPE,然后DIM_BUSSTOP
使用 Snowflake 中的普通 SQL 执行连接以创建。
推荐阅读
- react-native - React Native 调试器 - 在启动后不久执行的代码中没有命中断点
- r - R 和 SQL Server AzureVM 之间的数据传输速度降低
- javascript - 带有 Promises 的 Node JS cron 脚本
- c++ - 如何在运行时找出我的 c++ 应用程序中可用的视频编解码器?
- python - Python每天创建新文件以写入
- bash - Azure CLI 跳过覆盖标志
- html - 使用 padding-bottom 设置图像高度
- javascript - 使用 .find() 的 Mongoose 静态函数返回查询并且静态函数无法识别
- php - 在 Laravel 中按数据透视表 created_at 排序
- javascript - 如何解释 SyntaxError: Unexpected token (?:?), raiseAt:?