Bagikan melalui


Menginstal databricks Koneksi untuk Scala

Catatan

Artikel ini membahas Databricks Koneksi untuk Databricks Runtime 13.3 LTS ke atas.

Artikel ini menjelaskan cara menginstal Databricks Koneksi untuk Scala. Lihat Apa itu Databricks Koneksi?. Untuk versi Python artikel ini, lihat Menginstal Databricks Koneksi untuk Python.

Persyaratan

  • Ruang kerja dan kluster Azure Databricks target Anda harus memenuhi persyaratan konfigurasi Kluster untuk Databricks Koneksi.
  • Java Development Kit (JDK) diinstal pada komputer pengembangan Anda. Databricks merekomendasikan agar versi penginstalan JDK yang Anda gunakan cocok dengan versi JDK di kluster Azure Databricks Anda. Untuk menemukan versi JDK di kluster Anda, lihat bagian "Lingkungan sistem" dari catatan rilis Databricks Runtime untuk kluster Anda. Misalnya, Zulu 8.70.0.23-CA-linux64 sesuai dengan JDK 8. Lihat Versi dan kompatibilitas catatan rilis Databricks Runtime.
  • Scala diinstal pada mesin pengembangan Anda. Databricks merekomendasikan agar versi penginstalan Scala yang Anda gunakan cocok dengan versi Scala di kluster Azure Databricks Anda. Untuk menemukan versi Scala di kluster Anda, lihat bagian "Lingkungan sistem" dari catatan rilis Databricks Runtime untuk kluster Anda. Lihat Versi dan kompatibilitas catatan rilis Databricks Runtime.
  • Alat build Scala pada mesin pengembangan Anda, seperti sbt.

Menyiapkan klien

Setelah Anda memenuhi persyaratan untuk databricks Koneksi, selesaikan langkah-langkah berikut untuk menyiapkan klien Databricks Koneksi.

Langkah 1: Tambahkan referensi ke klien Databricks Koneksi

  1. Dalam file build proyek Scala Anda seperti build.sbt untuk sbt, pom.xml untuk Maven, atau build.gradle untuk Gradle, tambahkan referensi berikut ke klien Databricks Koneksi:

    Sbt

    libraryDependencies += "com.databricks" % "databricks-connect" % "14.0.0"
    

    Maven

    <dependency>
      <groupId>com.databricks</groupId>
      <artifactId>databricks-connect</artifactId>
      <version>14.0.0</version>
    </dependency>
    

    Gradle

    implementation 'com.databricks.databricks-connect:14.0.0'
    
  2. Ganti 14.0.0 dengan versi pustaka Databricks Koneksi yang cocok dengan versi Databricks Runtime pada kluster Anda. Anda dapat menemukan nomor versi pustaka Databricks Koneksi di repositori pusat Maven.

Langkah 2: Mengonfigurasi properti koneksi

Di bagian ini, Anda mengonfigurasi properti untuk membuat koneksi antara Databricks Koneksi dan kluster Azure Databricks jarak jauh Anda. Properti ini mencakup pengaturan untuk mengautentikasi databricks Koneksi dengan kluster Anda.

Untuk Databricks Koneksi untuk Databricks Runtime 13.3 LTS ke atas, untuk Scala, Databricks Koneksi menyertakan Databricks SDK untuk Java. SDK ini menerapkan standar autentikasi terpadu klien Databricks, pendekatan arsitektur dan terprogram yang terkonsolidasi dan konsisten untuk autentikasi. Pendekatan ini membuat pengaturan dan mengotomatiskan autentikasi dengan Azure Databricks lebih terpusat dan dapat diprediksi. Ini memungkinkan Anda mengonfigurasi autentikasi Azure Databricks sekali lalu menggunakan konfigurasi tersebut di beberapa alat dan SDK Azure Databricks tanpa perubahan konfigurasi autentikasi lebih lanjut.

Catatan

  • Autentikasi pengguna ke komputer (U2M) OAuth didukung pada Databricks SDK untuk Java 0.18.0 ke atas. Anda mungkin perlu memperbarui versi SDK Databricks SDK untuk Java ke 0.18.0 atau yang lebih baru untuk menggunakan autentikasi OAuth U2M. Lihat Mulai menggunakan Databricks SDK untuk Java.

    Untuk autentikasi OAuth U2M, Anda harus menggunakan Databricks CLI untuk mengautentikasi sebelum menjalankan kode Scala Anda. Lihat Tutorial.

  • Autentikasi mesin-ke-mesin (M2M) OAuth didukung pada Databricks SDK untuk Java 0.17.0 ke atas. Anda mungkin perlu memperbarui versi SDK Databricks untuk Java yang diinstal proyek kode Anda ke 0.17.0 atau lebih tinggi untuk menggunakan autentikasi OAuth U2M. Lihat Mulai menggunakan Databricks SDK untuk Java.

  • Databricks SDK untuk Java belum menerapkan autentikasi identitas terkelola Azure.

  1. Kumpulkan properti konfigurasi berikut.

  2. Konfigurasikan koneksi dalam kode Anda. Databricks Koneksi mencari properti konfigurasi dalam urutan berikut hingga menemukannya. Setelah menemukannya, ia berhenti mencari melalui opsi yang tersisa. Detail untuk setiap opsi muncul setelah tabel berikut:

    Opsi properti konfigurasi Berlaku untuk
    1. Metode DatabricksSession kelas remote() Autentikasi token akses pribadi Azure Databricks saja
    2. Profil konfigurasi Azure Databricks Semua jenis autentikasi Azure Databricks
    3. Variabel SPARK_REMOTE lingkungan Autentikasi token akses pribadi Azure Databricks saja
    4. Variabel DATABRICKS_CONFIG_PROFILE lingkungan Semua jenis autentikasi Azure Databricks
    5. Variabel lingkungan untuk setiap properti konfigurasi Semua jenis autentikasi Azure Databricks
    6. Profil konfigurasi Azure Databricks bernama DEFAULT Semua jenis autentikasi Azure Databricks
    1. Metode DatabricksSession kelas remote()

      Untuk opsi ini, yang hanya berlaku untuk autentikasi token akses pribadi Azure Databricks, tentukan nama instans ruang kerja, token akses pribadi Azure Databricks, dan ID kluster.

      Anda dapat menginisialisasi kelas dengan DatabricksSession beberapa cara, sebagai berikut:

      • Atur hostbidang , token, dan clusterId di DatabricksSession.builder.
      • Gunakan kelas Databricks SDK Config .
      • Tentukan profil konfigurasi Databricks bersama dengan clusterId bidang .

      Databricks tidak menyarankan agar Anda secara langsung menentukan properti koneksi ini dalam kode Anda. Sebagai gantinya, Databricks merekomendasikan untuk mengonfigurasi properti melalui variabel lingkungan atau file konfigurasi, seperti yang dijelaskan di seluruh bagian ini. Contoh kode berikut mengasumsikan bahwa Anda menyediakan beberapa implementasi fungsi yang diusulkan retrieve* sendiri untuk mendapatkan properti yang diperlukan dari pengguna atau dari beberapa penyimpanan konfigurasi lainnya, seperti Azure KeyVault.

      Kode untuk masing-masing pendekatan ini adalah sebagai berikut:

      // 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()
      
      // 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()
      
      // 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()
      
    2. Profil konfigurasi Azure Databricks

      Untuk opsi ini, buat atau identifikasi profil konfigurasi Azure Databricks yang berisi bidang cluster_id dan bidang lain yang diperlukan untuk jenis autentikasi Databricks yang didukung yang ingin Anda gunakan.

      Bidang profil konfigurasi yang diperlukan untuk setiap jenis autentikasi adalah sebagai berikut:

      • Untuk autentikasi token akses pribadi Azure Databricks: host dan token.
      • Untuk autentikasi komputer-ke-mesin (M2M) OAuth (jika didukung): host, , client_iddan client_secret.
      • Untuk autentikasi pengguna-ke-mesin (U2M) OAuth (jika didukung): host.
      • Untuk autentikasi hostperwakilan layanan Microsoft Entra ID (sebelumnya Azure Active Directory): , , azure_tenant_idazure_client_id, azure_client_secret, dan mungkin azure_workspace_resource_id.
      • Untuk autentikasi Azure CLI: host.
      • Untuk autentikasi identitas terkelola Azure (jika didukung): host, , azure_use_msiazure_client_id, dan mungkin azure_workspace_resource_id.

      Kemudian atur nama profil konfigurasi ini melalui DatabricksConfig kelas .

      Anda dapat menentukan cluster_id dengan beberapa cara, sebagai berikut:

      • Sertakan cluster_id bidang di profil konfigurasi Anda, lalu cukup tentukan nama profil konfigurasi.
      • Tentukan nama profil konfigurasi bersama dengan clusterId bidang .

      Jika Anda telah mengatur DATABRICKS_CLUSTER_ID variabel lingkungan dengan ID kluster, Anda tidak perlu menentukan cluster_id bidang atau clusterId .

      Kode untuk masing-masing pendekatan ini adalah sebagai berikut:

      // 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()
      
      // Specify the configuration profile name along with the clusterId field.
      // In this example, retrieveClusterId() assumes some custom implementation that
      // you provide to get the cluster ID from the user or from some other
      // configuration store:
      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()
      
    3. Variabel SPARK_REMOTE lingkungan

      Untuk opsi ini, yang hanya berlaku untuk autentikasi token akses pribadi Azure Databricks, atur SPARK_REMOTE variabel lingkungan ke string berikut, mengganti tempat penampung dengan nilai yang sesuai.

      sc://<workspace-instance-name>:443/;token=<access-token-value>;x-databricks-cluster-id=<cluster-id>
      

      Kemudian inisialisasi DatabricksSession kelas sebagai berikut:

      import com.databricks.connect.DatabricksSession
      
      val spark = DatabricksSession.builder().getOrCreate()
      

      Untuk mengatur variabel lingkungan, lihat dokumentasi sistem operasi Anda.

    4. Variabel DATABRICKS_CONFIG_PROFILE lingkungan

      Untuk opsi ini, buat atau identifikasi profil konfigurasi Azure Databricks yang berisi bidang cluster_id dan bidang lain yang diperlukan untuk jenis autentikasi Databricks yang didukung yang ingin Anda gunakan.

      Jika Anda telah mengatur DATABRICKS_CLUSTER_ID variabel lingkungan dengan ID kluster, Anda tidak perlu menentukan cluster_id.

      Bidang profil konfigurasi yang diperlukan untuk setiap jenis autentikasi adalah sebagai berikut:

      • Untuk autentikasi token akses pribadi Azure Databricks: host dan token.
      • Untuk autentikasi komputer-ke-mesin (M2M) OAuth (jika didukung): host, , client_iddan client_secret.
      • Untuk autentikasi pengguna-ke-mesin (U2M) OAuth (jika didukung): host.
      • Untuk autentikasi hostperwakilan layanan Microsoft Entra ID (sebelumnya Azure Active Directory): , , azure_tenant_idazure_client_id, azure_client_secret, dan mungkin azure_workspace_resource_id.
      • Untuk autentikasi Azure CLI: host.
      • Untuk autentikasi identitas terkelola Azure (jika didukung): host, , azure_use_msiazure_client_id, dan mungkin azure_workspace_resource_id.

      Atur DATABRICKS_CONFIG_PROFILE variabel lingkungan ke nama profil konfigurasi ini. Kemudian inisialisasi DatabricksSession kelas sebagai berikut:

      import com.databricks.connect.DatabricksSession
      
      val spark = DatabricksSession.builder().getOrCreate()
      

      Untuk mengatur variabel lingkungan, lihat dokumentasi sistem operasi Anda.

    5. Variabel lingkungan untuk setiap properti konfigurasi

      Untuk opsi ini, atur DATABRICKS_CLUSTER_ID variabel lingkungan dan variabel lingkungan lain yang diperlukan untuk jenis autentikasi Databricks yang didukung yang ingin Anda gunakan.

      Variabel lingkungan yang diperlukan untuk setiap jenis autentikasi adalah sebagai berikut:

      • Untuk autentikasi token akses pribadi Azure Databricks: DATABRICKS_HOST dan DATABRICKS_TOKEN.
      • Untuk autentikasi komputer-ke-mesin (M2M) OAuth (jika didukung): DATABRICKS_HOST, , DATABRICKS_CLIENT_IDdan DATABRICKS_CLIENT_SECRET.
      • Untuk autentikasi pengguna-ke-mesin (U2M) OAuth (jika didukung): DATABRICKS_HOST.
      • Untuk autentikasi DATABRICKS_HOSTperwakilan layanan Microsoft Entra ID (sebelumnya Azure Active Directory): , , ARM_TENANT_IDARM_CLIENT_ID, ARM_CLIENT_SECRET, dan mungkin DATABRICKS_AZURE_RESOURCE_ID.
      • Untuk autentikasi Azure CLI: DATABRICKS_HOST.
      • Untuk autentikasi identitas terkelola Azure (jika didukung): DATABRICKS_HOST, , ARM_USE_MSIARM_CLIENT_ID, dan mungkin DATABRICKS_AZURE_RESOURCE_ID.

      Kemudian inisialisasi DatabricksSession kelas sebagai berikut:

      import com.databricks.connect.DatabricksSession
      
      val spark = DatabricksSession.builder().getOrCreate()
      

      Untuk mengatur variabel lingkungan, lihat dokumentasi sistem operasi Anda.

    6. Profil konfigurasi Azure Databricks bernama DEFAULT

      Untuk opsi ini, buat atau identifikasi profil konfigurasi Azure Databricks yang berisi bidang cluster_id dan bidang lain yang diperlukan untuk jenis autentikasi Databricks yang didukung yang ingin Anda gunakan.

      Jika Anda telah mengatur DATABRICKS_CLUSTER_ID variabel lingkungan dengan ID kluster, Anda tidak perlu menentukan cluster_id.

      Bidang profil konfigurasi yang diperlukan untuk setiap jenis autentikasi adalah sebagai berikut:

      • Untuk autentikasi token akses pribadi Azure Databricks: host dan token.
      • Untuk autentikasi komputer-ke-mesin (M2M) OAuth (jika didukung): host, , client_iddan client_secret.
      • Untuk autentikasi pengguna-ke-mesin (U2M) OAuth (jika didukung): host.
      • Untuk autentikasi hostperwakilan layanan Microsoft Entra ID (sebelumnya Azure Active Directory): , , azure_tenant_idazure_client_id, azure_client_secret, dan mungkin azure_workspace_resource_id.
      • Untuk autentikasi Azure CLI: host.
      • Untuk autentikasi identitas terkelola Azure (jika didukung): host, , azure_use_msiazure_client_id, dan mungkin azure_workspace_resource_id.

      Beri nama profil DEFAULTkonfigurasi ini .

      Kemudian inisialisasi DatabricksSession kelas sebagai berikut:

      scala
      import com.databricks.connect.DatabricksSession
      
      val spark = DatabricksSession.builder().getOrCreate()