예산 문제 해결

이 항목의 내용:

다음 시나리오는 예산을 생성하거나 편집할 때 발생할 수 있는 문제를 해결하는 데 도움이 될 수 있습니다.

계정 예산을 활성화할 수 없음

계정 예산을 활성화할 수 없는 이유는 다음과 같이 여러 가지가 있습니다.

오류

Unknown user-defined function SNOWFLAKE.LOCAL.ACTIVATE

원인

Snowflake 계정이 새 계정인 경우 계정 예산을 아직 계정에서 사용할 수 없습니다.

해결책

새로 생성된 계정에서 계정 예산을 사용할 수 있을 때까지 기다리십시오. 계정 예산을 사용할 수 있게 되면 활성화할 수 있습니다.

오류

FAILURE: Uncaught exception of type 'BUDGET_ALREADY_ACTIVATED' on line X at position X

원인

계정 예산이 이미 활성화되었습니다.

해결책

<budget_name>!GET_CONFIG 메서드를 호출하면 활성화 타임스탬프를 볼 수 있습니다.

CALL SNOWFLAKE.LOCAL.ACCOUNT_ROOT_BUDGET!GET_CONFIG();
Copy

오류

-20000 (P0001): Uncaught exception of type 'NO_PERMISSION_TO_ACTIVATE_BUDGET' on line X at position X

원인

계정이 아직 Budgets 기능을 지원하지 않습니다.

해결책

Budgets 기능은 Gov 리전의 계정에서는 사용할 수 없습니다. Gov 리전에 대한 지원은 향후 릴리스에서 제공될 예정입니다.

사용자 지정 예산을 만들 수 없음

사용자 지정 예산을 만들 수 없는 이유는 여러 가지가 있습니다.

오류

FAILURE: SQL access control error: Insufficient privileges to operate on class 'BUDGET'

원인

사용 중인 역할에 사용자 지정 예산 생성에 필요한 권한이 없습니다.

해결책

필요한 권한이 있는 역할을 사용합니다. Budgets를 생성하기 위한 사용자 지정 역할 만들기 섹션을 참조하십시오.

오류

FAILURE: Uncaught exception of type 'STATEMENT_ERROR' on line 0 at position -1 :
Uncaught exception of type 'UNSUPPORTED_BUDGET_TYPE' on line X at position X

원인

생성자 메서드에 인자를 전달하여 예산을 생성합니다.

해결책

CREATE BUDGET 섹션을 참조하고 create 문을 수정하십시오.

사용자 지정 예산을 활성화할 수 없음

오류

FAILURE: Uncaught exception of type 'STATEMENT_ERROR' on line 0 at position -1 :
Uncaught exception of type 'UNSUPPORTED_BUDGET_TYPE' on line X at position X

원인

사용자 지정 예산에 대해 ACTIVATE 메서드를 호출하려고 했습니다.

해결책

ACTIVATE 메서드는 계정 예산에서만 사용할 수 있습니다. 사용자 지정 예산을 만든 후 <budget_name>!SET_SPENDING_LIMIT<budget_name>!SET_EMAIL_NOTIFICATIONS 메서드를 사용하여 예산을 구성하고 알림 이메일을 받기 시작하십시오.

계정 예산에 대해 메서드를 호출할 수 없음

계정 예산에 대한 메서드 호출이 실패할 수 있는 이유는 여러 가지가 있습니다.

오류

-20000 (P0001): Uncaught exception of type 'FUNCTION_NOT_SUPPORTED_FOR_ACCOUNT_ROOT_BUDGET' on line 11 at position 18

원인

계정 예산에 대해 다음 메서드 중 하나를 호출하려고 했습니다.

해결책

이러한 메서드는 계정 예산에서 사용할 수 없습니다. 계정 예산은 계정에서 지원되는 모든 오브젝트를 모니터링하며 오브젝트를 추가하거나 제거할 수 없습니다. 자세한 내용은 계정 예산 및 사용자 지정 예산 섹션을 참조하십시오.

오류

-20000 (P0001): Uncaught exception of type 'ACCOUNT_ROOT_BUDGET_NOT_ACTIVATED' on line X at position X

원인

계정 예산이 활성화되기 전에 계정 예산에 대한 메서드를 호출하려고 했습니다.

해결책

계정 예산을 활성화합니다.

사용자 지정 예산에서 오브젝트를 추가하거나 제거할 수 없습니다.

사용자 지정 예산에서 오브젝트를 성공적으로 추가하거나 제거하려면 메서드를 호출하는 데 사용되는 역할에 대한 필수 권한과 역할 이 있어야 합니다.

오류

002141 (42601): SQL compilation error:
Unknown user-defined function <budget_db>.<budget_schema>.<budget_name>!ADD_RESOURCE

원인

인스턴스 메서드를 호출하는 데 사용한 역할에는 예산에서 오브젝트를 추가(또는 제거)하기 위한 필수 권한이 없습니다.

해결책

메서드를 호출하는 데 사용된 역할에 필요한 인스턴스 역할과 권한을 부여합니다. 자세한 내용은 사용자 지정 예산을 모니터링하기 위한 사용자 지정 역할 만들기 섹션을 참조하십시오.

오류

002003 (02000): SQL compilation error:
<object_type> '<object_name>' does not exist or not authorized.

원인

사용자 지정 예산에 오브젝트를 추가하려고 했지만 메서드를 호출하는 데 사용한 역할에 필요한 권한이 없습니다.

해결책

예산에서 오브젝트를 추가(또는 제거)하려면 메서드를 호출하는 데 사용되는 역할에 해당 오브젝트에 대한 APPLYBUDGET 권한이 있어야 합니다. 상위 오브젝트가 데이터베이스 또는 스키마인 경우 해당 오브젝트가 포함된 데이터베이스 및 스키마에 대한 USAGE 권한도 있어야 합니다.

자세한 내용은 필수 오브젝트 권한 목록을 참조하십시오.

오류

Uncaught exception of type 'EXPRESSION_ERROR' on line 10 at position 21 :
Privilege 'APPLYBUDGET' is not authorized on the reference object.

원인

SYSTEM$REFERENCE 문에 PRIVILEGE 매개 변수를 지정하지 않고 오브젝트에 대한 참조를 생성하려고 했습니다.

해결책

오브젝트에 대한 APPLYBUDGET 권한으로 참조를 생성하십시오.

오류

505001 (55000): Uncaught exception of type 'EXPRESSION_ERROR' on line 10
at position 21 : Specified object does not exist or not authorized for
the reference.

원인

이 오류 메시지의 원인은 여러 가지가 있습니다.

  • 인라인 SYSTEM$REFERENCE 문을 사용하여 사용자 지정 예산에 SNOWFLAKE 데이터베이스를 추가하려고 했습니다.

  • 해당 오브젝트에 대한 참조를 생성하기 위한 필수 권한이 없습니다. 예산에 오브젝트를 추가하려면 유효한 참조가 필요합니다.

해결책

예산에 대한 이메일 알림을 설정할 수 없습니다.

다음 시나리오는 <budget_name>!SET_EMAIL_NOTIFICATIONS 메서드를 호출할 때 흔히 발생하는 문제를 해결하는 데 도움이 될 수 있습니다.

오류

Unknown user-defined function <database_name>.<schema_name>.<budget_name>.SET_EMAIL_NOTIFICATIONS

원인

사용자 지정 예산에 대한 이메일 알림을 설정하는 데 사용한 역할에 ADMIN 인스턴스 역할이 없습니다.

해결책

필요한 권한과 역할이 있는 역할을 사용하십시오. SET_EMAIL_NOTIFICATIONS에 대한 액세스 제어 요구 사항 섹션을 참조하십시오.

오류

Integration '<INTEG_NAME>' does not exist or not authorized.

원인

알림 통합이 존재하지 않습니다.

해결책

유효한 알림 통합을 사용하십시오. 자세한 내용은 이메일 알림 통합 만들기 섹션을 참조하십시오. 예산 알림을 받을 이메일 주소를 ALLOWED_RECIPIENTS 목록에 포함시킵니다.

오류

FAILURE: Uncaught exception of type 'EXPRESSION_ERROR' on line 16 at position 34 : Following email address(es) are not
allowed by the email integration <INTEGRATION_NAME>: [<email>]

원인

알림 통합에 이메일 주소가 포함되지 않습니다.

해결책

알림 통합에 이메일 주소를 추가하거나 ALLOWED_RECIPIENTS 목록의 모든 이메일 주소를 포함하는 알림 통합을 사용하십시오.

오류

Email recipients in the given list at indexes [<index_list>] are not allowed. Either these email addresses are not yet validated
or do not belong to any user in the current account.

원인

추가하려고 했던 이메일 주소 중 일부 또는 전부가 확인되지 않았습니다.

해결책

이메일 알림 수신자의 이메일 주소 확인 섹션을 참조하십시오.

GET_SERVICE_TYPE_USAGE 메서드를 성공적으로 호출할 수 없습니다.

다음 시나리오는 <budget_name>!GET_SERVICE_TYPE_USAGE 메서드를 호출할 때 흔히 발생하는 문제를 해결하는 데 도움이 될 수 있습니다.

오류

001044 (42P13): SQL compilation error: error line 0 at position -1 Invalid argument types for function 'GET_SERVICE_TYPE_USAGE':
(VARCHAR(X), VARCHAR(X), VARCHAR(X), VARCHAR(X))

원인

유효하지 않은 인자 또는 잘못된 개수의 인자를 사용하여 메서드를 호출했습니다.

해결책

메서드 호출에 사용하는 인자가 유효한지, 필수 인자를 모두 포함했는지 확인하십시오.

오류

002151 (22023): Uncaught exception of type 'STATEMENT_ERROR' on line 16 at position 23 : SQL compilation error:
[:TIME_DEPART] is not a valid date/time component for function DATE_TRUNC.

원인

TIME_DEPART 인자는 유효하지 않은 문자열입니다.

해결책

참조 항목의 TIME_DEPART 인자 에 나열된 유효한 값 중 하나를 사용합니다.

오류

100094 (22000): Uncaught exception of type 'STATEMENT_ERROR' on line 16 at position 23 : Unknown timezone: '<invalid_timezone>'

원인

USER_TIMEZONE 인자는 유효하지 않은 문자열입니다.

해결책

유효한 타임존 문자열을 사용하십시오. 자세한 내용은 GET_SERVICE_TYPE_USAGE의 사용법 노트 를 참조하십시오.

내 계정에서 Budgets 기능을 사용할 수 없음

오류

FAILURE: SQL compilation error: Class 'SNOWFLAKE.CORE.BUDGET' does not exist or not authorized.
000002 (0A000): Uncaught exception of type 'STATEMENT_ERROR' on line 0 at position -1 : Unsupported feature 'TOK_RESOURCE_GROUP'.

원인

계정이 아직 Budgets 기능을 지원하지 않습니다.

해결책

Budgets 기능은 Gov 리전의 계정에서는 사용할 수 없습니다. Gov 리전에 대한 지원은 향후 릴리스에서 제공될 예정입니다.