Bir Qlik Açık Göl Evi içindeki veri kümesi mimarisi
Akış kaynakları, verileri yerleştirme demetine yüklemek için Data Movement gateway gerektirmediklerinden, ancak lakehouse kümesi tarafından desteklendiklerinden Qlik Açık Göl Evi içinde kendi mimarilerine sahiptir.
Dosya adı içinde bir veri deseni içeren dosyalardan veri aldığınızda, bu, lakehouse kümesinin S3'te hedeflenen liste işlemlerini gerçekleştirmesini sağlar ve bu da dosya listesini okuma süresini önemli ölçüde hızlandırır. Ayrıca, Qlik Açık Göl Evi tarih desenine göre gelen dosyaları tahmin edebilir. Akış yerleştirme görevinin her seferinde tüm demeti listelemesi gerekmez, bunun yerine belirli bir tarih aralığındaki dosyaları S3'ten isteyebilir. Daha küçük bir dosya listesine sahip olmak daha iyi performansa yol açar. İsteğe bağlı Yüklemeden sonra sil ayarı, küçük bir dosya sayısını korumak için kullanılabilir. Gerçekleştirilen bir tam yük yoktur, ilk kayıtlar eklenen değişiklikler olarak kabul edilir.
Bir Qlik Açık Göl Evi içinde, Akış Dönüştürme görevi depolama görevinin yerini alır. Bu görev, yerleştirilen verileri dönüştürmek ve Iceberg tabloları olarak depolamak için kullanılır. Bir Akış Dönüştürme görevi yalnızca bir Akış yerleştirme görevinden sonra eklenebilir. Akış Dönüştürme görevi, kayıtları güncellemek için iki modu destekler:
- Yalnızca ekle: Mevcut verileri değiştirmeden yeni kayıtlar ekler ve çoğaltılmış kayıtlar gelirse anahtar kısıtlamaları uygulanmaz.
-
Değişiklikleri uygula (Birleştir): Anahtar alanlara göre mevcut kayıtları günceller ve yeni kayıtlar ekler. Bu mod size geçici silme kullanma veya geçmiş verileri (Tip 2) tutma seçeneği sunar.
Akış Dönüştürme görevi, kaynak ve hedef arasında eşleme yapan ve şema evrimi yetenekleri içeren hedef tabanlı bir görevdir. İç içe geçmiş yapıların iç içe geçmesini kaldırma ve dizileri düzleştirme dahil olmak üzere genişletilmiş dönüştürme yetenekleri sağlar. Akış Dönüştürme görevinde kullanabileceğiniz işlevler hakkında daha fazla bilgi için bkz. Dönüştürme işlevleri.
Bir akış kaynağından veri aldığınızda, depolama maliyetlerini kontrol etmek ve sorgu performansını optimize etmek için Iceberg bölümlemeyi, saklama yönetimini, sıralama sütunlarını, anlık görüntü süre sonunu yapılandırma olanağına sahipsiniz.
Yalnızca ekle modunda bir akış Qlik Açık Göl Evi veri İşlem hattı için mimari

Birleştirme modunda bir akış Qlik Açık Göl Evi veri İşlem hattı için mimari

Yerleştirme tabloları
Aşağıdaki başlık alanları yerleştirme tablolarına eklenir. Bu alanlar yerleştirme verilerinde her zaman bulunur, ancak varsayılan olarak aşağı akış dönüşümünde bulunmaz. Bir ifade kullanarak alanları dönüşüme ekleyebilirsiniz.
| Alan | Tür | Açıklama |
|---|---|---|
| hdr__kafka_partition | Long | Kafka bölümü |
| hdr__kafka_topic | Dize | Kafka konusu |
| hdr__kafka_offset | Long | Bölümdeki çalışan değer |
| hdr__kafka_key | Dize | Base64 kodlu anahtar. Kullanılamıyorsa NULL dizesine ayarlayın. |
| hdr__kafka_headers | Dize |
Tüm mesaj başlıklarını içeren JSON. Kullanılamıyorsa NULL dizesine ayarlayın. |
| Alan | Tür | Açıklama |
|---|---|---|
| hdr__kinesis_stream | Dize | Amazon Kinesis klasör |
| hdr__kinesis_shard | Dize | Amazon Kinesis parçası |
| hdr__kinesis_offset | Dize | Amazon Kinesis ofseti |
| Alan | Tür | Açıklama |
|---|---|---|
| hdr__file_name | Dize | Dosya adı |
| hdr__file_size | Long | Bayt cinsinden dosya boyutu. |
Şemalar
Eserler bir dahili şema ve bir veri görevi şemasında oluşturulur.
-
Dahili şema, birden çok bölüme sahip fiziksel bir tablo içerir.
-
Veri görevi şeması, verileri tüketmek için kullanabileceğiniz görünümleri içerir.
Bir şema birden fazla veri göreviyle ilişkilendirildiğinde, her veri görevi tablolar ve görünümler için benzersiz bir önek kullanmalıdır. Öneki veri görevi ayarlarında ayarlayabilirsiniz.
Yalnızca dahili şemalar adlandırma çakışmaları açısından kontrol edilir. Diğer şemalar için, tablo adlarında adlandırma çakışması olmadığından emin olmalısınız. En iyi uygulama, dahili şemayı veri görevi şemasıyla aynı adla ve _internal eklenmiş olarak adlandırmaktır. Bu, her şema ve önek kombinasyonunun benzersiz olmasını sağlar.
Tablolar
Her kaynak tablo için, dahili şema içinde _internal sonekiyle şu biçim kullanılarak bir tablo oluşturulur:
<INTERNAL_SCHEMA>.<TABLE_NAME>_internal
Bu tablo, Değişiklikleri uygula (Birleştir) modunda, her biri verilerin nasıl işlendiği ve depolandığı konusunda farklı bir amaca hizmet eden beş bölüm içerir. Her bölüm, veri yaşam döngüsündeki rolüne bağlı olarak tablonun sütunlarının bir alt kümesinden yararlanır. Yalnızca ekle modunda tablonun hiçbir bölümü yoktur ve Current bölümü (ODS) gibi davranır.
Dahili veri kümesi, kaynak sisteminizden gelen verileri verimli bir şekilde yönetecek, gerçek zamanlı alımı ve geçmiş izlemeyi destekleyecek şekilde yapılandırılmıştır. Veri akışı, her biri aşağıda açıklanan birkaç özel bölüm aracılığıyla yönetilir:
-
Changes bölümü – Gerçek zamanlı alım
Kaynak sistemden gelen tüm değişiklikler (eklemeler, güncellemeler ve silmeler) ilk olarak Changes bölümüne eklenir.
-
Ham bir değişiklik günlüğü görevi gören bölüm, herhangi bir dönüşüm gerçekleşmeden önce kaynak etkinliğinin tam bir akışını sağlar.
-
Her değişiklik, nasıl işlendiğini gösteren bir türle (I, U veya D) etiketlenir.
-
Olaylar meydana geldikçe kaynaktan yakalanır. Bölüm neredeyse gerçek zamanlı olarak güncellenir.
-
Changes bölümü, Lake yerleştirme veri görevinde aşağıdaki ayarlar uygulandığında kullanılabilir.
-
Genel sekmesinde, Güncelleme yöntemi CDC olarak ayarlanır.
-
Tam yük etkinleştirilir.
-
-
-
Asset_state bölümü - İlerlemeyi izleme
Değişiklikler alındıkça, Asset_state bölümü iki önemli zaman damgası kaydeder:
-
Değişikliklerin Changes bölümüne en son ne zaman eklendiği.
-
Değişikliklerin Current bölümüne en son ne zaman uygulandığı.
Bu, senkronizasyon İşlem hattı için tam görünürlük sağlar ve gecikmeleri izlemeye veya gidermeye yardımcı olur.
-
-
Current bölümü (ODS) – Kaynağın en son kopyası
Changes bölümündeki değişiklikler, kaynak verilerin güncel ve sorgu için optimize edilmiş bir kopyasını korumak amacıyla periyodik olarak Current bölümüne uygulanır.
-
Bu güncellemeleri uygulamak için arka planda bir görev otomatik olarak çalışır. Bu, sabit bir programdan ziyade biriken değişikliklerin hacmine dayanır.
-
İlk tam yük doğrudan Current bölümüne yazılır.
-
Bu bölüm verilerin mevcut durumunu yansıtır ve verimli sorgulama için tasarlanmıştır.
-
-
Prior bölümü (HDS) – Geçmiş veriler
Current bölümünde bir kayıt güncellendiğinde veya silindiğinde, önceki sürümün bir kopyası Prior bölümüne yazılır.
-
Kayıtlar, değişiklik geçmişi ve verilerin geçerli olduğu tarih aralığı dahil olmak üzere meta veriler içerir.
-
Bu, Tip 2 yavaş değişen boyut (SCD2) özelliğini destekler.
-
Prior bölümü, Depolama veri görevi ayarlarının Genel sekmesinde Geçmiş kayıtları ve değişiklik kayıtları arşivini tut etkinleştirildiğinde kullanılabilir.
-
Bir kaydın güncellenmiş bir sürümü Current bölümüne girdiğinde, önceki kayıt geçmiş izleme için Prior bölümüne taşınır.
-
-
Reload bölümü
Reload bölümü, manuel veya zamanlanmış tam yeniden yüklemeler sırasında geçici bir hazırlama alanı görevi görür:
-
Yeni veriler ilk olarak Reload bölümüne yazılır.
-
Düzenli bakım görevleri, duraklatılmadan önce bekleyen değişiklikleri temizler.
-
Veriler Current bölümüyle karşılaştırılır ve yalnızca farklılıklar Current bölümüne taşınır.
-
İşlem tamamlandığında Reload bölümü temizlenir.
Bu işlem, tam yeniden yükleme işlemleri sırasında ana veri kümesinde minimum kesinti olmasını sağlar.
-
Current bölümü
| Alan | Tür | Açıklama |
|---|---|---|
| hdr__key_hash | VARBINARY (20) | Tüm kayıt birincil anahtarlarının karması. Karma biçimi SHA1'dir. Sütunlar bir geri al karakteriyle ayrılır. |
| hdr__from_timestamp | TIMESTAMP |
UTC cinsinden zaman damgası:
|
| hdr__operation | VARCHAR (1) |
Bu kaydın en son işlemi.
|
| hdr__inserted_timestamp | TIMESTAMP | Anahtarın ilk eklendiği zamanın UTC zaman damgası. Tam yük kullanıldığında, tam yükün başlangıç zamanı. |
| hdr__modified_timestamp | TIMESTAMP | Son güncellemenin ne zaman yapıldığının UTC zaman damgası. |
Prior bölümü
| Alan | Tür | Açıklama |
|---|---|---|
| hdr__key_hash | VARBINARY (20) | Tüm kayıt birincil anahtarlarının karması. |
| hdr__from_timestamp | TIMESTAMP | UTC cinsinden zaman damgası. |
| hdr__to_timestamp | TIMESTAMP | UTC cinsinden zaman damgası. |
| hdr__operation | STRING (1) |
Bu kaydın en son işlemi.
|
| hdr__was_current_from_timestamp | TIMESTAMP | Kaydın ilk kez güncel olduğu zaman için UTC cinsinden zaman damgası. |
| hdr__was_current_to_timestamp | TIMESTAMP | Kaydın son kez güncel olduğu zaman için UTC cinsinden zaman damgası. |
Changes bölümü
| Alan | Tür | Açıklama |
|---|---|---|
| hdr__change_identifier | VARCHAR (50) |
Değişiklik tanımlayıcısı iki bölümden oluşan bir dizedir:
|
| hdr__operation | VARCHAR (1) |
Bu kaydın en son işlemi.
|
| hdr__timestamp | TIMESTAMP | UTC cinsinden zaman damgası. |
| hdr__key_hash | BINARY (20) | Tüm kayıt birincil anahtarlarının karması. |
| hdr__inserted_timestamp | TIMESTAMP | Değişikliğin Qlik tarafından işlendiği zamanın UTC zaman damgası. |
Asset_state bölümü
| Alan | Tür | Açıklama |
|---|---|---|
| hdr__apply_change_identifier | VARCHAR (50) | Current bölümüne uygulanan en son değişikliğin değişiklik tanımlayıcısı. |
| hdr__copy_change_identifier | VARCHAR (50) | Changes bölümüne eklenen en son değişikliğin değişiklik tanımlayıcısı. |
Reload bölümü
Reload bölümü tarafından kullanılan sütunlar Current bölümüyle aynıdır.
Görünümler
Oluşturulan tüm görünümler neredeyse gerçek zamanlı olarak güncellenir. Sorgulamayı ve raporlamayı basitleştirmek için aşağıdaki görünümler mevcuttur:
Güncel
Güncel görünüm, verilerin en son durumunu yansıtır. Bu görünüm, neredeyse gerçek zamanlı olarak güncellenen kaynak tablonun bir kopyasını temsil eder. Current ve Changes bölümlerindeki verileri birleştirir.
Ad: <EXTERNAL_SCHEMA>.[<PREFIX>]<TABLE_NAME>
Tablo yapısına hiçbir başlık sütunu eklenmez.
Geçmiş
Veri görevi ayarlarında Geçmiş etkinleştirildiğinde, seçilen her kaynak tablo için veri varlığı şeması içinde bir Geçmiş görünümü oluşturulur. Geçmiş görünümü, Prior ve Changes bölümlerindeki verileri birleştirir. Denetim veya geçmiş analizi için ideal olan eksiksiz bir değişiklik zaman çizelgesi sağlar.
Ad: <EXTERNAL_SCHEMA>.[<PREFIX>]<TABLE_NAME>_<Suffix for history views>
Aşağıdaki başlık alanları Geçmiş görünümüne eklenir:
| Alan | Tür | Açıklama |
|---|---|---|
| hdr__key_hash | BINARY (20) | Tüm kayıt birincil anahtarlarının karması. |
| hdr__from_timestamp | TIMESTAMP | Kaynak sistemde değişikliğin meydana geldiği zaman damgası. Bu, kullanıcının değişikliği ilk ne zaman yaptığını yansıtır. |
| hdr__to_timestamp | TIMESTAMP | Kaynak sistemde değişikliğin geri alındığı veya güncellendiği zaman damgası. |
| hdr__store | VARCHAR (10) |
Bu, kaydın nerede bulunduğunu gösterir:
|
| hdr__operation | STRING (1) |
Bu kaydın en son işlemi.
|
| hdr__deleted | BIT | hdr__operation değerinin D veya d olmasına bağlı olarak kaydın geçici olarak silinip silinmediğini gösterir. |
| hdr__was_current_from_timestamp | TIMESTAMP | Bu satırın Current bölümüne girdiği zaman (UTC). Bu genellikle depolama işinin çalıştığı ve değişikliğin uygulandığı zamandır. |
| hdr__was_current_to_timestamp | TIMESTAMP | Örneğin daha yeni bir sürüm nedeniyle satırın Current tablosundan kaldırıldığı zaman (UTC). |