تكوين الحساب ل Databricks Connect

إشعار

تتناول هذه المقالة Databricks Connect ل Databricks Runtime 13.3 LTS وما فوق.

في هذه المقالة، يمكنك تكوين خصائص لإنشاء اتصال بين Databricks Connect والمجموعة Azure Databricks أو الحوسبة بلا خادم. تنطبق هذه المعلومات على إصدار Python وSc scala من Databricks Connect ما لم يذكر خلاف ذلك.

يمكنك Databricks Connect من توصيل IDEs الشائعة مثل Visual Studio Code وPyCharm وRStudio Desktop وIntelliJ IDEA وخوادم دفتر الملاحظات والتطبيقات المخصصة الأخرى إلى مجموعات Azure Databricks. راجع ما هو Databricks Connect؟.

المتطلبات

لتكوين اتصال بحساب Databricks، يجب أن يكون لديك:

  • تم تثبيت Databricks Connect. للحصول على متطلبات التثبيت وخطوات إصدارات لغة معينة من Databricks Connect، راجع:
  • حساب Azure Databricks ومساحة العمل التي تم تمكين كتالوج Unity لها. راجع إعداد كتالوج Unity وإدارته وتمكين مساحة عمل كتالوج Unity.
  • نظام مجموعة Azure Databricks مع Databricks Runtime 13.3 LTS أو أعلى.
  • يجب أن يكون إصدار Databricks Runtime من مجموعتك مساويا لإصدار حزمة Databricks Connect أو أعلى منه. توصي Databricks باستخدام أحدث حزمة من Databricks Connect التي تطابق إصدار Databricks Runtime. لاستخدام الميزات المتوفرة في الإصدارات الأحدث من Databricks Runtime، يجب ترقية حزمة Databricks Connect. راجع ملاحظات إصدار Databricks Connect للحصول على قائمة بإصدارات Databricks Connect المتوفرة. للحصول على ملاحظات حول إصدار Databricks Runtime، راجع إصدارات ملاحظات إصدار Databricks Runtime والتوافق.
  • يجب أن تستخدم المجموعة وضع الوصول إلى نظام المجموعة المعينة أو المشتركة. راجع أوضاع الوصول.

الإعداد

قبل البدء، تحتاج إلى ما يلي:

إشعار

تكوين اتصال بمجموعة

هناك طرق متعددة لتكوين الاتصال بالمجموعة الخاصة بك. يبحث Databricks Connect عن خصائص التكوين بالترتيب التالي، ويستخدم التكوين الأول الذي يعثر عليه. للحصول على معلومات التكوين المتقدمة، راجع الاستخدام المتقدم ل Databricks Connect ل Python.

  1. أسلوب remote() لفئة DatabricksSession.
  2. ملف تعريف تكوين Databricks
  3. متغير البيئة DATABRICKS_CONFIG_PROFILE
  4. متغير بيئة لكل خاصية تكوين
  5. ملف تعريف تكوين Databricks يسمى DEFAULT

DatabricksSession أسلوب الفئة remote()

بالنسبة لهذا الخيار، الذي ينطبق على مصادقة رمز الوصول الشخصي Azure Databricks فقط، حدد اسم مثيل مساحة العمل، ورمز الوصول الشخصي Azure Databricks، ومعرف نظام المجموعة.

يمكنك تهيئة الفئة بعدة DatabricksSession طرق:

  • hosttokenقم بتعيين الحقول و و cluster_id في DatabricksSession.builder.remote().
  • استخدم فئة Databricks SDK Config .
  • حدد ملف تعريف تكوين Databricks مع cluster_id الحقل.

بدلا من تحديد خصائص الاتصال هذه في التعليمات البرمجية الخاصة بك، توصي Databricks بتكوين الخصائص من خلال متغيرات البيئة أو ملفات التكوين، كما هو موضح في هذا القسم. تفترض أمثلة التعليمات البرمجية التالية أنك توفر بعض التنفيذ للوظائف المقترحة retrieve_* للحصول على الخصائص الضرورية من المستخدم أو من مخزن تكوين آخر، مثل Azure KeyVault.

التعليمات البرمجية لكل من هذه الأساليب كما يلي:

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

لهذا الخيار، قم بإنشاء أو تعريف ملف تعريف تكوين Azure Databricks يحتوي على الحقل cluster_id وأي حقول أخرى ضرورية لنوع مصادقة Databricks الذي تريد استخدامه.

حقول ملف تعريف التكوين المطلوبة لكل نوع مصادقة هي كما يلي:

ثم قم بتعيين اسم ملف تعريف التكوين هذا من خلال فئة التكوين.

يمكنك تحديد cluster_id بطريقتين:

  • قم بتضمين cluster_id الحقل في ملف تعريف التكوين الخاص بك، ثم حدد اسم ملف تعريف التكوين فقط.
  • حدد اسم ملف تعريف التكوين مع cluster_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 متغير البيئة

لهذا الخيار، قم بإنشاء أو تعريف ملف تعريف تكوين Azure Databricks يحتوي على الحقل cluster_id وأي حقول أخرى ضرورية لنوع مصادقة Databricks الذي تريد استخدامه.

إذا قمت بالفعل بتعيين 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 الذي تريد استخدامه.

متغيرات البيئة المطلوبة لكل نوع مصادقة هي كما يلي:

  • لمصادقة الرمز المميز للوصول الشخصي إلى Azure Databricks: DATABRICKS_HOST وDATABRICKS_TOKEN.
  • لمصادقة OAuth من جهاز إلى جهاز (M2M) (حيثما كان مدعوما): DATABRICKS_HOSTو DATABRICKS_CLIENT_IDو.DATABRICKS_CLIENT_SECRET
  • لمصادقة OAuth من مستخدم إلى جهاز (U2M) (حيثما كان مدعوما): DATABRICKS_HOST.
  • بالنسبة إلى Microsoft Entra ID (المعروف سابقا ب Azure Active Directory) المصادقة الأساسية للخدمة: DATABRICKS_HOSTو ARM_CLIENT_SECRETARM_TENANT_IDARM_CLIENT_IDوربما .DATABRICKS_AZURE_RESOURCE_ID
  • لمصادقة Azure CLI: DATABRICKS_HOST.
  • بالنسبة إلى مصادقة الهويات المدارة من Azure (حيثما كان مدعوما): DATABRICKS_HOST، ARM_USE_MSIARM_CLIENT_IDوربما DATABRICKS_AZURE_RESOURCE_ID.

ثم تهيئة DatabricksSession الفئة:

Python

from databricks.connect import DatabricksSession

spark = DatabricksSession.builder.getOrCreate()

Scala

import com.databricks.connect.DatabricksSession

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

ملف تعريف تكوين Databricks المسمى DEFAULT

لهذا الخيار، قم بإنشاء أو تعريف ملف تعريف تكوين Azure Databricks يحتوي على الحقل cluster_id وأي حقول أخرى ضرورية لنوع مصادقة Databricks الذي تريد استخدامه.

إذا قمت بالفعل بتعيين 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()

تكوين اتصال بالحوسبة بلا خادم

هام

هذه الميزة في المعاينة العامة.

يدعم Databricks Connect ل Python الاتصال بالحوسبة بلا خادم. لاستخدام هذه الميزة، يجب استيفاء متطلبات الاتصال بلا خادم. راجع المتطلبات.

هام

تحتوي هذه الميزة على القيود التالية:

  • هذه الميزة مدعومة فقط في Databricks Connect ل Python.
  • جميع قيود Databricks Connect ل Python
  • جميع قيود الحوسبة بلا خادم
  • يمكن استخدام تبعيات Python المضمنة كجزء من بيئة الحوسبة بلا خادم فقط ل UDFs. راجع صور العميل بلا خادم. لا يمكن تثبيت تبعيات إضافية.
  • UDFs مع وحدات مخصصة غير مدعومة.

يمكنك تكوين اتصال بالحوسبة بلا خادم بإحدى الطرق التالية:

  • تعيين متغير DATABRICKS_SERVERLESS_COMPUTE_ID البيئة المحلية إلى auto. إذا تم تعيين متغير البيئة هذا، يتجاهل cluster_idDatabricks Connect .

  • في ملف تعريف تكوين 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 دقائق من عدم النشاط. بعد ذلك، يجب إنشاء جلسة Spark جديدة باستخدام getOrCreate() للاتصال بالحوسبة بلا خادم.

التحقق من صحة الاتصال ب Databricks

للتحقق من صحة البيئة الخاصة بك، يتم إعداد بيانات الاعتماد الافتراضية والاتصال بالحوسبة بشكل صحيح ل Databricks Connect، قم بتشغيل databricks-connect test الأمر الذي يفشل مع رمز خروج غير صفري ورسالة خطأ مقابلة عندما يكتشف أي عدم توافق في الإعداد.

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