SYSTEM$DATABASE_REFRESH_PROGRESS, SYSTEM$DATABASE_REFRESH_PROGRESS_BY_JOB — Deprecated
SYSTEM$DATABASE_REFRESH_PROGRESS, SYSTEM$DATABASE_REFRESH_PROGRESS_BY_JOB — Deprecated
폐기됨(Deprecated): 이 함수들은 폐기되었어요. 대신 DATABASE_REFRESH_PROGRESS, DATABASE_REFRESH_PROGRESS_BY_JOB을 사용하세요.
SYSTEM$DATABASE_REFRESH_PROGRESS 함수 계열은 다양한 측면에서 데이터베이스 새로 고침(refresh)의 상태를 조회하는 데 사용할 수 있어요.
- SYSTEM$DATABASE_REFRESH_PROGRESS — 이름으로 보조(secondary) 데이터베이스의 현재 새로 고침 상태를 나타내는 JSON 객체를 반환해요.
- SYSTEM$DATABASE_REFRESH_PROGRESS_BY_JOB — 새로 고침 쿼리로 보조 데이터베이스의 현재 새로 고침 상태를 나타내는 JSON 객체를 반환해요.
참고: 이 함수들은 최근 14일 이내의 데이터베이스 새로 고침 활동을 반환해요.
본문
구문 (Syntax)
SYSTEM$DATABASE_REFRESH_PROGRESS( '<secondary_db_name>' )
SYSTEM$DATABASE_REFRESH_PROGRESS_BY_JOB( '<query_id>' )
인자 (Arguments)
secondary_db_name— 보조 데이터베이스의 이름이에요. 보조 데이터베이스가 현재 세션에서 활성 데이터베이스라면 이 인자는 선택 사항이에요. 이름 전체를 작은따옴표로 묶어야 해요.query_id— 데이터베이스 새로 고침 쿼리의 ID예요. 쿼리 ID는 웹 인터페이스의 History 페이지에서 얻을 수 있어요.
출력 (Output)
이 함수는 JSON 객체에서 다음 요소를 반환해요.
| 열 이름 | 데이터 타입 | 설명 |
|---|---|---|
| phaseName | TEXT | 지금까지 완료(또는 진행 중)된 복제 단계의 이름이에요. 단계 목록은 사용 참고를 참고하세요. |
| resultName | TEXT | 복제 단계의 상태예요. |
| startTimeUTC | NUMBER | 복제 단계가 시작된 시각이에요. 형식은 epoch 시간이에요. |
| endTimeUTC | NUMBER | 해당하는 경우 단계가 종료된 시각이에요. 형식은 epoch 시간이에요. |
| details | VARIANT | 데이터 새로 고침의 총 바이트 수와 해당 단계에서 지금까지 복사된 바이트 수를 보여주는 별도의 JSON 객체예요. 새로 고침 문장이 이전에 실패하거나 취소된 후 다시 시작된 경우 이 객체는 두 번째 시도에서 건너뛴 바이트 수를 나타내요. details 객체는 Copying Primary Data 및 Copying Replica Data 단계 정보에 포함돼요. |
사용 참고 (Usage Notes)
- 계정 관리자(ACCOUNTADMIN 역할을 가진 사용자)의 결과만 반환해요.
- 다음은 처리 순서대로 나열한 단계 목록이에요.
- SECONDARY_UPLOADING_INVENTORY
- PRIMARY_UPLOADING_METADATA
- PRIMARY_UPLOADING_DATA
- SECONDARY_DOWNLOADING_METADATA
- SECONDARY_DOWNLOADING_DATA
- COMPLETED / FAILED / CANCELED
예제 (Examples)
다음 예제는 지정된 보조 데이터베이스의 현재 새로 고침 상태를 가져와요. 결과는 JSON 객체로 반환돼요.
SELECT SYSTEM$DATABASE_REFRESH_PROGRESS('mydb');
다음 예제는 이전 예제와 동일한 세부 정보를 가져오지만 결과를 관계형 열로 분리하고 타임스탬프를 TIMESTAMP_LTZ로 캐스팅해요.
SELECT value:phaseName::string AS "Phase",
value:resultName::string AS "Result",
TO_TIMESTAMP_LTZ(value:startTimeUTC::numeric,3) AS "startTime",
TO_TIMESTAMP_LTZ(value:endTimeUTC::numeric,3) AS "endTime",
value:details AS "details"
FROM table(flatten(INPUT=> PARSE_JSON(SYSTEM$DATABASE_REFRESH_PROGRESS('mydb1'))));
다음 예제는 지정된 데이터베이스 새로 고침 쿼리의 상태를 가져와요. 결과는 JSON 객체로 반환돼요.
SELECT SYSTEM$DATABASE_REFRESH_PROGRESS_BY_JOB('4cbd7187-51f6-446c-9814-92d7f57d939b');
다음 예제는 이전 예제와 동일한 세부 정보를 가져오지만 결과를 관계형 열로 분리하고 타임스탬프를 TIMESTAMP_LTZ로 캐스팅해요.
SELECT value:phaseName::string AS "Phase",
value:resultName::string AS "Result",
TO_TIMESTAMP_LTZ(value:startTimeUTC::numeric,3) AS "startTime",
TO_TIMESTAMP_LTZ(value:endTimeUTC::numeric,3) AS "endTime",
value:details AS "details"
FROM TABLE(FLATTEN(input=> PARSE_JSON(SYSTEM$DATABASE_REFRESH_PROGRESS_BY_JOB('4cbd7187-51f6-446c-9814-92d7f57d939b'))));
더 알아보기
- Snowflake 시스템 정보 함수 — 관련 시스템 함수 전체 목록