首页 > 解决方案 > 如何在雪花加载期间加入表?

问题描述

我已经将数据加载到他们的阶段,我想将它们连接在一起,但似乎我无法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表中?

标签: sqlsnowflake-cloud-data-platform

解决方案


根据Snowflake 文档,COPY 转换不支持 JOIN 语法(尽管他们也说支持的函数列表可能会随着时间的推移而扩展)。

因此,您需要在两个不同的数据库表中创建两个PIPE,然后DIM_BUSSTOP使用 Snowflake 中的普通 SQL 执行连接以创建。


推荐阅读