다음을 통해 공유


Databricks Connect에 대한 컴퓨팅 구성

참고 항목

이 문서에서는 Databricks Runtime 13.3 LTS 이상에 대한 Databricks Connect에 대해 설명합니다.

이 문서에서는 Databricks Connect와 Azure Databricks 클러스터 또는 서버리스 컴퓨팅 간에 연결을 설정하도록 속성을 구성합니다. 이 정보는 달리 명시되지 않는 한 Databricks Connect의 Python 및 Scala 버전에 적용됩니다.

Databricks Connect를 사용하면 Visual Studio Code, PyCharm, RStudio Desktop, IntelliJ IDEA, Notebook 서버 및 기타 사용자 지정 애플리케이션과 같은 인기 있는 IDE를 Azure Databricks 클러스터에 연결할 수 있습니다. Databricks Connect란?을 참조하세요.

요구 사항

Databricks 컴퓨팅에 대한 연결을 구성하려면 다음이 있어야 합니다.

  • Databricks Connect가 설치되었습니다. 특정 언어 버전의 Databricks Connect에 대한 설치 요구 사항 및 단계는 다음을 참조하세요.
    • Python용 Databricks Connect를 설치합니다.
    • R용 Databricks Connect를 설치합니다.
    • Scala용 Databricks Connect를 설치합니다.
  • Unity 카탈로그를 사용하도록 설정된 Azure Databricks 계정 및 작업 영역입니다. Unity 카탈로그 설정 및 관리 및 Unity 카탈로그에 대한 작업 영역 사용 설정을 참조하세요.
  • Databricks Runtime 13.3 LTS 이상이 있는 Azure Databricks 클러스터입니다.
  • 클러스터의 Databricks 런타임 버전은 Databricks Connect 패키지 버전 이상이어야 합니다. Databricks는 Databricks 런타임 버전과 일치하는 최신 Databricks Connect 패키지를 사용하는 것이 좋습니다. 이후 버전의 Databricks Runtime에서 사용할 수 있는 기능을 사용하려면 Databricks Connect 패키지를 업그레이드해야 합니다. 사용 가능한 Databricks Connect 릴리스 목록은 Databricks Connect 릴리스 정보를 참조하세요. Databricks 런타임 버전 릴리스 정보는 Databricks 런타임 릴리스 정보 버전 및 호환성을 참조 하세요.
  • 클러스터는 할당 또는 공유의 클러스터 액세스 모드를 사용해야 합니다. 액세스 모드를 참조하세요.

설정

이 작업을 시작하려면 다음 조건을 충족해야 합니다.

참고 항목

  • OAuth U2M(사용자-컴퓨터) 인증 은 Python 0.19.0 이상용 Databricks SDK에서 지원됩니다. OAuth U2M 인증을 사용하도록 코드 프로젝트의 설치된 Python용 Databricks SDK 버전을 0.19.0 이상으로 업데이트합니다. Python용 Databricks SDK 시작 참조

    OAuth U2M 인증의 경우 Python 코드를 실행하기 전에 Databricks CLI를 사용하여 인증해야 합니다. 자습서를 참조하세요.

  • OAuth M2M(컴퓨터-컴퓨터) 인증 OAuth M2M(컴퓨터 대 컴퓨터) 인증은 Python 0.18.0 이상용 Databricks SDK에서 지원됩니다. OAuth M2M 인증을 사용하도록 코드 프로젝트의 설치된 Python용 Databricks SDK 버전을 0.18.0 이상으로 업데이트합니다. Python용 Databricks SDK 시작 참조

  • Python용 Databricks SDK는 아직 Azure 관리 ID 인증을 구현하지 않았습니다.

클러스터에 대한 연결 구성

클러스터에 대한 연결을 구성하는 방법에는 여러 가지가 있습니다. Databricks Connect는 다음 순서로 구성 속성을 검색하고 찾은 첫 번째 구성을 사용합니다. 고급 구성 정보는 Python용 Databricks Connect의 고급 사용을 참조 하세요.

  1. DatabricksSession 클래스의 remote() 메서드입니다.
  2. Databricks 구성 프로필
  3. DATABRICKS_CONFIG_PROFILE 환경 변수
  4. 각 구성 속성에 대한 환경 변수
  5. DEFAULT라는 Databricks 구성 프로필

DatabricksSession 클래스의 remote() 메서드

Azure Databricks 개인용 액세스 토큰 인증만 적용되는 이 옵션의 경우 작업 영역 인스턴스 이름, Azure Databricks 개인용 액세스 토큰 및 클러스터의 ID를 지정합니다.

다음과 같은 여러 가지 방법으로 클래스를 DatabricksSession 초기화할 수 있습니다.

  • 에서 host, tokencluster_id 필드를 DatabricksSession.builder.remote()설정합니다.
  • Databricks SDK의 클래스를 Config 사용합니다.
  • 필드와 함께 Databricks 구성 프로필을 지정합니다 cluster_id .

Databricks는 코드에서 이러한 연결 속성을 지정하는 대신 이 섹션 전체에서 설명한 대로 환경 변수 또는 구성 파일을 통해 속성을 구성하는 것이 좋습니다. 다음 코드 예제에서는 사용자 또는 Azure KeyVault와 같은 다른 구성 저장소에서 필요한 속성을 가져오기 위해 제안된 retrieve_* 함수의 일부 구현을 제공한다고 가정합니다.

이러한 각 방법에 대한 코드는 다음과 같습니다.

Python

# Set the host, token, and cluster_id fields in DatabricksSession.builder.remote.
# If you have already set the DATABRICKS_CLUSTER_ID environment variable with the
# cluster's ID, you do not also need to set the cluster_id field here.
from databricks.connect import DatabricksSession

spark = DatabricksSession.builder.remote(
host       = f"https://{retrieve_workspace_instance_name()}",
token      = retrieve_token(),
cluster_id = retrieve_cluster_id()
).getOrCreate()

Scala

// Set the host, token, and clusterId fields in DatabricksSession.builder.
// If you have already set the DATABRICKS_CLUSTER_ID environment variable with the
// cluster's ID, you do not also need to set the clusterId field here.
import com.databricks.connect.DatabricksSession

val spark = DatabricksSession.builder()
    .host(retrieveWorkspaceInstanceName())
    .token(retrieveToken())
    .clusterId(retrieveClusterId())
    .getOrCreate()

Python

# Use the Databricks SDK's Config class.
# If you have already set the DATABRICKS_CLUSTER_ID environment variable with the
# cluster's ID, you do not also need to set the cluster_id field here.
from databricks.connect import DatabricksSession
from databricks.sdk.core import Config

config = Config(
host       = f"https://{retrieve_workspace_instance_name()}",
token      = retrieve_token(),
cluster_id = retrieve_cluster_id()
)

spark = DatabricksSession.builder.sdkConfig(config).getOrCreate()

Scala

// Use the Databricks SDK's Config class.
// If you have already set the DATABRICKS_CLUSTER_ID environment variable with the
// cluster's ID, you do not also need to set the clusterId field here.
import com.databricks.connect.DatabricksSession
import com.databricks.sdk.core.DatabricksConfig

val config = new DatabricksConfig()
    .setHost(retrieveWorkspaceInstanceName())
    .setToken(retrieveToken())
val spark = DatabricksSession.builder()
    .sdkConfig(config)
    .clusterId(retrieveClusterId())
    .getOrCreate()

Python

# Specify a Databricks configuration profile along with the `cluster_id` field.
# If you have already set the DATABRICKS_CLUSTER_ID environment variable with the
# cluster's ID, you do not also need to set the cluster_id field here.
from databricks.connect import DatabricksSession
from databricks.sdk.core import Config

config = Config(
profile    = "<profile-name>",
cluster_id = retrieve_cluster_id()
)

spark = DatabricksSession.builder.sdkConfig(config).getOrCreate()

Scala

// Specify a Databricks configuration profile along with the clusterId field.
// If you have already set the DATABRICKS_CLUSTER_ID environment variable with the
// cluster's ID, you do not also need to set the clusterId field here.
import com.databricks.connect.DatabricksSession
import com.databricks.sdk.core.DatabricksConfig

val config = new DatabricksConfig()
    .setProfile("<profile-name>")
val spark = DatabricksSession.builder()
    .sdkConfig(config)
    .clusterId(retrieveClusterId())
    .getOrCreate()

Databricks 구성 프로필

이 옵션의 경우 사용하려는 Databricks 인증 유형필요한 필드 cluster_id 및 기타 필드가 포함된 Azure Databricks 구성 프로필을 만들거나 식별합니다.

각 인증 유형에 필요한 구성 프로필 필드는 다음과 같습니다.

그런 다음 구성 클래스를 통해 이 구성 프로필의 이름을 설정합니다.

다음과 같은 몇 가지 방법으로 지정할 cluster_id 수 있습니다.

  • 구성 프로필에 cluster_id 필드를 포함하고 구성 프로필의 이름을 지정하기만 하면 됩니다.
  • 필드와 함께 구성 프로필 이름을 지정합니다 cluster_id .

클러스터의 ID를 사용하여 DATABRICKS_CLUSTER_ID 환경 변수를 이미 설정한 경우 지정 cluster_id하지 않아도 됩니다.

이러한 각 방법에 대한 코드는 다음과 같습니다.

Python

# Include the cluster_id field in your configuration profile, and then
# just specify the configuration profile's name:
from databricks.connect import DatabricksSession

spark = DatabricksSession.builder.profile("<profile-name>").getOrCreate()

Scala

// Include the cluster_id field in your configuration profile, and then
// just specify the configuration profile's name:
import com.databricks.connect.DatabricksSession
import com.databricks.sdk.core.DatabricksConfig

val config = new DatabricksConfig()
    .setProfile("<profile-name>")
    val spark = DatabricksSession.builder()
    .sdkConfig(config)
    .getOrCreate()

Python

# Specify the configuration profile name along with the cluster_id field.
# In this example, retrieve_cluster_id() assumes some custom implementation that
# you provide to get the cluster ID from the user or from some other
# configuration store:
from databricks.connect import DatabricksSession
from databricks.sdk.core import Config

config = Config(
profile    = "<profile-name>",
cluster_id = retrieve_cluster_id()
)

spark = DatabricksSession.builder.sdkConfig(config).getOrCreate()

Scala

// Specify a Databricks configuration profile along with the clusterId field.
// If you have already set the DATABRICKS_CLUSTER_ID environment variable with the
// cluster's ID, you do not also need to set the clusterId field here.
import com.databricks.connect.DatabricksSession
import com.databricks.sdk.core.DatabricksConfig

val config = new DatabricksConfig()
    .setProfile("<profile-name>")
val spark = DatabricksSession.builder()
    .sdkConfig(config)
    .clusterId(retrieveClusterId())
    .getOrCreate()

DATABRICKS_CONFIG_PROFILE 환경 변수

이 옵션의 경우 사용하려는 Databricks 인증 유형필요한 필드 cluster_id 및 기타 필드가 포함된 Azure Databricks 구성 프로필을 만들거나 식별합니다.

클러스터의 ID를 사용하여 DATABRICKS_CLUSTER_ID 환경 변수를 이미 설정한 경우 지정 cluster_id하지 않아도 됩니다.

각 인증 유형에 필요한 구성 프로필 필드는 다음과 같습니다.

환경 변수를 DATABRICKS_CONFIG_PROFILE 이 구성 프로필의 이름으로 설정합니다. 그런 다음, 클래스를 초기화합니다 DatabricksSession .

Python

from databricks.connect import DatabricksSession

spark = DatabricksSession.builder.getOrCreate()

Scala

import com.databricks.connect.DatabricksSession

val spark = DatabricksSession.builder().getOrCreate()

각 구성 속성에 대한 환경 변수

이 옵션의 DATABRICKS_CLUSTER_ID 경우 사용하려는 Databricks 인증 유형필요한 환경 변수 및 기타 환경 변수를 설정합니다.

각 인증 유형에 필요한 환경 변수는 다음과 같습니다.

그런 다음, 클래스를 초기화합니다 DatabricksSession .

Python

from databricks.connect import DatabricksSession

spark = DatabricksSession.builder.getOrCreate()

Scala

import com.databricks.connect.DatabricksSession

val spark = DatabricksSession.builder().getOrCreate()

명명된 Databricks 구성 프로필 DEFAULT

이 옵션의 경우 사용하려는 Databricks 인증 유형필요한 필드 cluster_id 및 기타 필드가 포함된 Azure Databricks 구성 프로필을 만들거나 식별합니다.

클러스터의 ID를 사용하여 DATABRICKS_CLUSTER_ID 환경 변수를 이미 설정한 경우 지정 cluster_id하지 않아도 됩니다.

각 인증 유형에 필요한 구성 프로필 필드는 다음과 같습니다.

이 구성 프로필 DEFAULT의 이름을 지정합니다.

그런 다음, 클래스를 초기화합니다 DatabricksSession .

Python

from databricks.connect import DatabricksSession

spark = DatabricksSession.builder.getOrCreate()

Scala

import com.databricks.connect.DatabricksSession

val spark = DatabricksSession.builder().getOrCreate()

서버리스 컴퓨팅에 대한 연결 구성

Important

이 기능은 공개 미리 보기 상태입니다.

Python용 Databricks Connect는 서버리스 컴퓨팅에 대한 연결을 지원합니다. 이 기능을 사용하려면 서버리스에 연결하기 위한 요구 사항을 충족해야 합니다. 요구 사항을 참조하세요.

Important

이 기능에는 다음과 같은 제한 사항이 있습니다.

  • 이 기능은 Python용 Databricks Connect에서만 지원됩니다.
  • Python용 모든 Databricks Connect 제한 사항
  • 모든 서버리스 컴퓨팅 제한 사항
  • 서버리스 컴퓨팅 환경의 일부로 포함된 Python 종속성만 UDF에 사용할 수 있습니다. 서버리스 클라이언트 이미지를 참조하세요. 추가 종속성을 설치할 수 없습니다.
  • 사용자 지정 모듈이 있는 UDF는 지원되지 않습니다.

다음 방법 중 하나로 서버리스 컴퓨팅에 대한 연결을 구성할 수 있습니다.

  • 로컬 환경 변수 DATABRICKS_SERVERLESS_COMPUTE_ID 를 .로 auto설정합니다. 이 환경 변수가 설정되면 Databricks Connect는 .를 cluster_id무시합니다.

  • 로컬 Databricks 구성 프로필에서 설정한 serverless_compute_id = auto다음 코드에서 해당 프로필을 참조합니다.

    [DEFAULT]
    host = https://my-workspace.cloud.databricks.com/
    serverless_compute_id = auto
    token = dapi123...
    
  • 또는 다음 옵션 중 하나를 사용합니다.

from databricks.connect import DatabricksSession as SparkSession

spark = DatabricksSession.builder.serverless(True).getOrCreate()
from databricks.connect import DatabricksSession as SparkSession

spark = DatabricksSession.builder.remote(serverless=True).getOrCreate()

참고 항목

10분 동안 비활성 상태이면 서버리스 컴퓨팅 세션 시간이 초과됩니다. 그런 다음 서버리스 컴퓨팅에 연결하는 데 사용하여 getOrCreate() 새 Spark 세션을 만들어야 합니다.

Databricks에 대한 연결 유효성 검사

환경의 유효성을 검사하려면 Databricks Connect databricks-connect test 에 대한 기본 자격 증명 및 컴퓨팅 연결이 올바르게 설정됩니다. 이 명령은 설치 프로그램에서 비호환성을 감지할 때 0이 아닌 종료 코드 및 해당 오류 메시지와 함께 실패합니다.

databricks-connect test

Databricks Connect 14.3 이상에서는 다음을 사용하여 validateSession()환경의 유효성을 검사할 수도 있습니다.

DatabricksSession.builder.validateSession(True).getOrCreate()

Databricks Connect 사용 안 림

Databricks Connect(및 기본 Spark Connect) 서비스는 지정된 클러스터에서 사용하지 않도록 설정할 수 있습니다.

Databricks Connect 서비스를 사용하지 않도록 설정하려면 클러스터에서 다음 Spark 구성 을 설정합니다.

spark.databricks.service.server.enabled false