이제 Snowflake Scripting을 일반적으로 사용할 수 있으므로 SQL에서 Snowflake를 사용하여 스크립트와 저장 프로시저를 생성할 수 있습니다. 이 프로시저 언어는 SQL 언어를 조건문 및 루프문과 같은 구조 및 제어문으로 확장하며, Snowflake 사용자(대부분 SQL을 알고 좋아하는 사용자)가 저장 프로시저를 생성하고 기존 SQL 기반 스크립트를 쉽게 번역할 수 있게 합니다.

미리 보기 중에 우리는 이 기능의 놀라운 채택과 사용을 목격했습니다. Snowflake Scripting은 사용 방법이 쉽습니다. 아래 팁에서는 몇 가지 중요한 개념을 살펴보겠습니다. 그러면 바로 실행할 수 있습니다. 

블록 이해하기

이 기능을 사용하면 Snowflake Scripting 블록 내에 프로시저 코드를 작성할 수 있습니다. 저장 프로시저의 정의에 블록을 사용하거나, 저장 프로시저에서 블록을 사용하지 않으려면 별도의 독립 실행형 SQL 문으로 익명 블록을 생성할 수 있습니다. 

테이블 반환하기

새로운 주요 기능 중 하나는 Snowflake Scripting으로 테이블을 반환하는 기능입니다. 이렇게 하면 Snowflake 사용자는 Snowflake Scripting을 사용하여 ETL 및 데이터 처리 작업을 개발할 수 있을 뿐만 아니라 보고 절차의 개발 또는 마이그레이션을 간소화할 수 있습니다. Snowflake Scripting은 Snowflake의 SQL과 긴밀하게 통합되어 있으며 데이터 공유 또는 마켓플레이스 애플리케이션을 구축할 때도 사용 및 공유할 수 있습니다.

작동 제어 흐름 문

Snowflake Scripting은 IF 및 CASE 문을 포함한 분기 구성을 지원합니다. 

  • IF를 사용하면 조건이 충족되는 경우 문 집합을 실행할 수 있습니다. 
  • CASE는 IF와 유사하게 작동하지만 여러 조건을 지정할 때 더 간단합니다.  

루프는 다음 4가지 유형이 있습니다. FOR, WHILE, REPEAT 및 LOOP 

  • FOR 루프는 지정된 횟수 동안 또는 결과 집합의 각 행에 대해 일련의 단계를 반복합니다. 이것은 카운터 기반 또는 커서 기반일 수 있습니다. 
  • WHILE 루프는 조건이 참일 때만 작동합니다. WHILE 조건은 루프 본문 바로 전에 테스트되며 조건이 거짓이면 루프가 실행되지 않습니다(첫 번째 반복에서 발생하더라도 한 번). 
  • REPEAT 루프는 조건이 참일 때까지 계속됩니다. 
  • LOOP 루프는 명령이 제공될 때까지 계속 실행됩니다. 

커서를 사용하여 한 번에 한 행씩 쿼리 결과를 반복할 수 있습니다. 쿼리 결과에서 데이터를 검색하려면 커서를 사용하십시오. 루프에서 커서를 사용하여 결과의 행에 반복할 수 있습니다.

처리 예외

Snowflake Scripting 블록 내에서 오류가 발생할 경우 예외를 발생시킬 수 있으며, 이 예외로 인해 다음 줄의 코드가 실행되지 않습니다. 또한 Snowflake Scripting 코드에서 발생하는 예외를 처리할 수 있습니다. 

예외가 발생하면 Snowflake 스크립팅은 핸들러를 찾으려고 시도합니다. 예외 핸들러는 다른 예외를 처리하는 동안 예외가 발생하는 경우 자체 예외 핸들러를 포함할 수 있습니다.

Snowflake Scripting에 대해 자세히 알아보려면Snowflake 설명서를 참조하고, 시작하려면 Medium에서 일부 샘플 SQL 스크립트를 확인하십시오.

보너스: Snowflake 데이터 분야의 슈퍼히어로인 Rajiv Gupta 역시 Medium에 분기 구성, 루프, 커서 결과, 및 예외 처리를 포함하는 시리즈를 가지고 있습니다.