Moving iç içe tabloları
Qlik Talend Data Integration, iç içe yerleştirilmiş tablolar veya tanımlı türler olan sütunların yer aldığı Oracle tablolarının moving öğelerini destekler. Bu fonksiyonu etkinleştirmek için connector ayarlarında İç içe tabloları destekle seçeneğini belirtin.
Veri görevi, Oracle iç içe tablolarının hedef tablolarını, benzersizlik kısıtlaması olmayan normal tablolar olarak oluşturur. Anlamlı veriler elde etmek için büyük olasılıkla üst ve alt tabloları birleştirmeniz gerekeceğinden, hedef alt tablonun NESTED_TABLE_ID sütununda manuel olarak benzersiz olmayan bir dizin oluşturmanız önemlidir. Ardından NESTED_TABLE_ID sütunu, alt tablo adına karşılık gelen üst sütunla birlikte JOIN ON cümlesinde kullanılabilir. Ayrıca böyle bir dizin oluşturmak, hedef alt tablonun verileri veri görevi tarafından güncellenirken/silinirken performansı geliştirir.
Görevi, Tam Yük tamamlandıktan sonra durdurulacak şekilde yapılandırmanız önerilir. Tam Yük tamamlandıktan sonra, hedefte tüm moved alt tablolar için manuel olarak benzersiz olmayan dizinler oluşturun ve sonra görevi sürdürün.
Yakalanan iç içe tablo mevcut üst tabloya (yakalanan veya yakalanmayan) eklenirse veri görevi bunu doğru şekilde işler ancak buna karşılık gelen hedef tabloda benzersiz olmayan dizin oluşturulmaz. Bu durumda, hedef alt tablo aşırı büyürse performansın etkilenebileceğini unutmayın. Böyle bir durumda görevin durdurulması, dizinin oluşturulması ve ardından görevin sürdürülmesi önerilir. Ancak göreve devam etmeden önce moved tablolarının da düzleştirilmesini sağlayacak görünümler oluşturmanızı öneririz. Bu görünümler, aşağıdaki örnekte açıklandığı gibi, özel düzleştirme ihtiyaçlarınıza karşılık gelen JOIN deyimleri içermelidir.
Önkoşullar
Tüm moved iç içe yerleştirilmiş tablolar için üst tablolarda Taşı işlemi yaptığınızdan emin olun. Hem üst tablolar (iç içe tablo sütununu içeren tablolar) hem de alt (iç içe yerleştirilmiş) tablolar Qlik Talend Data Integration içinde seçilebilir durumdadır.
Desteklenen iç içe tablo türleri
Aşağıdaki iç içe tablo türleri desteklenir:
- Veri türü
- Kullanıcı Tanımlı Nesne
Sınırlamalar
- Tek bir iç içe yerleştirme düzeyi desteklenir.
- Qlik Talend Data Integration, moving için hem üst hem de alt tabloların seçildiğini doğrulamaz. Diğer bir deyişle, alt tablo olmadan üst tabloyu (ve tersini) seçmek mümkündür.
İç içe tablolarda moved işlemi
Üst ve iç içe tabloların hedefte moved işlemi şu şekilde yapılır:
-
Üst tablo, hedefte kaynağa benzer şekilde oluşturulur ve burada her bir iç içe geçmiş sütun, RAW(16) olarak tanımlanır. Her üst tablo satırında bu sütun, NESTED_TABLE_ID sütunundaki ilgili alt tablo iç içe geçmiş satırlarıyla aynı değeri içerecektir.
- Alt tablo kaynakla aynı şekilde oluşturulur, ancak daha önce belirtildiği gibi ek bir NESTED_TABLE_ID sütunu eklenir.
JOIN deyimi örneği
Oracle kaynağında aşağıdaki tanımların mevcut olduğunu varsayalım:
- CREATE OR REPLACE TYPE my_tab_t AS TABLE OF VARCHAR2(30);
- CREATE TABLE my_parent_table (id NUMBER PRIMARY KEY, col1 my_tab_t) NESTED TABLE col1 STORE AS col1_tab;
Bu durumda, veri görevi genellikle aşağıdaki gibi iki hedef tablo oluşturacaktır:
- CREATE TABLE my_parent_table (id NUMBER PRIMARY KEY, col1 RAW(16));
- CREATE TABLE col1_tab(nested_table_id RAW(16), column_value VARCHAR2(30));
İki hedef tabloyu düzleştirmek için JOIN deyimi aşağıdaki gibi tanımlanabilir:
- Select id, column_value from my_parent_table LEFT OUTER JOIN col1_tab child ON child.nested_table_id = parent.col1;