다음을 통해 공유


파이프라인 모드 비교: 트리거 방식 vs 연속 방식

이 문서에서는 DLT에 대한 트리거 및 연속 파이프라인 모드의 운영 의미 체계를 설명합니다.

파이프라인 모드는 계산되는 테이블 유형과 독립적입니다. 구체화된 뷰와 스트리밍 테이블은 둘 다 파이프라인 모드에서 업데이트할 수 있습니다.

트리거된 파이프라인과 연속 간에 변경하려면 파이프라인을 만들거나 편집하는 동안 파이프라인 설정에서 파이프라인 모드 옵션을 사용합니다. DLT 파이프라인구성을 참조하세요.

메모

Databricks SQL에 정의된 구체화된 뷰 및 스트리밍 테이블에 대한 새로 고침 작업은 항상 트리거된 파이프라인 모드를 사용하여 실행됩니다.

트리거된 파이프라인 모드란?

파이프라인이 트리거된 모드를 사용하는 경우 시스템은 모든 테이블 또는 선택한 테이블을 성공적으로 새로 고친 후 처리를 중지하여 업데이트가 시작될 때 사용 가능한 데이터에 따라 업데이트의 각 테이블을 새로 고칩니다.

연속 파이프라인 모드란?

파이프라인이 연속 실행을 사용하는 경우 DLT는 데이터 원본에 도착할 때 새 데이터를 처리하여 파이프라인 전체의 테이블을 최신 상태로 유지합니다.

연속 실행 모드에서 불필요한 처리를 방지하기 위해 파이프라인은 종속 델타 테이블을 자동으로 모니터링하고 해당 종속 테이블의 내용이 변경된 경우에만 업데이트를 수행합니다.

데이터 파이프라인 모드 선택

다음 표에서는 트리거된 파이프라인 모드와 연속 파이프라인 모드 간의 차이점을 강조 표시합니다.

주요 질문 유발됨 지속적
업데이트는 언제 중지되나요? 완료되면 자동으로 수행됩니다. 수동으로 중지될 때까지 계속 실행됩니다.
어떤 데이터가 처리됩니까? 업데이트가 시작될 때 사용할 수 있는 데이터입니다. 구성된 원본에 도착하는 모든 데이터입니다.
가장 적합한 데이터 새로 고침 요구 사항은 무엇인가요? 데이터 업데이트는 매시간 또는 매일 10분마다 실행됩니다. 데이터 업데이트는 10초에서 몇 분 간격으로 수행됩니다.

트리거된 파이프라인은 클러스터가 파이프라인을 업데이트할 만큼 충분히 오래 실행되므로 리소스 사용량과 비용을 줄일 수 있습니다. 그러나 파이프라인이 트리거될 때까지 새 데이터는 처리되지 않습니다. 연속 파이프라인에는 항상 실행되는 클러스터가 필요하므로 비용이 많이 들지만 처리 대기 시간이 줄어듭니다.

연속 파이프라인에 대한 트리거 간격 설정

연속 모드에 대한 파이프라인을 구성할 때 트리거 간격을 설정하여 파이프라인이 각 흐름에 대한 업데이트를 시작하는 빈도를 제어할 수 있습니다.

pipelines.trigger.interval 사용하여 테이블 또는 전체 파이프라인을 업데이트하는 흐름에 대한 트리거 간격을 제어할 수 있습니다. 트리거된 파이프라인은 각 테이블을 한 번 처리하므로 pipelines.trigger.interval 연속 파이프라인에서만 사용됩니다.

스트리밍 및 일괄 처리 쿼리의 기본값이 다르기 때문에 Databricks는 개별 테이블에서 pipelines.trigger.interval 설정하는 것이 좋습니다. 처리 시 전체 파이프라인 그래프에 대한 업데이트를 제어해야 하는 경우에만 파이프라인의 값을 설정합니다.

Python에서 spark_conf 사용하거나 SQL의 SET 사용하여 테이블에 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"
  }
}