Batasan komputasi tanpa server

Artikel ini menjelaskan batasan komputasi tanpa server saat ini untuk buku catatan dan pekerjaan. Ini dimulai dengan gambaran umum dari pertimbangan yang paling penting dan kemudian menyediakan daftar lengkap batasan.

Dukungan bahasa dan API

  • R tidak didukung.
  • Hanya API Spark Connect yang didukung. API Spark RDD tidak didukung.
  • Spark Connect, yang digunakan oleh komputasi tanpa server, menunda analisis dan resolusi nama ke waktu eksekusi, yang dapat mengubah perilaku kode Anda. Lihat Membandingkan Spark Connect dengan Spark Classic.
  • Mode ANSI diaktifkan secara default. Casting yang tidak valid, overflow aritmatika, dan input yang salah bentuk akan menimbulkan error runtime alih-alih mengembalikan NULL secara diam-diam atau hasil yang salah. Untuk informasi tentang cara menangani operasi yang mengubah perilaku dan batasan untuk memilih keluar, lihat bagian perbedaan perilaku SQL pada panduan migrasi.
  • Zona waktu sesi default adalah Etc/UTC (Waktu Universal Terkoordinasi). Untuk menggunakan zona waktu yang berbeda, atur spark.sql.session.timeZone. Lihat Mengonfigurasi properti Spark untuk notebook dan pekerjaan tanpa server.
  • Saat membuat DataFrame dari data lokal menggunakan spark.createDataFrame, ukuran baris tidak boleh melebihi 128MB.

Akses dan penyimpanan data

  • Anda harus menggunakan Unity Catalog untuk menyambungkan ke sumber data eksternal. Gunakan lokasi eksternal untuk mengakses penyimpanan cloud.
  • Akses ke DBFS terbatas. Gunakan volume "Unity Catalog" atau File ruang kerja sebagai gantinya.
  • Direktori kerja untuk notebook dan tugas pekerjaan tidak dijamin, sehingga jalur file relatif dan impor Python relatif bisa gagal. Gunakan jalur absolut untuk mereferensikan file, dan impor kode Python yang digunakan bersama sebagai file workspace, bukan sebagai modul relatif. Lihat Bekerja dengan modul Python dan R.
  • Koordinat Maven tidak didukung.
  • Tampilan sementara global tidak didukung. Saat data lintas sesi diperlukan, Databricks merekomendasikan penggunaan tampilan sementara sesi atau membuat tabel.

Fungsi yang ditentukan pengguna (UDF)

UI dan pengelogan

  • Antarmuka pengguna Spark tidak tersedia. Sebagai gantinya, gunakan profil kueri untuk menampilkan informasi tentang kueri Spark Anda. Lihat Profil Kueri.
  • Log Spark tidak tersedia. Pengguna hanya memiliki akses ke log aplikasi sisi klien.

Akses jaringan dan ruang kerja

  • Akses lintas ruang kerja hanya diperbolehkan jika ruang kerja berada di wilayah yang sama dan ruang kerja tujuan tidak memiliki IP ACL atau PrivateLink front-end yang dikonfigurasi.
  • Layanan Kontainer Databricks tidak didukung.
  • Komputasi serverless tidak dapat terhubung ke sumber daya yang hanya dapat dijangkau melalui IPv6. Sumber daya harus dapat diakses melalui IPv4.

Pembatasan streaming

Komputasi tanpa server mendukung pemicu Streaming Terstruktur berikut:

  • Trigger.AvailableNow(). Databricks merekomendasikan mode pemicu ini untuk komputasi tanpa server.
  • Trigger.Once(). Mode yang tidak digunakan lagi ini didukung tetapi tidak disarankan.

Pemicu berikut tidak didukung pada komputasi tanpa server:

  • Trigger.Continuous(interval).
  • Trigger.ProcessingTime(interval).
    • Secara default, jika Anda tidak menentukan mode pemicu, Apache Spark mengatur pemicu ke Trigger.ProcessingTime("0 seconds"). Anda harus mengatur pemicu yang didukung pada komputasi tanpa server.

Jika Anda mencoba menggunakan pemicu yang tidak didukung, kueri akan menimbulkan kesalahan INFINITE_STREAMING_TRIGGER_NOT_SUPPORTED.

Untuk beban kerja streaming berkelanjutan, gunakan Mode alur yang dipicu vs. berkelanjutan dalam mode berkelanjutan tanpa server, atau gunakan Trigger.AvailableNow() dalam menjalankan pekerjaan secara terus menerus.

Untuk panduan keputusan yang memetakan kasus penggunaan streaming ke produk tanpa server yang tepat, lihat Streaming pada komputasi tanpa server.

Semua batasan untuk streaming pada mode akses standar juga berlaku. Lihat Batasan streaming.

Batasan buku catatan

  • Scala dan R tidak didukung di notebook.
  • Pustaka JAR tidak didukung di notebook. Untuk solusinya, lihat Praktik terbaik untuk komputasi tanpa server. Tugas JAR dalam pekerjaan didukung. Lihat tugas JAR untuk pekerjaan.
  • Pustaka yang terikat ke buku catatan tidak disimpan dalam cache antara sesi pengembangan.
  • Berbagi tabel dan tampilan TEMP saat berbagi buku catatan di antara pengguna tidak didukung.
  • Pelengkapan otomatis dan Penjelajah Variabel untuk dataframe dalam notebook tidak didukung.
  • Secara default, buku catatan baru disimpan dalam .ipynb format. Jika buku catatan Anda disimpan dalam format sumber, metadata tanpa server mungkin tidak ditangkap dengan benar, dan beberapa fitur mungkin tidak berfungsi seperti yang diharapkan.
  • Tag notepad tidak didukung. Gunakan kebijakan penggunaan tanpa server untuk menandai penggunaan tanpa server.

Batasan pekerjaan

  • Log tugas tidak terisolasi per pelaksanaan tugas. Log akan berisi output dari beberapa tugas.
  • Pustaka tugas tidak didukung untuk tugas dalam buku catatan. Gunakan pustaka lingkup notebook sebagai gantinya. Lihat pustaka Python lingkup Notebook.
  • Secara default, pekerjaan tanpa server tidak memiliki batas waktu eksekusi kueri. Anda dapat mengatur batas waktu eksekusi untuk kueri pekerjaan menggunakan spark.databricks.execution.timeout properti . Untuk detail selengkapnya, lihat Mengonfigurasi properti Spark untuk buku catatan dan pekerjaan tanpa server.
  • Komputasi tanpa server memiliki runtime maksimum 7 hari. Proses eksekusi yang berlangsung lebih dari 7 hari akan dihentikan oleh platform dan tidak akan dicoba ulang. Untuk menjalankan beban kerja lebih dari 7 hari, pecahkan menjadi eksekusi yang lebih kecil atau gunakan komputasi klasik.

Batasan khusus komputasi

Fitur khusus komputasi berikut ini tidak didukung:

Pembatasan cache

  • Metadata di-cache dalam sesi komputasi tanpa server. Karena itu, konteks sesi mungkin tidak sepenuhnya diatur ulang saat beralih katalog. Untuk menghapus konteks sesi, reset sumber daya komputasi tanpa server atau mulai sesi baru.
  • API dataframe dan cache SQL tidak didukung pada komputasi tanpa server. Menggunakan salah satu API atau perintah SQL ini menghasilkan pengecualian.
  • Cache model Spark ML dibatasi hingga 1 GB (1073741824 byte) per sesi, dan satu model dibatasi hingga 100 MB. Kedua batas tersebut lebih rendah pada komputasi serverless dibandingkan pada komputasi klasik, dan keduanya tidak dapat diubah. Melebihi batas sesi akan menimbulkan ML_CACHE_SIZE_OVERFLOW_EXCEPTION. Melebihi batas per model meningkatkan MODEL_SIZE_OVERFLOW_EXCEPTION. Untuk membebaskan ruang di cache, hapus referensi Python ke model yang sudah tidak Anda gunakan lagi. Model yang tidak digunakan selama 15 menit akan dipindahkan ke disk lokal dan tetap dihitung untuk batas sesi.

Batasan Hive

  • tabel Hive SerDe tidak didukung. Selain itu, perintah LOAD DATA terkait yang memuat data ke dalam tabel Apache Hive SerDe tidak didukung. Menggunakan perintah akan menghasilkan pengecualian.

    Dukungan untuk sumber data terbatas pada AVRO, BINARYFILE, CSV, DELTA, JSON, KAFKA, ORC, PARQUET, TEXT, dan XML.

  • Variabel Hive (misalnya ${env:var}, ${configName}, ${system:var}, dan spark.sql.variable) atau referensi variabel konfigurasi dengan sintaks ${var} tidak didukung. Menggunakan variabel Hive akan menghasilkan pengecualian.

    Sebagai gantinya, gunakan DECLARE VARIABLE, SET VARIABLE, dan referensi variabel sesi SQL serta penanda parameter ('?', atau ':var') untuk mendeklarasikan, memodifikasi, dan mereferensikan status sesi. Anda juga dapat menggunakan klausa IDENTIFIER untuk membuat parameter nama objek dalam banyak kasus.

Sumber data yang didukung

Komputasi tanpa server mendukung sumber data berikut untuk operasi DML (tulis, perbarui, hapus):

  • CSV
  • JSON
  • AVRO
  • DELTA
  • KAFKA
  • PARQUET
  • ORC
  • TEXT
  • UNITY_CATALOG
  • BINARYFILE
  • XML
  • SIMPLESCAN
  • ICEBERG

Komputasi tanpa server mendukung sumber data berikut untuk operasi baca:

  • CSV
  • JSON
  • AVRO
  • DELTA
  • KAFKA
  • PARQUET
  • ORC
  • TEXT
  • UNITY_CATALOG
  • BINARYFILE
  • XML
  • SIMPLESCAN
  • ICEBERG
  • MYSQL
  • POSTGRESQL
  • SQLSERVER
  • REDSHIFT
  • SNOWFLAKE
  • SQLDW(Azure Synapse)
  • DATABRICKS
  • BIGQUERY
  • ORACLE
  • SALESFORCE
  • SALESFORCE_DATA_CLOUD
  • TERADATA
  • WORKDAY_RAAS
  • MONGODB