Sdílet prostřednictvím


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:

Nastavení

Než začnete, budete potřebovat následující:

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.

  1. Metoda remote() třídy DatabricksSession.
  2. Konfigurační profil Databricks
  3. Proměnná prostředí DATABRICKS_CONFIG_PROFILE
  4. Proměnná prostředí pro každou vlastnost konfigurace
  5. 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 hosta tokencluster_id pole v DatabricksSession.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 a token.
  • Pro ověřování M2M (machine-to-machine) OAuth (kde je podporováno): host, client_ida client_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_idazure_client_ida 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 a token.
  • Pro ověřování M2M (machine-to-machine) OAuth (kde je podporováno): host, client_ida client_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_idazure_client_ida 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 a DATABRICKS_TOKEN.
  • Pro ověřování M2M (machine-to-machine) OAuth (kde je podporováno): DATABRICKS_HOST, DATABRICKS_CLIENT_IDa DATABRICKS_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_IDARM_CLIENT_IDa 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 a token.
  • Pro ověřování M2M (machine-to-machine) OAuth (kde je podporováno): host, client_ida client_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_idazure_client_ida 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í:

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í na autohodnotu . Pokud je tato proměnná prostředí nastavená, Databricks Connect ignoruje cluster_id.

  • V místním konfiguračním profilu Databricks nastavte serverless_compute_id = autoa 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