Лучший способ выполнить вычисления и сохранить вычисленные значения в другом snowsql

#snowflake-cloud-data-platform

Вопрос:

После загрузки данных в таблицу snow sql необходимо выполнить некоторые вычисления и сохранить их в таблице differnet snow sql.

каков наилучший способ достичь этого?

В команде копирования я могу заказать или выбрать определенный столбец для приема данных, но не могу получить производный столбец с помощью простой математики при загрузке данных, после загрузки во временную таблицу, что я должен использовать для выполнения таких операций, как агрессия … и т. Д

Некоторые примеры были бы великолепны.

Ответ №1:

Учитывая таблицу foobar , содержащую отдельные строки записей, вы можете (например) агрегировать по времени и сохранить результат в таблице foo со следующим SQL.

 create or replace table foo (date date, events number, users number);

insert overwrite into foo select event_time::date,count(*),approx_count_distinct(uuid) from foobar group by 1 order by 1 asc;

select * from foo;
 

Это помогло бы увидеть ваш SQL, но, возможно, вам просто нужно использовать INSERT его вместо COPY INTO , так как последний предназначен для «Загрузки данных из промежуточных файлов».

Также стоит отметить, что Snowflake хранит в качестве метаданных некоторые агрегации (количество, минимальное, смешанное, различное количество и т.д.), Поэтому запросы агрегации могут быть метаданными-только в этом случае они очень быстрые и сводная таблица не нужна.