Openflow Connector for SQL Server: 유지 관리

참고

이 커넥터에는 `Snowflake Connector 약관<https://www.snowflake.com/legal/snowflake-connector-terms/>`_이 적용됩니다.

이 항목에서는 커넥터 재설치 또는 변경 내용 추적 시작 위치 설정과 같은 |Sqlserver|의 유지 관리 고려 사항과 모범 사례에 대해 설명합니다.

해당 작업은 :doc:`스냅샷을 사용한 증분 복제<incremental-replication>`와 함께 사용되는 경우가 많습니다.

커넥터 재설치하기

이 섹션에서는 커넥터를 재설치하며 스냅샷을 다시 생성하지 않고도 동일한 테이블의 데이터를 계속 복제하는 방법에 대한 지침을 제공합니다. 새 커넥터가 동일한 런타임에 설치되고 새 런타임으로 이동되는 경우를 다룹니다.

전제 조건

커넥터 매개 변수 컨텍스트 값을 검토하고 기록합니다. 동일한 런타임에 커넥터를 재설치하는 경우 기존 컨텍스트를 재사용할 수 있습니다. 새 인스턴스가 다른 런타임에 있는 경우 모든 매개 변수를 다시 입력해야 합니다.

  1. 기존 커넥터에서 진행 중인 모든 FlowFiles 처리를 완료한 후 커넥터를 중지합니다.

    1. Snowsight 에 로그인합니다.

    2. 탐색 메뉴에서 Ingestion » Openflow 를 선택합니다.

    3. Openflow 창에서 Runtimes 탭을 선택합니다.

    4. 커넥터가 포함된 런타임을 선택합니다.

    5. 커넥터를 선택합니다.

    6. Snapshot Load 그룹에서 최상위 프로세서 :ui:`Set Tables for Replication`을 중지합니다.

    7. Incremental Load 그룹에서 최상위 프로세서 :ui:`Read SQLServer Change Tracking tables`을 중지합니다.

    8. Merge Task Schedule CRON 매개 변수의 값을 변경한 경우 ``* * * * * ?``로 반환합니다. 그렇지 않으면 다음으로 예약된 실행까지 큐가 비워지지 않습니다.

      커넥터의 모든 FlowFiles가 처리되고 모든 큐가 비어 있을 때까지 기다립니다. 모든 FlowFiles가 처리되면 커넥터 프로세서 그룹에 대한 Queued 값은 0이 됩니다. 원래 커넥터의 큐에 항목이 남아 있는 경우 새 커넥터가 시작될 때 데이터 간격이 있을 수 있습니다.

    9. 커넥터의 모든 프로세서 및 컨트롤러 서비스를 중지합니다.

    조심

    기존 커넥터는 런타임에 유지될 수 있으며 중지된 상태로 유지되는 한 새 인스턴스를 방해하지 않습니다.

  2. 커넥터의 새 인스턴스를 생성합니다. 원본 커넥터와 동일한 런타임을 사용하는 경우 기존 매개 변수 컨텍스트를 유지하고 설정을 재사용하도록 선택할 수 있습니다.

  3. 다른 런타임에 설치하거나 이전 매개 변수 컨텍스트를 삭제한 경우 :doc:`setup`에 설명된 대로 테이블 이름과 패턴을 포함하여 구성 설정을 새 매개 변수 컨텍스트에 입력합니다.

  4. SQLServer Ingestion Parameters 컨텍스트로 이동하고 다음 매개 변수를 설정합니다.

  5. 새 커넥터를 시작합니다.

사용법 노트

새 커넥터는 원본 커넥터에서 생성한 기존 대상 테이블을 사용하지만, 커넥터는 새 저널 테이블을 생성합니다.

변경 내용 추적 테이블 위치에서 로드 지정

Openflow Connector for SQL Server 커넥터를 사용하면 변경 내용 추적 테이블을 읽는 시작 위치를 선택할 수 있습니다. 기본적으로 커넥터는 사용 가능한 최신 위치에서 읽습니다. 또는 소스 인스턴스에서 사용 가능한 가장 빠른 위치를 선택할 수 있습니다. 커넥터를 재설치할 때 가장 빠른 위치에서 시작하도록 선택하는 것이 일반적입니다. 이를 통해 새 인스턴스는 각각의 스냅샷을 다시 생성할 필요 없이 기존 테이블을 포착하고 계속 복제할 수 있습니다.

실행 중인 커넥터를 최신 위치에서 가장 빠른 위치로 전환하면 변경 내용 추적 테이블의 내용을 다시 읽고, 다시 처리하고, 대상 테이블에 다시 적용합니다.

경고

변경 추적 테이블을 다시 읽는 동안 모든 이벤트가 다시 처리되고 병합될 때까지 영향을 받는 대상 테이블의 데이터가 원본과 동기화되지 않을 수 있습니다.

Ingestion Parameters 컨텍스트에서 사용할 수 있는 매개 변수는 다음과 같습니다.

매개 변수

설명

변경 내용 추적 위치 시작하기

  • ``Latest``(기본값): 변경 내용 추적 테이블 읽기는 사용 가능한 최신 위치에서 시작하여 계속됩니다.

  • Earliest: 증분 로드를 시작으로 전환하거나 사용 가능한 가장 빠른 변경 추적 테이블 위치에서 읽기를 다시 시작합니다.

상태의 테이블 다시 읽기

  • ``New``(기본값): 시작 위치가 ``Earliest``로 전환된 후 추가된 새 테이블만 사용 가능한 가장 빠른 위치에서 변경 내용 추적 테이블을 읽습니다. 구성이 변경되기 전에 복제를 시작한 테이블은 마지막 위치에서 계속 읽습니다.

  • Any active: 현재 복제 중인 모든 테이블에서 이벤트를 다시 읽고 다시 처리합니다.

커넥터가 변경 내용 추적 테이블 다시 읽기를 완료했는지 확인하려면 다음을 수행합니다.

  1. Openflow 캔버스로 이동합니다.

  2. Incremental Load 프로세스 그룹을 엽니다.

  3. :ui:`Read SQLServer Change Tracking tables`이라는 최상위 프로세서를 마우스 오른쪽 버튼으로 클릭한 후 :ui:`View state`를 선택합니다.

  4. ``position.``으로 시작하는 키가 있는 모든 테이블의 상태 항목을 확인합니다. 값이 ``0/0``인 경우 커넥터가 아직 이 테이블에 대한 변경 사항 다시 읽기를 완료하지 않은 것입니다.

사용법 노트

  • 실행 중인 커넥터를 가장 빠른 위치에서 읽도록 전환하고 시작한 후에는 프로세스를 재구성하거나 취소할 수 없으며, 현재 읽은 위치가 최신 값에 도달할 때까지 프로세스가 계속됩니다.

  • 실행 중인 커넥터에서 가장 빠른 위치로 전환하면 재처리되는 모든 테이블에 대해 기존 저널이 완료되고 새 저널 테이블이 생성됩니다.