SQL Server 2008 veri ambarları için önemli bir yenilik: Change Data Capture


Bir veri ambarınız varsa, bir de yükleme periyodunuz vardır. Belirli aralıklarla kaynak sistemlerdeki yeni verileri veri ambarına taşımanız gerekir.

Ne kadar da zahmetli bir iştir bu. Kullanımı pahalı triggerlar ve joinler gerektirir. Hatta eğer tablolarınızda son değişiklik zamanını tutan bir kolonunuz yoksa, tabloya kolon eklemeniz de gerekebilir.

SQL Server 2008 bu periyodik yüklemeleri kolaylaştırmak için bir özellik getiriyor: Change Data Capture; sizin için kaynak sistemlerdeki belirlediğiniz tablolarda oluşan değişimleri gerekli ayrıntılarıyla birlikte sorgulayabileceğiniz şekilde log’lar.

Ancak! CDC özelliği kaynak veritabanında bulunması gereken bir şeydir. Yani diyelim ki 3 veri kaynağınız ve bir veri ambarınız var. Veri ambarınızın SQL 2008 olmasıyla bu işi yapamazsınız. Değişiklikleri takip ettiğiniz veri kaynaklarınızın SQL Server 2008 olması gerekir.

Bu sebeple CDC’nin hayatımıza tam olarak girişi, veri kaynağı sistemlerimizin yükseltmelerinin yapılmasıyla gündeme gelebilecektir. Ayrıca SQL Server dışında veri kaynakları kullanıyorsanız, onlarda Change Data Capture benzeri bir özelliğin bulunması gerekecektir bu imkanlardan yararlanmak için.

CDC insert, update ve delete komutlarını yakalar. Hatta takip ettiğiniz tablodaki DDL değişikliklerini de loglar.

Kullanabilmek için ilgili veritabanında bir kere aktive etmeniz gerekir. Bunun ardından da takip etmek istediğiniz tabloların herbiri için CDC’yi aktive etmelisiniz.

Değişiklikleri bildiğimiz ilişkisel tablo biçiminde tutar. Update işlemleri için önceki hali ve sonraki hali ifade eden birer satır tutar.

Yaptığınız ayara bağlı olarak tüm değişiklikleri ya da net değişiklikleri sorgulama şansı sunar. Ne demektir bu? Diyelim ki bir kayıt eklediniz ve aynı gün içinde o kaydı bir de güncellediniz. Gece veri aktarımı paketini çalıştırırken ister tüm değişiklikleri alırsınız (yani her iki değişikliği) isterseniz sadece net değişiklikleri alırsınız (yani satırın sadece son halini).

Değişiklikleri sorgularken LSN (Log Sequence Number) aralığına göre sorgularsınız. Belirttiğiniz zamanlara en yakın LSN’leri veren fonksiyonlardan yararlanma şansınız bulunmaktadır.

Ayrıca CDC tablolarının belirli aralıklardaki değerlerini boşaltmak için kullanabileceğiniz fonksiyonlar da vardır.

Son bir not: SQL 2000’den SQL 2005 ya da SQL 2008’e geçmek konusunda karar vermeniz gerekirse, 2008’de olup 2005’de olmadığına dikkat etmeniz gereken önemli bir özelliktir CDC. Sadece CDC yüzünden bile doğrudan 2008’e geçmeyi düşünme ihtimaliniz vardır. Tabii veritabanlarınızın ve uygulamalarınızın 2008’e uyumlu olduğundan emin olduktan sonra…

Bu yazı SQL Server 2008, Veri ambarı içinde yayınlandı ve olarak etiketlendi. Kalıcı bağlantıyı yer imlerinize ekleyin.

2 Responses to SQL Server 2008 veri ambarları için önemli bir yenilik: Change Data Capture

  1. Ömer Çolakoğlu dedi ki:

    Mustafa Bey,
    Size bir sorum olacak CDC ile hostname ve Username gibi bilgileri loglayabiliyor muyuz?

    • Mustafa Acungil dedi ki:

      CDC’nin amacı audit değil, satır değişikliklerini önceki ve sonraki halleriyle takip etmektir.
      Sizin ihtiyacınızı audit ya da profiler’la açılan bir trace görülebilir. Trigger veya event notifications kullanmayı da düşünebilirsiniz.

Bir Cevap Yazın

Aşağıya bilgilerinizi girin veya oturum açmak için bir simgeye tıklayın:

WordPress.com Logosu

WordPress.com hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap /  Değiştir )

Google fotoğrafı

Google hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap /  Değiştir )

Twitter resmi

Twitter hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap /  Değiştir )

Facebook fotoğrafı

Facebook hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap /  Değiştir )

Connecting to %s