SYSTEM$REMOTE_APP_OPERATION
SYSTEM$REMOTE_APP_OPERATION
Snowflake Native App에 대해 원격 앱 작업(remote app operation)을 수행하는 시스템 함수예요. 이 함수는 제공자(provider)만 사용할 수 있어요.
본문
Syntax
SYSTEM$REMOTE_APP_OPERATION(
'<operation_type>',
'<package_name>',
'<application_hash>'
[, '<configuration>' ]
)
Arguments
필수:
'operation_type':
수행할 원격 작업의 유형이에요. 가능한 값: run_sql, enable, disable, retry_upgrade.
'package_name':
Snowflake Native App과 연결된 애플리케이션 패키지의 이름이에요.
'application_hash':
애플리케이션의 해시 값이에요. 이 값은 APPLICATION_STATE 뷰에서 확인하거나 SYSTEM$GET_HASH_FOR_APPLICATION을 호출해 찾을 수 있어요.
'configuration':
작업의 구성 필드를 포함하는 JSON 문자열이에요. run_sql 및 disable 작업 유형에 필요해요.
Returns
이벤트 테이블(event table)에서 작업 결과를 추적하는 데 사용할 수 있는 요청 ID가 포함된 JSON 문자열을 반환해요.
{"request_id": "<uuid>"}
Operation type: run_sql
run_sql 작업은 소비자 애플리케이션에서 SQL 문을 실행해요. 자세한 내용은 remote app operation guide를 읽어보세요.
configuration 인자에는 실행할 SQL 문을 값으로 하는 sql 키가 포함된 JSON 문자열을 전달해요. 예:
SELECT SYSTEM$REMOTE_APP_OPERATION(
'run_sql',
'package_name',
'application_hash',
'{"sql": "SELECT * FROM example_schema.example_table"}'
);
한 번에 하나의 SQL 문만 실행할 수 있어요. 여러 SQL 문을 제공하면(예: {"sql": "SELECT 1; SELECT 2"}) 실패해요.
Operation type: disable
disable 작업은 소비자 Snowflake Native App을 비활성화해요. 자세한 내용은 remote app operation guide를 읽어보세요. configuration 인자에는 Snowflake Native App을 비활성화하는 이유를 값으로 하는 reason 키가 포함된 JSON 문자열을 전달해요. 예:
SELECT SYSTEM$REMOTE_APP_OPERATION(
'disable',
'package_name',
'application_hash',
'{"reason": "Application needs to be disabled for maintenance"}'
);
Operation type: enable
enable 작업은 disable 작업으로 비활성화된 소비자 Snowflake Native App을 활성화해요. 예:
SELECT SYSTEM$REMOTE_APP_OPERATION(
'enable',
'package_name',
'application_hash'
);
참고: 이 작업은 제공자가 비활성화한 애플리케이션만 활성화할 수 있어요. Snowflake가 비활성화한 애플리케이션이라면 What to do if an app is unavailable을 참고하세요.
Operation type: retry_upgrade
retry_upgrade 작업은 소비자 Snowflake Native App의 업그레이드를 재시도해요. 비차단(non-blocking) 방식이에요. 예:
SELECT SYSTEM$REMOTE_APP_OPERATION(
'retry_upgrade',
'package_name',
'application_hash'
);