有没有办法通过使用暂存区的 JSON 文件动态创建表(带列)?
我使用了命令:'copy into TableName from @StageName;'
这将我的 json 文件中的所有不同行放入单个列中。
但是,我想要不同的列。例如,第 1 列应为“IP”,第 2 列应为“操作系统”,依此类推。
先感谢您!!
有没有办法通过使用暂存区的 JSON 文件动态创建表(带列)?
我使用了命令:'copy into TableName from @StageName;'
这将我的 json 文件中的所有不同行放入单个列中。
但是,我想要不同的列。例如,第 1 列应为“IP”,第 2 列应为“操作系统”,依此类推。
先感谢您!!
我在我的项目中实现了同样的事情。
所以这是一个两步的过程。
第一步 - 创建一个包含变量数据类型表的阶段表并从阶段复制到表中 - 我可以看到你已经这样做了。
第二步 - 创建一个表或一个视图(因为雪花是超快的,视图是这种动态提取 JSON 数据的方法),它将直接从这个变量列中读取数据,就像这样
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