다음을 통해 공유


기존 리소스를 번들로 마이그레이션

번들을 빌드할 때 이미 존재하고 원격 작업 영역에 완전히 구성된 Databricks 리소스를 포함할 수 있습니다. Databricks CLI bundle generate 명령을 사용하여 기존 앱, 대시보드, 작업 및 파이프라인에 대한 번들의 구성을 신속하게 자동 생성할 수 있습니다. databricks 번들 생성을 참조하세요. 번들 리소스 구성 파일을 복사하여 수동으로 붙여넣을 수 있는 구성은 Databricks UI에서 작업 및 파이프라인과 같은 일부 리소스에 사용할 수 있습니다.

번들에서 리소스에 대한 구성을 생성하고 번들을 배포한 후에는 bundle deployment bind 이 명령을 사용하여 번들에 있는 리소스를 작업 영역의 해당 리소스에 바인딩합니다. databricks 번들 배포 바인딩을 참조하세요.

이 페이지에서는 Databricks CLI 또는 UI를 사용하여 번들 리소스 구성을 생성하거나 검색하는 간단한 예제를 제공합니다.

번들의 리소스 정의에 대한 자세한 내용은 Databricks 자산 번들 리소스를 참조하세요.

Databricks CLI를 사용하여 기존 작업 또는 파이프라인 구성 생성

기존 작업 또는 파이프라인에 대한 번들 구성을 프로그래밍 방식으로 생성하려면 다음을 수행합니다.

  1. UI의 작업 또는 파이프라인에 대한 작업 세부 정보 또는 파이프라인 세부 정보 측면 패널에서 기존 작업 또는 파이프라인의 ID를 검색합니다. 또는 Databricks CLI databricks jobs list 또는 databricks pipelines list-pipelines 명령을 사용합니다.

  2. bundle generate job 또는 bundle generate pipelineDatabricks CLI 명령을 실행하여 작업 또는 파이프라인 ID를 설정합니다.

    databricks bundle generate job --existing-job-id 6565621249
    
    databricks bundle generate pipeline --existing-pipeline-id 6565621249
    

    이 명령은 번들 resources 폴더에 있는 리소스에 대한 번들 구성 파일을 만들고, 참조된 아티팩트를 src 폴더에 다운로드합니다.

기존 대시보드에 대한 구성을 생성할 수도 있습니다. databricks 번들 대시보드 생성을 참조하세요.

UI를 사용하여 기존 작업 정의 검색

Azure Databricks 작업 영역 UI에서 기존 작업 정의의 YAML 표현을 검색하려면 다음을 수행합니다.

  1. Azure Databricks 작업 영역의 사이드바에서 작업 및 파이프라인을 클릭합니다.

  2. 필요에 따라 작업 필터와 내 소유 필터를 선택합니다.

  3. 작업의 이름 링크를 클릭합니다.

  4. 지금 실행 단추 옆에 있는 케밥을 클릭한 다음 YAML로 편집을 클릭합니다.

  5. YAML을 복사하여 번들의 databricks.yml 파일에 추가하거나, 번들 프로젝트의 resources 디렉터리에서 작업을 위한 구성 파일을 생성하고, databricks.yml 파일에서 이를 참조하십시오. 리소스를 참조하세요.

  6. 기존 작업에서 참조되는 Python 파일 및 노트북을 다운로드하여 패키지의 프로젝트 소스에 추가하십시오. 일반적으로 번들 아티팩트는 번들의 디렉터리에 있습니다 src.

    팁 (조언)

    Azure Databricks 작업 영역에서 기존 노트북을 .ipynb 형식으로 내보내려면, Azure Databricks 노트북 사용자 인터페이스의 파일 > 내보내기 > IPython Notebook을 클릭하십시오.

    Notebook, Python 파일 및 기타 아티팩트가 번들에 추가되면 작업 정의에서 이러한 파일에 대한 참조를 해당 로컬 위치로 변경합니다. 예를 들어, 번들의 hello_job.job.yml 폴더에 resources 구성 파일이 있고, hello.ipynb라는 이름의 노트북을 번들의 src 폴더에 다운로드한 경우, hello_job.job.yml 파일의 내용은 다음과 같습니다.

    resources:
      jobs:
        hello_job:
          name: hello_job
          tasks:
            - task_key: hello_task
              notebook_task:
                notebook_path: ../src/hello.ipynb
    

UI에서 작업을 코드로 보는 방법에 대한 자세한 내용은 작업 보기를 코드로 참조하세요.

UI를 사용하여 기존 파이프라인 정의 검색

Azure Databricks 작업 영역 UI에서 기존 파이프라인 정의의 YAML 표현을 검색하려면 다음을 수행합니다.

  1. Azure Databricks 작업 영역의 사이드바에서 작업 및 파이프라인을 클릭합니다.

  2. 필요에 따라 파이프라인 필터를 선택합니다.

  3. 귀하의 파이프라인의 이름을 클릭합니다.

  4. 개발 단추 옆에 있는 Kebab 메뉴 아이콘을 클릭한 다음 설정 YAML 보기를 클릭합니다.

  5. 복사 아이콘을 클릭하여 파이프라인 설정 YAML 대화 상자에서 파이프라인 정의의 YAML을 로컬 클립보드에 복사합니다.

  6. 번들의 databricks.yml 파일에 복사한 YAML을 추가하거나, 번들 프로젝트의 resources 폴더에 파이프라인에 대한 구성 파일을 생성하여 databricks.yml 파일에서 참조하십시오. 리소스를 참조하세요.

  7. 참조되는 Python 파일 및 노트북을 다운로드하여 번들 프로젝트 원본에 추가하십시오. 일반적으로 번들 아티팩트는 번들의 디렉터리에 있습니다 src.

    팁 (조언)

    Azure Databricks 작업 영역에서 기존 노트북을 .ipynb 형식으로 내보내려면, Azure Databricks 노트북 사용자 인터페이스의 파일 > 내보내기 > IPython Notebook을 클릭하십시오.

    번들에 노트북, Python 파일 및 기타 아티팩트를 추가한 후, 파이프라인 정의가 이를 제대로 참조하는지 확인합니다. 예를 들어 hello.ipynb라는 노트북이 번들의 src/ 디렉터리에 있는 경우:

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

리소스를 원격 대응 리소스에 바인딩

일반적으로 번들에 리소스를 추가한 후에는 번들에 있는 리소스와 작업 영역의 기존 리소스가 동기화 상태로 유지되도록 해야 합니다. 이 bundle deployment bind 명령을 사용하여 연결할 수 있습니다. 리소스를 바인딩하는 경우 작업 영역의 연결된 Azure Databricks 리소스는 다음 bundle deploy번들에 정의된 구성에 따라 업데이트됩니다.

리소스 지원에 대한 bundle deployment bind 자세한 내용 및 자세한 내용은 databricks 번들 배포 바인딩을 참조하세요.

다음 명령은 리소스 hello_job 를 작업 영역의 원격 리소스에 바인딩합니다. 번들이 다음에 배포될 때 번들의 작업 구성에 대한 업데이트를 해당 원격 작업에 적용해야 한다는 확인 메시지가 표시됩니다.

databricks bundle deployment bind hello_job 6565621249

번들 리소스와 작업 영역에서 해당 리소스 간의 링크를 제거하려면 .를 사용합니다 bundle deployment unbind. databricks 번들 배포 바인딩 해제를 참조하세요.

databricks bundle deployment unbind hello_job

두 작업 영역에 있는 리소스 마이그레이션

일부 설정에서는 동일한 리소스가 둘 이상의 작업 영역에 있을 수 있습니다. 예를 들어 동일한 작업이 개발 및 프로덕션 작업 영역에 있을 수 있습니다. 기존 작업이 번들에 추가된 다음 번들이 이러한 작업 영역 중 하나에 배포되면 중복 작업이 생성됩니다. 이를 방지하려면 다음을 함께 databricks bundle generate 사용합니다databricks bundle deployment bind.

  1. 번들 databricks.yml에서 개발 및 prod 대상을 정의합니다.

  2. 개발 대상에서 리소스에 대한 번들 구성(이 예제에서는 작업)을 생성합니다.

    databricks bundle generate job --existing-job-id <dev_job_id> –-target dev
    
  3. prod의 리소스 구성은 개발 중인 리소스의 구성과 다를 수 있으므로 이제 리소스에 대한 구성을 생성했으므로 번들에서 리소스에 대한 프로덕션별 설정(prod 대상)을 정의합니다.

    targets:
      dev:
        default: true
        #...
      prod:
        #...
        resources:
          jobs:
            my_job:
              # Job prod settings
    
  4. 번들의 리소스를 개발 및 prod 대상의 기존 작업에 바인딩합니다.

    databricks bundle deployment bind my_job <dev_job_id> --target dev
    
    databricks bundle deployment bind my_job <prod_job_id> --target prod
    

이제 번들을 두 환경에 배포할 수 있습니다.

databricks bundle deploy --target dev
databricks bundle deploy --target prod