다음을 통해 공유


DLT 파이프라인 개발

파이프라인 코드 개발 및 테스트는 다른 Apache Spark 워크로드와 다릅니다. 이 문서에서는 파이프라인 코드를 개발할 때 지원되는 기능, 모범 사례 및 고려 사항에 대한 개요를 제공합니다. 더 많은 권장 사항 및 모범 사례는 & 소프트웨어 개발 DevOps 모범 사례를DLT 파이프라인에 적용하기를 참조하세요.

메모

코드의 유효성을 검사하거나 업데이트를 실행하려면 파이프라인 구성에 소스 코드를 추가해야 합니다. DLT 파이프라인구성을 참조하세요.

파이프라인 소스 코드에 유효한 파일은 무엇인가요?

DLT 파이프라인 코드는 Python 또는 SQL일 수 있습니다. 단일 파이프라인을 지원하는 Python 및 SQL 소스 코드 파일을 혼합해서 사용할 수 있지만 각 파일에는 하나의 언어만 포함될 수 있습니다. Python 사용하여 파이프라인 코드 개발 및 SQL 사용하여 파이프라인 코드 개발참조하세요.

파이프라인의 소스 코드를 지정할 때 Notebook 및 작업 영역 파일을 사용할 수 있습니다. 작업 영역 파일은 선호하는 IDE 또는 Databricks 파일 편집기에서 작성한 Python 또는 SQL 스크립트를 나타냅니다. 작업 영역 파일이란?.

Python 코드를 모듈 또는 라이브러리로 개발하는 경우 코드를 설치 및 가져온 다음 소스 코드로 구성된 Python Notebook 또는 작업 영역 파일에서 메서드를 호출해야 합니다. DLT 파이프라인에 대한 Python 종속성 관리참조하세요.

메모

Python Notebook에서 임의의 SQL 명령을 사용해야 하는 경우 구문 패턴 spark.sql("<QUERY>") 사용하여 SQL을 Python 코드로 실행할 수 있습니다.

Unity 카탈로그 함수를 사용하면 SQL에서 사용할 임의의 Python 사용자 정의 함수를 등록할 수 있습니다. Unity 카탈로그 UDF(사용자 정의 함수)참조하세요.

DLT 개발 기능 개요

DLT는 많은 Azure Databricks 기능을 확장하고 활용하며 새로운 기능과 개념을 소개합니다. 다음 표에서는 파이프라인 코드 개발을 지원하는 개념 및 기능에 대한 간략한 개요를 제공합니다.

특징 묘사
개발 모드 새 파이프라인은 기본적으로 개발 모드에서 실행되도록 구성됩니다. Databricks는 대화형 개발 및 테스트에 개발 모드를 사용하는 것이 좋습니다. 개발 및 프로덕션 모드참조하세요.
확인 Validate 업데이트는 테이블에서 업데이트를 실행하지 않고 파이프라인 소스 코드의 정확성을 확인합니다. 테이블이 업데이트될 때까지 기다리지 말고파이프라인에서 오류를 확인하세요.
노트북 DLT 파이프라인의 소스 코드로 구성된 Notebook은 코드의 유효성을 검사하고 업데이트를 실행하기 위한 대화형 옵션을 제공합니다. 노트북에서 DLT 파이프라인을 개발하고 디버그하세요.
매개 변수 소스 코드 및 파이프라인 구성의 매개 변수를 활용하여 테스트 및 확장성을 간소화합니다. DLT 파이프라인매개 변수 사용을 참조하세요.
Databricks 자산 번들 Databricks 자산 번들을 사용하면 작업 영역 간에 파이프라인 구성 및 소스 코드를 이동할 수 있습니다. DLT 파이프라인을 Databricks Asset Bundle 프로젝트로 전환하는 방법을에서 참조하십시오.

개발 및 테스트를 위한 샘플 데이터 세트 만들기

Databricks는 예상 데이터 및 잠재적으로 형식이 잘못되었거나 손상된 레코드를 사용하여 파이프라인 논리를 테스트하기 위해 개발 및 테스트 데이터 세트를 만드는 것이 좋습니다. 다음을 포함하여 개발 및 테스트에 유용할 수 있는 데이터 세트를 만드는 방법에는 여러 가지가 있습니다.

  • 프로덕션 데이터 세트에서 데이터의 하위 집합을 선택합니다.
  • PII를 포함하는 원본에 대해 익명화되거나 인위적으로 생성된 데이터를 사용합니다.
  • 다운스트림 변환 논리를 기반으로 잘 정의된 결과를 사용하여 테스트 데이터를 만듭니다.
  • 데이터 스키마 기대치를 깨뜨리는 레코드를 만들어 잠재적인 데이터 손상, 형식이 잘못된 레코드 및 업스트림 데이터 변경을 예상합니다.

예를 들어 다음 코드를 사용하여 데이터 세트를 정의하는 Notebook이 있는 경우:

CREATE OR REFRESH STREAMING TABLE input_data AS SELECT * FROM read_files("/production/data", "json")

다음과 같은 쿼리를 사용하여 특정 레코드를 포함하는 샘플 데이터 세트를 만들 수 있습니다.

CREATE OR REFRESH MATERIALIZED VIEW input_data AS
SELECT "2021/09/04" AS date, 22.4 as sensor_reading UNION ALL
SELECT "2021/09/05" AS date, 21.5 as sensor_reading

다음 예제에서는 게시된 데이터를 필터링하여 개발 또는 테스트를 위한 프로덕션 데이터의 하위 집합을 만드는 방법을 보여 줍니다.

CREATE OR REFRESH MATERIALIZED VIEW input_data AS SELECT * FROM prod.input_data WHERE date > current_date() - INTERVAL 1 DAY

이러한 다양한 데이터 세트를 사용하려면 변환 논리를 구현하는 Notebook을 사용하여 여러 파이프라인을 만듭니다. 각 파이프라인은 input_data 데이터 세트에서 데이터를 읽을 수 있지만 환경과 관련된 데이터 세트를 만드는 Notebook을 포함하도록 구성됩니다.