Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Databricks, ANSI standart birleştirme söz dizimlerini destekler. Bu makalede toplu işlem ve akış işleme ile birleştirmeler arasındaki farklar açıklanmaktadır.
Not
Databricks, UNION, INTERSECTve EXCEPTküme işleçleri için standart söz dizimini de destekler. Bkz. Küme işleçleri.
Akış ve toplu birleşimler arasındaki farklar
Azure Databricks'te birleştirmeler durum bilgisi olan veya durum bilgisi olmayan birleşimlerdir.
Tüm toplu birleşimler durum bilgisi olmayan birleşimlerdir. Sonuçlar hemen işlenir ve sorgu çalıştırıldığında verileri yansıtır. Sorgu her yürütülürken, yeni sonuçlar belirtilen kaynak verilere göre hesaplanır. Bkz. Batch birleşimleri.
İki akış veri kaynağı arasındaki birleştirmeler durum bilgisi vardır. Durum bilgisi olan birleştirmelerde Azure Databricks, veri kaynakları ve sonuçlar hakkındaki bilgileri izler ve sonuçları yinelemeli olarak güncelleştirir. Durum bilgisi olan birleşimler, çevrimiçi veri işleme için güçlü çözümler sağlayabilir, ancak etkili bir şekilde uygulanması zor olabilir. Çıkış moduna, tetikleyici aralığına ve filigrana bağlı olarak karmaşık işlem semantiğine sahiptir. Bkz . Akış akışı birleştirmeleri.
Akış-statük birleşimleri durumsuzdur, ancak artımlı bir veri kaynağını (olgu tablosu gibi) statik bir veri kaynağıyla (yavaş değişen bir boyut tablosu gibi) birleştirmek için iyi bir seçenek sunar. Sorgu her yürütülürken her iki taraftan tüm kayıtları birleştirmek yerine, yalnızca akış kaynağından yeni alınan kayıtlar statik tablonun geçerli sürümüyle birleştirilir. Bkz . Akış statik birleşimleri.
Toplu birleşimler
Azure Databricks iç, dış, yarı, anti ve çapraz birleşimler dahil olmak üzere standart SQL birleştirme söz dizimlerini destekler. Bkz. JOIN.
Not
Databricks, iç birleşim sonuçlarının kademeli hesaplamasını iyileştirmek için gerçekleştirilmiş görünüm kullanımını önerir. Bkz Gerçekleştirilmiş görünümler.
Akış akışı birleşimleri
İki akış veri kaynağına katılmak, durum bilgilerini yönetme ve sonuç hesaplaması ve çıkışı hakkında mantık yürütme konusunda önemli zorluklara neden olabilir. Databricks, bir akış-akış eklemini uygulamadan önce, su işaretlerinin durum yönetimini nasıl etkilediğini de içeren, duruma dayalı akış için operasyonel semantik konusunda güçlü bir anlayış geliştirilmesini önerir. Aşağıdaki makalelere bakın:
- Durum bilgisi olan akış nedir?
- Veri işleme eşiklerini denetlemek için filigranları uygulama
- Akış birleştirmeleri
Databricks, tüm akış-akış birleşimlerinin her iki tarafı için filigranların belirtilmesini önerir. Aşağıdaki birleştirme türleri desteklenir:
- İç birleşimler
- Sol dış birleşimler
- Sağ dış birleşimler
- Tam dış birleşimler
- Sol yarı birleşimler
Akış akışı birleşimleriyle ilgili Apache Spark Yapılandırılmış Akış belgelerine bakın.
Akış statik birleşimleri
Not
Akış statik birleşimleri için açıklanan davranış, statik verilerin Delta Lake kullanılarak depolandığını varsayar.
Akış statik birleşimi, durum bilgisi olmayan birleştirme kullanarak Delta tablosunun (statik veriler) en son geçerli sürümünü veri akışına ekler.
Azure Databricks bir akış statik birleşiminde mikro toplu verileri işlediğinde, statik Delta tablosundaki verilerin en son geçerli sürümü geçerli mikro toplu iş içinde bulunan kayıtlarla birleşir. Birleştirme durum bilgisi gerektirmediğinden filigran yapılandırmanız gerekmez ve düşük gecikme ile sonuçları işleyebilirsiniz. Birleştirmede kullanılan statik Delta tablosundaki veriler yavaş değişiyor olmalıdır.
Aşağıdaki örnekte bu desen gösterilmektedir:
streamingDF = spark.readStream.table("orders")
staticDF = spark.read.table("customers")
query = (streamingDF
.join(staticDF, streamingDF.customer_id==staticDF.id, "inner")
.writeStream
.option("checkpointLocation", checkpoint_path)
.table("orders_with_customer_info")
)
Azure Databricks'te birleştirme ipuçları
Apache Spark, aralık birleştirmeleri ve eğme birleşimleri için birleştirme ipuçları belirtmeyi destekler. Azure Databricks bu birleşimleri otomatik olarak iyileştirdiğinden, eğme birleştirmeleri için ipuçları gerekli değildir. bkz. İpuçları
Birleştirme performansı düşükse ve eşitsizlik birleşimleri gerçekleştiriyorsanız, aralık birleştirmeleri için ipuçları yararlı olabilir. Zaman damgası aralıklarında veya kümeleme kimlikleri aralığında birleştirme örnekleri verilebilir. Bkz. Aralık birleştirme optimizasyonu ve Azure Databricks'te birleştirme performansını iyileştirme.