Konfigurace výpočetních prostředků pro Databricks Connect
Poznámka:
Tento článek popisuje Databricks Connect pro Databricks Runtime 13.3 LTS a vyšší.
V tomto článku nakonfigurujete vlastnosti pro navázání připojení mezi Databricks Connect a clusterem Azure Databricks nebo bezserverovým výpočetním prostředím. Tyto informace platí pro verzi Pythonu a Scala Databricks Connect, pokud není uvedeno jinak.
Databricks Connect umožňuje připojit oblíbené integrované vývojové prostředí (IDE), jako jsou Visual Studio Code, PyCharm, RStudio Desktop, IntelliJ IDEA, servery poznámkových bloků a další vlastní aplikace, ke clusterům Azure Databricks. Podívejte se, co je Databricks Connect?
Požadavky
Pokud chcete nakonfigurovat připojení k výpočetním prostředkům Databricks, musíte mít:
- Nainstalovali jste Databricks Connect. Požadavky na instalaci a kroky pro konkrétní jazykové verze Databricks Connect najdete tady:
- Účet a pracovní prostor Azure Databricks s povoleným katalogem Unity Viz Nastavení a správa katalogu Unity a povolení pracovního prostoru pro Katalog Unity.
- Cluster Azure Databricks s Modulem Databricks Runtime 13.3 LTS nebo novějším
- Verze balíčku Databricks Connect musí být stejná nebo vyšší než verze balíčku Databricks Connect. Databricks doporučuje použít nejnovější balíček Databricks Connect, který odpovídá verzi Databricks Runtime. Pokud chcete používat funkce, které jsou k dispozici v novějších verzích Databricks Runtime, musíte upgradovat balíček Databricks Connect. Seznam dostupných verzí Databricks Connect najdete v poznámkách k verzi Databricks Connect. Poznámky k verzi verze Databricks Runtime najdete v poznámkách k verzi databricks Runtime a jejich kompatibilitu.
- Cluster musí používat režim přístupu ke clusteru s přiřazeným nebo sdíleným režimem. Viz režimy Accessu.
Nastavení
Než začnete, budete potřebovat následující:
- Pokud se připojujete ke clusteru, ID clusteru. ID clusteru můžete načíst z adresy URL. Viz adresa URL a ID clusteru.
- Název instance pracovního prostoru Azure Databricks. Toto je hodnota názvu hostitele serveru pro vaše výpočetní prostředky. Viz Získání podrobností o připojení pro výpočetní prostředek Azure Databricks.
- Všechny další vlastnosti, které jsou nezbytné pro typ ověřování Databricks, který chcete použít.
Poznámka:
Ověřování uživateleM (U2M) OAuth se podporuje v sadě Databricks SDK pro Python 0.19.0 a novější. Aktualizujte nainstalovanou verzi projektu kódu sady Databricks SDK pro Python na verzi 0.19.0 nebo vyšší, aby se používalo ověřování OAuth U2M. Viz Začínáme se sadou Databricks SDK pro Python.
Pro ověřování OAuth U2M musíte před spuštěním kódu Pythonu použít rozhraní příkazového řádku Databricks k ověření. Podívejte se na kurz.
Ověřování OAuth typu machine-to-machine (M2M) ověřování OAuth na počítači (M2M) je podporováno v sadě Databricks SDK pro Python 0.18.0 a vyšší. Aktualizujte nainstalovanou verzi projektu kódu sady Databricks SDK pro Python na verzi 0.18.0 nebo vyšší, aby se používalo ověřování OAuth M2M. Viz Začínáme se sadou Databricks SDK pro Python.
Sada Databricks SDK pro Python zatím neimplementovala ověřování spravovaných identit Azure.
Konfigurace připojení ke clusteru
Existuje několik způsobů, jak nakonfigurovat připojení ke clusteru. Databricks Connect vyhledá vlastnosti konfigurace v následujícím pořadí a použije první nalezenou konfiguraci. Pokročilé informace o konfiguraci najdete v tématu Pokročilé využití Databricks Connect pro Python.
- Metoda remote() třídy DatabricksSession.
- Konfigurační profil Databricks
- Proměnná prostředí DATABRICKS_CONFIG_PROFILE
- Proměnná prostředí pro každou vlastnost konfigurace
- Konfigurační profil Databricks s názvem DEFAULT
DatabricksSession
Metoda třídy remote()
Pro tuto možnost, která se vztahuje pouze na ověřování osobního přístupového tokenu Azure Databricks, zadejte název instance pracovního prostoru, osobní přístupový token Azure Databricks a ID clusteru.
Třídu můžete inicializovat DatabricksSession
několika způsoby:
- Nastavte pole
host
atoken
cluster_id
pole vDatabricksSession.builder.remote()
. - Použijte třídu sady Databricks SDK
Config
. - Zadejte konfigurační profil Databricks spolu s polem
cluster_id
.
Místo zadávání těchto vlastností připojení v kódu doporučuje Databricks konfigurovat vlastnosti prostřednictvím proměnných prostředí nebo konfiguračních souborů, jak je popsáno v této části. Následující příklady kódu předpokládají, že zadáte určitou implementaci navrhovaných retrieve_*
funkcí, abyste získali potřebné vlastnosti od uživatele nebo z jiného úložiště konfigurace, jako je Azure KeyVault.
Kód pro každý z těchto přístupů je následující:
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()
Konfigurační profil Databricks
Pro tuto možnost vytvořte nebo identifikujte konfigurační profil Azure Databricks obsahující pole a všechna další pole, která jsou nezbytná pro cluster_id
ověřování Databricks, který chcete použít.
Pole požadovaného konfiguračního profilu pro každý typ ověřování jsou následující:
- Pro ověřování osobního přístupového tokenu Azure Databricks:
host
atoken
. - Pro ověřování M2M (machine-to-machine) OAuth (kde je podporováno):
host
,client_id
aclient_secret
. - Pro ověřování uživatele AAuth (U2M) (kde je to podporováno):
host
- Pro instančního objektu služby Microsoft Entra ID (dříve Azure Active Directory): ,
host
,azure_tenant_id
azure_client_id
a případněazure_client_secret
. - Pro ověřování Azure CLI:
host
. - Ověřování spravovaných identit Azure (kde je podporováno):
host
,azure_use_msi
,azure_client_id
, a případněazure_workspace_resource_id
.
Potom nastavte název tohoto konfiguračního profilu prostřednictvím třídy konfigurace.
Můžete zadat cluster_id
několik způsobů:
- Do konfiguračního
cluster_id
profilu zahrňte pole a zadejte název konfiguračního profilu. - Zadejte název konfiguračního profilu spolu s polem
cluster_id
.
Pokud jste již nastavili proměnnou DATABRICKS_CLUSTER_ID
prostředí s ID clusteru, nemusíte také zadávat cluster_id
.
Kód pro každý z těchto přístupů je následující:
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()
Proměnná DATABRICKS_CONFIG_PROFILE
prostředí
Pro tuto možnost vytvořte nebo identifikujte konfigurační profil Azure Databricks obsahující pole a všechna další pole, která jsou nezbytná pro cluster_id
ověřování Databricks, který chcete použít.
Pokud jste již nastavili proměnnou DATABRICKS_CLUSTER_ID
prostředí s ID clusteru, nemusíte také zadávat cluster_id
.
Pole požadovaného konfiguračního profilu pro každý typ ověřování jsou následující:
- Pro ověřování osobního přístupového tokenu Azure Databricks:
host
atoken
. - Pro ověřování M2M (machine-to-machine) OAuth (kde je podporováno):
host
,client_id
aclient_secret
. - Pro ověřování uživatele AAuth (U2M) (kde je to podporováno):
host
- Pro instančního objektu služby Microsoft Entra ID (dříve Azure Active Directory): ,
host
,azure_tenant_id
azure_client_id
a případněazure_client_secret
. - Pro ověřování Azure CLI:
host
. - Ověřování spravovaných identit Azure (kde je podporováno):
host
,azure_use_msi
,azure_client_id
, a případněazure_workspace_resource_id
.
Nastavte proměnnou DATABRICKS_CONFIG_PROFILE
prostředí na název tohoto konfiguračního profilu. Potom inicializujete DatabricksSession
třídu:
Python
from databricks.connect import DatabricksSession
spark = DatabricksSession.builder.getOrCreate()
Scala
import com.databricks.connect.DatabricksSession
val spark = DatabricksSession.builder().getOrCreate()
Proměnná prostředí pro každou vlastnost konfigurace
Pro tuto možnost nastavte proměnnou DATABRICKS_CLUSTER_ID
prostředí a všechny další proměnné prostředí, které jsou nezbytné pro typ ověřování Databricks, který chcete použít.
Požadované proměnné prostředí pro každý typ ověřování jsou následující:
- Pro ověřování osobního přístupového tokenu Azure Databricks:
DATABRICKS_HOST
aDATABRICKS_TOKEN
. - Pro ověřování M2M (machine-to-machine) OAuth (kde je podporováno):
DATABRICKS_HOST
,DATABRICKS_CLIENT_ID
aDATABRICKS_CLIENT_SECRET
. - Pro ověřování uživatele AAuth (U2M) (kde je to podporováno):
DATABRICKS_HOST
- Pro instančního objektu služby Microsoft Entra ID (dříve Azure Active Directory): ,
DATABRICKS_HOST
,ARM_TENANT_ID
ARM_CLIENT_ID
a případněARM_CLIENT_SECRET
. - Pro ověřování Azure CLI:
DATABRICKS_HOST
. - Ověřování spravovaných identit Azure (kde je podporováno):
DATABRICKS_HOST
,ARM_USE_MSI
,ARM_CLIENT_ID
, a případněDATABRICKS_AZURE_RESOURCE_ID
.
Potom inicializujete DatabricksSession
třídu:
Python
from databricks.connect import DatabricksSession
spark = DatabricksSession.builder.getOrCreate()
Scala
import com.databricks.connect.DatabricksSession
val spark = DatabricksSession.builder().getOrCreate()
Konfigurační profil Databricks s názvem DEFAULT
Pro tuto možnost vytvořte nebo identifikujte konfigurační profil Azure Databricks obsahující pole a všechna další pole, která jsou nezbytná pro cluster_id
ověřování Databricks, který chcete použít.
Pokud jste již nastavili proměnnou DATABRICKS_CLUSTER_ID
prostředí s ID clusteru, nemusíte také zadávat cluster_id
.
Pole požadovaného konfiguračního profilu pro každý typ ověřování jsou následující:
- Pro ověřování osobního přístupového tokenu Azure Databricks:
host
atoken
. - Pro ověřování M2M (machine-to-machine) OAuth (kde je podporováno):
host
,client_id
aclient_secret
. - Pro ověřování uživatele AAuth (U2M) (kde je to podporováno):
host
- Pro instančního objektu služby Microsoft Entra ID (dříve Azure Active Directory): ,
host
,azure_tenant_id
azure_client_id
a případněazure_client_secret
. - Pro ověřování Azure CLI:
host
. - Ověřování spravovaných identit Azure (kde je podporováno):
host
,azure_use_msi
,azure_client_id
, a případněazure_workspace_resource_id
.
Pojmenujte tento konfigurační profil DEFAULT
.
Potom inicializujete DatabricksSession
třídu:
Python
from databricks.connect import DatabricksSession
spark = DatabricksSession.builder.getOrCreate()
Scala
import com.databricks.connect.DatabricksSession
val spark = DatabricksSession.builder().getOrCreate()
Konfigurace připojení k bezserverovým výpočetním prostředkům
Důležité
Tato funkce je ve verzi Public Preview.
Databricks Connect pro Python podporuje připojení k bezserverové výpočetní službě. Aby bylo možné tuto funkci použít, musí být splněny požadavky na připojení k bezserverové aplikaci. Viz Požadavky.
Důležité
Tato funkce má následující omezení:
- Tato funkce se podporuje jenom v Databricks Connect pro Python.
- Všechna omezení služby Databricks Connect pro Python
- Všechna omezení výpočetních prostředků bez serveru
- Pro uživatele definované uživatelem je možné použít jenom závislosti Pythonu, které jsou součástí bezserverového výpočetního prostředí. Viz verze bezserverového prostředí. Nelze nainstalovat další závislosti.
- Funkce definované uživatelem s vlastními moduly se nepodporují.
Připojení k bezserverovým výpočetním prostředkům můžete nakonfigurovat jedním z následujících způsobů:
Nastavte místní proměnnou
DATABRICKS_SERVERLESS_COMPUTE_ID
prostředí naauto
hodnotu . Pokud je tato proměnná prostředí nastavená, Databricks Connect ignorujecluster_id
.V místním konfiguračním profilu Databricks nastavte
serverless_compute_id = auto
a potom na tento profil odkazujte z vašeho kódu.[DEFAULT] host = https://my-workspace.cloud.databricks.com/ serverless_compute_id = auto token = dapi123...
Nebo použijte některou z následujících možností:
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()
Poznámka:
Výpočetní relace bez serveru vyprší po 10 minutách nečinnosti. Potom by se měla vytvořit nová relace Sparku pro getOrCreate()
připojení k bezserverovým výpočetním prostředkům.
Ověření připojení k Databricks
Pokud chcete ověřit vaše prostředí, výchozí přihlašovací údaje a připojení k výpočetním prostředkům, jsou správně nastavené pro Databricks Connect, spusťte databricks-connect test
příkaz, který selže s nenulovým ukončovacím kódem a odpovídající chybovou zprávou, když zjistí případné nekompatibilitu v nastavení.
databricks-connect test
Ve službě Databricks Connect 14.3 a vyšší můžete také ověřit své prostředí pomocí validateSession()
:
DatabricksSession.builder.validateSession(True).getOrCreate()
Zakázání služby Databricks Connect
Databricks Connect (a základní služby Spark Connect) je možné zakázat v jakémkoli daném clusteru.
Pokud chcete zakázat službu Databricks Connect, nastavte v clusteru následující konfiguraci Sparku.
spark.databricks.service.server.enabled false