Photon nedir?

Photon, SQL iş yüklerinizi, DataFrame API çağrılarınızı, ETL işlem hatlarınızı ve durum bilgisi olmayan akış iş yüklerinizi hızlandıran Azure Databricks yerel vektörleştirilmiş sorgu altyapısıdır. Photon, verileri sütunlu gruplar hâlinde işler ve geleneksel satır tabanlı işlemeye kıyasla önemli performans artışları sağlar. Photon, Apache Spark API'leriyle de uyumludur, bu nedenle mevcut kodunuzla hiçbir değişiklik gerektirmeden çalışır.

Photon nasıl çalışır?

Desteklenen işlemler için Photon, JVM tabanlı Spark SQL yürütme altyapısını yerel bir C++ çalışma zamanıyla değiştirir. Apache Spark sorgu iyileştiricisi (Catalyst) sorgunuzu planlamaya devam eder, ancak Photon yürütme katmanında devreye girerek verileri satır satır değil, sütun tabanlı gruplar hâlinde işler. Photon sorgu yürütme sırasında desteklenmeyen bir işlemle karşılaştığında, bu işlemin geri kalanı için saydam olarak Spark çalışma zamanına geri döner.

Foton, verileri bir kerede binlerce satır halinde işler ve modern CPU'ların CPU döngüsü başına birden çok değeri değerlendiren SIMD yönergelerini kullanmasını sağlar. Photon, JVM yerine yerel C++ ile yürüterek çöp toplama duraklamalarını, JIT ısınma gecikmelerini ve bellek ek yükünü ortadan kaldırır. Sütunlu toplu işlem, bellek bant genişliğini ve CPU işlem hattı verimliliğini en üst düzeye çıkaran önbellek dostu sıralı okumaları etkinleştirir.

Photon'un mimarisi performansı çeşitli yollarla geliştirir:

  • Sorgu hızlandırma: Foton, endüstri standardı TPC-DS kıyaslamalarıyla ölçülen diğer bulut veri ambarlarına kıyasla veri ve analiz iş yükleri için 5 kata kadar daha iyi fiyat/performans sağlar.
  • İyileştirilmiş birleştirmeler ve karıştırmalar: Sıralama birleştirme birleşimlerini yüksek performanslı karma birleşimlerle değiştirir ve büyük ölçekli birleştirmelerin aktarım hızını artırmak için yeniden tasarlanmış sütunlu karıştırma kullanır.
  • Yazma performansı: Photon yerel Parquet yazıcısı, UPDATE, DELETE, MERGE INTO, INSERT ve CREATE TABLE AS SELECT işlemleri dahil olmak üzere Delta Lake, Apache Iceberg ve Parquet yazma işlemlerini hızlandırır. Binlerce sütun içeren geniş tablolar özellikle önemli geliştirmeler görür.
  • Tarama verimliliği: Çok sayıda küçük dosyayla çalışırken bile depolamadan okunan veri miktarını azaltmak için filtre aşağı itme, sözlük budama ve satır gruplarını atlama tekniklerini uygular.
  • Disk önbelleği ve eşzamanlılık: Disk önbelleği aracılığıyla daha hızlı tekrar erişim sağlar ve etkileşimli BI iş yüklerinde eşzamanlı sorgular için aktarım hızını artırır.
  • SQL ve DataFrame API’leriyle entegrasyon: Python, R, Scala ve Java’da kod değişikliği gerektirmeden SQL ve DataFrame API’lerini destekler.

Photon, büyük veri kümelerini işleyen daha uzun süre çalışan sorgular için en büyük avantajı sağlar. Normalde iki saniyenin altında tamamlanan sorgular, yürütme süresi veri işleme yerine planlama ve zamanlama ek yüküne sahip olduğundan anlamlı bir iyileştirme görmez.

Azure Databricks platformuyla tümleştirme

Photon, Azure Databricks platformundaki iş yüklerini hızlandırır. Photon'un avantajlarından yararlanmak için kodunuzu veya sorgularınızı değiştirmeniz gerekmez.

  • SQL analizi ve BI: Photon tüm SQL ambarları, güç panoları, geçici sorgular ve zamanlanmış raporlar için varsayılan altyapıdır.
  • ETL ve veri mühendisliği: SQL veya DataFrame API'siyle oluşturulan toplu işler daha hızlı taramalardan, birleştirmelerden, toplamalardan ve yazmalardan yararlanır. Yerel Parquet yazarı, özellikle Delta Lake, Apache Iceberg veya Parquet tablolarına veri alımında oldukça etkilidir.
  • Lakeflow Spark Bildirimli İşlem Hatları: İşlem hattı yapılandırmanızda Foton'un etkinleştirilmesi , Lakeflow Spark Bildirimli İşlem Hatlarının yürütülmesini hızlandırmaya yardımcı olur.
  • Akış: Foton, Delta veya Parquet havuzuna yazarken durum bilgisi olmayan akış desteği sağlar. Desteklenen kaynaklar Delta, Parquet, CSV, JSON, Kafka ve Kinesis'tir. Durum bilgisi içeren akış desteklenmemektedir.
  • Yapay zeka ve makine öğrenmesi: Foton, Spark SQL, DataFrames, özellik mühendisliği ve GraphFrames işlemleri için performansı artırır.

Foton etkinleştirme

Photon, sunucusuz bilgi işlemde, SQL veri ambarlarında ve sunucusuz Lakeflow Spark Bildirimsel İşlem Hatları ardışık düzenlerinde her zaman etkindir.

Klasik genel amaçlı hesaplama, iş hesaplaması ve klasik Lakeflow Spark Declarative Pipelines işlem hatları için Photon varsayılan olarak etkindir ve hesaplama oluştururken veya düzenlerken Performans altındaki Photon Hızlandırmasını Kullan onay kutusuyla açılıp kapatılabilir. Bkz . Foton hızlandırmayı kullanma. Bu kaynakları Clusters API veya Jobs API kullanarak oluşturursanız, runtime_engine değerini PHOTON olarak ayarlayarak Photon'u açıkça etkinleştirmeniz gerekir. İşlem Hatları API'sini kullanıyorsanız, photon değerini true olarak ayarlayın.

Foton etkinleştirmesi gerektiren özellikler

Aşağıdaki özellikler için Photon’un etkinleştirilmesi gerekir:

Desteklenen örnek türleri

Photon, sürücü ve çalışan düğümlerinde bir dizi örnek türünü destekler. Foton örneği türleri, DBU'ları Photon olmayan çalışma zamanını çalıştıran aynı örnek türünden farklı bir hızda kullanır. Foton örnekleri ve DBU tüketimi hakkında daha fazla bilgi için Azure Databricks fiyatlandırma sayfasına bakın.

Desteklenen işleçler, ifadeler ve veri türleri

Foton aşağıdaki işleçleri, ifadeleri ve veri türlerini kapsar. Sorgu desteklenmeyen bir işlem kullandığında, Photon yürütmenin bu bölümü için spark çalışma zamanına saydam bir şekilde geri döner.

İşleçler

  • Tarama (Parquet, Delta, CSV, JSON), Filtre, Projeksiyon
  • Karma Toplama/Birleştirme/Karıştırma
  • Nested-Loop Katılma
  • Null-Aware Anti Birleştirme
  • Spatial Join (ST_Intersects, ST_Contains, ST_Covers, ST_Equals, ST_Touches, ST_Within ve ST_DWithin destekleyen yayın ve karıştırılmış varyantlar)
  • Birleştirme, Genişletme, Skaler Alt Sorgu
  • Delta/Parquet Yazma Havuzu
  • Sırala, TopK, Sınır
  • Pencere Fonksiyonu

İfadeler

Bu kategoriler temsilidir, kapsamlı değildir. Her kategori içindeki tek tek işlevlerin sınırlamaları olabilir.

  • Karşılaştırma / Mantık
  • Aritmetik / Matematik
  • Koşullu (EĞER, DURUM, vb.)
  • String
  • Çevirir
  • İç içe yerleştirilmiş türlerde Min/Max/MinBy/MaxBy dahil toplamlar
  • Tarih/Zaman Damgası/Tarih Biçimi

Veri türleri

  • Bayt/Kısa/Tamsayı/Uzun
  • Boolean (Boole Mantığı)
  • Dize/İkili
  • Ondalık
  • Kayan/Çift
  • Tarih/Zaman Damgası
  • TimestampNTZ
  • Yapı
  • Dizi
  • Harita
  • Variant
  • Null
  • Geometri
  • Coğrafya
  • Sıralanmış dize

Foton kullanımını izleme

Aşağıdaki araçları kullanarak sorgunuzun ne kadarının Photon üzerinde çalıştığını izleyebilirsiniz:

  • Spark UI (klasik genel amaçlı ve işler için işlem): Spark UI'nin SQL/DataFrame sekmesinde, sorgu DAG görselleştirmesinde Photon işleçleri turuncu görünür. Standart Spark işleçleri mavi renkte görünür. Bu, sorgunuzun hangi bölümlerinin Photon'dan yararlanıp Spark çalışma zamanına geri döndüğünü belirlemenize yardımcı olur.
  • Sorgu profili (SQL ambarları ve sunucusuz işlem): Yürütme Ayrıntıları görünümü, Foton'da harcanan görev süresinin yüzdesini gösterir. Sorgu planı, Foton işleçlerini (mor) standart işleçlerden (gri) ayırır.

Sorgunun beklendiği gibi Photon kullanmadığını fark ederseniz, sorgunun Spark çalışma zamanına geri dönüşe neden olan desteklenmeyen işlemleri, UDF'leri veya veri biçimlerini kullanıp kullanmadığını denetleyin.

Sınırlamalar

  • İş yükünüz desteklenmeyen bir işleme isabet ederse, işlem kaynağı bu işlemin geri kalanı için saydam bir şekilde Spark çalışma zamanına geçer. Sorgunuz yine de doğru sonuçlar üretir.
  • Foton UDF'leri (Kullanıcı Tanımlı İşlevler), RDD API'lerini veya Veri Kümesi API'lerini desteklemez.
  • Durum bilgisi içeren akış desteklenmemektedir. Photon yalnızca durumsuz akışı destekler.
  • Foton normalde iki saniyenin altında çalışan sorguları iyileştirmez.