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일 이내의 데이터베이스 새로 고침 활동을 반환해요.

출처: Snowflake SYSTEM$DATABASE_REFRESH_PROGRESS 함수 문서

본문

구문 (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 역할을 가진 사용자)의 결과만 반환해요.
  • 다음은 처리 순서대로 나열한 단계 목록이에요.
    1. SECONDARY_UPLOADING_INVENTORY
    2. PRIMARY_UPLOADING_METADATA
    3. PRIMARY_UPLOADING_DATA
    4. SECONDARY_DOWNLOADING_METADATA
    5. SECONDARY_DOWNLOADING_DATA
    6. 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'))));

더 알아보기