Unity Kataloğunu Yapılandırılmış Akışla Kullanma

Bu sayfada, Azure Databricks'da artımlı ve akış iş yüklerinizin veri idaresini yönetmek için Unity Kataloğu ile Yapılandırılmış Akış'ın nasıl kullanılacağı gösterilmektedir.

Unity Kataloğu hangi Yapılandırılmış Akış işlevini destekler?

Unity Kataloğu, Azure Databricks'da kullanılabilen Yapılandırılmış Akış kaynakları ve havuzları için herhangi bir açık sınır eklemez.

Unity Catalog ve Structured Streaming ile şunları yapabilirsiniz:

  • Hem yönetilen hem de harici tablolardan veri akışı sağlayın. Bkz. Delta Lake ve Apache Iceberg için Unity Catalog tarafından yönetilen tablolar.
  • Nesne depolama URI'lerini kullanarak verilerle etkileşim kurmak için Unity Kataloğu tarafından yönetilen dış konumları kullanın.
  • Tablo adlarını veya dosya yollarını kullanarak dış tablolara yazın. Yönetilen tablolarla etkileşime geçmek için tablo adını kullanmanız gerekir.

Yapılandırılmış Akış denetim noktaları için Unity Kataloğu tarafından yönetilen dış konumlardaki yolları kullanmanız gerekir. Depolamayı Unity Kataloğu ile güvenli bir şekilde bağlama hakkında daha fazla bilgi edinmek için bkz. Unity Kataloğu'nu kullanarak bulut nesne depolamasına bağlanma.

Unity Kataloğu görünümünü akış olarak okuma

Databricks Runtime 14.3 LTS ve üzerinde, Unity Kataloğu'na kayıtlı görünümlerden okumak için Yapılandırılmış Akış'ı kullanabilirsiniz. Temel tablolar Delta Lake biçimini kullanmalıdır. Diğer sınırlamalar için bkz. Sınırlamalar.

Yapılandırılmış Akış ile bir görünümü okumak için, görünümün .table() tanımlayıcısıyla yöntemini kullanın:

df = (spark.readStream
  .table("demoView")
)

Kullanıcıların hedef görünümde ayrıcalıkları olmalıdır SELECT .

Görünüm tanımını görünümde başvuruda bulunan tabloları eklemek veya değiştirmek için değiştirirseniz, aynı akış denetim noktasını kullanamazsınız.

Desteklenen akış seçenekleri

Akış okuyucu, belirtilen görünüm için temel delta lake tablolarının dosyalarına ve meta verilerine seçenekler uygular.

Aşağıdaki seçenekler desteklenir:

  • maxFilesPerTrigger
  • maxBytesPerTrigger
  • ignoreDeletes
  • skipChangeCommits
  • withEventTimeOrder
  • startingTimestamp
  • startingVersion

UNION ALL içeren görünümlerdeki okuma işlemleri, withEventTimeOrder ve startingVersion seçeneklerini desteklemez.

gibi readChangeFeeddesteklenmeyen seçenekler sağlarsanız Spark şu özel durumu oluşturur:

AnalysisException: [UNSUPPORTED_STREAMING_OPTIONS_FOR_VIEW.UNSUPPORTED_OPTION] Unsupported for streaming a view. Reason: option <option> is not supported.

Desteklenen akış işlemleri

Desteklenen işlemler şunlardır:

Operation Description Operator Example
Proje Sütun düzeyinde izinleri denetler SELECT... FROM... CREATE VIEW project_view AS SELECT id, value FROM source_table
Filtre Satır düzeyi izinleri denetler WHERE... CREATE VIEW filter_view AS SELECT * FROM source_table WHERE value > 100
Tümünü birleştir Birden çok tablodan alınan sonuçlar UNION ALL CREATE VIEW union_view AS SELECT id, value FROM source_table1 UNION ALL SELECT * FROM source_table2

Desteklenmeyen işlemler; toplulaştırmaları, sıralamayı ve table_changes() gibi tablo değerli işlevleri içerir. Tablo değerli işlevler hakkında ayrıntılı bilgi için bkz. Tablo değerli işlev (TVF) çağırma.

Desteklenmeyen bir işlemle bir görünümden akış yaparsanız Spark şu özel durumu oluşturur:

UnsupportedOperationException: [UNEXPECTED_OPERATOR_IN_STREAMING_VIEW] Unexpected operator <operator> in the CREATE VIEW statement as a streaming source. A streaming view query must consist only of SELECT, WHERE, and UNION ALL operations.

Sınırlama