В этом разделе рассматривается API JavaScript для хранимых процедур Snowflake. API состоит из объектов JavaScript и методов этих объектов.

Хранимая процедура содержит логику, которую вы пишете, поэтому вы можете вызывать ее из SQL. Хранимая процедура обычно выполняет операции с базой данных или транзакции, выполняя операторы SQL. Давайте обсудим, как проводить отладку при использовании процедуры. И давайте сосредоточимся на том, как отслеживать эти ошибки/журналы для сбоев, а также для успешных транзакций, таких как количество затронутых строк, количество вставок, количество обновлений, количество удалений и т. д. Существует много способов отслеживания вышеуказанной информации, но это один из самых простых.

Необходимо:Snowflakeпробная учетная запись с доступом для чтения/записи объектов и пониманием SQL. Концепция загрузки-выгрузки данных в виде снежинок хороша, но не обязательна. Синтаксис API-интерфейса java-скрипта хранимой процедуры Snowflake удобен.

Целевая аудитория:опытв Snowflake и выполнение таких ролей, как инженер данных, разработчик или инженер Snowflake и т. д.

Введение. Вы можете использовать хранимую процедуру для автоматизации задачи, требующей нескольких операторов SQL и часто выполняемой. Вы можете просто вызвать процедуру для выполнения той же операции. Объект Snowflake по умолчанию доступен для кода JavaScript в хранимой процедуре. Вам не нужно создавать объект. Объекты содержат методы в API хранимых процедур внутри.

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

Шаг 1. Давайте создадим исходный и целевой экземпляры для этой демонстрации.

Шаг 2: давайте подготовим журнал или таблицу ошибок, которая отслеживает журналы независимо от успешной или неудачной транзакции. Один атрибут вставляет дату и время, а другой будет хранить ответ JSON, поэтому тип данных является вариантом. Посмотрим, как.

Шаг 3: Разработайте процедуру, которая будет отслеживать журналы и вставлять их в таблицу журналов. Эта процедура будет принимать JSON в качестве входного параметра, почему именно JSON мы обсудим позже.

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

Шаг 4: Давайте вставим один образец записи в целевой экземпляр, используя процедуру.

Обратитесь к строкам с 107 по 112, так как мы вызываем процедуру записи журнала для вставки в таблицу журнала в качестве ответа JSON в атрибуте варианта.

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

Шаг 5.Просмотрим таблицу журнала. Я поделился запросом выбора на шаге 8, чтобы увидеть вывод ниже, как показано, поскольку запрос выбора требует преобразования JSON.

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

Обратитесь к строкам с 184 по 189, так как мы вызываем процедуру записи журнала для вставки в таблицу журнала в виде ответа JSON в атрибуте варианта. Как и мы.

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

Шаг 7. Давайте запросим таблицу журнала, чтобы увидеть статус журнала, фиксируемый во время выполнения процедуры. Давайте применим некоторые преобразования к ответу JSON.

Шаг 8: преобразованы значения таблицы журналов с помощью функции бокового сглаживания, чтобы сделать их более читабельными. Ниже выберите запрос, который помогает проанализировать ответ JSON.

Шаг 9.Как упоминалось в шаге 8, тот же запрос применялся для неудачных транзакций.

Шаг 10: аналогичным образом давайте выполним одну команду обновления и одну команду удаления, чтобы проверить сценарий, как процедура может отслеживать информацию журнала. Здесь я обновил ту же процедуру, выделенную на шаге 4, строки № 255 — 256 были изменены в зависимости от операции.

Я обновил ту же процедуру, выделенную на шаге 4, строка № 254 была изменена на основе операции удаления.

Вывод.Вот как Snowflake поддерживает общий способ работы, а метод устранения неполадок заключается в использовании блока try/catch JavaScript для перехвата ошибки и отображения информации об ошибке. Спасибо за прочтение. Пожалуйста, не стесняйтесь общаться со мной, если у вас есть дополнительные вопросы, в моем Твиттере handle или в моем LinkedIn или оставьте комментарий ниже. Удачи!

Ссылка: Сохраненная-процедура, Снежинка-JavaScript, Снежинка-API