다음을 통해 공유


Databricks 자산 번들을 사용하여 Delta Live Tables 파이프라인 개발

단순히 번들이라고도 하는 Databricks 자산 번들을 사용하면 Delta Live Tables 파이프라인과 같은 Azure Databricks 리소스의 유효성을 프로그래밍 방식으로 유효성 검사, 배포 및 실행할 수 있습니다. 번들을 사용하여 Azure Databricks 작업을 프로그래밍 방식으로 관리하고 MLOps 스택으로 작업할 수도 있습니다. Databricks 자산 번들이란?을 참조하세요.

이 문서에서는 델타 라이브 테이블 파이프라인을 프로그래밍 방식으로 관리하는 번들을 사용하기 위해 로컬 개발 머신에서 완료할 수 있는 일련의 단계를 설명합니다.

요구 사항

  • Databricks CLI 버전 0.218.0 이상. 설치된 Databricks CLI 버전을 확인하려면 명령을 databricks -v실행합니다. Databricks CLI를 설치하려면 Databricks CLI 설치 또는 업데이트를 참조하세요.
  • 원격 작업 영역에는 작업 영역 파일이 활성화되어 있어야 합니다. 작업 영역 파일이란?을 참조하세요.

(선택 사항) 로컬 파이프라인 개발을 지원하는 Python 모듈 설치

Databricks는 IDE에서 코드를 작성할 때 구문 검사, 자동 완성 및 데이터 형식 검사를 제공하여 Delta Live Tables 파이프라인 코드의 로컬 개발을 지원하는 Python 모듈을 제공합니다.

로컬 개발을 위한 Python 모듈은 PyPi에서 사용할 수 있습니다. 모듈을 설치하려면 Delta Live Tables용 Python 스텁을 참조 하세요.

결정: 템플릿을 사용하거나 수동으로 번들 만들기

템플릿을 사용하여 번들을 만들 것인지 아니면 수동으로 만들 것인지 결정합니다.

템플릿을 사용하여 번들 만들기

이 단계에서는 Python용 Azure Databricks 기본 번들 템플릿을 사용하여 번들을 만듭니다. 이 단계에서는 원본 데이터 세트에서 데이터를 필터링하는 Delta Live Tables 파이프라인을 정의하는 Notebook으로 구성된 번들을 만드는 방법을 안내합니다. 그런 다음 Azure Databricks 작업 영역 내에서 배포된 파이프라인의 유효성을 검사, 배포 및 실행합니다.

1단계: 인증 설정

이 단계에서는 개발 컴퓨터의 Databricks CLI와 Azure Databricks 작업 영역 간에 인증을 설정합니다. 이 문서에서는 OAuth U2M(사용자-컴퓨터) 인증 및 인증을 위해 명명된 DEFAULT 해당 Azure Databricks 구성 프로필을 사용하려고 하는 것으로 가정합니다.

참고 항목

U2M 인증은 이러한 단계를 실시간으로 시도하는 데 적합합니다. 완전히 자동화된 워크플로의 경우 Databricks는 OAuth M2M(컴퓨터 간) 인증을 대신 사용하는 것이 좋습니다. 인증에서 M2M 인증 설정 지침을 참조하세요.

  1. Databricks CLI를 사용하여 각 대상 작업 영역에 대해 다음 명령을 실행하여 OAuth 토큰 관리를 로컬로 시작합니다.

    다음 명령에서 작업 영역별 Azure Databricks URL로 바꿉 <workspace-url> 니다. 예를 들면 다음과 같습니다https://adb-1234567890123456.7.azuredatabricks.net.

    databricks auth login --host <workspace-url>
    
  2. Databricks CLI는 Azure Databricks 구성 프로필로 입력한 정보를 저장하라는 메시지를 표시합니다. 제안된 프로필 이름을 적용하려면 누르 Enter 거나 새 프로필 또는 기존 프로필의 이름을 입력합니다. 이름이 같은 기존 프로필은 입력한 정보로 덮어씁니다. 프로필을 사용하여 여러 작업 영역에서 인증 컨텍스트를 빠르게 전환할 수 있습니다.

    기존 프로필 목록을 얻으려면 별도의 터미널 또는 명령 프롬프트에서 Databricks CLI를 사용하여 명령을 databricks auth profiles실행합니다. 특정 프로필의 기존 설정을 보려면 명령을 databricks auth env --profile <profile-name>실행합니다.

  3. 웹 브라우저에서 화면의 지침을 완료하여 Azure Databricks 작업 영역에 로그인합니다.

  4. 프로필의 현재 OAuth 토큰 값과 토큰의 예정된 만료 타임스탬프를 보려면 다음 명령 중 하나를 실행합니다.

    • databricks auth token --host <workspace-url>
    • databricks auth token -p <profile-name>
    • databricks auth token --host <workspace-url> -p <profile-name>

    동일한 --host 값을 가진 여러 프로필이 있는 경우 Databricks CLI가 올바른 일치하는 OAuth 토큰 정보를 찾을 수 있도록 옵션과 -p 옵션을 함께 지정 --host 해야 할 수 있습니다.

2단계: 번들 만들기

번들에는 배포하려는 아티팩트와 실행하려는 워크플로에 대한 설정이 포함됩니다.

  1. 터미널 또는 명령 프롬프트를 사용하여 템플릿의 생성된 번들을 포함하는 로컬 개발 머신의 디렉터리로 전환합니다.

  2. Dataricks CLI를 사용하여 명령을 실행합니다 bundle init .

    databricks bundle init
    
  3. 의 경우 Template to use키를 눌러 Enter기본값을 default-python 그대로 둡니다.

  4. 의 경우 Unique name for this project기본값을 my_project그대로 두거나 다른 값을 입력한 다음 키를 누릅니다 Enter. 이 번들에 대한 루트 디렉터리의 이름이 결정됩니다. 이 루트 디렉터리가 현재 작업 디렉터리 내에 만들어집니다.

  5. 의 경우 Include a stub (sample) notebook를 선택하고 no 누릅니다 Enter. 그러면 이 옵션과 연결된 샘플 Notebook에 델타 라이브 테이블 코드가 없으므로 이 시점에서 샘플 Notebook을 추가하지 않도록 Databricks CLI에 지시합니다.

  6. 의 경우 Include a stub (sample) DLT pipeline키를 눌러 Enter기본값을 yes 그대로 둡니다. 그러면 Databricks CLI에 델타 라이브 테이블 코드가 포함된 샘플 Notebook을 추가하도록 지시합니다.

  7. 의 경우 Include a stub (sample) Python package를 선택하고 no 누릅니다 Enter. 그러면 Databricks CLI에서 샘플 Python 휠 패키지 파일 또는 관련 빌드 지침을 번들에 추가하지 않도록 지시합니다.

3단계: 번들 탐색

템플릿이 생성한 파일을 보려면 새로 만든 번들의 루트 디렉터리로 전환하고 기본 설정 IDE(예: Visual Studio Code)를 사용하여 이 디렉터리를 엽니다. 특히 관심 있는 파일은 다음과 같습니다.

  • databricks.yml: 이 파일은 번들 프로그래밍 이름을 지정하고 파이프라인 정의에 대한 참조를 포함하며 대상 작업 영역에 대한 설정을 지정합니다.
  • resources/<project-name>_job.ymlresources/<project-name>_pipeline.yml: 이 파일은 파이프라인의 설정을 지정합니다.
  • src/dlt_pipeline.ipynb: 이 파일은 실행할 때 파이프라인을 실행하는 Notebook입니다.

파이프라인을 사용자 지정하기 위해 파이프라인 선언 내의 매핑은 YAML 형식으로 표현된 REST API 참조의 POST /api/2.0/pipelines에 정의된 대로 파이프라인 만들기 작업의 요청 페이로드에 해당합니다.

4단계: 프로젝트의 번들 구성 파일 유효성 검사

이 단계에서는 번들 구성이 유효한지 확인합니다.

  1. 루트 디렉터리에서 Databricks CLI를 사용하여 다음과 같이 명령을 실행 bundle validate 합니다.

    databricks bundle validate
    
  2. 번들 구성 요약이 반환되면 유효성 검사가 성공했습니다. 오류가 반환되면 오류를 수정한 다음 이 단계를 반복합니다.

이 단계 후에 번들을 변경한 경우 이 단계를 반복하여 번들 구성이 여전히 유효한지 확인해야 합니다.

5단계: 원격 작업 영역에 로컬 프로젝트 배포

이 단계에서는 원격 Azure Databricks 작업 영역에 로컬 Notebook을 배포하고 작업 영역 내에 Delta Live Tables 파이프라인을 만듭니다.

  1. Databricks CLI를 사용하여 다음과 같이 명령을 실행 bundle validate 합니다.

    databricks bundle deploy -t dev
    
  2. 로컬 Notebook이 배포되었는지 확인합니다. Azure Databricks 작업 영역의 사이드바에서 작업 영역을 클릭합니다.

  3. Users><your-username>> .bundle ><project-name>> dev > files > src 폴더를 클릭합니다. 전자 필기장이 이 폴더에 있어야 합니다.

  4. 파이프라인이 만들어졌는지 확인합니다. Azure Databricks 작업 영역의 사이드바에서 델타 라이브 테이블을 클릭합니다.

  5. 델타 라이브 테이블 탭에서 [개발<your-username>] <project-name>_pipeline 클릭합니다.

이 단계 후에 번들을 변경한 경우 4-5단계를 반복하여 번들 구성이 여전히 유효한지 확인한 다음 프로젝트를 다시 배포해야 합니다.

6단계: 배포된 프로젝트 실행

이 단계에서는 작업 영역에서 Delta Live Tables 파이프라인을 실행합니다.

  1. 루트 디렉터리에서 Databricks CLI를 사용하여 다음과 같이 명령을 실행하고 bundle run 2단계의 프로젝트 이름으로 바꿉 <project-name> 니다.

    databricks bundle run -t dev <project-name>_pipeline
    
  2. 터미널에 표시되는 값을 Update URL 복사하고 이 값을 웹 브라우저에 붙여넣어 Azure Databricks 작업 영역을 엽니다.

  3. Azure Databricks 작업 영역에서 파이프라인이 성공적으로 완료되면 taxi_raw 보기와 filtered_taxis 구체화된 보기를 클릭하여 세부 정보를 확인합니다.

이 단계 후에 번들을 변경한 경우 4-6단계를 반복하여 번들 구성이 여전히 유효한지 확인하고, 프로젝트를 다시 배포하고, 재배포된 프로젝트를 실행해야 합니다.

7단계: 정리

이 단계에서는 배포된 Notebook 및 파이프라인을 작업 영역에서 삭제합니다.

  1. 루트 디렉터리에서 Databricks CLI를 사용하여 다음과 같이 명령을 실행 bundle destroy 합니다.

    databricks bundle destroy -t dev
    
  2. 파이프라인 삭제 요청 확인: 리소스를 영구적으로 삭제하라는 메시지가 표시되면 입력 y 하고 누릅니다 Enter.

  3. Notebook 삭제 요청 확인: 이전에 배포된 폴더와 모든 파일을 영구적으로 삭제하라는 메시지가 표시되면 입력 y 하고 누릅니다 Enter.

  4. 개발 머신에서 번들을 삭제하려는 경우 이제 2단계에서 로컬 디렉터리를 삭제할 수 있습니다.

템플릿을 사용하여 번들을 만드는 단계의 끝에 도달했습니다.

수동으로 번들 만들기

이 단계에서는 처음부터 번들을 만듭니다. 이 단계에서는 포함된 Delta Live Tables 지시문이 포함된 Notebook과 이 Notebook을 실행할 Delta Live Tables 파이프라인의 정의로 구성된 번들을 만드는 방법을 안내합니다. 그런 다음 Azure Databricks 작업 영역 내의 파이프라인에서 배포된 Notebook의 유효성을 검사, 배포 및 실행합니다.

1단계: 번들 만들기

번들에는 배포하려는 아티팩트와 실행하려는 워크플로에 대한 설정이 포함됩니다.

  1. 개발 머신에서 빈 디렉터리를 만들거나 식별합니다.
  2. 터미널의 빈 디렉터리로 전환하거나 IDE에서 빈 디렉터리를 엽니다.

빈 디렉터리는 Git 공급자가 관리하는 복제된 리포지토리와 연결될 수 있습니다. 이렇게 하면 외부 버전 제어를 사용하여 번들을 관리하고 프로젝트에서 다른 개발자 및 IT 전문가와 보다 쉽게 공동 작업할 수 있습니다. 그러나 이 데모를 간소화하기 위해 복제된 리포지토리는 여기서 사용되지 않습니다.

이 데모에 대한 리포지토리를 복제하도록 선택하는 경우 Databricks는 리포지토리가 비어 있거나 기본 파일(예: README.gitignore및 )만 포함하는 것이 좋습니다. 그렇지 않으면 리포지토리의 기존 파일이 Azure Databricks 작업 영역에 불필요하게 동기화될 수 있습니다.

2단계: 프로젝트에 Notebook 추가

이 단계에서는 프로젝트에 Notebook을 추가합니다. 이 Notebook은 다음을 수행합니다.

  • Databricks 데이터 세트원시 JSON 클릭스트림 데이터를 Azure Databricks 작업 영역의 DBFS 루트 폴더 내 폴더에 있는 pipelines 원시 델타 테이블로 읽습니다.
  • 원시 델타 테이블에서 레코드를 읽고 Delta Live Tables 쿼리 및 기대치를 사용하여 정리되고 준비된 데이터를 사용하여 새 델타 테이블을 만듭니다.
  • Delta Live Tables 쿼리를 사용하여 새 델타 테이블에서 준비된 데이터를 분석합니다.
  1. 디렉터리의 루트에서 이름을 dlt-wikipedia-python.py가진 파일을 만듭니다.

  2. dlt-wikipedia-python.py 파일에 다음 코드를 추가합니다.

    # Databricks notebook source
    import dlt
    from pyspark.sql.functions import *
    
    # COMMAND ----------
    json_path = "/databricks-datasets/wikipedia-datasets/data-001/clickstream/raw-uncompressed-json/2015_2_clickstream.json"
    
    # COMMAND ----------
    @dlt.table(
      comment="The raw wikipedia clickstream dataset, ingested from /databricks-datasets."
    )
    def clickstream_raw():
      return (spark.read.format("json").load(json_path))
    
    # COMMAND ----------
    @dlt.table(
      comment="Wikipedia clickstream data cleaned and prepared for analysis."
    )
    @dlt.expect("valid_current_page_title", "current_page_title IS NOT NULL")
    @dlt.expect_or_fail("valid_count", "click_count > 0")
    def clickstream_prepared():
      return (
        dlt.read("clickstream_raw")
          .withColumn("click_count", expr("CAST(n AS INT)"))
          .withColumnRenamed("curr_title", "current_page_title")
          .withColumnRenamed("prev_title", "previous_page_title")
          .select("current_page_title", "click_count", "previous_page_title")
      )
    
    # COMMAND ----------
    @dlt.table(
      comment="A table containing the top pages linking to the Apache Spark page."
    )
    def top_spark_referrers():
      return (
        dlt.read("clickstream_prepared")
          .filter(expr("current_page_title == 'Apache_Spark'"))
          .withColumnRenamed("previous_page_title", "referrer")
          .sort(desc("click_count"))
          .select("referrer", "click_count")
          .limit(10)
      )
    

3단계: 프로젝트에 번들 구성 스키마 파일 추가

YAML 파일 및 JSON 스키마 파일을 지원하는 Visual Studio Code, PyCharm Professional 또는 IntelliJ IDEA Ultimate와 같은 IDE를 사용하는 경우 IDE를 사용하여 번들 구성 스키마 파일을 만들 뿐만 아니라 프로젝트의 번들 구성 파일 구문 및 서식을 확인하고 코드 완성 힌트를 제공할 수 있습니다. 다음과 같습니다. 5단계에서 나중에 만들 번들 구성 파일은 YAML 기반이지만 이 단계의 번들 구성 스키마 파일은 JSON 기반입니다.

Visual Studio Code

  1. 예를 들어 Visual Studio Code Marketplace에서 YAML 확장을 설치하여 VISUAL Studio Code에 YAML 언어 서버 지원을 추가합니다.

  2. Databricks CLI를 사용하여 Databricks Asset Bundle 구성 JSON 스키마 파일을 생성하여 명령을 실행하고 bundle schema 출력을 JSON 파일로 리디렉션합니다. 예를 들어 다음과 같이 현재 디렉터리 내에 명명된 bundle_config_schema.json 파일을 생성합니다.

    databricks bundle schema > bundle_config_schema.json
    
  3. 5단계의 뒷부분에서 번들 구성 파일의 시작 부분에 다음 주석을 추가하여 번들 구성 파일을 지정된 JSON 스키마 파일과 연결합니다.

    # yaml-language-server: $schema=bundle_config_schema.json
    

    참고 항목

    앞의 설명에서 Databricks Asset Bundle 구성 JSON 스키마 파일이 다른 경로에 있는 경우 스키마 파일의 전체 경로로 바꿉 bundle_config_schema.json 니다.

PyCharm Professsional

  1. Databricks CLI를 사용하여 Databricks Asset Bundle 구성 JSON 스키마 파일을 생성하여 명령을 실행하고 bundle schema 출력을 JSON 파일로 리디렉션합니다. 예를 들어 다음과 같이 현재 디렉터리 내에 명명된 bundle_config_schema.json 파일을 생성합니다.

    databricks bundle schema > bundle_config_schema.json
    
  2. 번들 구성 JSON 스키마 파일을 인식하도록 PyCharm을 구성한 다음 사용자 지정 JSON 스키마 구성의 지침에 따라 JSON 스키마 매핑을 완료합니다.

  3. 5단계의 뒷부분에서는 PyCharm을 사용하여 번들 구성 파일을 만들거나 엽니다. 규칙에 따라 이 파일의 이름은 databricks.yml.

IntelliJ IDEA Ultimate

  1. Databricks CLI를 사용하여 Databricks Asset Bundle 구성 JSON 스키마 파일을 생성하여 명령을 실행하고 bundle schema 출력을 JSON 파일로 리디렉션합니다. 예를 들어 다음과 같이 현재 디렉터리 내에 명명된 bundle_config_schema.json 파일을 생성합니다.

    databricks bundle schema > bundle_config_schema.json
    
  2. 번들 구성 JSON 스키마 파일을 인식하도록 IntelliJ IDEA를 구성한 다음 사용자 지정 JSON 스키마 구성의 지침에 따라 JSON 스키마 매핑을 완료합니다.

  3. 5단계의 뒷부분에서는 IntelliJ IDEA를 사용하여 번들 구성 파일을 만들거나 엽니다. 규칙에 따라 이 파일의 이름은 databricks.yml.

4단계: 인증 설정

이 단계에서는 개발 컴퓨터의 Databricks CLI와 Azure Databricks 작업 영역 간에 인증을 설정합니다. 이 문서에서는 OAuth U2M(사용자-컴퓨터) 인증 및 인증을 위해 명명된 DEFAULT 해당 Azure Databricks 구성 프로필을 사용하려고 하는 것으로 가정합니다.

참고 항목

U2M 인증은 이러한 단계를 실시간으로 시도하는 데 적합합니다. 완전히 자동화된 워크플로의 경우 Databricks는 OAuth M2M(컴퓨터 간) 인증을 대신 사용하는 것이 좋습니다. 인증에서 M2M 인증 설정 지침을 참조하세요.

  1. Databricks CLI를 사용하여 각 대상 작업 영역에 대해 다음 명령을 실행하여 OAuth 토큰 관리를 로컬로 시작합니다.

    다음 명령에서 작업 영역별 Azure Databricks URL로 바꿉 <workspace-url> 니다. 예를 들면 다음과 같습니다https://adb-1234567890123456.7.azuredatabricks.net.

    databricks auth login --host <workspace-url>
    
  2. Databricks CLI는 Azure Databricks 구성 프로필로 입력한 정보를 저장하라는 메시지를 표시합니다. 제안된 프로필 이름을 적용하려면 누르 Enter 거나 새 프로필 또는 기존 프로필의 이름을 입력합니다. 이름이 같은 기존 프로필은 입력한 정보로 덮어씁니다. 프로필을 사용하여 여러 작업 영역에서 인증 컨텍스트를 빠르게 전환할 수 있습니다.

    기존 프로필 목록을 얻으려면 별도의 터미널 또는 명령 프롬프트에서 Databricks CLI를 사용하여 명령을 databricks auth profiles실행합니다. 특정 프로필의 기존 설정을 보려면 명령을 databricks auth env --profile <profile-name>실행합니다.

  3. 웹 브라우저에서 화면의 지침을 완료하여 Azure Databricks 작업 영역에 로그인합니다.

  4. 프로필의 현재 OAuth 토큰 값과 토큰의 예정된 만료 타임스탬프를 보려면 다음 명령 중 하나를 실행합니다.

    • databricks auth token --host <workspace-url>
    • databricks auth token -p <profile-name>
    • databricks auth token --host <workspace-url> -p <profile-name>

    동일한 --host 값을 가진 여러 프로필이 있는 경우 Databricks CLI가 올바른 일치하는 OAuth 토큰 정보를 찾을 수 있도록 옵션과 -p 옵션을 함께 지정 --host 해야 할 수 있습니다.

5단계: 프로젝트에 번들 구성 파일 추가

이 단계에서는 이 Notebook을 배포하고 실행하는 방법을 정의합니다. 이 데모에서는 Delta Live Tables 파이프라인을 사용하여 Notebook을 실행하려고 합니다. 프로젝트의 번들 구성 파일 내에서 이 목표를 모델링합니다.

  1. 디렉터리의 루트에서 즐겨 찾는 텍스트 편집기 또는 IDE를 사용하여 번들 구성 파일을 만듭니다. 규칙에 따라 이 파일의 이름은 databricks.yml.
  2. 예를 들어 https://adb-1234567890123456.7.azuredatabricks.net작업 영역별 URL바꿔 <workspace-url> 서 파일에 다음 코드를 databricks.yml 추가합니다. 이 URL은 파일 .databrickscfg 의 URL과 일치해야 합니다.

첫 번째 줄 # yaml-language-server은 IDE에서 지원하는 경우에만 필요합니다. 자세한 내용은 이전 3단계를 참조하세요.

# yaml-language-server: $schema=bundle_config_schema.json
bundle:
  name: dlt-wikipedia

resources:
  pipelines:
    dlt-wikipedia-pipeline:
      name: dlt-wikipedia-pipeline
      development: true
      continuous: false
      channel: "CURRENT"
      photon: false
      libraries:
        - notebook:
            path: ./dlt-wikipedia-python.py
      edition: "ADVANCED"
      clusters:
        - label: "default"
          num_workers: 1

targets:
  development:
    workspace:
      host: <workspace-url>

파이프라인을 사용자 지정하기 위해 파이프라인 선언 내의 매핑은 YAML 형식으로 표현된 REST API 참조의 POST /api/2.0/pipelines에 정의된 대로 파이프라인 만들기 작업의 요청 페이로드에 해당합니다.

6단계: 프로젝트의 번들 구성 파일 유효성 검사

이 단계에서는 번들 구성이 유효한지 확인합니다.

  1. Databricks CLI를 사용하여 다음과 같이 명령을 실행 bundle validate 합니다.

    databricks bundle validate
    
  2. 번들 구성 요약이 반환되면 유효성 검사가 성공했습니다. 오류가 반환되면 오류를 수정한 다음 이 단계를 반복합니다.

이 단계 후에 번들을 변경한 경우 이 단계를 반복하여 번들 구성이 여전히 유효한지 확인해야 합니다.

7단계: 원격 작업 영역에 로컬 프로젝트 배포

이 단계에서는 로컬 Notebook을 원격 Azure Databricks 작업 영역에 배포하고 작업 영역에서 Delta Live Tables 파이프라인을 만듭니다.

  1. Databricks CLI를 사용하여 다음과 같이 명령을 실행 bundle validate 합니다.

    databricks bundle deploy -t development
    
  2. 로컬 Notebook이 배포되었는지 확인합니다. Azure Databricks 작업 영역의 사이드바에서 작업 영역을 클릭합니다.

  3. Users><your-username>> .bundle > dlt-wikipedia > 개발 > 파일 폴더를 클릭합니다. 전자 필기장이 이 폴더에 있어야 합니다.

  4. Delta Live Tables 파이프라인이 만들어졌는지 확인합니다. Azure Databricks 작업 영역의 사이드바에서 워크플로를 클릭합니다.

  5. 델타 라이브 테이블 탭에서 dlt-wikipedia-pipeline을 클릭합니다.

이 단계 후에 번들을 변경한 경우 6-7단계를 반복하여 번들 구성이 여전히 유효한지 확인한 다음 프로젝트를 다시 배포해야 합니다.

8단계: 배포된 프로젝트 실행

이 단계에서는 작업 영역에서 Azure Databricks 작업을 실행합니다.

  1. Databricks CLI를 사용하여 다음과 같이 명령을 실행 bundle run 합니다.

    databricks bundle run -t development dlt-wikipedia-pipeline
    
  2. 터미널에 표시되는 값을 Update URL 복사하고 이 값을 웹 브라우저에 붙여넣어 Azure Databricks 작업 영역을 엽니다.

  3. Azure Databricks 작업 영역에서 Delta Live Tables 파이프라인이 성공적으로 완료되고 다양한 구체화된 뷰에 녹색 제목 표시줄이 표시되면 clickstream_raw, clickstream_prepared 또는 구체화된 뷰를 top_spark_referrers 클릭하여 자세한 내용을 확인합니다.

  4. 정리를 위한 다음 단계를 시작하기 전에 다음과 같이 DBFS에서 만든 델타 테이블의 위치를 확인합니다. 나중에 이러한 델타 테이블을 수동으로 정리하려면 이 정보가 필요합니다.

    1. Delta Live Tables 파이프라인이 계속 열려 있는 상태에서 설정 단추(사용 권한일정 단추 옆)를 클릭합니다.
    2. 대상 영역에서 스토리지 위치 필드의 값을 확인합니다. 여기서 델타 테이블은 DBFS에서 만들어졌습니다.

이 단계 후에 번들을 변경한 경우 6-8단계를 반복하여 번들 구성이 여전히 유효한지 확인하고, 프로젝트를 다시 배포하고, 재배포된 프로젝트를 실행해야 합니다.

9단계: 정리

이 단계에서는 작업 영역에서 배포된 Notebook 및 Delta Live Tables 파이프라인을 삭제합니다.

  1. Databricks CLI를 사용하여 다음과 같이 명령을 실행 bundle destroy 합니다.

    databricks bundle destroy
    
  2. Delta Live Tables 파이프라인 삭제 요청 확인: 리소스를 영구적으로 삭제하라는 메시지가 표시되면 입력 y 하고 누릅니다 Enter.

  3. Notebook 삭제 요청 확인: 이전에 배포된 폴더와 모든 파일을 영구적으로 삭제하라는 메시지가 표시되면 입력 y 하고 누릅니다 Enter.

명령을 실행하면 bundle destroy 배포된 Delta Live Tables 파이프라인과 배포된 Notebook이 포함된 폴더만 삭제됩니다. 이 명령은 DBFS에서 Notebook이 만든 델타 테이블과 같은 부작용을 삭제하지 않습니다. 이러한 델타 테이블을 삭제해야 하는 경우 수동으로 삭제해야 합니다.

번들에 기존 파이프라인 정의 추가

기존 Delta Live Tables 파이프라인 정의를 기준으로 사용하여 번들 구성 파일에서 새 파이프라인을 정의할 수 있습니다. 이렇게 하려면 다음 단계를 완료합니다.

참고 항목

다음 단계에서는 기존 파이프라인과 동일한 설정을 가진 새 파이프라인을 만듭니다. 그러나 새 파이프라인에는 기존 파이프라인과 다른 파이프라인 ID가 있습니다. 기존 파이프라인 ID를 번들로 자동으로 가져올 수 없습니다.

1단계: JSON 형식으로 기존 파이프라인 정의 가져오기

이 단계에서는 Azure Databricks 작업 영역 사용자 인터페이스를 사용하여 기존 파이프라인 정의의 JSON 표현을 가져옵니다.

  1. Azure Databricks 작업 영역의 사이드바에서 워크플로를 클릭합니다.
  2. 델타 라이브 테이블 탭에서 파이프라인의 이름 링크를 클릭합니다.
  3. 사용 권한일정 단추 간에 설정 단추를 클릭합니다.
  4. JSON 단추를 클릭합니다.
  5. 파이프라인 정의의 JSON을 복사합니다.

2단계: 파이프라인 정의를 JSON에서 YAML 형식으로 변환

이전 단계에서 복사한 파이프라인 정의는 JSON 형식입니다. 번들 구성은 YAML 형식입니다. 파이프라인 정의를 JSON에서 YAML 형식으로 변환해야 합니다. Databricks는 JSON을 YAML로 변환하기 위해 다음 리소스를 권장합니다.

3단계: 번들 구성 파일에 파이프라인 정의 YAML 추가

번들 구성 파일에서 이전 단계에서 복사한 YAML을 다음과 같이 번들 구성 파일에 레이블이 지정된 <pipeline-yaml-can-go-here> 다음 위치 중 하나에 추가합니다.

resources:
  pipelines:
    <some-unique-programmatic-identifier-for-this-pipeline>:
      <pipeline-yaml-can-go-here>

targets:
  <some-unique-programmatic-identifier-for-this-target>:
    resources:
      pipelines:
        <some-unique-programmatic-identifier-for-this-pipeline>:
          <pipeline-yaml-can-go-here>

4단계: 번들에 Notebook, Python 파일 및 기타 아티팩트 추가

기존 파이프라인에서 참조되는 모든 Python 파일 및 Notebook을 번들의 원본으로 이동해야 합니다.

번들과의 호환성을 높이기 위해 Notebook은 IPython Notebook 형식(.ipynb)을 사용해야 합니다. 번들을 로컬로 개발하는 경우 Azure Databricks Notebook 사용자 인터페이스에서 파일 > 내보내기 IPython Notebook을 클릭하여 Azure Databricks 작업 영역에서 기존 Notebook을 형식으로 .ipynb 내보낼 > 수 있습니다. 규칙에 따라 다운로드한 전자 필 src/ 기장을 번들 디렉터리에 배치해야 합니다.

Notebook, Python 파일 및 기타 아티팩트가 번들에 추가된 후 파이프라인 정의에서 참조하는지 확인합니다. 예를 들어 파일 이름이 hello.ipynbsrc/ 디렉터리에 있고 디렉터리가 디렉터리를 참조 src/ 하는 번들 구성 파일과 src/ 동일한 폴더에 있는 Notebook의 경우 파이프라인 정의는 다음과 같이 표현될 수 있습니다.

resources:
  pipelines:
    hello-pipeline:
      name: hello-pipeline
      libraries:
      -
        notebook:
          path: ./src/hello.ipynb

5단계: 새 파이프라인 유효성 검사, 배포 및 실행

  1. 다음 명령을 실행하여 번들 구성 파일이 구문적으로 올바른지 확인합니다.

    databricks bundle validate
    
  2. 다음 명령을 실행하여 번들을 배포합니다. 이 명령에서 번들 구성에서 대상에 대한 고유한 프로그래밍 식별자로 바꿉 <target-identifier> 다.

    databricks bundle deploy -t <target-identifier>
    
  3. 다음 명령을 실행하여 파이프라인을 실행합니다. 이 명령에서 다음을 바꿉다.

    • 번들 구성에서 대상에 대한 고유한 프로그래밍 식별자로 바꿉 <target-identifier> 다.
    • 번들 구성에서 파이프라인에 대한 고유한 프로그래밍 식별자로 바꿉 <pipeline-identifier> 다.
    databricks bundle run -t <target-identifier> <pipeline-identifier>