Konfiguracja obliczeniowa dla usługi Databricks Connect
Uwaga
W tym artykule opisano usługę Databricks Connect dla środowiska Databricks Runtime 13.3 LTS lub nowszego.
W tym artykule skonfigurujesz właściwości w celu nawiązania połączenia między usługą Databricks Connect i klastrem usługi Azure Databricks lub bezserwerowym środowiskiem obliczeniowym. Te informacje dotyczą języków Python i Scala programu Databricks Connect, chyba że określono inaczej.
Usługa Databricks Connect umożliwia łączenie popularnych środowisk IDE, takich jak Visual Studio Code, PyCharm, RStudio Desktop, IntelliJ IDEA, serwery notesów i inne niestandardowe aplikacje do klastrów usługi Azure Databricks. Zobacz Co to jest usługa Databricks Connect?.
Wymagania
Aby skonfigurować połączenie z obliczeniami usługi Databricks, musisz mieć następujące elementy:
- Zainstalowano program Databricks Connect. Aby zapoznać się z wymaganiami dotyczącymi instalacji i krokami dotyczącymi określonych wersji językowych programu Databricks Connect, zobacz:
- Konto i obszar roboczy usługi Azure Databricks z włączonym wykazem aparatu Unity. Zobacz Konfigurowanie wykazu aparatu Unity i zarządzanie nim oraz Włączanie obszaru roboczego dla wykazu aparatu Unity.
- Klaster usługi Azure Databricks z usługą Databricks Runtime 13.3 LTS lub nowszym.
- Wersja środowiska Databricks Runtime klastra musi być równa wersji pakietu Databricks Connect lub nowszej. Usługa Databricks zaleca użycie najnowszego pakietu usługi Databricks Connect zgodnego z wersją środowiska Databricks Runtime. Aby korzystać z funkcji dostępnych w nowszych wersjach środowiska Databricks Runtime, należy uaktualnić pakiet Databricks Connect. Zapoznaj się z informacjami o wersji programu Databricks Connect, aby uzyskać listę dostępnych wersji programu Databricks Connect. Informacje o wersji środowiska Databricks Runtime można znaleźć w temacie Databricks Runtime release notes versions and compatibility (Informacje o wersji i zgodności środowiska Databricks Runtime).
- Klaster musi używać trybu dostępu klastra Przypisane lub Udostępnione. Zobacz Tryby dostępu.
Ustawienia
Przed rozpoczęciem potrzebne są następujące elementy:
- Jeśli łączysz się z klastrem, identyfikator klastra. Identyfikator klastra można pobrać z adresu URL. Zobacz Adres URL i identyfikator klastra.
- Nazwa wystąpienia obszaru roboczego usługi Azure Databricks. Jest to wartość Nazwa hosta serwera dla obliczeń. Zobacz Pobieranie szczegółów połączenia dla zasobu obliczeniowego usługi Azure Databricks.
- Wszelkie inne właściwości, które są niezbędne dla typu uwierzytelniania usługi Databricks, którego chcesz użyć.
Uwaga
Uwierzytelnianie typu użytkownik-komputer (U2M) protokołu OAuth jest obsługiwane w zestawie SDK usługi Databricks dla języka Python w wersji 0.19.0 lub nowszej. Zaktualizuj zainstalowaną wersję zestawu SDK usługi Databricks dla języka Python do wersji 0.19.0 lub nowszej, aby użyć uwierzytelniania OAuth U2M. Zobacz Wprowadzenie do zestawu SDK usługi Databricks dla języka Python.
W przypadku uwierzytelniania OAuth U2M należy użyć interfejsu wiersza polecenia usługi Databricks do uwierzytelnienia przed uruchomieniem kodu w języku Python. Zobacz Samouczek.
Uwierzytelnianie OAuth maszynowo-maszynowe (M2M) uwierzytelnianie maszynowo-maszynowe OAuth (M2M) jest obsługiwane w zestawie SDK usługi Databricks dla języka Python w wersji 0.18.0 lub nowszej. Zaktualizuj zainstalowaną wersję zestawu SDK usługi Databricks dla języka Python do wersji 0.18.0 lub nowszej, aby użyć uwierzytelniania OAuth M2M. Zobacz Wprowadzenie do zestawu SDK usługi Databricks dla języka Python.
Zestaw SDK usługi Databricks dla języka Python nie zaimplementował jeszcze uwierzytelniania tożsamości zarządzanych platformy Azure.
Konfigurowanie połączenia z klastrem
Istnieje wiele sposobów konfigurowania połączenia z klastrem. Usługa Databricks Connect wyszukuje właściwości konfiguracji w następującej kolejności i używa pierwszej znalezionej konfiguracji. Aby uzyskać zaawansowane informacje o konfiguracji, zobacz Advanced usage of Databricks Connect for Python (Zaawansowane użycie programu Databricks Connect dla języka Python).
- Metoda remote() klasy DatabricksSession.
- Profil konfiguracji usługi Databricks
- Zmienna środowiskowa DATABRICKS_CONFIG_PROFILE
- Zmienna środowiskowa dla każdej właściwości konfiguracji
- Profil konfiguracji usługi Databricks o nazwie DEFAULT
DatabricksSession
Metoda klasy remote()
W przypadku tej opcji, która ma zastosowanie tylko do uwierzytelniania osobistego tokenu dostępu usługi Azure Databricks, określ nazwę wystąpienia obszaru roboczego, osobisty token dostępu usługi Azure Databricks oraz identyfikator klastra.
Klasę DatabricksSession
można zainicjować na kilka sposobów:
-
host
Ustaw pola ,token
icluster_id
w plikuDatabricksSession.builder.remote()
. - Użyj klasy zestawu SDK
Config
usługi Databricks. - Określ profil konfiguracji usługi Databricks wraz z polem
cluster_id
.
Zamiast określać te właściwości połączenia w kodzie, usługa Databricks zaleca konfigurowanie właściwości za pomocą zmiennych środowiskowych lub plików konfiguracji, zgodnie z opisem w tej sekcji. W poniższych przykładach kodu założono, że udostępniasz implementację proponowanych retrieve_*
funkcji, aby uzyskać niezbędne właściwości od użytkownika lub z innego magazynu konfiguracji, takiego jak Azure KeyVault.
Kod dla każdego z tych podejść jest następujący:
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()
Profil konfiguracji usługi Databricks
W przypadku tej opcji utwórz lub zidentyfikuj profil konfiguracji usługi Azure Databricks zawierający pole cluster_id
i inne pola, które są niezbędne dla typu uwierzytelniania usługi Databricks, którego chcesz użyć.
Wymagane pola profilu konfiguracji dla każdego typu uwierzytelniania są następujące:
- W przypadku uwierzytelniania osobistego tokenu dostępu usługi Azure Databricks:
host
itoken
. - W przypadku uwierzytelniania maszyny-maszyny (M2M) OAuth (gdzie jest obsługiwane):
host
,client_id
iclient_secret
. - W przypadku uwierzytelniania typu użytkownik-maszyna (U2M) OAuth (gdzie jest obsługiwana):
host
. - W przypadku
host
jednostki usługi Microsoft Entra ID (dawniej Azure Active Directory): , ,azure_tenant_id
,azure_client_id
,azure_client_secret
i prawdopodobnieazure_workspace_resource_id
. - W przypadku uwierzytelniania interfejsu wiersza polecenia platformy Azure:
host
. - W przypadku uwierzytelniania tożsamości zarządzanych platformy Azure (gdzie są obsługiwane):
host
,azure_use_msi
,azure_client_id
i ewentualnieazure_workspace_resource_id
.
Następnie ustaw nazwę tego profilu konfiguracji za pomocą klasy konfiguracji.
Możesz określić cluster_id
na kilka sposobów:
- Uwzględnij
cluster_id
pole w profilu konfiguracji, a następnie po prostu określ nazwę profilu konfiguracji. - Określ nazwę profilu konfiguracji wraz z polem
cluster_id
.
Jeśli zmienna DATABRICKS_CLUSTER_ID
środowiskowa jest już ustawiona przy użyciu identyfikatora klastra, nie trzeba również określać zmiennej cluster_id
.
Kod dla każdego z tych podejść jest następujący:
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()
Zmienna DATABRICKS_CONFIG_PROFILE
środowiskowa
W przypadku tej opcji utwórz lub zidentyfikuj profil konfiguracji usługi Azure Databricks zawierający pole cluster_id
i inne pola, które są niezbędne dla typu uwierzytelniania usługi Databricks, którego chcesz użyć.
Jeśli zmienna DATABRICKS_CLUSTER_ID
środowiskowa jest już ustawiona przy użyciu identyfikatora klastra, nie trzeba również określać zmiennej cluster_id
.
Wymagane pola profilu konfiguracji dla każdego typu uwierzytelniania są następujące:
- W przypadku uwierzytelniania osobistego tokenu dostępu usługi Azure Databricks:
host
itoken
. - W przypadku uwierzytelniania maszyny-maszyny (M2M) OAuth (gdzie jest obsługiwane):
host
,client_id
iclient_secret
. - W przypadku uwierzytelniania typu użytkownik-maszyna (U2M) OAuth (gdzie jest obsługiwana):
host
. - W przypadku
host
jednostki usługi Microsoft Entra ID (dawniej Azure Active Directory): , ,azure_tenant_id
,azure_client_id
,azure_client_secret
i prawdopodobnieazure_workspace_resource_id
. - W przypadku uwierzytelniania interfejsu wiersza polecenia platformy Azure:
host
. - W przypadku uwierzytelniania tożsamości zarządzanych platformy Azure (gdzie są obsługiwane):
host
,azure_use_msi
,azure_client_id
i ewentualnieazure_workspace_resource_id
.
Ustaw zmienną DATABRICKS_CONFIG_PROFILE
środowiskową na nazwę tego profilu konfiguracji. Następnie zainicjuj klasę DatabricksSession
:
Python
from databricks.connect import DatabricksSession
spark = DatabricksSession.builder.getOrCreate()
Scala
import com.databricks.connect.DatabricksSession
val spark = DatabricksSession.builder().getOrCreate()
Zmienna środowiskowa dla każdej właściwości konfiguracji
Dla tej opcji ustaw zmienną DATABRICKS_CLUSTER_ID
środowiskową i wszelkie inne zmienne środowiskowe, które są niezbędne dla typu uwierzytelniania usługi Databricks, którego chcesz użyć.
Wymagane zmienne środowiskowe dla każdego typu uwierzytelniania są następujące:
- W przypadku uwierzytelniania osobistego tokenu dostępu usługi Azure Databricks:
DATABRICKS_HOST
iDATABRICKS_TOKEN
. - W przypadku uwierzytelniania maszyny-maszyny (M2M) OAuth (gdzie jest obsługiwane):
DATABRICKS_HOST
,DATABRICKS_CLIENT_ID
iDATABRICKS_CLIENT_SECRET
. - W przypadku uwierzytelniania typu użytkownik-maszyna (U2M) OAuth (gdzie jest obsługiwana):
DATABRICKS_HOST
. - W przypadku
DATABRICKS_HOST
jednostki usługi Microsoft Entra ID (dawniej Azure Active Directory): , ,ARM_TENANT_ID
,ARM_CLIENT_ID
,ARM_CLIENT_SECRET
i prawdopodobnieDATABRICKS_AZURE_RESOURCE_ID
. - W przypadku uwierzytelniania interfejsu wiersza polecenia platformy Azure:
DATABRICKS_HOST
. - W przypadku uwierzytelniania tożsamości zarządzanych platformy Azure (gdzie są obsługiwane):
DATABRICKS_HOST
,ARM_USE_MSI
,ARM_CLIENT_ID
i ewentualnieDATABRICKS_AZURE_RESOURCE_ID
.
Następnie zainicjuj klasę DatabricksSession
:
Python
from databricks.connect import DatabricksSession
spark = DatabricksSession.builder.getOrCreate()
Scala
import com.databricks.connect.DatabricksSession
val spark = DatabricksSession.builder().getOrCreate()
Profil konfiguracji usługi Databricks o nazwie DEFAULT
W przypadku tej opcji utwórz lub zidentyfikuj profil konfiguracji usługi Azure Databricks zawierający pole cluster_id
i inne pola, które są niezbędne dla typu uwierzytelniania usługi Databricks, którego chcesz użyć.
Jeśli zmienna DATABRICKS_CLUSTER_ID
środowiskowa jest już ustawiona przy użyciu identyfikatora klastra, nie trzeba również określać zmiennej cluster_id
.
Wymagane pola profilu konfiguracji dla każdego typu uwierzytelniania są następujące:
- W przypadku uwierzytelniania osobistego tokenu dostępu usługi Azure Databricks:
host
itoken
. - W przypadku uwierzytelniania maszyny-maszyny (M2M) OAuth (gdzie jest obsługiwane):
host
,client_id
iclient_secret
. - W przypadku uwierzytelniania typu użytkownik-maszyna (U2M) OAuth (gdzie jest obsługiwana):
host
. - W przypadku
host
jednostki usługi Microsoft Entra ID (dawniej Azure Active Directory): , ,azure_tenant_id
,azure_client_id
,azure_client_secret
i prawdopodobnieazure_workspace_resource_id
. - W przypadku uwierzytelniania interfejsu wiersza polecenia platformy Azure:
host
. - W przypadku uwierzytelniania tożsamości zarządzanych platformy Azure (gdzie są obsługiwane):
host
,azure_use_msi
,azure_client_id
i ewentualnieazure_workspace_resource_id
.
Nadaj nazwę temu profilowi DEFAULT
konfiguracji .
Następnie zainicjuj klasę DatabricksSession
:
Python
from databricks.connect import DatabricksSession
spark = DatabricksSession.builder.getOrCreate()
Scala
import com.databricks.connect.DatabricksSession
val spark = DatabricksSession.builder().getOrCreate()
Konfigurowanie połączenia z obliczeniami bezserwerowym
Ważne
Ta funkcja jest dostępna w publicznej wersji zapoznawczej.
Program Databricks Connect dla języka Python obsługuje nawiązywanie połączenia z bezserwerowymi obliczeniami. Aby korzystać z tej funkcji, należy spełnić wymagania dotyczące nawiązywania połączenia z bezserwerową. Zobacz Wymagania.
Ważne
Ta funkcja ma następujące ograniczenia:
- Ta funkcja jest obsługiwana tylko w programie Databricks Connect dla języka Python.
- Wszystkie ograniczenia programu Databricks Connect dla języka Python
- Wszystkie ograniczenia obliczeniowe bezserwerowe
- Tylko zależności języka Python, które są uwzględnione w ramach bezserwerowego środowiska obliczeniowego, mogą być używane dla funkcji zdefiniowanych przez użytkownika. Zobacz wersje środowiska bezserwerowego. Nie można zainstalować dodatkowych zależności.
- Funkcje zdefiniowane przez użytkownika z modułami niestandardowymi nie są obsługiwane.
Połączenie z obliczeniami bezserwerowym można skonfigurować na jeden z następujących sposobów:
Ustaw lokalną zmienną środowiskową
DATABRICKS_SERVERLESS_COMPUTE_ID
naauto
. Jeśli ta zmienna środowiskowa jest ustawiona, program Databricks Connect ignoruje wartośćcluster_id
.W lokalnym profilu konfiguracji usługi Databricks ustaw pozycję
serverless_compute_id = auto
, a następnie odwołaj się do tego profilu z kodu.[DEFAULT] host = https://my-workspace.cloud.databricks.com/ serverless_compute_id = auto token = dapi123...
Możesz też użyć jednej z następujących opcji:
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()
Uwaga
Limit czasu sesji obliczeniowej bezserwerowej po upływie 10 minut braku aktywności. Następnie należy utworzyć nową sesję platformy Spark w getOrCreate()
celu nawiązania połączenia z bezserwerowym obliczeniami.
Weryfikowanie połączenia z usługą Databricks
Aby zweryfikować środowisko, poświadczenia domyślne i połączenie z obliczeniami są poprawnie skonfigurowane dla usługi Databricks Connect, uruchom databricks-connect test
polecenie, które kończy się niepowodzeniem z kodem zakończenia bez zera i odpowiednim komunikatem o błędzie, gdy wykryje niezgodność w instalacji.
databricks-connect test
W programie Databricks Connect 14.3 lub nowszym możesz również zweryfikować środowisko przy użyciu polecenia validateSession()
:
DatabricksSession.builder.validateSession(True).getOrCreate()
Wyłączanie usługi Databricks Connect
Usługi Databricks Connect (i bazowe platformy Spark Connect) można wyłączyć w dowolnym klastrze.
Aby wyłączyć usługę Databricks Connect, ustaw następującą konfigurację platformy Spark w klastrze.
spark.databricks.service.server.enabled false