Praktik terbaik untuk komputasi tanpa server

Ikuti rekomendasi ini untuk memaksimalkan produktivitas, mengurangi biaya, dan meningkatkan keandalan saat menggunakan komputasi tanpa server untuk notebook, pekerjaan, dan alur di Azure Databricks.

Memigrasikan beban kerja ke komputasi tanpa server

Untuk instruksi langkah demi langkah tentang migrasi dari komputasi klasik ke tanpa server, termasuk prasyarat, perubahan kode yang diperlukan, strategi pengujian, dan rencana peluncuran bertahap, lihat Migrasi dari komputasi klasik ke komputasi tanpa server.

Tentukan versi paket Python

Saat bermigrasi ke komputasi tanpa server, sematkan paket Python Anda ke versi tertentu untuk memastikan lingkungan yang dapat direproduksi. Jika Anda tidak menentukan versi, paket dapat diselesaikan ke versi yang berbeda berdasarkan versi lingkungan tanpa server, yang dapat meningkatkan latensi karena paket baru perlu diinstal.

Misalnya, file Anda requirements.txt harus menyertakan versi paket tertentu, seperti ini:

numpy==2.2.2
pandas==2.2.3

Menggunakan nama unik untuk tampilan sementara

Komputasi tanpa server menggunakan Spark Connect, arsitektur server klien yang mengevaluasi tampilan sementara dengan malas. Perilaku ini berbeda dari arsitektur Spark klasik dan dapat menyebabkan kesalahan ketika kode menggunakan kembali nama tampilan sementara yang sama, seperti dalam perulangan.

Untuk menghindari kesalahan, gunakan nama unik untuk semua tampilan sementara dalam kode Anda.

Jaringan dan konektivitas

Komputasi tanpa server tidak mendukung peering VPC, yang merupakan cara umum untuk menghubungkan komputasi Databricks klasik ke sumber data di akun cloud Anda. Sebagai alternatif, gunakan konfigurasi konektivitas jaringan untuk mengelola titik akhir, firewall, dan konektivitas ke layanan eksternal.

Misalnya, Anda dapat menambahkan sekumpulan IP keluar yang stabil di VPC eksternal ke daftar yang diizinkan untuk mengaktifkan konektivitas ke dan dari komputasi tanpa server Azure Databricks. Untuk menyambungkan ke aplikasi perusahaan (seperti Salesforce) atau database terkelola (seperti MySQL), gunakan Lakeflow Connect.

Untuk membatasi dan memantau lalu lintas keluar dari komputasi tanpa server, konfigurasikan kontrol keluar untuk ruang kerja Anda. Lihat Mengelola kebijakan jaringan untuk kontrol keluar tanpa server.

Versi lingkungan tanpa server

Komputasi tanpa server menggunakan versi lingkungan alih-alih versi Runtime Databricks tradisional. Ini menunjukkan pergeseran dalam cara Anda mengelola kompatibilitas beban kerja:

  • Pendekatan Databricks Runtime: Anda memilih versi Databricks Runtime tertentu untuk beban kerja Anda dan mengelola peningkatan secara manual untuk mempertahankan kompatibilitas.
  • pendekatan Serverless: Anda menulis kode terhadap versi lingkungan, dan Azure Databricks meningkatkan server yang mendasar secara independen.

Versi lingkungan menyediakan API klien yang stabil yang memastikan beban kerja Anda tetap kompatibel sementara Azure Databricks secara independen memberikan peningkatan performa, peningkatan keamanan, dan perbaikan bug tanpa memerlukan perubahan kode pada beban kerja Anda.

Setiap versi lingkungan mencakup pustaka sistem, fitur, dan perbaikan bug yang diperbarui, sambil mempertahankan kompatibilitas mundur untuk beban kerja. Azure Databricks mendukung setiap versi lingkungan selama tiga tahun sejak tanggal rilisnya, menyediakan siklus hidup yang dapat diprediksi untuk merencanakan peningkatan.

Untuk memilih lingkungan dasar untuk beban kerja tanpa server Anda, lihat Memilih lingkungan dasar. Untuk detail tentang versi lingkungan yang tersedia dan fiturnya, lihat Versi lingkungan tanpa server.

Mengelola dependensi

Komputasi tanpa server tidak mendukung skrip init. Sebagai gantinya, gunakan lingkungan tanpa server untuk menginstal dan mengelola pustaka untuk beban kerja tanpa server Anda. Lingkungan menyimpan cache paket yang terinstal, yang mengurangi latensi startup untuk eksekusi berikutnya.

Untuk menggunakan pustaka dari repositori privat, konfigurasikan URL yang telah ditandatangani sebelumnya untuk akses repositori terautentikasi di pengaturan lingkungan Anda.

Pilih mode performa

Azure Databricks komputasi tanpa server menawarkan dua mode performa yang memungkinkan Anda menyeimbangkan kecepatan dan biaya berdasarkan jenis beban kerja Anda sebagai berikut:

  • Mode yang dioptimalkan performa (default): Terbaik untuk beban kerja interaktif yang memerlukan waktu mulai yang cepat. Azure Databricks menjaga kumpulan sumber daya komputasi hangat siap untuk meminimalkan waktu tunggu.
  • Mode standar: Terbaik untuk pekerjaan dan alur batch otomatis yang dapat mentolerir waktu startup yang lebih lama 4 hingga 6 menit. Mode standar dapat mengurangi biaya hingga 70% dibandingkan dengan mode yang dioptimalkan performa. Mode standar tersedia untuk Pekerjaan Lakeflow dan Alur Deklaratif Lakeflow Spark, tetapi tidak untuk notebook.

Pilih mode yang paling sesuai dengan persyaratan beban kerja Anda. Untuk pekerjaan terjadwal di mana latensi startup tidak penting, mode Standar biasanya menawarkan nilai terbaik. Untuk detail harga saat ini, lihat halaman harga Databricks.

Mengoptimalkan beban kerja streaming

Komputasi tanpa server mendukung streaming terstruktur dengan Trigger.AvailableNow. Interval pemicu berbasis waktu tidak didukung. Untuk detail tentang pemicu, contoh kode, dan alternatif yang didukung untuk streaming berkelanjutan, lihat bagian streaming panduan migrasi.

Saat menggunakan Trigger.AvailableNow, setiap pemicu memproses semua data yang tersedia di sumber, yang dapat menghasilkan batch mikro yang lebih besar daripada pemicu berbasis waktu. Untuk mencegah kesalahan di luar memori dan mempertahankan performa yang dapat diprediksi, batasi jumlah data yang diproses per mikro-batch dengan mengatur maxFilesPerTrigger atau maxBytesPerTrigger.

Men-debug beban kerja tanpa server

Antarmuka pengguna Spark tidak tersedia dalam komputasi tanpa server. Sebagai gantinya, gunakan profil kueri untuk menganalisis performa kueri dan memecahkan masalah beban kerja. Profil kueri menyediakan informasi eksekusi terperinci dan dapat diakses dari riwayat kueri di antarmuka pengguna Azure Databricks.

Menyerap data dari sistem eksternal

Strategi alternatif yang dapat Anda gunakan untuk penyerapan meliputi:

  • Blok penyusun berbasis SQL seperti tabel streaming COPY INTO dan .

Alternatif penyerapan

Saat menggunakan komputasi tanpa server, Anda juga bisa menggunakan fitur berikut untuk mengkueri data Anda tanpa memindahkannya.

  • Jika Anda ingin membatasi duplikasi data atau menjamin bahwa Anda mengkueri data sesegar mungkin, Databricks merekomendasikan penggunaan Berbagi Delta. Lihat Apa yang dimaksud dengan Delta Sharing?.
  • Untuk pelaporan ad hoc dan pekerjaan bukti konsep, Federasi Lakehouse memungkinkan Anda untuk mengkueri database eksternal langsung dari Azure Databricks tanpa memindahkan data, yang diatur oleh Katalog Unity. Lihat Apa itu Federasi Lakehouse?.

Coba salah satu atau kedua fitur ini dan lihat apakah fitur tersebut memenuhi persyaratan performa kueri Anda.

Sink yang tidak didukung

Jika sistem sink tidak didukung sebagai target tulis langsung dari komputasi tanpa server, Anda dapat menggunakan Unity Catalog Iceberg REST Catalog untuk memungkinkan sistem tersebut membaca langsung dari tabel Azure Databricks. Misalnya, Snowflake bukan sink tanpa server yang didukung, tetapi dapat dikonfigurasi sebagai klien Iceberg untuk membaca tabel yang dikelola oleh Unity Catalog.

Pendekatan ini menghindari data duplikat dan menyimpan Katalog Unity sebagai lapisan tata kelola untuk semua bacaan. Untuk klien yang didukung dan langkah-langkah konfigurasi, lihat Akses tabel Azure Databricks dari klien Apache Iceberg.

Konfigurasi Spark yang didukung

Untuk mengotomatiskan konfigurasi Spark pada komputasi tanpa server, Azure Databricks telah menghapus dukungan untuk mengatur sebagian besar konfigurasi Spark secara manual. Untuk menampilkan daftar parameter konfigurasi Spark yang didukung, lihat Mengonfigurasi properti Spark untuk buku catatan dan pekerjaan tanpa server.

Pekerjaan yang berjalan pada komputasi tanpa server akan gagal jika Anda mengatur konfigurasi Spark yang tidak didukung.

Memantau biaya komputasi tanpa server

Ada beberapa fitur yang dapat Anda gunakan untuk membantu Anda memantau biaya komputasi tanpa server: