COPY_HISTORY

COPY_HISTORY

지난 14일 동안의 데이터 로딩 히스토리를 여러 차원으로 조회하는 Information Schema 테이블 함수예요. COPY INTO

문과 Snowpipe를 이용한 연속 데이터 로딩 양쪽의 로드 활동을 반환해요.

출처: 공식 문서

본문

이 테이블 함수는 지난 14일 동안의 Snowflake 데이터 로딩 히스토리를 여러 차원으로 조회하는 데 사용할 수 있습니다. 함수는 COPY INTO

문과 Snowpipe를 사용한 연속 데이터 로딩 양쪽의 로드 활동을 반환합니다. 이 테이블 함수는 LOAD_HISTORY 뷰의 10,000행 제한을 피합니다. 결과는 SQL 조건으로 필터링할 수 있습니다.

Snowsight에서도 데이터 로딩 세부 사항을 볼 수 있습니다. Monitor data loading activity by using Copy History를 참고하세요.

구문 (Syntax)

COPY_HISTORY(
      TABLE_NAME => '<string>'
       , START_TIME => <constant_expr>
      [, END_TIME => <constant_expr> ]
      [, PIPE_NAME => '<string>' ] )

인자 (Arguments)

필수 (Required):

TABLE_NAME => 'string'

테이블 이름을 지정하는 문자열입니다.

START_TIME => constant_expr

로드 이벤트를 검색할 시간 범위의 시작을 표시하는 타임스탬프(TIMESTAMP_LTZ 형식)로, 지난 14일 이내여야 합니다.

선택 (Optional):

END_TIME => constant_expr

로드 이벤트를 검색할 시간 범위의 끝을 표시하는 타임스탬프(TIMESTAMP_LTZ 형식)로, 지난 14일 이내여야 합니다. 기본값: CURRENT_TIMESTAMP.

PIPE_NAME => 'string'

파이프 이름을 지정하는 문자열입니다.

사용 참고 (Usage notes)

  • 대량 데이터 로드의 경우, 이 함수는 Snowflake 계정에 MONITOR 권한이 있는 역할, 또는 스키마·데이터베이스에 USAGE 권한이 있고 테이블에 어떤 권한이든 있는 역할에 대해 결과를 반환합니다.
  • Snowpipe 데이터 로드의 경우, 이 함수는 Snowflake 계정에 MONITOR 권한이 있는 역할, 또는 파이프를 포함하는 스키마·데이터베이스에 USAGE 권한이 있고 테이블에 어떤 권한이든 있는 역할에 대해 결과를 반환합니다. 게다가 파이프에 MONITOR가 없으면 파이프 이름, 파이프 테이블 이름, 파이프 스키마 이름, 파이프 카탈로그 이름이 NULL로 마스킹됩니다.
  • Information Schema 테이블 함수를 호출할 때는 세션이 INFORMATION_SCHEMA 스키마를 사용 중이거나 함수 이름이 완전히 한정되어야 합니다. 자세한 내용은 Snowflake Information Schema를 참고하세요.
  • 이 뷰는 14일 분량의 copy history 제한을 반환합니다. 이 제한을 피하려면 (Account Usage의) COPY_HISTORY 뷰를 사용하세요.
  • 이 함수는 오류가 있든 없든 완료까지 실행된 COPY INTO 명령만 포함합니다.
  • 테이블 객체를 삭제하거나 다시 만들면, 그 테이블로의 대량 데이터 로드(COPY INTO
문)에 대한 과거 데이터가 제거됩니다.
  • 파이프 객체를 삭제하거나 다시 만들면, 그 파이프를 사용한 Snowpipe 데이터 로드에 대한 과거 데이터가 제거됩니다.
  • COPY_HISTORY 뷰는 대상 테이블에 대한 가장 최근 truncate 연산 이후의 copy history만 보여줍니다. 이는 복제(replication) 전후의 COPY_HISTORY 뷰에 적용됩니다.
  • 출력 (Output)

    함수는 다음 컬럼을 반환합니다:

    컬럼 이름 데이터 타입 설명
    FILE_NAME TEXT 원본 파일의 이름과 파일에 대한 상대 경로.
    STAGE_LOCATION TEXT 원본 파일이 위치한 스테이지의 이름.
    LAST_LOAD_TIME TIMESTAMP_LTZ 파일 로딩이 끝난 날짜와 시간.
    ROW_COUNT NUMBER 원본 파일에서 로드된 행의 수.
    ROW_PARSED NUMBER 원본 파일에서 파싱된 행의 수. STATUS가 Load in progress이면 NULL.
    FILE_SIZE NUMBER 로드된 원본 파일의 크기(바이트).
    FIRST_ERROR_MESSAGE TEXT 원본 파일의 첫 번째 오류.
    FIRST_ERROR_LINE_NUMBER NUMBER 첫 번째 오류의 줄 번호.
    FIRST_ERROR_CHARACTER_POS NUMBER 첫 번째 오류 문자의 위치.
    FIRST_ERROR_COLUMN_NAME TEXT 첫 번째 오류의 컬럼 이름.
    ERROR_COUNT NUMBER 원본 파일의 오류 행 수.
    ERROR_LIMIT NUMBER 오류 수가 이 한계에 도달하면 중단.
    STATUS TEXT 상태: Load in progress, Loaded, Load failed, Partially loaded 또는 Load skipped.
    TABLE_CATALOG_NAME TEXT 대상 테이블이 있는 데이터베이스의 이름.
    TABLE_SCHEMA_NAME TEXT 대상 테이블이 있는 스키마의 이름.
    TABLE_NAME TEXT 대상 테이블의 이름.
    PIPE_CATALOG_NAME TEXT 파이프가 있는 데이터베이스의 이름.
    PIPE_SCHEMA_NAME TEXT 파이프가 있는 스키마의 이름.
    PIPE_NAME TEXT 로드 매개변수를 정의하는 파이프의 이름. COPY 문 로드의 경우 NULL.
    PIPE_RECEIVED_TIME TIMESTAMP_LTZ 파이프를 통해 로드된 파일의 INSERT 요청이 수신된 날짜와 시간. COPY 문 로드의 경우 NULL.
    BYTES_BILLED NUMBER Snowpipe가 과금 목적으로 사용하는 바이트 수를 나타내며, 이 히스토리 뷰 안에서 직접 Snowpipe 비용 영향을 파악할 수 있게 함.

    예제 (Examples)

    지난 한 시간의 모든 로딩 활동에 대한 세부 사항을 검색합니다:

    select *
    from table(information_schema.copy_history(TABLE_NAME=>'MYTABLE', START_TIME=> DATEADD(hours, -1, CURRENT_TIMESTAMP())));
    

    더 알아보기 (Learn more)