Eventstream에 MySQL 데이터베이스 CDC 원본 추가
참고 항목
이 문서에는 Microsoft에서 더 이상 사용하지 않는 용어인 SLAVE
에 대한 참조가 포함되어 있습니다. 소프트웨어에서 용어가 제거되면 이 문서에서 해당 용어가 제거됩니다.
이 문서에서는 MySQL 변경 데이터 캡처 원본을 이벤트 스트림에 추가하는 방법을 보여 줍니다. 현재 MySQL 데이터베이스 CDC는 데이터베이스에 공개적으로 액세스할 수 있는 다음 서비스에서 지원됩니다.
- Azure Database for MySQL
- Amazon RDS for MySQL
- Amazon Aurora MySQL
- MySQL용 Google Cloud SQL (GCP).
이 가이드에서는 Azure Database for MySQL CDC 예로 사용합니다.
MySQL 데이터베이스 CDC 원본이 eventstream에 추가되면 지정된 테이블에 대한 행 수준 변경 내용을 캡처합니다. 그런 다음 이러한 변경 내용을 실시간으로 처리하고 추가 분석을 위해 다른 대상으로 보낼 수 있습니다.
참고 항목
이 원본은 미국 서부 3, 스위스 서부 하위 지역의 작업 영역 용량에서 지원되지 않습니다.
필수 조건
- 패브릭 용량 라이선스 모드(또는 참가자 이상의 권한이 있는 평가판 라이선스 모드)의 작업 영역에 액세스합니다.
- MySQL 데이터베이스 인스턴스에 대한 액세스, 예를 들어 Azure Database for MySQL - Flexible Server의 데이터베이스에 대한 액세스.
- MySQL 데이터베이스는 공개적으로 액세스할 수 있어야 하며 방화벽 뒤에 있거나 가상 네트워크에서 보호되면 안 됩니다.
- eventstream이 없는 경우 eventstream 을 만듭니다.
MySQL DB 설정
커넥터는 Debezium MySQL 커넥터를 사용하여 MySQL 데이터베이스의 변경 내용을 캡처합니다. 메시징 커넥터가 변경 내용을 캡처할 수 있는 모든 데이터베이스에서 적절한 권한을 가진 MySQL 사용자를 정의해야 합니다. 관리 사용자 직접 사용하여 일반적으로 적절한 권한이 있는 데이터베이스에 연결하거나 다음 단계에 따라 새 사용자를 만들 수 있습니다.
참고 항목
새 사용자 또는 관리자 계정 및 해당 비밀번호는 나중에 Eventstream 내의 데이터베이스에 연결하는 데 사용됩니다.
mysql
명령 프롬프트에서 MySQL 사용자를 만듭니다.mysql> CREATE USER 'user'@'%' IDENTIFIED BY 'password';
사용자에게 필요한 권한을 부여합니다.
mysql> GRANT SELECT, SHOW DATABASES, REPLICATION SLAVE, REPLICATION CLIENT ON *.* TO 'user'@'%';
참고 항목
Amazon RDS 또는 Aurora와 같은 호스트된 옵션에서와 같이 전역 읽기 잠금을 사용할 수 없는 경우 테이블 수준 잠금을 사용하여 일관된 스냅샷을 만듭니다. 이 경우 사용자에게
LOCK TABLES
권한을 부여해야 합니다. 또한 스냅샷 중에FLUSH
작업을 지원하려면RELOAD
또는FLUSH_TABLES
권한을 부여해야 할 수도 있습니다.사용자의 사용 권한을 완료합니다.
mysql> FLUSH PRIVILEGES;
사용자 또는 관리자에게 필요한 권한이 부여되었는지 확인하려면 이 명령을 실행한 다음 2단계에서 필요한 권한을 표시해야 합니다.
SHOW GRANTS FOR user;
사용자에게 필요한 권한을 부여하는 방법에 대한 자세한 내용은 Debezium connector for MySQL: Debezium 설명서를 참조하세요.
binlog 사용
MySQL 복제에 대해 이진 로깅을 사용해야 합니다. 이진 로그는 변경 내용을 전파하는 복제 도구에 대한 트랜잭션 업데이트를 기록합니다. 이 섹션에서는 구성 단계를 보여 주는 예제로 Azure Database for MySQL CDC 사용합니다.
Azure Database for MySQL 계정에 대해 Azure Portal 페이지의 왼쪽 탐색 메뉴에 있는 설정에서 서버 매개 변수를 선택합니다.
서버 매개 변수 페이지에서 다음 속성을 구성한 다음, 저장을 선택합니다.
binlog_row_image에 대해 전체를 선택합니다.
binlog_expire_logs_seconds에 대해 이진 로그 파일이 제거되기 전에 서비스에서 대기하는 시간(초)을 설정합니다. 환경 요구 사항에 맞게 값을 설정합니다(예: 86400).
MYSQL DB(CDC)를 원본으로 추가
아직 eventstream에 원본을 추가하지 않은 경우 외부 원본 타일 사용을 선택합니다.
이미 게시된 이벤트 스트림에 원본을 추가하는 경우 편집 모드로 전환하고 리본에서 원본 추가를 선택한 다음 외부 원본을 선택합니다.
데이터 원본 선택 페이지에서 MYSQL DB(CDC) 타일에서 연결을 검색하여 선택합니다.
CDC(MySQL DB) 구성 및 연결
연결 화면의 연결에서 새 연결을 선택하여 클라우드 연결을 만듭니다.
다음 연결 설정 및 MySQL DB에 대한 연결 자격 증명 을(를) 입력한 후 연결을(를) 선택합니다.
Server: MySQL 데이터베이스의 서버 주소(예: my-mysql-server.mysql.database.azure.com)입니다.
데이터베이스: 데이터베이스 이름(예: my_database).
연결 이름: 자동으로 생성되거나 이 연결의 새 이름을 입력할 수 있습니다.
사용자 이름 및 암호: MySQL 데이터베이스에 대한 자격 증명을 입력합니다. 서버 관리자 계정 또는 필요한 권한이 부여된 사용자 계정을 입력해야 합니다.
다음 정보를 입력하여 MySQL DB CDC 데이터 원본을 구성한 다음 다음선택합니다.
테이블: 쉼표로 구분된 테이블 이름 목록을 입력합니다. 각 테이블 이름은
<database name>.<table name>
형식(예: my_database.users)을 따라야 합니다.서버 ID: MySQL 클러스터의 각 서버 및 복제 클라이언트에 대한 고유 값을 입력합니다. 기본값은 1000입니다.
포트: 기본값은 변경되지 않은 상태로 둡니다.
오른쪽의 스트림 세부 정보 섹션에서 원본 이름에 대한 연필 단추를 선택하여 원본 이름을편집할 수도 있습니다.
참고 항목
리더마다 다른 서버 ID를 설정합니다. binlog를 읽기 위한 모든 MySQL 데이터베이스 클라이언트에는 서버 ID라는 고유 ID가 있어야 합니다. MySQL 서버는 이 ID를 사용하여 네트워크 연결 및 binlog 위치를 유지 관리합니다. 동일한 서버 ID를 공유하는 다른 작업으로 인해 잘못된 binlog 위치에서 읽을 수 있습니다. 따라서 리더마다 다른 서버 ID를 설정하는 것이 좋습니다.
검토 + 연결 페이지에서 MySQL DB CDC 원본에 대한 요약 정보를 검토한 후 추가를 선택하여 구성을 완료합니다.
참고 항목
하나의 Eventstream에 대한 최대 원본 및 대상 수는 11개입니다.
업데이트된 eventstream 보기
이벤트 스트림의 편집 모드에 추가된 MySQL DB(CDC) 원본이 표시됩니다.
게시 선택하여 변경 내용을 게시하고 MySQL DB CDC 데이터를 eventstream에 스트리밍하기 시작합니다.
관련 콘텐츠
기타 커넥터: