在SnowFlake中动态创建表(使用暂存区中的JSON数据)

时间:2019-07-02 11:49:53

标签: snowflake-datawarehouse snowflake snowflake-schema

是否可以通过使用暂存区中的JSON文件动态创建表(带有列)?

我使用了逗号:“从@StageName复制到TableName中;”

这会将json文件中的所有不同行放入单个列中。

enter image description here

但是,我想要不同的列。例如,第1列应为“ IP”,第2列应为“ OS”,依此类推。

提前谢谢!!

1 个答案:

答案 0 :(得分:0)

我在项目中实现了同样的事情。

因此,这是一个两步过程。

第一步-创建具有变体数据类型表的阶段表,并从阶段复制到表中-我可以看到您已经完成了该工作。

第二步-创建一个表或一个视图(因为雪花非常快,因此动态提取JSON数据的方法是View),它将直接从此变量列读取数据,就像这样

create or replace view schema.vw_tablename copy grants as  
SELECT
v:Duration::int Duration,
v:Connectivity::string Connectivity
...
from public.tablename

如果您的JSON具有结构数组,请在下面使用

create or replace view schema.vw_tablename copy grants as  
SELECT
v:Duration::int Duration,
v:Connectivity::string Connectivity,
f.value:Time::int as Event_Time,
from public.tablename,
table(flatten(v:arrayname)) f