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

Create a Table in SnowFlake dynamically (Using JSON data from the staging area)

有没有办法通过使用暂存区中的 JSON 文件动态创建 table(带列)?

我使用了命令:'copy into TableName from @StageName;'

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

但是,我想要不同的列。例如第 1 列应该是 "IP",第 2 列应该是 "OS" 等等。

提前致谢!!

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

所以这是一个两步过程。

第一步 - 创建一个具有变体数据类型 table 的阶段 table 并从阶段复制到 table - 我可以看到你已经这样做了。

第 2 步 - 创建一个 table 或一个视图(因为雪花速度超快,视图是动态提取 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