트리거된 파이프라인 모드와 연속 파이프라인 모드 비교
이 문서에서는 Delta Live Tables에 대해 트리거된 연속 파이프라인 모드의 운영 의미 체계를 설명합니다.
파이프라인 모드는 계산되는 테이블 유형과 독립적입니다. 구체화된 뷰와 스트리밍 테이블은 둘 다 파이프라인 모드에서 업데이트할 수 있습니다.
트리거와 연속 간에 변경하려면 파이프라인을 만들거나 편집하는 동안 파이프라인 설정에서 파이프라인 모드 옵션을 사용합니다. Delta Live Tables 파이프라인 구성을 참조하세요.
참고 항목
Databricks SQL에 정의된 구체화된 뷰 및 스트리밍 테이블에 대한 새로 고침 작업은 항상 트리거된 파이프라인 모드를 사용하여 실행됩니다.
트리거된 파이프라인 모드란?
파이프라인에서 트리거 모드를 사용하는 경우 시스템은 모든 테이블 또는 선택한 테이블을 성공적으로 새로 고친 후 처리를 중지하여 업데이트가 시작될 때 사용 가능한 데이터에 따라 업데이트의 각 테이블을 새로 고칩니다.
연속 파이프라인 모드란?
파이프라인이 연속 실행을 사용하는 경우 Delta Live Tables는 데이터 원본에 도착하는 새 데이터를 처리하여 파이프라인 전체의 테이블을 최신 상태로 유지합니다.
연속 실행 모드에서 불필요한 처리를 피하기 위해 파이프라인은 종속 델타 테이블을 자동으로 모니터링하고 해당 종속 테이블의 콘텐츠가 변경된 경우에만 업데이트를 수행합니다.
데이터 파이프라인 모드 선택
다음 표에서는 트리거된 파이프라인 모드와 연속 파이프라인 모드 간의 차이점을 강조 표시합니다.
주요 질문 | 트리거됨 | 연속 |
---|---|---|
업데이트는 언제 중지되나요? | 완료 시 자동으로 진행됨. | 수동으로 중지될 때까지 계속 실행됩니다. |
어떤 데이터가 처리됩니까? | 업데이트가 시작될 때 사용할 수 있는 데이터입니다. | 구성된 원본에 도착하는 모든 데이터입니다. |
가장 적합한 데이터 새로 고침 요구 사항은 무엇인가요? | 데이터 업데이트는 매 시간, 매일, 또는 매 10분마다 실행됩니다. | 데이터 업데이트는 10초에서 몇 분 간격으로 수행됩니다. |
트리거된 파이프라인은 클러스터가 파이프라인을 업데이트할 만큼 충분히 오래 실행되므로 리소스 사용량과 비용을 줄일 수 있습니다. 그러나 파이프라인이 트리거될 때까지 새 데이터가 처리되지 않습니다. 연속 파이프라인에는 항상 실행되는 클러스터가 필요하며, 이는 더 비싸지만 처리 대기 시간을 줄입니다.
연속 파이프라인에 대한 트리거 간격 설정
연속 모드에 대한 파이프라인을 구성할 때 트리거 간격을 설정하여 파이프라인이 각 흐름에 대한 업데이트를 시작하는 빈도를 제어할 수 있습니다.
pipelines.trigger.interval
은 테이블 또는 전체 파이프라인을 업데이트하는 흐름에 대한 트리거 간격을 제어하는 데 사용할 수 있습니다. 트리거된 파이프라인은 각 테이블을 한 번 처리하므로 pipelines.trigger.interval
연속 파이프라인에서만 사용됩니다.
스트리밍 및 일괄 처리 쿼리의 기본값이 다르기 때문에 Databricks는 개별 테이블에 대한 설정을 pipelines.trigger.interval
권장합니다. 처리 시 전체 파이프라인 그래프에 대한 업데이트를 제어해야 하는 경우에만 파이프라인의 값을 설정합니다.
Python 또는 SET
SQL에서 사용하여 spark_conf
테이블에 설정합니다pipelines.trigger.interval
.
@dlt.table(
spark_conf={"pipelines.trigger.interval" : "10 seconds"}
)
def <function-name>():
return (<query>)
SET pipelines.trigger.interval=10 seconds;
CREATE OR REFRESH MATERIALIZED VIEW TABLE_NAME
AS SELECT ...
파이프라인에 pipelines.trigger.interval
을 설정하려면 파이프라인 설정의 configuration
개체에 추가합니다.
{
"configuration": {
"pipelines.trigger.interval": "10 seconds"
}
}