Bir boru hattını geri sarma ve yeniden oynatma

Important

Bu özellik Beta sürümündedir. Bunu etkinleştirmek için, işlem hattınızı Önizleme kanalına ayarlayın ve pipelines.rewind.betaEnabled işlem hattı yapılandırmasını true olarak ayarlayın. Bkz . Gereksinimler.

Kötü bir dönüşüm, hatalı biçimlendirilmiş bir kaynak kayıt kümesi veya beklenmedik bir şema değişikliği, bir işlem hattının tablolarının bilinen bir zaman noktasından itibaren hatalı olmasına neden olabilir. Geri sarma, boru hattını sorundan önceki bir noktaya döndürür, böylece bir düzeltme uygulayabilir ve sadece etkilenen verileri yeniden işleyebilirsiniz.

Geri sarma işlemi, tablo sürümlerini, akış kaynağı ofsetlerini ve operatör durumunu birlikte geri yükler; böylece yeniden oynatma işlemi kayıtları atlamaz veya yinelenen kayıtlar yazmaz. Üç işlem verileri yeniden işler ve farklı sorunları çözerler:

  • Geri Sarma, hatalı bir dönüşüm, bozuk giriş verisi veya hatalı bir kod dağıtımından sonra olduğu gibi, bilinen bir andan itibaren hatalı veri yazmış kurtarılabilir bir iş hattı içindir. Tablo verilerini, kaynak ofsetlerini ve operatör durumunu problemden önceki bir noktaya geri getirir ve sadece etkilenen verileri yeniden işleyerek operatör durumunu korur. O noktadan önceki veriler dokunulmaz.
  • Tam yenileme , mevcut tüm kaynak verilerinden bir tabloyu yeniden oluşturur ve mevcut içeriğini atar. Her şeyi sıfırdan yeniden hesaplamak için veya bir kod değişikliği mevcut durumla uyumlu olmadığında bunu kullanın.
  • Kontrol noktası sıfırlaması, geçersiz veya bozulmuş ya da kontrol noktası ile uyumlu olmayan bir kod değişikliğiyle engellenen bir boru hattını geri kazanır. Kontrol noktasını sıfırlar ve tablonun geçerli içeriğini koruyarak ilerlemeyi sürdürür. Rewind bu durumları kurtaramaz, çünkü Structured Streaming uyumluluk kurallarını gevşetmez.

Requirements

Requirement Detail
Channel Boru hattı Preview kanalında olmalı. Bkz . İşlem hatlarını yapılandırma.
Configuration pipelines.rewind.betaEnabled işlem hattı yapılandırmasını true olarak ayarlayın, ardından işlem hattını bir kez çalıştırın. Her akış, yalnızca zaman yolculuğunun etkin olduğu bir güncellemeyi tamamladıktan sonra geri sarılabilir hale gelir.
Boru hattı modu Tetiklenen ve sürekli boru hatları. Gerçek zamanlı mod desteklenmiyor.
Sources Delta tabloları, akış tabloları, Kafka ve Auto Loader.
Hedefler Akış tabloları ve somutlaştırılmış görünümler.
Flows Akış akışları ve AUTO veri yakalama (CDC) akışlarını değiştirir; bunlar arasında SCD Tip 1 ve SCD Tip 2 hedefleri bulunur. Toplulaştırmalar, birleştirmeler ve tekilleştirme gibi durumlu sorgular desteklenir.

Boru hattındaki her akış bu gereksinimleri karşılamalıdır. pipelines.rewind.betaEnabled true olsa da, uygun olmayan bir akış içeren bir işlem hattının güncellemeleri başarısız olur. Her akışı etkinleştirmeden önce yukarıdaki gereksinimleri karşıladığından emin olun.

Note

true değeri pipelines.rewind.betaEnabled olarak ayarlanmış bir işlem hattı, Geçerli kanal geri sarmayı destekleyen bir çalışma zamanına güncellenene kadar Geçerli kanala geri dönemez.

Geri sarma ve yeniden oynatma nasıl çalışır

Geri sarma ve tekrar oynatma ayrı adımlardır.

Geri sarma , her tabloyu geri sarma noktasında tuttuğu versiyona geri getirir ve her akışın ne kadar uzağa gittiğini takip eden akış kontrol noktalarını sıfırlar. Dönüşümleriniz çalışmaz ve hiçbir kaynak veri yeniden işlenmez.

Bir dahaki pipeline çalıştığında tekrar oynatılır. Mevcut işlem hattı tanımını kullanarak geri sarım noktasından itibaren yeniden işler, güncel duruma ulaşır ve ardından normal artımlı işlemeye devam eder. Rewind işlem hattını başlatmaz, bu nedenle hazır olduğunuzda kendiniz başlatın.

Boru hattı, saatte bir olarak otomatik olarak geri sarma noktaları üretir ve bunları 7 gün boyunca korur. Az önce oluşturduğunuz bir işlem hattında, ilk çıktısını üretinceye kadar geri alınacak bir şey yoktur.

Bir veri kümesini geri sarmak, aynı iş hattında ondan sonraki her şeyi de geri sarar. Rewind bir işlem hattını kapsar. Diğer boru hatlarıyla veya aynı tabloların harici okuyucularıyla koordinasyon sağlamaz, bu yüzden bunları ayrı ayrı yönetin.

Kullanıcı arayüzünü kullanarak bir işlem hattını geri alın

Kullanıcı arayüzü ve Genie, Rewind’i kullanmanın başlıca yollarıdır. Arayüz, onaylamadan önce kullanılabilir geri sarma noktalarını listeler ve her birinin hangi veri kümelerini etkilediğini gösterir.

  1. İşlem hattı sayfanızda, Chevron down icon.Chevron down simgesineİşlem hattını çalıştır seçeneğinin yanındaki düğmesine tıklayın, ardından İşlem hattını geri sar seçeneğine tıklayın.
  2. Bir geri sarma noktası seçin veya Düne Geri Sar veya En Güncel Noktaya Geri Sarma gibi bir kestirme kullanın. Nextöğesine tıklayın.
  3. Hangi tabloları dahil edeceğinizi seçin. Veri setlerini pipeline grafiğinde seçmek için Grafik görünümünü veya bir tablodan seçmek için Liste görünümünü kullanın. Tüm kontrol noktalarını sıfırla seçeneğini seçili bırakın (varsayılan); böylece kaynak ofsetleri ve operatör durumu tablo verileriyle birlikte geri yüklenir ve işlem hattı geri sarma noktasından itibaren yeniden işlenir. Örneğin, bir tablonun içeriğinin geri yüklenmesini istediğinizde ama etkilenen veriyi yeniden işlemek istemediğinizde, sadece tablo verilerini yeniden yüklemek için temizleyin. Bu ayar, bir tablo ve onun üst akışları için aynı olmalıdır; ayrıca Kafka veya Auto Loader gibi harici bir kaynaktan okuma yapan bir akış için kaldırılamaz. Nextöğesine tıklayın.
  4. Geri sarma noktasını, kontrol noktası ayarını ve etkilenen veri setlerini gözden geçirin, ardından Geri Sar'a tıklayın.

Verileri tekrar oynatmak için boru hattını başlatın.

Tekrar tekrar geri sarabilirsiniz. Her geri sarma bir öncekinin yerini alıyor, böylece başarısız bir tekrar oynatmadan sonra başka bir yere geri sararak toparlanabilirsiniz.

Geri sardıktan sonra

Tekrar oynatma hatasında, boru hattı yeniden sarılır ama durur. Kodu veya kaynak verilerini düzeltin ve yeniden denemek için işlem hattını başlatın ya da başka bir noktaya geri sarın. Boru hattı kendiliğinden geri alınmaz ve hatalar standart boru hattı tanılama bilgileri ile olay günlüğü aracılığıyla görünür olur.

Tekrar oynatma yalnızca mevcut boru hattı tanımı geri dönüştürülmüş durumla uyumlu ise başarılı olur; geri sarma Yapılandırılmış Akış uyumluluk kurallarını gevşetmez. Hangi değişikliklerin uyumlu olduğu için bkz. Yapılandırılmış Akış sorgularındaki değişiklikler türleri. Maddeleştirilmiş görünümler toplu anlam sistemini takip eder ve daha geniş şema değişikliklerini tolere eder, ancak bir bağımlılık uyumsuzsa yine de başarısız olur.

Yarı yolda başarısız olan bir geri sarma, boru hattının kısmen geri sarılmasına neden olabilir. İki seçeneğiniz vardır:

  1. Aynı noktaya ya da farklı bir noktaya yeniden sararsanız, işlem hattı o noktada yakınsar.
  2. Eksik geri sarma işlemine rağmen işlem hattını normal bir güncelleme başlatmaya zorlamak için pipelines.allowUpdateAfterIncompleteRewind değerini true olarak ayarlayın ve işlem hattını yeniden başlatın.

Ne kadar geri sarabilirsin

Geri alma noktaları 7 gün süreyle saklanır. Bu pencere içinde, ihtiyaç duyduğu veri zaten kaldırılmışsa geri sarma başarısız olur. Geri sarmaya güvenmeden önce bunları kontrol edin:

  • VACUUM ya da masalarınızın üzerinde kısa bir delta.deletedFileRetentionDuration. Bkz. Tablo geçmişiyle çalışma.
  • Kaynak saklama süresi, geri sarmak istediğiniz aralıktan daha kısaysa; örneğin verileri yalnızca bir gün saklayan bir Kafka topic’i gibi.

Birden fazla kaynağa sahip veya uzun bağımlılık zincirleri içeren işlem hatları, daha uzun saklama süresi gerektirir; çünkü her tablo ve denetim noktasının tutarlı bir noktaya kadar geri gidebilmesi gerekir.

Limitations

  • Rewind, bir işlem hattını tam yenilemeden önceki bir noktaya geri yükleyemez.
  • Geri sarma noktaları 7 gün boyunca saklanır ve o noktaya ulaşmak için gereken tablo geçmişi veya kaynak veriler, örneğin VACUUM ya da kısa kaynak saklama süresi nedeniyle, zaten kaldırılmışsa geri sarma işlemi başarısız olur. Ne kadar geriye sarabileceğinize bakın.
  • Gerçek zamanlı mod desteklenmiyor.
  • DSv2 veya Python veri kaynağı API'leriyle oluşturulan Kinesis, Pulsar, Google Pub/Sub ve özel kaynaklar kaynak olarak desteklenmez.
  • Harici lavabolar ve özel lavabolar desteklenmez, bunlar arasında ile create_sink()tanımlanan lavabolar dahil. İşlem hatlarında sink kullanma konusuna bakın.
  • Satır filtresi veya sütun maskesi kullanan akış tabloları geri alınamaz. Bkz. Satır filtrelerini ve sütun maskelerini el ile uygulama.
  • Durumlu geri sarma, boru hatlarının varsayılan olarak kullandığı RocksDB durum deposunu gerektirir. Farklı bir durum deposuyla yapılandırılmış bir akış için geri alma işlemi başarısız olur.
  • Bazı AUTO CDC akış tablolarının geri alınabilmesi için önce yenilenmesi gerekir. Boru hattı, geri sarma talebini istediğinizde size haber verir.
  • Somutlaştırılmış görünümler, geri sarma işleminden sonra artımlı olarak yenilenmek yerine tamamen yeniden hesaplanabilir. Bkz. gerçekleştirilmiş görünümler için artımlı yenileme.
  • Rewind, tek bir işlem hattı için geçerlidir ve harici okuyucularla veya aynı tabloları okuyan diğer işlem hatlarıyla eşgüdüm sağlamaz.
  • Rewind, işlem hattı kodunu, işlem hattı yapılandırmasını veya etiketler ve izinler gibi Unity Catalog nesne meta verilerini geri yüklemez.

Ek kaynaklar