REPLICATION_GROUP_REFRESH_PROGRESS, REPLICATION_GROUP_REFRESH_PROGRESS_BY_JOB, REPLICATION_GROUP_REFRESH_PROGRESS_ALL

REPLICATION_GROUP_REFRESH_PROGRESS, REPLICATION_GROUP_REFRESH_PROGRESS_BY_JOB, REPLICATION_GROUP_REFRESH_PROGRESS_ALL

REPLICATION_GROUP_REFRESH_PROGRESS 테이블 함수 계열은 복제 또는 장애 조치(failover) 그룹의 새로고침(refresh) 작업 상태를 조회하는 데 사용할 수 있어요:

  • REPLICATION_GROUP_REFRESH_PROGRESS는 이름으로 보조 복제 또는 장애 조치 그룹의 새로고침 상태를 나타내는 JSON 객체를 반환해요.
  • REPLICATION_GROUP_REFRESH_PROGRESS_BY_JOB은 쿼리 ID로 보조 복제 또는 장애 조치 그룹의 새로고침 상태를 나타내는 JSON 객체를 반환해요.
  • REPLICATION_GROUP_REFRESH_PROGRESS_ALL은 모든 보조 복제 및 장애 조치 그룹의 새로고침 상태를 나타내는 JSON 객체를 반환해요.

Standard & Business Critical 기능: 데이터베이스 및 공유 복제는 모든 계정에서 사용할 수 있어요. 다른 계정 객체의 복제 및 장애 조치/복귀(failover/failback)는 Business Critical Edition(또는 그 이상)을 요구해요. 업그레이드에 대해 문의하려면 Snowflake 지원팀에 연락하세요.

참고:

  • REPLICATION_GROUP_REFRESH_PROGRESS는 가장 최근 새로고침이 지난 14일 이내에 발생한 경우에만 해당 최근 새로고침의 복제 또는 장애 조치 그룹 새로고침 활동을 반환해요.
  • REPLICATION_GROUP_REFRESH_PROGRESS_BY_JOB과 REPLICATION_GROUP_REFRESH_PROGRESS_ALL은 지난 14일 이내의 복제 또는 장애 조치 그룹 새로고침 활동을 반환해요. 기본적으로(날짜 범위 인자를 제공하지 않으면) REPLICATION_GROUP_REFRESH_PROGRESS_ALL은 최근 12시간의 데이터를 반환해요. 선택적 DATE_RANGE_START와 DATE_RANGE_END 인자를 사용해 14일 보존 기간 내의 사용자 지정 범위를 조회하세요.

출처: 문서

본문

문법 (Syntax)

REPLICATION_GROUP_REFRESH_PROGRESS( '<secondary_group_name>' )

REPLICATION_GROUP_REFRESH_PROGRESS_BY_JOB( '<query_id>' )

REPLICATION_GROUP_REFRESH_PROGRESS_ALL(
      [ DATE_RANGE_START => <constant_expr> ]
      [ , DATE_RANGE_END => <constant_expr> ] )

인자 (Arguments)

  • 'secondary_group_name' — 보조 복제 또는 장애 조치 그룹의 이름이에요. 전체 이름은 작은따옴표로 감싸야 해요.
  • 'query_id' — 복제 그룹 새로고침 쿼리의 ID예요. 쿼리 ID는 웹 인터페이스의 History 페이지에서 얻을 수 있어요.

다음 인자는 REPLICATION_GROUP_REFRESH_PROGRESS_ALL에 선택적이에요.

  • DATE_RANGE_START => constant_expr , DATE_RANGE_END => constant_expr — 복제 새로고침 진행률을 반환할 날짜/시간 범위예요. 시작 날짜와 끝 날짜를 모두 지정하지 않으면 기본값은 최근 12시간이에요. 시작 날짜를 지정하고 끝 날짜를 지정하지 않으면 자정의 CURRENT_DATE가 범위의 끝으로 사용돼요. 끝 날짜를 지정하고 시작 날짜를 지정하지 않으면 DATE_RANGE_END 시작 12시간 전부터 범위가 시작돼요. 데이터는 14일 동안 보존돼요. 요청한 범위가 14일 보존 기간을 넘어서면 함수는 오류를 반환해요.

출력 (Output)

이 함수는 다음 열을 반환해요. REPLICATION_GROUP_REFRESH_PROGRESS_ALL에는 결과 집합의 처음 두 열인 추가 열이 있어요.

열 이름 (Column Name) 데이터 타입 (Data Type) 설명 (Description)
GROUP_NAME TEXT 결과 집합에서 이 행에 해당하는 보조 복제 또는 장애 조치 그룹을 지정해요. REPLICATION_GROUP_REFRESH_PROGRESS_ALL에만 적용돼요.
GROUP_TYPE TEXT 결과 집합에서 이 행에 해당하는 그룹이 장애 조치 그룹인지 복제 그룹인지 지정해요. 값은 FAILOVER 또는 REPLICATION이에요. REPLICATION_GROUP_REFRESH_PROGRESS_ALL에만 적용돼요.
PHASE_NAME TEXT 지금까지 완료(또는 진행 중)된 복제 단계의 이름이에요. 단계 목록은 사용 메모를 참조하세요.
START_TIME TIMESTAMP_LTZ 복제 단계가 시작된 시간
END_TIME TIMESTAMP_LTZ 해당되는 경우 단계가 끝난 시간. 단계가 진행 중이거나 종료 단계(COMPLETED/FAILED/CANCELED)인 경우 NULL
PROGRESS TEXT PRIMARY_UPLOADING_DATA: 복제된 총 바이트의 백분율. SECONDARY_DOWNLOADING_METADATA: 복제된 총 객체 수의 백분율. SECONDARY_DOWNLOADING_DATA: 복제된 총 바이트의 백분율. SECONDARY_COMMITTING: 복제를 마친 테이블의 백분율. 나머지 단계에 대해서는 비어 있음
DETAILS VARIANT PRIMARY_UPLOADING_METADATA 단계: primarySnapshotTimestamp: 기본 스냅샷이 생성된 시간. 형식은 epoch 시간. PRIMARY_UPLOADING_DATA 단계: totalBytesToReplicate: 업로드될 것으로 예상되는 총 바이트 수. totalBytesToUpload: 업로드에 필요한 총 바이트 수. bytesUploaded: 지금까지 업로드된 총 바이트 수. databases: 각 구성원 데이터베이스에 대해 다음 필드를 포함하는 JSON 객체 목록: name: 데이터베이스 이름. totalBytesToReplicate: 데이터베이스에 대해 업로드될 것으로 예상되는 총 바이트 수. SECONDARY_DOWNLOADING_DATA 단계: totalBytesToReplicate: 다운로드될 것으로 예상되는 총 바이트 수. totalBytesToDownload: 실제 다운로드에 필요한 바이트 수. bytesDownloaded: 지금까지 실제 다운로드된 바이트 수. databases: 각 구성원 데이터베이스에 대해 다음 필드를 포함하는 JSON 객체 목록: name: 데이터베이스 이름. totalBytesToReplicate: 데이터베이스에 대해 다운로드될 것으로 예상되는 총 바이트 수. SECONDARY_DOWNLOADING_METADATA 단계: totalObjects: 다운로드할 총 객체 수. completedObjects: 지금까지 다운로드된 총 객체 수. objectTypes: 각 객체 유형에 대해 다음 필드를 포함하는 JSON 객체 목록: objectType: 객체 유형(예: users, roles, grants, warehouses, schemas, tables, columns 등). totalObjects: 이 유형의 총 객체 수. completedObjects: 이 유형의 완료된 객체 수. SECONDARY_COMMITTING 단계: totalObjects: 처리할 총 테이블 수. completedObjects: 지금까지 처리된 총 테이블 수. objectTypes: 각 객체 유형에 대해 다음 필드를 포함하는 JSON 객체 목록: objectType: 객체 유형. totalObjects: 이 유형의 총 객체 수. completedObjects: 이 유형의 완료된 객체 수. FAILED 단계: errorCode: 실패의 오류 코드. errorMessage: 실패의 오류 메시지.

사용 메모 (Usage notes)

  • DATE_RANGE_START 또는 DATE_RANGE_END 인자를 제공하지 않으면 REPLICATION_GROUP_REFRESH_PROGRESS_ALL은 최근 12시간의 데이터를 반환해요. 최근 12시간을 넘는 데이터를 검색하려면 날짜 범위를 명시적으로 지정하세요. 데이터는 최대 14일 동안 사용할 수 있어요.
  • 복제 또는 장애 조치 그룹에 대한 특권이 있는 역할에 대해서만 행을 반환해요.
  • 현재 계정의 보조 복제 또는 장애 조치 그룹에 대해서만 행을 반환해요.
  • 정보 스키마(Information Schema) 테이블 함수를 호출할 때 세션에 INFORMATION_SCHEMA 스키마가 사용 중이거나 함수 이름이 정규화되어야 해요. 자세한 내용은 Snowflake Information Schema를 참조하세요.
  • 처리되는 순서대로의 단계 목록은 다음과 같아요:
    1. SECONDARY_SYNCHRONIZING_MEMBERSHIP — 보조 복제 또는 장애 조치 그룹이 그룹에 포함된 객체에 대한 정보를 기본 그룹으로부터 받고 멤버십 메타데이터를 갱신해요.
    2. SECONDARY_UPLOADING_INVENTORY — 보조 복제 또는 장애 조치 그룹이 대상 계정에 있는 객체의 인벤토리를 기본 그룹에 보내요.
    3. PRIMARY_UPLOADING_METADATA — 기본 복제 또는 장애 조치 그룹이 소스 계정의 메타데이터 스냅샷을 만들고 보조 그룹에 보내요.
    4. PRIMARY_UPLOADING_DATA — 기본 복제 또는 장애 조치 그룹이 소스와 대상 계정의 객체 간 델타를 조정하기 위해 보조 그룹이 필요로 하는 파일을 복사해요.
    5. SECONDARY_DOWNLOADING_METADATA — 보조 복제 또는 장애 조치 그룹이 기본이 보낸 메타데이터의 스냅샷을 적용해요. 메타데이터 업데이트는 원자적으로 적용되지 않고 시간에 걸쳐 적용돼요.
    6. SECONDARY_DOWNLOADING_DATA — 보조 복제 또는 장애 조치 그룹이 기본 그룹이 보낸 파일을 대상 계정에 복사해요.
    7. SECONDARY_COMMITTING — 보조 복제 또는 장애 조치 그룹이 기본 계정에서 복사된 파일의 데이터 변경 사항을 테이블에 적용해요.
    8. COMPLETED / FAILED / CANCELED — 새로고침 작업 상태.
  • PRIMARY_UPLOADING_DATA와 SECONDARY_DOWNLOADING_DATA 단계에서 totalBytesToReplicate 값은 복제 작업 전에 추정돼요. 이 값은 해당 단계의 totalBytesToUpload 또는 totalBytesToDownload 값과 다를 수 있어요. 예를 들어 PRIMARY_UPLOADING_DATA 단계 중에 이전 복제 작업이 일부 바이트를 업로드했지만 작업이 완료되기 전에 취소됐다면, 해당 바이트는 다시 업로드되지 않아요. 이 경우 totalBytesToUpload는 totalBytesToReplicate보다 작아요.

예제 (Examples)

복제 그룹 rg1에 대한 현재 새로고침 진행률을 검색하려면 다음 문을 실행해요:

SELECT phase_name, start_time, end_time, progress, details
  FROM TABLE(INFORMATION_SCHEMA.REPLICATION_GROUP_REFRESH_PROGRESS('rg1'));

쿼리 ID로 복제 그룹 새로고침 진행률을 검색하려면 예제의 쿼리 ID를 바꾸고 다음 문을 실행해요:

SELECT phase_name, start_time, end_time, progress, details
  FROM TABLE(
    INFORMATION_SCHEMA.REPLICATION_GROUP_REFRESH_PROGRESS_BY_JOB(
      '012a3b45-1234-a12b-0000-1aa200012345'));

모든 장애 조치 그룹과 복제 그룹에 대해 최근 12시간(기본값)의 새로고침 진행률을 검색하려면 다음 문을 실행해요:

SELECT phase_name, start_time, end_time, progress, details
  FROM TABLE(INFORMATION_SCHEMA.REPLICATION_GROUP_REFRESH_PROGRESS_ALL());

모든 그룹에 대해 최근 7일의 새로고침 진행률을 검색하려면:

SELECT phase_name, start_time, end_time, progress, details
  FROM TABLE(
    INFORMATION_SCHEMA.REPLICATION_GROUP_REFRESH_PROGRESS_ALL(
        DATE_RANGE_START => DATEADD(D, -7, CURRENT_DATE),
        DATE_RANGE_END => CURRENT_DATE));

더 알아보기 (Learn more)