SYSTEM$CATALOG_LINK_STATUS
SYSTEM$CATALOG_LINK_STATUS (카탈로그 연결 상태)
지정한 카탈로그 연결 데이터베이스의 연결(link) 상태를 반환해요.
본문
구문
SYSTEM$CATALOG_LINK_STATUS( '<catalog_linked_db_name>' )
인자
'<catalog_linked_db_name>'
상태를 확인하려는 카탈로그 연결 데이터베이스의 이름을 지정해요.
반환 값
이 함수는 다음 이름/값 쌍을 담은 JSON 객체를 반환해요:
{
"executionState":"<value>",
"failedExecutionStateReason":"<value>",
"failedExecutionStateErrorCode":"<value>",
"lastLinkAttemptStartTime":"<value>",
"failureDetails":[
{
"qualifiedEntityName":"<value>",
"entityDomain":"<value>",
"operation":"<value>",
"errorCode":"<value>",
"errorMessage":"<value>"
},
{ ... },
...
]
}
여기서:
executionState: Snowflake가 Iceberg 카탈로그에 연결하기 위해 사용하는 연결 작업의 현재 실행 상태. 값: RUNNING(다음 테이블 검색 동기화가 예약되었거나 실행 중이며, 모든 테이블이 성공적으로 동기화되었음을 보장하지는 않음), FAILED(연결 작업이 오류를 만나 실패함). 연결 작업이 실패하면 먼저 오류를 해결해요. 그러면 Snowflake가 자동으로 다음 테이블 검색 동기화를 예약해요. 단, 카탈로그 연결 데이터베이스에 대해 검색이 일시 중지된 경우는 예외예요. 검색을 일시 중지했다면 오류 해결 후ALTER DATABASE … RESUME DISCOVERY를 실행해 검색을 재개해요. 예:ALTER DATABASE IF EXISTS my_linked_db RESUME DISCOVERY;failedExecutionStateReason: FAILED 실행 상태와 관련된 오류 메시지. 마지막 동기화 시도가 성공했다면 함수 출력에 나타나지 않아요.failedExecutionStateErrorCode: FAILED 실행 상태와 관련된 오류 코드. 마지막 동기화 시도가 성공했다면 함수 출력에 나타나지 않아요.lastLinkAttemptStartTime: Snowflake가 원격 카탈로그의 변경 사항을 검색하고 동기화하는 프로세스를 마지막으로 시작한 시각을 나타내는 타임스탬프.failureDetails: Snowflake가 동기화할 수 없는 원격 카탈로그의 엔티티(예: 테이블)에 대한 세부 정보를 제공하는 객체 배열. 각 객체는 다음 필드를 가져요:qualifiedEntityName: 카탈로그 이름을 기준으로 한, 원격 카탈로그의 엔티티 정규화 이름. 예:namespace_level_1.namespace_level_2.table_name. 타입: String.entityDomain: 원격 카탈로그의 엔티티 도메인. 예: TABLE. 타입: String.operation: 동기화와 관련된 Snowflake의 작업. 예: 테이블이나 스키마 CREATE, DROP. 작업이 CATALOG_CONNECTION이면 Snowflake가 원격 카탈로그에 연결하려 할 때 오류가 발생했음을 의미해요. 작업이 DISCOVERY이면 Snowflake가 원격 카탈로그에서 테이블이나 네임스페이스를 검색하려 할 때 오류가 발생했음을 의미해요. 오류를 일으킨 테이블이나 네임스페이스를 보려면 entityDomain을 확인해요(TABLE 또는 NAMESPACE). 타입: String.errorCode: 실패와 관련된 오류 코드. 타입: String.errorMessage: 실패와 관련된 오류 메시지. 타입: String.
액세스 제어 요구 사항
이 SQL 명령을 실행하는 역할은 최소한 다음 권한 중 하나를 가져야 해요:
| 권한 | 객체 |
|---|---|
| OWNERSHIP | 대상 카탈로그 연결 데이터베이스 |
| MONITOR | 대상 카탈로그 연결 데이터베이스 |
사용 참고 사항
- failureDetails 필드는 DROP SCHEMA 및 DROP ICEBERG TABLE 실패에 대한 정보를 반환해요.
- 지정한 카탈로그 연결 데이터베이스에 대한 권한이 있는 역할을 사용하면 결과를 반환해요. 자세한 내용은 데이터베이스 권한을 참고해요.
예시
my_cld라는 카탈로그 연결 데이터베이스의 연결 상태를 가져와요:
SELECT SYSTEM$CATALOG_LINK_STATUS('my_cld');
출력:
{
"executionState": "RUNNING",
"lastLinkAttemptStartTime": "2025-02-14T01:35:01.71Z",
"failureDetails": [
{
"qualifiedEntityName": "my_namespace.table_1",
"entityDomain": "TABLE",
"operation": "CREATE",
"errorCode": "0040000",
"errorMessage": "An internal error occurred. Please contact Snowflake support."
},
{
"qualifiedEntityName": "my_namespace.table_2",
"entityDomain": "TABLE",
"operation": "CREATE",
"errorCode": "0040000",
"errorMessage": "An internal error occurred. Please contact Snowflake support."
}
]
}