Ana içeriğe geç

Değişiklik Tabloları

Değişiklik tablolarındaki meta verileri kullanarak bilgi almak için hedef uç noktanızın araçlarını kullanabilirsiniz. Bu veriler, değişiklik tablosu şemasına eklenen başlık sütunları tarafından tanımlanır. Bu başlıklar aşağıdaki tabloda açıklanmıştır.

Çoğaltma görevindeki her hedef tablo için hedef tabloların bulunduğu veritabanında ilgili ada sahip bir değişiklik tablosu tutulur. Daha fazla bilgi için bk. Değişim Tabloları ile Çalışma. Bir değişiklik tablosu orijinal tablo sütunlarını ve başlık sütunlarını içerir. Başlık sütunları, adın kaynak tablo sütun adlarıyla çakışmaması için bir önek içerir. Varsayılan ön ek: header__. Bu ön ekin nasıl değiştirileceği hakkında bilgi için Görev Ayarları'nda Meta Veriler altındaki Tabloları değiştir listesine bakın. Aşağıdaki tabloda varsayılan değişiklik tablosu başlık sütunları listelenmektedir.

Sütun Adı Tür Açıklama

[header__]change_seq

varchar (35)

Bir görevin tüm değişiklik tabloları için ortak olan ve monoton olarak artan bir değişiklik sıralayıcısı. Değişiklik sırası aşağıdaki formata sahiptir:

YYYYMMDDHHmmSShhxxxxxxxxxxxxxxxxxxx

Burada:

  • YYYY dört basamaklı yıldır (2012 gibi)
  • AA iki basamaklı aydır (01-12 aralığında)
  • GG iki basamaklı gündür (01-31 aralığında)

  • HH gün içindeki saattir (00-23 aralığında)
  • mm saat içindeki dakikadır (00-59 aralığında)
  • SS dakika içindeki saniyedir (00-59 aralığında)
  • hh saniyenin yüzde biridir (00-99 aralığında)
  • xxxxxxxxxxxxxxxxx 19 basamaklı, sıfır ön ekli bir değişiklik numarasıdır (görev başına küresel)

Zaman kısmı genellikle değişiklik kaydını içeren işlemin taahhüt zamanını ifade eder. Qlik Talend Data Integration sıra numarasının monotonluğunu koruyan mantık içerir, bu nedenle bitiş noktası zamanının değiştirilmesi veya ayarlanması, aynı zaman damgası içindeymiş gibi görünen ancak artan değişiklik sayısına sahip birden fazla değişiklikle sonuçlanabilir.

xxx...xxx genellikle veri kaydındaki dahili değişiklik numarasıdır ancak ÖNCEKİ GÖRÜNTÜ kayıtları için eşleşen UPDATE kaydının değişiklik numarasıyla aynıdır (örneğin, ÖNCEKİ GÖRÜNTÜ'nün değişiklik numarası 1000 ve UPDATE'inki 1001 ise her ikisinde de 1001 vardır). Bu, tablo ile kendisi arasında basit bir sol-dış-birleştirmeye olanak tanır; solda zaman noktasına kadar tararız ancak operation=before-image öğesini filtreleriz ve sağda change_oper "B" olmak üzere aynı change_seq üzerinde birleştiririz.

[header__]change_oper

varchar (1)

İşlem türü. Bu aşağıdakilerden biri olabilir:

  • I: INSERT
  • D: DELETE
  • U: UPDATE
  • B: Önceki görüntü

[header__] change_mask

varbinary (128)

Değişiklik maskesi, değişiklik tablosundaki hangi veri sütunlarının kaynak tabloda değişen sütunlarla ilişkili olduğunu gösterir.

Değişim maskesindeki bit konumu, değişim tablosundaki sütun sıralamasına dayanır. Bu, 5 başlık sütunu varsa bunların 0 ila 4 bitlerini işgal ettiği ve ilk veri sütununun değişim maskesinde bit 5 olduğu anlamına gelir.

Değişiklik maskesi, değişiklik maskesini little-endian düzeninde temsil eden ikili bir sütundur (bir bayt dizisi):

Bayt 0 bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0

Bayt 1 bit15 bit14 bit13 bit12 bit11 bit10 bit9 bit8

Bu örnekte bit#N, N sıralı değişiklik tablosu sütununun kaynak tabloda değişen bir sütunla ilgili olduğunu gösterir. Güncelleme maskesi 11000 ve sütun sıra numarası 3 ise sütun değişmemiştir.

Aşağıda bit semantiği açıklanmaktadır:

  • EKLE kayıtları için, eklenen tüm sütunların ilişkili bitleri ayarlanmıştır.
  • SİL kayıtları için yalnızca birincil anahtar (veya benzersiz dizin) sütunlarının ilişkili bitleri ayarlanır. Bu, uygulayıcının birincil anahtar alanlarını başka bir kaynaktan bulmak zorunda kalmadan bir SİL ifadesi oluşturmasına olanak tanır.
  • ÖNCEKİ RESİM kayıtları için tüm bitler temizdir (değişiklik maskesi boş olabilir).
  • GÜNCELLEME kayıtları için, ÖNCEKİ RESİM ile GÜNCELLEME arasında değeri değişen her sütunun ilişkili biti ayarlanacaktır.

Alan ve işlem verimliliği için, değişim maskesinde depolanan gerçek bayt sayısı sıfır kırpılabilir. Bu, sondaki sıfırların saklanmasına gerek olmadığı anlamına gelir. İşleme mantığı bunu dikkate almalıdır.

[header__] stream_position

varchar (128)

Kaynak CDC akış konumu.

[header__] operation

varchar (12)

Değişiklik kaydıyla ilişkili işlem. Aşağıdakilerden biri olabilir:

  • INSERT
  • UPDATE
  • DELETE
  • BEFOREIMAGE

[header__] transaction_id

varchar (32)

Değişiklik kaydının ait olduğu işlemin kimliği.

Değer, 128 bitlik işlem kimliğinin onaltılık dizesidir.

[header__] timestamp

zaman damgası

Orijinal değişiklik UTC zaman damgası (değer yaklaşık olabilir).

Bilgi notu PostgreSQL kaynağı ile zaman damgası yalnızca işleme gerçekleştikten sonra öğrenilir. Bu nedenle, değişiklikler kaynak tablolara işlenene kadar varsayılan tarih görüntülenecektir (ör. 1970-01-01).

[header__] partition_name

dize

Veri Bölmesini Değiştir etkinleştirildiğinde hedefte oluşturulan bölmenin adı. Bölüm adı, bölüm başlangıç ve bitiş zamanından oluşur.

Örnek:

20170313T123000_20170313T170000

Bu sayfa size yardımcı oldu mu?

Bu sayfa veya içeriği ile ilgili bir sorun; bir yazım hatası, eksik bir adım veya teknik bir hata bulursanız, bize bildirin, düzeltelim!