Динамически создавать таблицу в SnowFlake (используя данные JSON из промежуточной области) - PullRequest
0 голосов
/ 02 июля 2019

Есть ли способ динамически создать таблицу (со столбцами), используя файл JSON из области подготовки?

Я использовал запятую: 'copy to TableName from @StageName;'

Это поместит все разные строки в моем файле JSON в один столбец.

enter image description here

Однако мне нужны другие столбцы.Например, столбец 1 должен быть «IP», столбец 2 - «ОС» и т. Д.

Заранее спасибо !!

1 Ответ

0 голосов
/ 03 июля 2019

Я реализовал то же самое в своем проекте.

Итак, это двухэтапный процесс.

1-й шаг - Создайте таблицу этапов с таблицей типов данных вариантов и скопируйте в таблицу из этапа - я вижу, вы уже это сделали.

2-й этап - создайте таблицу илипредставление (так как снежинка очень быстрая, View - это путь к динамическому извлечению данных 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
...