Snowflake Connector for MySQL 정보¶
참고
Snowflake Connector for MySQL 에는 커넥터 약관 이 적용됩니다.
Snowflake Connector for MySQL 를 사용하면 다음을 수행할 수 있습니다.
MySQL 데이터베이스에서 Snowflake로 데이터를 로드합니다.
MySQL 데이터베이스의 변경 내용이 Snowflake에 복제되도록 복제를 구성합니다.
Snowflake와 MySQL 사이의 연결을 처리하기 위해 커넥터는 에이전트를 사용합니다. 에이전트는 Docker 이미지로 배포됩니다. 에이전트는 네트워크 내에서 실행되며 Snowflake 계정으로 데이터를 푸시하는 데 사용됩니다.
참고
Snowflake Connector for MySQL 에서는 항상 정확히 하나의 에이전트 애플리케이션 인스턴스가 실행 중이어야 합니다.
진행 중인 증분 업데이트에서는 원본 데이터베이스에서 수행된 변경 사항을 캡처하는 변경 데이터 캡처(CDC) 기법을 사용합니다. 변경 사항에는 Snowflake의 대상 데이터베이스에 자동으로 복제되는 INSERT, UPDATE 및 DELETE 작업이 포함됩니다.
다중 애플리케이션 인스턴스¶
Snowflake 계정에 여러 개의 Snowflake Connector for MySQL 인스턴스를 설치할 수 있습니다. 자세한 내용은 선택 사항: Snowflake Connector for MySQL 의 여러 인스턴스 설치하기 섹션을 참조하십시오.
비공개 링크¶
Snowflake Connector for MySQL은 비공개 링크를 지원합니다. 자세한 내용은 다음을 참조하십시오.
Agent 및 Connector App 호환성¶
Snowflake Connector for MySQL 는 x.y.z 버전 으로 설명되는 특정 버전에 대해 출시되는데, 여기서 x는 주 버전, y는 부 버전, z는 패치 버전입니다. dockerhub의 에이전트도 X.Y.Z 버전과 함께 출시됩니다. Snowflake Connector for MySQL 의 각 x.y.z 버전은 주 버전이 X=x로 동일하고 부 버전은 그보다 높지 않은 모든 에이전트를 지원합니다. 또한 Snowflake Connector for MySQL 의 각 x.0.0 버전은 모든 Y와 Z에 대해 에이전트의 모든 (x-1).Y.Z 버전을 지원합니다.
알려진 제한 사항¶
다음 섹션에서는 커넥터에 대해 알려진 제한 사항을 설명합니다.
최대 테이블 수¶
커넥터는 복제에 최대 200개의 원본 테이블을 추가한 상태에서 원활히 작동합니다. 테이블을 더 추가하면 커넥터가 불안정해질 수 있습니다.
트랜잭션 크기¶
커넥터는 MySQL의 그룹 복제와 동일한 제한 을 받습니다. 즉, 단일 트랜잭션은 4GB 이하의 바이너리 로그 메시지에 맞아야 합니다. 이 크기를 초과하는 트랜잭션이 발생하면 원본 테이블이 영구적으로 실패한 것으로 표시되고 관련 테이블의 전체 스냅샷을 다시 로드해야 합니다.
커넥터 가용성¶
커넥터를 설치할 경우 다음 제한 사항에 유의하십시오.
정부 리전의 계정은 지원되지 않습니다.
커넥터를 설치 및 구성하려면 ACCOUNTADMIN 역할을 가진 사용자로 로그인해야 합니다. 현재 다른 역할은 지원되지 않습니다.
유형 호환성¶
원본 데이터베이스와 Snowflake 열 유형 간에 차이가 있으므로, 최대 열 용량이나 허용 범위 때문에 일부 값은 변환하여 Snowflake에 쓸 수 없습니다. 예:
Snowflake
BINARY
유형은 최대 길이가 8MB(8,388,608바이트)입니다.DATE
,DATETIME
,TIMESTAMP
등 Snowflake 날짜 유형의 최대 연도는 9999입니다.Snowflake
VARCHAR
유형은 최대 길이가 16MB(16,777,216바이트)입니다.
이러한 비호환성이 발생하는 경우 오류가 발생하면서 테이블 복제가 중단됩니다.
원본 테이블 스키마 변경 사항¶
다음 표에는 원본 테이블 스키마에 대한 다양한 유형의 변경 사항과 이러한 변경 사항이 지원되는지 여부, 지원될 경우의 지원 방법이 나와 있습니다.
새로운 열 이름에는 식별자 제한 사항 섹션에 설명된 것과 동일한 제한 사항이 적용됩니다.
스키마 변경 유형 |
지원 여부 |
참고 |
---|---|---|
새 열 추가하기 |
예 |
새 열은 복제 시작 시에 존재했던 다른 열과 마찬가지로 대상 테이블에 표시됩니다. 이전에 삭제되거나 이름이 바뀐 열과 동일한 이름으로 새 열을 추가할 수 없습니다. 예를 들어, 처음에는 |
기존 열 삭제하기 |
예 |
원본 테이블에서는 열이 삭제되어도 대상 테이블에서는 삭제되지 않습니다. 대신 소프트 삭제 접근 방식을 따르고 열 이름이 예를 들어, 열 |
열 이름 바꾸기 |
예 |
열 이름을 바꾸는 것은 열을 삭제하고 새 이름을 가진 새로운 열을 만드는 것과 같습니다. 삭제는 이전 행에서 설명한 소프트 삭제 접근 방식을 따릅니다. 예를 들어, 열 이전에 삭제되거나 이름이 바뀐 열과 동일한 이름으로 열 이름을 바꿀 수 없습니다. 예를 들어, 처음에는 |
열 유형 변경하기 |
부분적으로 |
Snowflake에서 이전 유형과 새 유형이 모두 동일한 유형으로 매핑되는 경우에만 원본 테이블 열의 유형을 변경할 수 있습니다. 다른 모든 경우에는 복제가 영구적으로 실패합니다. |
숫자 열의 전체 자릿수 변경하기 |
아니요 |
원본 테이블 열의 전체 자릿수를 변경하면 복제가 영구적으로 실패하게 됩니다. |
숫자 열의 소수 자릿수 변경하기 |
아니요 |
원본 테이블 열의 소수 자릿수를 변경하면 복제가 영구적으로 실패하게 됩니다. |
기본 키 정의 변경하기 |
아니요 |
원본 테이블 열의 기본 키 정의를 변경하면 복제가 영구적으로 실패하게 됩니다. |
대용량 열¶
활성 에이전트는 일부 이벤트가 복제를 위해 추가되지 않은 원본 테이블을 참조하더라도 바이너리 로그에서 모든 이벤트를 계속 읽습니다. 바이너리 로그에 BLOB 같은 열의 업데이트 등 매우 큰 이벤트가 포함되어 있으면 사용 가능한 메모리가 부족하여 에이전트가 충돌할 수 있습니다.
기본 키¶
기본 키가 없는 테이블은 지원되지 않습니다.
식별자 제한 사항¶
현재, 커넥터는 복제된 스키마, 테이블 또는 열 이름에 "
문자를 지원하지 않습니다. 또한 다음 키워드도 지원하지 않습니다.
- 스키마 이름의 경우:
INFORMATION_SCHEMA
- 열 이름의 경우:
_SNOWFLAKE_INSERTED_AT
_SNOWFLAKE_UPDATED_AT
_SNOWFLAKE_DELETED
__SNOWFLAKE_DELETED
가 접미사로 붙은 이름Snowflake 예약 및 제한 키워드 에서
Cannot be used as column name
으로 표시된 열 이름
MySQL 버전 8.0.0 이상¶
현재, 커넥터는 MySQL 버전 8에 도입된 binlog_row_metadata = full
구성 속성에 따라 달라집니다.