중요합니다
이 기능은 베타 버전으로 제공됩니다. 작업 영역 관리자는 미리 보기 페이지에서 이 기능에 대한 액세스를 제어할 수 있습니다. Azure Databricks 미리 보기 관리를 참조하세요.
잘못된 변환, 형식이 잘못된 소스 레코드 배치 또는 예상치 못한 스키마 변경으로 인해 알려진 특정 시점 이후로 파이프라인의 테이블이 잘못된 상태가 될 수 있습니다. Rewind는 문제 발생 전 시점으로 파이프라인을 반환하여 수정 패치를 배포하고 영향을 받은 데이터만 재처리할 수 있도록 합니다.
Rewind는 테이블 버전, 스트리밍 소스 오프셋, 연산자 상태를 함께 복원하므로 재처리 시 레코드를 건너뛰거나 중복 기록을 생성하지 않습니다. 세 가지 작업은 데이터를 재처리하며, 서로 다른 문제를 해결합니다:
- 되감기는 잘못된 변환, 잘못된 입력 또는 잘못된 코드 배포 이후처럼 알려진 시점부터 잘못된 데이터를 기록한 복구 가능한 파이프라인에 사용됩니다. 이 도구는 테이블 데이터, 소스 오프셋, 연산자 상태를 문제 발생 전 시점으로 복원하고, 영향을 받은 데이터만 재처리하여 연산자 상태를 유지합니다. 그 이전 데이터는 손대지 않습니다.
- 완전 새로고 침은 모든 사용 가능한 소스 데이터를 바탕으로 테이블을 재구성하고 현재 내용을 버립니다. 모든 것을 처음부터 다시 계산하거나, 코드 변경이 기존 상태와 호환되지 않을 때 사용하세요.
- 체크포인트 리셋은 체크포인트가 유효하지 않거나 손상되었거나, 체크포인트와 호환되지 않는 코드 변경으로 차단된 파이프라인을 복구합니다. 체크포인트를 초기화하고 테이블의 현재 내용을 유지하면서 앞으로 계속 진행됩니다. Rewind는 구조화된 스트리밍 호환성 규칙을 완화하지 않기 때문에 이러한 경우를 복구할 수 없습니다.
요구 사항
| 요구 사항 | Detail |
|---|---|
| Channel | 파이프라인은 미리보기 채널에 있어야 합니다. 파이프라인 구성을 참조하세요. |
| 구성 | 파이프라인 구성을 true로 설정 pipelines.rewind.betaEnabled 한 후 파이프라인을 한 번 실행하세요. 각 흐름은 시간 여행이 활성화된 업데이트가 완료된 후에만 되감기 가능해집니다. |
| 파이프라인 모드 | 트리거된 파이프라인 및 연속 파이프라인. 실시간 모드는 지원되지 않습니다. |
| Sources | 델타 테이블, 스트리밍 테이블, 카프카, 그리고 자동 로더. |
| Targets | 스트리밍 테이블과 구체화된 뷰. |
| Flows | 스트리밍 플로우와 AUTO 변화 데이터 캡처(CDC) 플로우, 여기에는 SCD 타입 1 및 SCD 타입 2 타겟이 포함됩니다. 집계, 조인, 중복 제거와 같은 상태 기반 쿼리도 지원합니다. |
파이프라인의 모든 흐름은 이러한 요구사항을 충족해야 합니다.
pipelines.rewind.betaEnabled이 true인 경우, 요건을 충족하지 않는 흐름이 포함된 파이프라인은 업데이트가 실패합니다. 모든 플로우가 위의 요구사항을 충족하는지 확인한 후 활성화하세요.
메모
true이(가) pipelines.rewind.betaEnabled로 설정된 파이프라인은 현재 채널이 되감기를 지원하는 런타임으로 업데이트될 때까지 현재 채널로 다시 이동할 수 없습니다.
되감기와 재생 작동 원리
되감기와 재생은 별도의 단계입니다.
되감기는 각 테이블을 되감기 시점 당시의 버전으로 복원하고, 각 흐름이 어디까지 읽었는지 추적하는 스트리밍 체크포인트를 재설정합니다. 변환이 실행되지 않고, 소스 데이터가 재처리되지 않습니다.
파이프라인 이 다시 실행될 때 재생이 발생합니다. 현재 파이프라인 정의를 사용해 되감기 지점부터 재처리하고, 현재 시점까지 처리한 후 정상적인 증분 처리를 재개합니다. Rewind는 파이프라인을 시작하지 않으므로, 준비가 되면 직접 시작하세요.
파이프라인은 자동으로 약 한 시간마다 되감기 포인트를 생성하고 7일 동안 보관합니다. 방금 생성한 파이프라인은 첫 결과를 생성하기 전까지는 되감기할 수 있는 대상이 없습니다.
데이터셋을 되감으면 같은 파이프라인 내 하위 데이터도 모두 되감깁니다. 리와인드는 한 파이프라인을 다룹니다. 다른 파이프라인이나 동일한 테이블의 외부 리더기와는 조정하지 않으므로, 별도로 관리하세요.
UI를 사용해 파이프라인을 되감기
UI와 Genie가 되감기를 사용하는 주요 수단입니다. UI는 사용 가능한 리와인드 포인트를 나열하고, 각 데이터가 어떤 데이터셋에 영향을 미치는지 커밋 전에 보여줍니다.
- 파이프라인 페이지에서 파이프라인 실행 옆에 있는
클릭한 후 파이프라인 되감기를 클릭하세요.
- 되감기 지점을 선택하거나, '어제로 되감 기' 또는 '최신 시점으로 되감기' 같은 단축키를 사용하세요. 다음을 클릭합니다.
- 포함할 테이블을 선택하세요. 파이프라인 그래프에서 데이터셋을 선택하려면 그래프 뷰를, 테이블에서 데이터를 선택할 때는 리스트 뷰를 사용하세요. 모든 체크포인트를 기본값 으로 재설정하여 소스 오프셋과 운영자 상태, 그리고 테이블 데이터를 복원하여 파이프라인이 되감기 지점에서 재처리되도록 하세요. 예를 들어, 테이블 내용만 복원하고 싶지만 영향을 받은 데이터를 재처리하고 싶지 않을 때, 재처리하지 않고 테이블 데이터만 복원할 수 있도록 지우세요. 이 설정은 테이블과 그 업스트림에 대해 동일해야 하며, Kafka나 Auto Loader와 같은 외부 소스를 읽는 플로우에서는 해제할 수 없습니다. 다음을 클릭합니다.
- 되감기 지점, 체크포인트 설정, 그리고 영향을 받은 데이터셋을 검토한 후 되감기를 클릭하세요.
데이터를 재생하기 위해 파이프라인을 시작하세요.
반복해서 되감을 수 있습니다. 각 되감기는 이전 되감기를 대체하므로, 재생에 실패한 경우 다른 지점으로 되감아 복구할 수 있습니다.
되감기 후
다시 재생에 실패하면 파이프라인이 되감긴 상태로 멈추게 됩니다. 코드를 수정하거나 소스 데이터를 수정하고 파이프라인을 시작해 다시 시도하거나 다른 지점으로 되감기세요. 파이프라인이 스스로 롤백하지 않으며, 표준 파이프라인 진단과 이벤트 로그를 통해 오류가 나타납니다.
재생은 현재 파이프라인 정의가 복원된 상태와 호환될 때만 성공합니다; 되감기는 구조화된 스트리밍 호환성 규칙을 완화하지 않습니다. 변경 사항이 호환되는 경우는 구조화 스트리밍 쿼리의 변경 유형 참조. 물질화된 뷰는 배치 의미론을 따르고 더 넓은 스키마 변경을 허용하지만, 의존성이 호환되지 않으면 실패합니다.
중간에 되감기가 실패하면 파이프라인이 부분적으로 되감겨 있을 수 있습니다. 다음 두 가지 옵션을 사용할 수 있습니다.
- 같은 지점이나 다른 지점으로 다시 되감기면, 파이프라인은 그 지점에서 수렴합니다.
- 되감기가 완료되지 않았더라도 파이프라인이 일반 업데이트를 강제로 시작하게 하려면
true을(를)pipelines.allowUpdateAfterIncompleteRewind로 설정한 다음 파이프라인을 다시 시작하세요.
어디까지 되감을 수 있는지
되감기 포인트는 7일간 유지됩니다. 그 시간 내에서는 필요한 데이터가 이미 삭제된 경우 되감기가 실패합니다. 되감기 전에 이런 것들을 꼭 확인하세요:
-
VACUUM또는 테이블에서 짧은delta.deletedFileRetentionDuration단락이 발생하거나. 테이블 기록 작업을 참조하세요. - 되감으려는 구간보다 소스 데이터 보존 기간이 짧은 경우(예: 하루 동안만 유지되는 카프카 토픽)
여러 소스나 긴 의존성 체인이 있는 파이프라인은 모든 테이블과 체크포인트가 일관된 지점으로 돌아가야 하므로 더 많은 보존이 필요합니다.
Limitations
- 리와인드는 파이프라인을 완전히 새로고침하기 전까지 복원할 수 없습니다.
- 되감기 지점은 7일 동안 유지되며, 예를 들어
VACUUM또는 짧은 소스 보존 기간으로 인해 해당 지점에 도달하는 데 필요한 테이블 기록이나 소스 데이터가 이미 제거된 경우 되감기에 실패합니다. 얼마나 되돌릴 수 있는지 확인해 보세요. - 실시간 모드는 지원되지 않습니다.
- Kinesis, Pulsar, Google Pub/Sub, 그리고 DSv2 또는 Python 데이터 소스 API로 만든 커스텀 소스는 소스로 지원되지 않습니다.
- 외부 싱크와 사용자 지정 싱크는 지원되지 않으며,
create_sink()로 정의된 싱크도 포함됩니다. 파이프라인에서 싱크 사용을 참조하세요. - 행 필터 또는 열 마스크를 사용하는 스트리밍 테이블은 되돌릴 수 없습니다. 행 필터 및 열 마스크 수동 적용을 참조하세요.
- 상태 기반 되감기는 파이프라인이 기본적으로 사용하는 RocksDB 상태 저장소가 필요합니다. 다른 상태 저장소로 구성된 플로우에서는 되감기가 실패합니다.
- 일부 AUTO CDC 스트리밍 테이블은 되감기 전에 새로고침이 필요합니다. 파이프라인이 되감기를 요청하면 알림을 줍니다.
- 물질화된 뷰는 되감기 후 점진적으로 새로고침하는 대신 완전히 재계산될 수 있습니다. 증분 새로 고침 에 대한 구체화된 뷰을 참조하세요.
- 리와인드는 한 파이프라인을 다루며, 동일한 테이블을 읽는 외부 리더나 다른 파이프라인과는 연동하지 않습니다.
- Rewind는 파이프라인 코드, 파이프라인 구성, 태그 및 부여 같은 Unity 카탈로그 객체 메타데이터를 복원하지 않습니다.