Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Photon adalah mesin kueri vektorisasi asli Azure Databricks yang mempercepat beban kerja SQL, panggilan API DataFrame, alur ETL, dan beban kerja streaming stateless Anda. Photon memproses data dalam batch kolumnar, memberikan peningkatan kinerja yang signifikan dibandingkan dengan eksekusi berbasis baris tradisional. Photon juga kompatibel dengan API Apache Spark, sehingga berfungsi dengan kode yang ada tanpa memerlukan perubahan.
Cara kerja Photon
Untuk operasi yang didukung, Photon menggantikan mesin eksekusi Spark SQL berbasis JVM dengan runtime C++ asli. Pengoptimal kueri Apache Spark (Catalyst) masih menyusun rencana eksekusi kueri Anda, tetapi Photon mengambil alih di lapisan eksekusi, memproses data dalam batch kolumnar, bukan baris demi baris. Ketika Photon menemui operasi yang tidak didukung selama eksekusi kueri, sistem ini secara transparan beralih ke runtime Spark untuk melanjutkan sisa operasi tersebut.
Foton memproses data dalam batch ribuan baris sekaligus, memungkinkan CPU modern menggunakan instruksi SIMD yang mengevaluasi beberapa nilai per siklus CPU. Dengan menjalankan di C++ asli alih-alih JVM, Photon menghilangkan jeda pengumpulan sampah, penundaan pemanasan JIT, dan overhead memori. Pemrosesan batch kolom memungkinkan pembacaan berurutan yang ramah cache, yang memaksimalkan bandwidth memori dan efisiensi alur CPU.
Arsitektur Photon meningkatkan performa dengan sejumlah cara:
- Akselerasi kueri: Photon memberikan harga/performa hingga 5x lebih baik untuk beban kerja data dan analitik dibandingkan dengan gudang data cloud lainnya, sebagaimana diukur oleh tolok ukur TPC-DS standar industri.
- Gabungan dan pengacakan yang dioptimalkan: Mengganti gabungan sort-merge dengan gabungan hash berkinerja tinggi dan menggunakan pengacakan kolumnar yang didesain ulang untuk meningkatkan throughput untuk gabungan skala besar.
-
Performa penulisan: Penulis Parquet native Photon mempercepat penulisan Delta Lake, Apache Iceberg, dan Parquet, termasuk operasi
UPDATE,DELETE,MERGE INTO,INSERT, danCREATE TABLE AS SELECT. Tabel lebar dengan ribuan kolom melihat peningkatan yang sangat signifikan. - Efisiensi pemindaian: Menerapkan filter pushdown, pemangkasan kamus, dan pengabaian grup baris untuk mengurangi data yang dibaca dari penyimpanan, bahkan saat menangani banyak file kecil.
- Cache disk dan konkurensi: Menyediakan akses ulang yang lebih cepat melalui cache disk dan meningkatkan throughput untuk kueri simultan dalam beban kerja BI interaktif.
- Integration dengan SQL dan Dataframes API: Mendukung API SQL dan DataFrame di seluruh Python, R, Scala, dan Java tanpa memerlukan perubahan kode.
Photon memberikan manfaat terbesar untuk kueri berjangka waktu lebih lama yang memproses dataset besar. Kueri yang biasanya selesai dalam waktu kurang dari dua detik tidak melihat peningkatan yang bermakna karena waktu eksekusi didominasi oleh perencanaan dan penjadwalan overhead daripada pemrosesan data.
Integrasi dengan platform Azure Databricks
Photon mempercepat beban kerja di seluruh platform Azure Databricks. Anda tidak perlu mengubah kode atau kueri untuk memanfaatkan Photon.
- Analitik SQL dan BI: Photon adalah mesin default untuk semua gudang data SQL, yang mendukung dasbor, kueri ad hoc, dan laporan terjadwal.
- ETL dan rekayasa data: Pekerjaan batch yang dibangun dengan SQL atau API DataFrame mendapat manfaat dari pemindaian, gabungan, agregasi, dan penulisan yang lebih cepat. Penulis Parquet bawaan sangat efektif untuk memuat data ke dalam tabel Delta Lake, Apache Iceberg, atau Parquet.
- Alur Deklaratif Lakeflow Spark: Mengaktifkan Photon dalam konfigurasi alur Anda membantu mempercepat eksekusi Alur Deklaratif Lakeflow Spark .
- Streaming: Photon mendukung streaming stateless saat menulis ke sink Delta atau Parquet. Sumber yang didukung termasuk Delta, Parquet, CSV, JSON, Kafka, dan Kinesis. Streaming stateful tidak didukung.
- AI dan pembelajaran mesin: Photon meningkatkan performa untuk operasi Spark SQL, DataFrames, rekayasa fitur, dan GraphFrames.
Pengaktifan foton
Photon selalu diaktifkan pada komputasi tanpa server, gudang SQL, dan alur Alur Deklaratif Lakeflow Spark tanpa server.
Untuk komputasi serba guna klasik, komputasi pekerjaan, dan alur Alur Deklaratif Lakeflow Spark klasik, Photon diaktifkan secara default dan dapat diubah dengan kotak centang Gunakan Akselerasi Foton di bawah Performa saat membuat atau mengedit komputasi. Lihat Menggunakan akselerasi Photon. Jika Anda membuat sumber daya ini menggunakan CLUSTERs API atau Jobs API, Anda harus secara eksplisit mengaktifkan Photon dengan mengatur runtime_engine ke PHOTON. Jika Anda menggunakan Pipelines API, atur photon ke true.
Fitur yang memerlukan pengaktifan Photon
Fitur berikut memerlukan pengaktifan Photon:
- I/O prediktif untuk baca dan tulis. Lihat Apa itu I/O prediktif?.
- Pemangkasan file dinamis dalam pernyataan
MERGE,UPDATE, danDELETE. Lihat Pemangkasan file dinamis.
Jenis instans yang didukung
Photon mendukung sejumlah tipe instans pada node driver dan node pekerja. Jenis instans photon menggunakan DBU pada tingkat yang berbeda dari jenis instans yang sama yang menjalankan runtime non-Photon. Untuk informasi lebih lanjut tentang instans Photon dan konsumsi DBU, lihat halaman harga Azure Databricks.
Operator, ekspresi, dan jenis data yang didukung
Foton mencakup operator, ekspresi, dan jenis data berikut. Saat kueri menggunakan operasi yang tidak didukung, Photon secara transparan kembali ke runtime Spark untuk bagian eksekusi tersebut.
Operator
- Pindai (Parquet, Delta, CSV, JSON), Penyaringan, Proyeksi
- Hash Agregat/Gabung/Acak
- gabungan Nested-Loop
- Null-Aware Penggabungan Anti
- Join Spasial (varian broadcast dan shuffle yang mendukung
ST_Intersects,ST_Contains,ST_Covers,ST_Equals,ST_Touches,ST_Within, danST_DWithin) - Gabungan, Perluasan, ScalarSubquery
- Penulisan Sink Delta/Parquet
- Urutkan, TopK, Batas
- Fungsi Jendela
Ekspresi
Kategori ini representatif, tidak lengkap. Fungsi individual dalam setiap kategori mungkin memiliki batasan.
- Perbandingan/Logika
- Aritmatika / Matematika
- Kondisional (IF, CASE, dll.)
- String
- Menyiarkan
- Fungsi agregat, termasuk Min/Max/MinBy/MaxBy pada tipe bertingkat
- Tanggal/Tanda Waktu/Format Tanggal
Jenis data
- Byte/Pendek/Int/Panjang
- Boolean
- String/Biner
- Desimal
- Float/Double
- Tanggal/Stempel waktu
- TimestampNTZ
- Struktur
- Array
- Peta
- Variant
- Null
- Geometri
- Geografi
- String yang disatukan
Memantau penggunaan Foton
Anda dapat memantau berapa banyak kueri yang berjalan di Photon menggunakan alat berikut:
- Spark UI (komputasi semua tujuan dan pekerjaan klasik): Di tab SQL/DataFrame dari Spark UI, operator Photon muncul dengan warna oranye dalam visualisasi DAG kueri. Operator Spark standar muncul dengan warna biru. Ini membantu Anda mengidentifikasi bagian mana dari kueri Anda yang mendapat manfaat dari Photon dan bagian mana yang kembali menggunakan runtime Spark.
- Profil kueri (gudang SQL dan komputasi tanpa server): Tampilan Detail Eksekusi menunjukkan persentase waktu tugas yang dihabiskan di Photon. Rencana kueri membedakan operator Photon (ungu) dari operator standar (abu-abu).
Jika Anda melihat bahwa kueri tidak menggunakan Photon seperti yang diharapkan, periksa apakah kueri tersebut menggunakan operasi, UDF, atau format data yang tidak didukung sehingga beralih kembali ke runtime Spark.
Batasan
- Jika beban kerja Anda mencapai operasi yang tidak didukung, sumber daya komputasi secara transparan beralih ke runtime Spark untuk sisa operasi tersebut. Kueri Anda masih menghasilkan hasil yang benar.
- Photon tidak mendukung UDF (User Defined Functions), API RDD, atau API Himpunan Data.
- Streaming stateful tidak didukung. Photon hanya mendukung streaming stateless.
- Photon tidak meningkatkan kueri yang biasanya berjalan dalam waktu kurang dari dua detik.