Snowflake에서 적용한 제약 조건 내에서 유지되는 처리기 설계하기

Snowflake 환경 내에서 안정성을 보장하기 위해 Snowflake는 처리기 코드에 다음과 같은 제약 조건을 적용합니다. 달리 명시되지 않는 한 이러한 제한 사항은 처리기가 만들어질 때가 아니라 실행될 때 적용됩니다.

이 항목의 내용:

너무 많은 메모리 소비 피하기

대량의 메모리를 소비할 수 있는 다음과 같은 요인을 방지하십시오.

  • 큰 데이터 값. 큰 배열, 오브젝트 또는 베리언트뿐 아니라 이진 값도 여기에 포함될 수 있습니다.

    Snowflake는 SQL 데이터 타입과 처리기 언어의 해당 타입 사이에서 변환합니다. 자세한 내용은 SQL 및 처리기 언어 간의 데이터 타입 매핑 섹션을 참조하십시오.

  • 과도한 스택 깊이. Snowflake는 오류 없이 50개 수준으로 중첩된 간단한 함수 호출을 테스트했습니다. 실제 최대 제한은 스택에 있는 정보의 양에 따라 다릅니다.

처리기 코드는 너무 많은 메모리를 소비할 경우 오류를 반환합니다. 특정 제한은 변경될 수 있습니다.

호출당 많은 시간이 소요되는 알고리즘 피하기

처리기가 완료하는 데 너무 오래 걸리는 경우, Snowflake는 SQL 문을 종료하고 사용자에게 오류를 반환합니다. 이는 무한 루프와 같은 오류의 영향과 비용을 제한합니다.

보안 취약점을 유발할 수 있는 라이브러리 사용 금지하기

처리기는 외부 라이브러리의 기능을 사용할 수 있지만, Snowflake 보안 제한으로 인해 파일에 쓰기와 같은 일부 기능이 비활성화됩니다. 라이브러리 제한 사항에 대한 자세한 내용은 UDF 및 프로시저의 보안 모범 사례 섹션을 참조하십시오.