Lakeflow işlem hatları nedir?

Lakeflow ardışık düzenleri, SQL ve Python kullanarak toplu ve akış veri ardışık düzenleri oluşturmak için bildirimsel bir çerçeve sunar. Temel kavramları, verilerin otomatik orkestrasyon ve artımlı güncellemelerle işlenmesini sağlamak için birlikte çalışan işlem hatları, akışlar, akış tabloları, maddileştirilmiş görünümler ve alıcılardır.

Lakeflow işlem hatları Apache Spark™ Bildirimli İşlem Hatlarını (SDP) genişletir. SDP ve Lakeflow işlem hatlarıyla karşılaştırması hakkında daha fazla bilgi edinmek için bkz. Apache Spark Bildirimli İşlem Hatları.

Tip

Boru hatlarına yeni misiniz? Yaşam döngülerinin tüm aşamalarında işlem hatlarını nasıl ve neden kullandığınızı, ayrıca her aşamadaki görevlere yönelik bağlantıları anlamak için Lakeflow işlem hatları nasıl kullanılır içeriğiyle başlayın.

Note

Lakeflow işlem hatları Premium planı gerektirir. Daha fazla bilgi için Databricks hesap ekibinize başvurun.

İşlem hatlarının avantajları nelerdir?

Databricks Runtime üzerinde, Lakeflow Jobs aracılığıyla manuel orkestrasyon kullanarak Apache Spark ve Spark Structured Streaming API’leriyle veri mühendisliği süreçleri geliştirmeye kıyasla, işlem hatlarının bildirim temelli yapısı aşağıdaki avantajları sağlar:

  • Otomatik düzenleme: İşlem hatları işleme adımlarını ("akışlar" olarak adlandırılır) en yüksek paralellikle doğru sırada çalıştırır ve Spark görevinden akışa ve işlem hattının tamamına kadar geçici hataları aşamalı olarak yeniden dener.
  • Bildirim temelli işleme: Bildirim temelli işlevler yüzlerce satırlık el ile Spark ve Yapılandırılmış Akış kodunu birkaç satıra indirir. AUTO CDC API, sıra dışı olaylar veya watermark'lar gibi akış kavramları için manuel kod yazmaya gerek kalmadan, SCD Tür 1 ve Tür 2 dahil CDC olaylarını işler.
  • Artımlı işleme: Bir artımlı işleme motoru, somutlaştırılmış görünümleri güncel tutar: dönüşüm mantığını toplu iş semantiğiyle yazarsınız ve motor, mümkün olduğunda yalnızca yeni veya değiştirilen kaynak veriyi yeniden işler.

Temel kavramlar

Aşağıdaki diyagramda işlem hatlarının en önemli kavramları gösterilmektedir.

İşlem hatlarının temel kavramlarının birbiriyle çok yüksek düzeyde nasıl ilişkilendirildiğini gösteren diyagram

Veri Kümeleri

İşlem hattı, her biri farklı işleme semantiğine sahip üç tür veri kümesi oluşturur:

Veri kümesi türü Kayıtlar nasıl işlenir?
Akış tablosu Her kayıt, yalnızca ekleme kaynağı varsayılarak tam olarak bir kez işlenir. Akış tabloları, sürekli büyüyen verilerin alımı ve artımlı işlenmesi için uygundur.
Gerçekleştirilmiş görünüm Sonuçlar, verilerin geçerli durumunu yansıtmak için gerektiğinde yeniden hesaplanır. Gerçekleştirilmiş görünümler, birden çok aşağı akış veri kümesi tarafından kullanılan dönüştürmeler, toplamalar veya işlem öncesi sonuçlar için uygundur.
View İsteğe bağlı olarak değerlendirildi, kalıcı değil. Ara dönüştürmeler ve katalogda yayımlanması gerekmeyen denetimler için görünümleri kullanın.

Akış tablosu, aynı zamanda bir akış hedefi olan, Unity Catalog tarafından yönetilen bir tablo türüdür. Akış tablosunda bir veya daha fazla akış akışı (Ekle, AUTO CDC) yazılabilir. Akış akışlarını hedef akış tablosundan açıkça ve ayrı olarak veya bir akış tablosu tanımının parçası olarak örtük olarak tanımlayabilirsiniz.

Gerçekleştirilmiş görünüm aynı zamanda Unity Catalog tarafından yönetilen tablonun bir türüdür ve bir toplu iş hedefidir. Gerçekleştirilmiş görünümde bir veya daha fazla görünüm akışı yazılabilir. Gerçekleştirilmiş görünümler, akış tablolarından farklıdır ve akışları her zaman örtük olarak gerçekleştirilmiş görünüm tanımının bir parçası olarak tanımlarsınız.

Ayrıntılar için bkz . Akış tabloları ve Gerçekleştirilmiş görünümler.

Görünümler, gerçekleştirilmiş görünümler ve akış tabloları ne zaman kullanılır?

İşlem hattı sorguları uygularken, kullanım örneğiniz için en uygun veri kümesi türünü seçin.

Şunlar için bir görünüm kullanmayı değerlendirin:

  • Büyük veya karmaşık bir sorguyu daha kolay yönetilebilir sorgulara bölün.
  • Beklentileri kullanarak ara sonuçları doğrulayın.
  • Kalıcı olması gerekmeyen sonuçlar için depolama ve işlem maliyetlerini azaltın. Tablolar materyalize edildiğinden, ek hesaplama ve depolama kaynakları gerektirir.

Aşağıdaki durumlarda materyalize edilmiş bir görünüm kullanmayı göz önünde bulundurun.

  • Birden çok alt sorgu tabloyu tüketir. Gerçekleştirilmiş görünüm sonuçlarını önbelleğe aldığı için aşağı akış sorguları, her erişimde sorguyu yeniden hesaplama yerine önceden derlenmiş sonuçları okur.
  • Diğer ardışık düzenler, işler veya sorgular tabloyu tüketir. Somutlaştırılmış görünüm bir Unity Catalog tablosu olarak somutlaştırıldığı için, onu tanımlayan işlem hattının dışındaki tüketiciler bu görünümü sorgulayabilir. Görünümler somutlaştırılmaz, bu nedenle bunları yalnızca aynı ardışık düzen içinde kullanabilirsiniz.
  • Geliştirme sırasında bir sorgunun sonuçlarını incelemek istiyorsunuz. Gerçekleştirilmiş bir görünüm gerçekleştirildiğinden ve işlem hattının dışında sorgulanabildiği için, geliştirme sırasında hesaplamaların doğruluğunu doğrulayabilirsiniz. Doğruladıktan sonra, gerçekleştirme gerektirmeyen sorguları görünümlere dönüştürün.
  • Sorgunuz toplamalar veya birleştirmeler gerçekleştirir veya kaynak veriler yalnızca büyümek yerine güncelleştirmeler ve silmeler nedeniyle değişebilir. Gerçekleştirilmiş görünüm, sonuçlarının kaynak verilerin geçerli durumuyla tutarlı kalmasını sağlarken, akış tablosu yalnızca ekleme kaynakları için tasarlanmıştır ve her kaydı tek bir kez işler.

Aşağıdaki durumlarda akış tablosu kullanmayı göz önünde bulundurun:

  • Sürekli veya artımlı olarak büyüyen bir veri kaynağında sorgu tanımlanır.
  • Sorgu sonuçları artımlı olarak hesaplanmalıdır.
  • İşlem hattı için yüksek aktarım hızı ve düşük gecikme süresi gerekir.

Note

Akış tabloları her zaman akış kaynaklarına göre tanımlanır. Güncellemeleri CDC akışlarından uygulamak için AUTO CDC ... INTO ile yayın kaynaklarını da kullanabilirsiniz. Bkz AUTO CDC API'leri: İşlem hatlarıyla değişiklik verilerini yakalamayı basitleştirin.

Flows

Akış, işlem hatlarındaki temel veri işleme kavramıdır ve hem akış hem de toplu iş semantiğini destekler. Akış bir kaynaktan verileri okur, kullanıcı tanımlı işleme mantığını uygular ve sonucu bir hedefe yazar. İşlem hatları Spark Yapılandırılmış Akış ile aynı akış akışı türünü (Ekleme, Güncelleştirme, Tamamlama) paylaşır. (Şu anda yalnızca Ekleme ve Güncelleştirme akışları kullanıma sunulur.) Daha fazla ayrıntı için bkz. Yapılandırılmış Akış'taki çıkış modları.

İşlem hatları ek akış türleri de sağlar:

  • AUTO CDC , Lakeflow işlem hatlarında sıra dışı CDC olaylarını işleyen ve hem SCD Tür 1 hem de SCD Tür 2'yi destekleyen benzersiz bir akış akışıdır. Otomatik CDC, SDP'de kullanılamaz.
  • Gerçekleştirilmiş görünüm , mümkün olduğunda yalnızca kaynak tablolardaki yeni verileri ve değişiklikleri işleyen işlem hatlarında toplu iş akışıdır.

Ayrıntılar için bkz. Lakeflow işlem hattı akışlarıyla verileri artımlı olarak yükleme ve işleme.

Sinks

Havuz, işlem hattı için bir akış hedefidir ve Delta tablolarını, Apache Kafka konularını, Azure EventHubs konularını ve özel Python veri kaynaklarını destekler. Havuza bir veya daha fazla akış akışı (Ekle, Güncelleştir) yazılabilir.

Ayrıntılar için bkz. Lakeflow işlem hatlarında havuzlar.

Boru Hatları

İşlem hattı, geliştirme ve yürütme birimidir ve tanımladığınız akışlar, akış tabloları, gerçekleştirilmiş görünümler ve havuzlar için kapsayıcıdır. İşlem hattı kaynak kodunuzda bu nesneleri tanımlayıp işlem hattını çalıştırarak bir işlem hattı oluşturursunuz. İşlem hattınız çalışırken, tanımlı nesnelerinizin bağımlılıklarını analiz eder ve bunların yürütme ve paralelleştirme sırasını otomatik olarak düzenler.

Ayrıntılar için bkz. İşlem hatları nedir?.

Ayrıca, Azure Databricks’in işlem hattını sizin adınıza yönettiği bir Lakeflow işlem hattı dışında bağımsız gerçekleştirilmiş görünümler ve akış tabloları da tanımlayabilirsiniz. İki yaklaşımı karşılaştırmak için Bağımsız işlem hatları ile Lakeflow işlem hatları bölümüne bakın.

Bir işlem hattı tetiklemeli veya sürekli modda çalışır; bu mod, kullanılabilir verilerin yenilenip yenilenmeyeceğini ve yeni veriler geldikçe tabloların durdurulacağını mı yoksa güncel tutulacağını mı belirler. İki modu karşılaştırmak için Tetiklemeli ve sürekli işlem hattı modu karşılaştırması bölümüne bakın.

Veri alımı

İşlem hatları, Azure Databricks'te kullanılabilen tüm veri kaynaklarını destekler. Databricks, çoğu veri akışı senaryosu için akış tablolarının kullanılmasını önerir. Bulut nesne depolamadaki dosyalar için Otomatik Yükleyici artımlı ve etkili yükleme sağlar. Akış verileri için işlem hatları, Apache Kafka, Azure Event Hubs, Amazon Kinesis ve Google Pub/Sub gibi mesaj veri yollarından doğrudan veri alabilir. Bkz . İşlem hatlarına veri yükleme.

Veri kalitesi

Beklentiler, verileri işlem hattından geçerken doğrulayan veri kümelerindeki isteğe bağlı yan tümcelerdir. Bir beklentiyi SQL boole kısıtlaması olarak tanımlar ve bir kayıt başarısız olduğunda ne olacağını belirtirsiniz: uyarın, kaydı bırakın veya güncelleştirmeyi başarısız yapın. Bkz. İşlem hattı beklentileriyle veri kalitesini yönetme.

Delta entegrasyonu

İşlem hatları tarafından oluşturulan ve yönetilen tüm tablolar Delta tablolarıdır. ACID işlemleri, zaman yolculuğu ve şema zorlaması dahil olmak üzere Delta Lake ile aynı güvenceleri sunar. İşlem hatları, ek tablo özellikleri ekler ve tahmine dayalı iyileştirme kullanarak OPTIMIZE ve VACUUM işlemleri dahil otomatik bakım gerçekleştirir. Bkz. Azure Databricks'da Delta Lake nedir?.

Ek kaynaklar