Snowflake Connector for MySQL 모니터링하기¶
참고
Snowflake Connector for MySQL 에는 커넥터 약관 이 적용됩니다.
다음 섹션에서는 뷰를 쿼리하고 로그 파일을 검사하여 커넥터를 모니터링하는 방법을 설명합니다.
커넥터에 대한 일반 정보 보기¶
커넥터에 대한 일반 정보를 보려면 DESCRIBE APPLICATION 명령을 실행합니다.
DESCRIBE APPLICATION <app_db_name>;여기서:
app_db_name
커넥터 데이터베이스의 이름을 지정합니다.
커넥터에 대한 더 구체적인 정보를 보려면 PUBLIC.CONNECTOR_CONFIGURATION
뷰를 쿼리합니다.
SELECT * FROM PUBLIC.CONNECTOR_CONFIGURATION;
PUBLIC.CONNECTOR_CONFIGURATION
뷰는 커넥터에 대해 구성된 각 매개 변수의 행을 표시합니다.
다음 표에서 이러한 매개 변수를 설명합니다.
매개 변수 |
설명 |
---|---|
alertingLogsView |
이메일 알림을 활성화한 경우 이벤트 테이블에 대한 액세스 권한을 제공하는 뷰 의 이름이 지정됩니다. |
alertingNotificationIntegration |
이메일 알림을 활성화한 경우 이메일 알림에 사용되는 알림 통합 오브젝트의 이름이 지정됩니다. |
alertingRecipients |
이메일 알림을 활성화한 경우 커넥터에서 이메일 알림을 받을 수 있는 (쉼표로 구분된) 이메일 주소 목록이 지정됩니다. |
alertingSchedule |
이메일 알림을 활성화한 경우 커넥터가 오류를 확인하고 알림을 보내는 일정이나 빈도가 지정됩니다. |
operational_warehouse |
커넥터가 사용하는 운영 웨어하우스의 이름입니다. |
웨어하우스 |
데이터 병합을 위한 컴퓨팅 웨어하우스의 이름입니다. |
데이터 원본 보기¶
데이터 원본에 대한 정보를 보려면 PUBLIC.DATA_SOURCES
뷰를 쿼리합니다.
SELECT * FROM PUBLIC.DATA_SOURCES;
PUBLIC.DATA_SOURCES
뷰는 커넥터에 대해 구성된 각 데이터 원본의 행을 표시합니다. 뷰는 다음과 같은 열로 구성됩니다.
열 이름 |
데이터 타입 |
설명 |
---|---|---|
NAME |
VARCHAR |
데이터 원본의 이름입니다. |
SCHEDULE |
VARCHAR |
복제 실행 일정입니다. 해당 데이터 원본의 예약된 복제가 비활성화된 경우 NULL을 표시합니다. |
DESTINATION_DB_NAME |
VARCHAR |
대상 데이터베이스의 이름입니다. |
데이터 원본의 복제 상태 보기¶
데이터 원본의 현재 복제 상태를 보려면 PUBLIC.DATA_SOURCE_REPLICATION_STATE
뷰를 쿼리합니다.
SELECT * FROM PUBLIC.DATA_SOURCE_REPLICATION_STATE;
PUBLIC.DATA_SOURCE_REPLICATION_STATE
뷰는 커넥터에서 구성된 각 데이터 원본의 행을 표시합니다. 뷰는 다음과 같은 열로 구성됩니다.
열 이름 |
데이터 타입 |
설명 |
---|---|---|
NAME |
VARCHAR |
데이터 원본의 이름입니다. |
TABLES_ADDED_COUNT |
NUMBER |
이 데이터 원본에서 능동적으로 복제된 테이블의 수입니다. 이 수에는 복제가 영구적으로 실패한 테이블은 포함되지 않습니다. |
CONNECTED_AGENT_ID |
VARCHAR |
데이터 원본에 할당된 에이전트 애플리케이션의 ID입니다. |
SCHEDULE |
VARCHAR |
복제 실행 일정입니다. 해당 데이터 원본의 예약된 복제가 비활성화된 경우 NULL을 표시합니다. |
REPLICATION_STATUS |
VARCHAR |
데이터 원본의 복제 상태입니다. 가능한 값은 다음과 같습니다.
|
PREVIOUS_SCHEDULED_RUN_STATUS |
VARCHAR |
이전에 예약된 복제의 상태입니다. 해당 데이터 원본의 예약된 복제가 비활성화된 경우 NULL을 표시합니다. 가능한 값은 다음과 같습니다.
|
PREVIOUS_RUN_FINISHED_AT |
TIMESTAMP_NTZ |
마지막으로 예약된 복제의 종료 타임스탬프입니다. 해당 데이터 원본의 예약된 복제가 비활성화된 경우 NULL을 표시합니다. |
원본 테이블의 복제 상태 보기¶
각 원본 테이블의 현재 복제 상태를 보려면 PUBLIC.REPLICATION_STATE
뷰를 쿼리합니다.
SELECT * FROM PUBLIC.REPLICATION_STATE;
PUBLIC.REPLICATION_STATE
뷰에는 각 원본 테이블에 대한 행이 표시됩니다. 뷰는 다음과 같은 열로 구성됩니다.
열 이름 |
데이터 타입 |
설명 |
---|---|---|
DATA_SOURCE_NAME |
VARCHAR |
원본 테이블이 포함된 데이터 원본의 이름입니다. |
SCHEMA_NAME |
VARCHAR |
원본 테이블의 스키마 이름입니다. |
TABLE_NAME |
VARCHAR |
원본 테이블의 이름입니다. |
REPLICATION_PHASE |
VARCHAR |
현재 복제 단계입니다. 가능한 값은 다음과 같습니다.
각 상태에 대한 설명은 복제 단계 이해하기 섹션을 참조하십시오. |
SCHEMA_INTROSPECTION_STATUS |
VARCHAR |
현재 스키마 자가 분석 상태입니다. 가능한 값은 다음과 같습니다.
|
SNAPSHOT_REPLICATION_STATUS |
VARCHAR |
현재 스냅샷 복제 상태입니다. 가능한 값은 다음과 같습니다.
|
INCREMENTAL_REPLICATION_STATUS |
VARCHAR |
현재 증분 복제 상태입니다. 가능한 값은 다음과 같습니다.
|
복제 단계 이해하기¶
각 원본 테이블의 복제는 다음 복제 단계에 있을 수 있습니다.
복제 단계 |
설명 |
---|---|
|
원본 테이블의 스키마를 검사하고 있습니다. 이 단계가 완료되면 대상 테이블이 생성됩니다. |
|
커넥터가 원본 테이블의 스냅샷 로드를 처리하고 있습니다. |
|
초기 로드가 완료되고 변경 데이터 캡처 프로세스를 사용하여 데이터가 복제되고 있습니다. |
참고
Snowflake Connector for MySQL 에 대한 복제 구성하기 에 설명되어 있는 대로 복제에서 테이블을 제거한 다음 다시 추가하여 FAILED 복제를 처음부터 시작할 수 있습니다.
테이블 스키마 버전 기록 보기¶
테이블 스키마 변경 기록을 보려면 다음과 유사한 명령을 사용하여 PUBLIC.SCHEMA_CHANGE_HISTORY
뷰를 쿼리합니다.
SELECT * FROM PUBLIC.SCHEMA_CHANGE_HISTORY;
PUBLIC.SCHEMA_CHANGE_HISTORY
뷰는 각 테이블의 유효한 스키마 버전에 대해 1개 또는 2개의 행을 표시합니다.
뷰는 다음과 같은 열로 구성됩니다.
열 이름 |
데이터 타입 |
설명 |
---|---|---|
DATA_SOURCE_NAME |
VARCHAR |
원본 테이블 데이터 원본 이름입니다. |
SCHEMA_NAME |
VARCHAR |
원본 테이블 스키마 이름입니다. |
TABLE_NAME |
VARCHAR |
원본 테이블 이름입니다. |
VERSION |
INTEGER |
스키마 버전 식별자로, 초기값은 0이며 스키마가 변경될 때마다 1씩 증가합니다. 테이블을 제거한 후 나중에 다시 추가하면 번호가 0부터 다시 시작됩니다. |
STATE |
VARCHAR |
다음 중 하나입니다.
처음에는 복제가 시작될 때 APPLIED 값을 가진 단일 행만 포함합니다. 이후 유효한 스키마 변경 후에는 두 개의 행이 포함되는데, 하나는 state=ACCEPTED이고 다른 하나는 state=APPLIED입니다. |
SOURCE_SCHEMA |
VARIANT |
원본 테이블의 스키마를 설명하는 JSON입니다. |
DESTINATION_TABLE_SCHEMA |
VARIANT |
이 스키마 버전이 적용된 후 대상 테이블의 스키마를 설명하는 JSON입니다. |
INSERTED_AT |
TIMESTAMP_NTZ |
이 레코드가 삽입된 UTC 타임스탬프입니다. |
커넥터 메트릭 보기¶
커넥터 복제 메트릭을 보려면 PUBLIC.CONNECTOR_STATS
뷰를 쿼리합니다.
SELECT * FROM PUBLIC.CONNECTOR_STATS;
PUBLIC.CONNECTOR_STATS
뷰는 증분 로드 복제 단계 동안 대상 테이블에 데이터가 주기적으로 병합되는 각 행을 표시합니다.
참고
이 뷰에서 특정 테이블에 대한 첫 번째 실행은 일반적인 후속 실행보다 길고 규모도 큽니다. 이는 커넥터가 초기 로드 단계에서 테이블에 대한 증분 업데이트를 수집하지만 전체 테이블이 복제된 후에만 업데이트를 처리한다는 사실 때문입니다.
뷰는 다음과 같은 열로 구성됩니다.
열 이름 |
데이터 타입 |
설명 |
---|---|---|
RESOURCE_INGESTION_DEFINITION_ID |
VARCHAR |
데이터 원본 이름, 스키마 이름, 테이블 이름에서 생성된 복제된 테이블의 식별자입니다. |
INGESTION_CONFIGURATION_ID |
VARCHAR |
향후 통합을 위한 내부 열입니다. |
INGESTION_PROCESS_ID |
VARCHAR |
병합 프로세스의 ID입니다. |
INGESTION_DEFINITION_NAME |
VARCHAR |
향후 통합을 위한 내부 열입니다. |
DATA_SOURCE_NAME |
VARCHAR |
테이블이 속한 데이터 원본의 이름입니다. |
SCHEMA_NAME |
VARCHAR |
테이블 스키마의 이름입니다. |
RESOURCE_NAME |
VARCHAR |
테이블 이름입니다. |
STARTED_AT |
TIMESTAMP_NTZ |
대상 테이블에 병합된 레코드 배치의 첫 번째 레코드를 원본 데이터베이스에서 읽은 시간입니다. |
STATUS |
VARCHAR |
병합 프로세스 상태입니다. 가능한 값은 다음과 같습니다.
|
INGESTED_ROWS |
NUMBER |
배치에서 병합된 행 수입니다. |
INGESTION_DURATION_S |
NUMBER |
배치 처리 시간(초)은 첫 번째 레코드가 관찰되는 시간과 레코드 배치가 대상 테이블에 병합되는 시간 사이의 차이로 계산됩니다. |
NATIVE_APP_PROCESSING_DURATION_S |
NUMBER |
Snowflake 측에서 데이터를 처리하는 데 걸린 시간(초)입니다. |
AGENT_PROCESSING_DURATION_S |
NUMBER |
에이전트 측에서 데이터를 처리하는 데 걸린 시간(초)입니다. |
THROUGHPUT_RPS |
NUMBER |
초당 레코드 수(RPS)로 표시되는 커넥터 처리량입니다. 전체 처리 시간을 고려합니다. |
NATIVE_APP_THROUGHPUT_RPS |
NUMBER |
초당 레코드 수(RPS)로 표시되는 Snowflake 측의 데이터 처리량입니다. |
집계된 커넥터 메트릭 보기¶
커넥터 복제 메트릭을 보려면 PUBLIC.AGGREGATED_CONNECTOR_STATS
뷰를 쿼리합니다.
SELECT * FROM PUBLIC.AGGREGATED_CONNECTOR_STATS;
PUBLIC.AGGREGATED_CONNECTOR_STATS
뷰는 매시간 집계되는 커넥터의 메트릭을 보여줍니다. 추가적인 집계와 분석을 위해 데이터 원본 이름, 스키마 이름, 테이블 이름이 포함된 열이 추가로 제공됩니다.
뷰는 다음과 같은 열로 구성됩니다.
열 이름 |
데이터 타입 |
설명 |
---|---|---|
DATE |
DATE |
집계 날짜로, 매시간 표시됩니다. |
PROCESSED_ROWS_COUNT |
NUMBER |
집계 시간 동안 테이블에 수집된 행의 합계입니다. |
THROUGHPUT_RPS |
NUMBER |
초당 레코드 수(RPS)로 표시된 집계 시간에 대한 테이블 처리량입니다. |
DATA_SOURCE_NAME |
VARCHAR |
테이블이 속한 데이터 원본의 이름입니다. |
SCHEMA_NAME |
VARCHAR |
테이블 스키마의 이름입니다. |
SOURCE_TABLE_NAME |
VARCHAR |
테이블 이름입니다. |
실험적 뷰 보기¶
커넥터에는 커넥터 상태에 대한 로우 레벨의 자세한 정보를 포함하는 여러 추가적인 뷰가 제공되며 상태 변경 기록 추적이 지원됩니다. 이러한 뷰는 접두사 EXPERIMENTAL
로 시작하는 이름을 가진 PUBLIC
스키마에서 찾아볼 수 있습니다.
다음 표에는 현재 사용 가능한 실험적 뷰가 요약되어 있습니다.
뷰 이름 |
설명 |
---|---|
EXPERIMENTAL_TABLE_REPLICATION_HISTORY |
커넥터에서 활성화된 모든 원본 테이블의 상태 변경 기록입니다. |
EXPERIMENTAL_DATA_SOURCE_REPLICATION_HISTORY |
커넥터에 구성된 모든 데이터 원본의 상태 변경 기록입니다. |
EXPERIMENTAL_EVENTS_HISTORY |
커넥터에서 발생한 모든 이벤트의 기록입니다. |
참고
실험적 뷰는 변경될 수 있으며 향후 커넥터 릴리스에서 수정하거나 제거할 수 있습니다.
커넥터 감사 로그 뷰 보기¶
커넥터에서 사용자 작업의 감사 로그를 보려면 PUBLIC.AUDIT_LOG
뷰를 쿼리합니다.
SELECT * FROM PUBLIC.AUDIT_LOG;
PUBLIC.AUDIT_LOG
뷰는 커넥터에서 기록된 사용자가 시작한 각각의 작업에 대한 행을 표시합니다.
뷰는 다음과 같은 열로 구성됩니다.
열 이름 |
데이터 타입 |
설명 |
---|---|---|
ACTION_TIME |
TIMESTAMP_NTZ |
작업이 발생한 시간입니다. |
ACTION_TYPE |
VARCHAR |
작업 유형입니다. |
PARAMETERS |
VARIANT |
작업의 추가 매개 변수입니다. |
이 뷰에 기록된 작업은 다음과 같습니다.
데이터 원본 추가
테이블 복제 활성화
테이블 복제 비활성화
데이터 원본에 대해 예약된 복제 활성화
데이터 원본에 대해 예약된 복제 비활성화
에이전트 감사 로그 뷰 보기¶
커넥터에서 에이전트 작업의 감사 로그를 보려면 PUBLIC.AGENT_AUDIT_LOG
뷰를 쿼리합니다.
SELECT * FROM PUBLIC.AGENT_AUDIT_LOG;
PUBLIC.AGENT_AUDIT_LOG
뷰는 커넥터에서 등록된 에이전트가 보고한 각각의 작업에 대한 행을 표시합니다.
뷰는 다음과 같은 열로 구성됩니다.
열 이름 |
데이터 타입 |
설명 |
---|---|---|
ACTION_TIME |
TIMESTAMP_NTZ |
작업이 발생한 시간입니다. |
ACTION_TYPE |
VARCHAR |
작업 유형입니다. |
PARAMETERS |
VARIANT |
작업의 추가 매개 변수입니다. |
이 뷰에 표시된 작업은 다음과 같습니다.
데이터 원본에 에이전트 할당
데이터 원본에서 에이전트 할당 취소
에이전트 등록
에이전트 등록 취소
스냅샷 로드 시작
스냅샷 로드 완료
스냅샷 로드 실패
스냅샷 로드 종료
스키마 자가 분석 성공
스키마 자가 분석 실패
증분 로드 시작
증분 로드 중지
증분 로드 실패
증분 로드 종료
스키마 변경 사항 보고
커넥터 로그 보기¶
커넥터 로그를 보려면 커넥터 로그 뷰 를 설정하는 동안 만든 이벤트 테이블을 쿼리합니다.
커넥터에서 에이전트 작업의 감사 로그를 보려면 PUBLIC.AGENT_AUDIT_LOG
뷰를 쿼리합니다.
SELECT * FROM PUBLIC.AGENT_AUDIT_LOG;
PUBLIC.AGENT_AUDIT_LOG
뷰는 커넥터에서 등록된 에이전트가 보고한 각각의 작업에 대한 행을 표시합니다.
뷰는 다음과 같은 열로 구성됩니다.
열 이름 |
데이터 타입 |
설명 |
---|---|---|
ACTION_TIME |
TIMESTAMP_NTZ |
작업이 발생한 시간입니다. |
ACTION_TYPE |
VARCHAR |
작업 유형입니다. |
PARAMETERS |
VARIANT |
작업의 추가 매개 변수입니다. |
이 뷰에 표시된 작업은 다음과 같습니다.
데이터 원본에 에이전트 할당
데이터 원본에서 에이전트 할당 취소
에이전트 등록
에이전트 등록 취소
스냅샷 로드 시작
스냅샷 로드 완료
스냅샷 로드 실패
스냅샷 로드 종료
스키마 자가 분석 성공
스키마 자가 분석 실패
증분 로드 시작
증분 로드 중지
증분 로드 실패
증분 로드 종료
스키마 변경 사항 보고
에이전트 로그 보기¶
에이전트가 실행 중이면 주기적으로 Snowflake에 로그를 보냅니다. 이러한 로그는
AGENT_LOGS
뷰에서 사용할 수 있으며 다음 쿼리를 사용하여 검색할 수 있습니다.SELECT * FROM PUBLIC.AGENT_LOGS;
다음 단계¶
필요한 경우와 이러한 절차를 완료한 후 Snowflake Connector for MySQL 문제 해결하기 의 단계를 검토합니다.