Zamanlama bağımlılıkları, DataWorks'te periyodik olarak zamanlanan düğümler arasındaki yukarı akış-aşağı akış ilişkilerini tanımlar. Bir zamanlama bağımlılığı yapılandırdığınızda sistem, tüm yukarı akış örnekleri başarılı olduktan sonra bir aşağı akış düğüm örneğini tetikler; bu sayede verilerin doğru sırada üretilip tüketilmesi sağlanır.
Çalışma mekanizması
Bir zamanlama bağımlılığı, bir düğümün yalnızca yukarı akış düğümleri başarılı olduktan sonra başlamasını belirtir. Yapılandırıldıktan sonra DataWorks zamanlama sistemi yürütme sırasını otomatik olarak düzenler. Bir aşağı akış örneği, yalnızca tüm yukarı akış örnekleri başarılı olduğunda ve zaman ile kaynak kullanılabilirliği gibi diğer koşullar karşılandığında tetiklenir.
DataWorks, yukarı akış düğümlerin çıktı adlarını aşağı akış düğümlerin giriş adlarıyla eşleştirerek bağımlılıklar kurar. Bir bağımlılık yapılandırmanın temel iş akışı aşağıdaki gibidir:
Yukarı akış düğümde çıktıyı yapılandırın: Yukarı akış düğüme, genellikle
project_name.table_namebiçiminde (örneğin,my_project.dim_user) bir çıktı adı ekleyin; bu, düğüm tarafından üretilen veri tablosunu temsil eder.Aşağı akış düğümde girişi yapılandırın: Aşağı akış düğümde, yukarı akış düğümün çıktı adını aratıp bunu giriş (bağımlılık) olarak seçin. Bu işlem bağımlılık ilişkisini kurar.
Otomatik ayrıştırma (isteğe bağlı): SQL tabanlı düğümler için DataWorks, kodunuzdaki
INSERTveSELECTdeyimlerini otomatik olarak ayrıştırarak giriş ve çıkış tablolarını belirleyebilir ve ardından bağımlılık yapılandırmasını oluşturabilir. Otomatik olarak ayrılmış yapılandırmayı manuel olarak da ayarlayabilirsiniz. Otomatik ayrıştırmayı destekleyen düğüm türlerinin listesi için bkz. Farklı düğüm türleri için otomatik ayrıştırma senaryoları.
Her düğüm en az bir çıktı adına sahip olmalıdır. Sistem, her düğüm için project_name.nodeID_out biçiminde varsayılan bir çıktı otomatik olarak oluşturur. Tüm özel çıktıları silseniz bile bu varsayılan çıktı korunur.
Kurallar ve sınırlamalar
Dağıtımdan sonra etkili olur: Bir zamanlama bağımlılığı, ancak düğümü gönderin ve Operation Center'a dağıttıktan sonra etkin hale gelir. Geliştirme ortamında yapılan yapılandırmalar üretim ortamına otomatik olarak eşitlenmez.
Yukarı akış ve aşağı akış zamanlama durumu: Bir bağımlılığın çalışması için hem yukarı akış hem de aşağı akış düğüm örneklerinin oluşturulmuş ve normal bir zamanlama durumunda olması gerekir. Bir düğüm hatalı yapılandırılmışsa veya bir yukarı akış örneği anormal durumdaysa düğüm izole olabilir ve normal şekilde zamanlanamaz.
Döngüsel bağımlılık kısıtlaması: Sistem, döngüsel bağımlılıkları (A, B'ye bağlıdır ve B, A'ya bağlıdır) hem doğrudan hem de dolaylı döngüler dahil olmak üzere yasaklar. Gönderim sırasında döngüsel bir bağımlılık tespit edilirse sistem dağıtımı engeller ve bir hata döndürür.
Bağımlılık türleri
DataWorks iki tür zamanlama bağımlılığını destekler: aynı döngü bağımlılığı ve çapraz döngü bağımlılığı; her biri farklı iş senaryolarına uygulanır.
Ön koşul kavramları
Bir döngü, bir düğümün zamanlama ayarları ile tanımlanır. Bu, bir düğümün zamanlama sıklığına göre belirlenen, ardışık iki zamanlanmış örneği arasındaki zaman farkını ifade eder. Örneğin, günlük zamanlanan bir görev için önceki döngü, önceki günden gelen örnektir. Saatlik zamanlanan bir görev için önceki döngü, önceki saatten gelen örnektir.
|
Zamanlama sıklığı |
Bir döngü |
|
Günlük, haftalık, aylık veya yıllık zamanlama |
1 gün Not
Haftalık, aylık veya yıllık zamanlanan görevler için örnekler yine de günlük bazda oluşturulur (zamanlanmayan günlerdeki örnekler kuru çalışma örnekleridir). Bu nedenle bağımlılık hesaplamaları gün granülerliğine dayanır ve önceki döngü örneği kuru çalışma durumunda olabilir. |
|
Saatlik zamanlama |
Saatlik aralık |
|
Dakika düzeyinde zamanlama |
Dakika düzeyinde aralık (örneğin, her 5 dakikada bir) |
İki bağımlılık türü
Örnek: Günlük zamanlanan bir A düğümü dim_user tablosunu üretir ve aşağı akıştaki B düğümü bu tabloyu tüketir:
Aynı döngü bağımlılığı: B'nin bugünkü örneği, çalışmadan önce A'nın bugünkü örneğinin başarılı olmasını bekler. Yani B, A tarafından aynı gün üretilen verileri tüketir.
Çapraz döngü bağımlılığı: B'nin bugünkü örneği, çalışmadan önce A'nın dünkü örneğinin başarılı olmasını bekler. Yani B, A tarafından önceki gün üretilen verileri tüketir.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Not: Aynı döngü bağımlılığı ve çapraz döngü bağımlılığı, aynı düğüm çifti arasında birlikte bulunabilir ancak her birinin iş anlamını net bir şekilde tanımlamanız gerekir. Yalnızca çapraz döngü bağımlılığına ihtiyacınız varsa sistem tarafından otomatik olarak oluşturulan aynı döngü bağımlılığını silmeyi unutmayın. Aksi takdirde aşağı akış örneği, çalışmadan önce yine de mevcut döngüdeki yukarı akış örneğinin tamamlanmasını bekler ve bu da beklenmeyen gecikmelere yol açar.
Zamanlama bağımlılığı yapılandırma kılavuzu
Tüm düğümler, otomatik zamanlama için Operation Center'a dağıtılmadan önce yukarı akış bağımlılıklarının yapılandırılmış olması gerekir. Veri bağımlılığı yoksa düğüm sanal bir düğüme veya kök düğüme bağlı olmalıdır. Bağımlılıkları yapılandırırken iş mantığını gözden geçirin, bağımlılık hedeflerini ve türlerini netleştirin ve sağlam, yapısı açık bir veri iş akışı oluşturmak için en uygun yapılandırma yöntemini seçin.
1. Bağımlılık hedeflerini belirleyin
Bağımlılıkları yapılandırmadan önce aşağıdaki hazırlıkları tamamlayın:
Soy ağacını inceleyin: Yukarı akış düğüm tarafından üretilen tabloların/bölümlerin, aşağı akış düğüm tarafından okunan tablolarla/bölümlerle eşleşip eşleşmediğini doğrulayın.
Zamanlama ayarlarını kontrol edin: Düğümün zamanlamasının, etkin süresinin, zamanlama parametrelerinin ve diğer ayarların doğru yapılandırıldığından emin olun çünkü zamanlama ayarları bağımlılık davranışını doğrudan etkiler.
Mevcut düğümün verilere nasıl bağlı olduğuna göre bağımlılık hedefini seçin.
|
Senaryo 1: Bir yukarı akış düğümün doğrudan çıktısına bağlı |
|
|
Senaryo 2: Zamanlanmamış yukarı akış verilerine bağlı (veri hazırlığına dayalı) |
|
|
Senaryo 3: Doğrudan veri bağımlılığı yok ancak iş mantığı ilişkisi mevcut |
|
2. Bağımlılık türünü seçin
Mevcut düğüm bir yukarı akış düğümün doğrudan çıktısına bağlıysa (Senaryo 1), bağımlı verilerin yukarı akış düğümün aynı döngüsünden mi yoksa önceki döngüsünden mi geldiğini ayrıca belirleyin.
Temel değerlendirme
Aşağı akış düğümün yukarı akış düğümden aslında hangi döngünün çıktısını okuduğunu belirleyin. Çoğu senaryoda bir düğümün belirli bir bölüme yazdığı veriler, zamanlama parametreleri tarafından dinamik olarak belirlenir. Zamanlama parametrelerinin nasıl değiştirildiğini anlamak için bkz. Zamanlama parametreleri. Aynı çalışma alanındaki bir düğüme bağlı olmanız gerekiyorsa onun zamanlama parametresi yapılandırmasını kontrol edin.
Nasıl doğrulanır
-
Aynı çalışma alanındaki düğüm: Yukarı akış düğümün kodundaki zamanlama parametrelerini kontrol edin. Parametre değiştirmeden sonra yazılan bölümün "bugün" mü yoksa "dün" mü olduğunu belirleyin.
Geliştirme ortamında yukarı akış düğümün zamanlama parametresi yapılandırmasını ve kod ayrıntılarını kontrol edin. Üretim ortamında örnek ayrıntılarındaki parametre değiştirme sonuçlarını kontrol edin.
-
Çalışma alanları arası düğüm: Yukarı akış tablonun bölüm bilgilerini ve değişiklik geçmişini görüntülemek için Data Map'i kullanın.
Her gün yazılan gerçek bölüm değerini onaylayın.
Türü seçin
Aşağı akış kodu, yukarı akış bölümünü mevcut gün/mevcut döngü için okur: Aynı döngü bağımlılığı.
Aşağı akış kodu, yukarı akış bölümünü önceki gün/önceki döngü için okur: Çapraz döngü bağımlılığı.
Saatlik/dakika düzeyindeki görevlerin eşzamanlılık olmadan seri yürütülmesi gerekir: Çapraz döngü bağımlılığı (kendine bağımlılık).
Soy ağacının doğru doğrulanmamasının sonuçları:
Eksik bağımlılık riski: Bir tablo soy ağacı mevcut ancak zamanlama bağımlılığı yapılandırılmamışsa aşağı akış görevi, yukarı akış örneği başarılı olmadan önce başlar ve bu durum eksik veya tamamlanmamış verilerle sonuçlanır.
Parametre uyumsuzluğu riski: Bir bağımlılık yapılandırılmış ancak bölüm parametreleri hizalanmamışsa (örneğin, yukarı akış bugünkü bölümü üretirken aşağı akış dünkü bölümü okursa) bu durum veri mantığı hatalarına ve kalite anormalliklerine yol açar.
3. Bağımlılığı yapılandırın
1. ve 2. adımlarda onaylanan bağımlılık hedeflerine ve türlerine göre uygun yapılandırma yöntemini seçerek bağımlılığı yapılandırın.
DataWorks, farklı zamanlama sıklıklarına sahip görevler arasındaki bağımlılıkları destekler. Aynı döngü/çapraz döngü bağımlılıkları ve zamanlama parametreleriyle birleştirildiğinde bu yaklaşım çok çeşitli zamanlama senaryolarını mümkün kılar. Ayrıntılar için bkz.:
4. Zamanlama bağımlılığını doğrulayın
Yapılandırmadan ve dağıtımdan önce bağımlılığı doğrulamanız gerekir:
|
Doğrulama yöntemi |
Açıklama |
|
Dağıtımdan önce mevcut zamanlama bağımlılığı yapılandırmasının beklentileri karşılayıp karşılamadığını önizleyin.
|
|
|
Gönderim sırasında: Kod ayrıştırma sonuçlarını karşılaştırın |
Mevcut sürümdeki bağımlılık değişikliklerinin beklentileri karşılayıp karşılamadığını onaylayın ve düğüm gönderimi sırasında üretim üzerindeki etkiyi değerlendirin. Otomatik ayrıştırma etkinleştirildiğinde üretim verilerinin normal çıktısını sağlamak için bir düğüm gönderirken zamanlama değişikliklerini ikinci kez onaylamanız gerekir. Bağımlılık değişikliklerinin üretim görevi veri çıktısını etkilemediğinden emin olmak için bu özelliği kullanın. |
|
Düğüm dağıtımından sonra Operation Center'da üretim zamanlanan görevin bağımlılıklarının beklentileri karşıladığını onaylayın.
|
Bağımlılıkların kaldırılmasının etkisi
Görev yinelemesi sırasında mevcut zamanlama bağımlılıklarını kaldırmanız veya ayarlamanız gerekebilir.
Bir bağımlılığı kaldırmadan önce görev izolasyonunu veya veri olaylarını önlemek için aşağı akış görevi zamanlama davranışı üzerindeki etkiyi değerlendirin.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Kullanım örnekleri
Çevrimdışı veri ambarı katmanlı yapılandırma: Her katmandaki verilerin sırayla üretilmesini sağlamak için ODS → DWD → DWS → ADS işlem hattı boyunca uçtan uca bağımlılıkları yapılandırın.
Standart ETL işlem hattı: Aşağı akış görevlerinin yürütmeden önce kesinlikle yukarı akış örneklerinin başarılı olmasını beklemesini ve böylece veri işleme işlem hattının sırasını ve tutarlılığını garanti etmesini sağlamak için aynı döngü bağımlılıklarını yapılandırın.
Sonraki gün (T+1) raporları: Bugünkü görevin dünkü tam iş verilerine bağlı olmasını sağlamak için çapraz döngü bağımlılıklarını (ofset -1) yapılandırın; bu sayede doğru sonraki gün veri analizi ve çıktısı mümkün olur.
Çoklu sıklıkta karışık toplama: Günlük granülerlikteki görevlerin saatlik granülerlikteki görevlerin tüm döngü örneklerine bağlı olmasını sağlamak için çapraz döngü bağımlılıklarını yapılandırın; bu sayede toplama öncesi alttaki verilerin tamamen hazır olması garanti edilir.
Harici veri hazırlığı tetikleyicisi: İş akışını tetiklemeden önce harici dosyaların ulaştığını veya arayüzlerin hazır olduğunu onaylamak için özel bağımlılıkları veya kontrol düğümlerini yapılandırın; bu sayede sistemler arası zamanlama koordinasyonu sağlanır.
Karmaşık iş akışı kontrolü: İşlem hattı yapısını basitleştirmek ve izleme görünürlüğünü artırmak için sanal düğümleri çok dallı bağımlılıkları toplamak amacıyla iş akışı kontrol kilometre taşları olarak kullanın.
SSS
Aşağıda tipik senaryolar yer almaktadır. Zamanlama bağımlılıkları hakkında daha sık sorulan sorular için bkz. Bağımlılık ilişkileri hakkında SSS.
-
Düğüm benzersizliği.
Düğümler geliştirme ve üretim ortamlarında farklı formlara sahiptir ancak benzersiz kalır: Aynı düğümün zamanlama bağımlılığı yapılandırması geliştirme ortamı ile üretim ortamı arasında farklılık gösterebilir. Yani aynı düğüm geliştirme ve üretim ortamlarında iki farklı forma sahip olabilir ancak düğüm benzersizdir.
Bir düğümü dağıtımı kaldırmadan önce her iki ortamda da aşağı akış bağımlılıklarını kaldırın: Düğüm benzersizliği nedeniyle aşağı akış görevlerinin verileri doğru şekilde almasını ve çalışmasını sağlamak için DataWorks'te bir yukarı akış görevinin dağıtımını kaldırmadan önce öncelikle aşağı akış düğümün zamanlama ayarlarında bağımlılığı kaldırmanız, ardından aşağı akış düğümün bağlı olması gereken yukarı akış düğümleri yeniden yapılandırmanız ve değişiklikleri gönderip dağıtmanız gerekir. Yukarı akış görevinin dağıtımı yalnızca bağımlılık hem geliştirme hem de üretim ortamlarında kaldırıldıktan sonra kaldırılabilir.
-
Örnek oluşturma yöntemiyle ilgili.
Düğümleri oluştururken yukarı akış ve aşağı akış düğümlerin aynı örnek oluşturma yöntemini kullandığından emin olun. Aksi takdirde örnek oluşturma yöntemlerindeki fark, yukarı akış düğümün mevcut gün için örnekler oluşturmasına neden olurken aşağı akış düğümün ertesi gün örnekler oluşturmasına yol açabilir ve bu durum aşağı akış örneklerinin izole örnekler haline gelmesine neden olabilir.
Mevcut bir düğümün zamanlamasını değiştirir ve dağıtımdan hemen sonra örnekler oluştur seçeneğini belirlerseniz düğümün zamanlama bağımlılıklarını değiştirdiğinizde zaten oluşturulmuş örnekler otomatik olarak silinmez. Düğüm dağıtımından sonra o günkü zamanlanmış örneklerin bağımlılıkları tutarsız hale gelebilir. Ayrıntılar için bkz. Anında örnek oluşturmanın o günkü zamanlanmış örnek bağımlılıkları üzerindeki etkisi.
-
OpenAPI kullanılarak bir iş güncellenirken 200'den fazla yukarı akış bağımlılığı olduğunu belirten hata.
Hata ayrıntıları: 'One file could not have more than 200 inputs 'One file could not have more than 200 inputs'.
Mevcut düğüm için doğrudan yukarı akış bağımlılığı sayısını azaltmak amacıyla Data Studio'da yukarı akış ve aşağı akış arasında sanal düğümler ekleyebilirsiniz. Sanal düğümlerin nasıl yapılandırılacağı hakkında ayrıntılı bilgi için bkz. Sanal düğüm oluşturun