Cognos Denetim Blogu – Büyük ve Yüksek Hacimli Ortamlar için İpuçları ve Püf Noktaları

by Mayıs 17, 2021Denetleme0 yorumlar

John Boyer ve Mike Norris'in bir blogu.

Giriş

Cognos'un kullanıcı topluluğunuz tarafından nasıl kullanıldığını bilmek ve anlamak ve aşağıdaki gibi soruları yanıtlamaya yardımcı olmak için Cognos Auditing yeteneğinin çalışması önemlidir:

    • Sistemi kim kullanıyor?
    • Hangi raporları çalıştırıyorlar?
    • Rapor çalıştırma süreleri nelerdir?
    • Gibi diğer araçların yardımıyla MotioCI, hangi içerik kullanılmayan?

Sağlıklı Cognos Analytics ortamlarını korumanın ne kadar kritik olduğu düşünüldüğünde, standart ürün belgelerinin ötesinde denetim veritabanı hakkında şaşırtıcı derecede az şey yazılmıştır. Belki hafife alınır, ancak bunu kullanan kuruluşlar, zamanla Denetim Veritabanı tablolarını sorgulamanın yavaşlamaya başlayacağını bilir - özellikle de kuruluşunuzun çok sayıda rapor çalıştıran ve çok sayıda geçmişi varsa. Dahası, örneğin, veritabanına yeterince hızlı bir şekilde eklenemediğinde kuyruğa alındığından, denetim etkinliği günlüğünün kendisinin gecikmesi olabilir. İşte o zaman, raporlama gereksinimleri olan herhangi bir operasyonel veritabanında olduğu gibi veritabanı performansı hakkında düşünmeye başlarsınız.

Büyük tablolar genellikle sorgu performansını yavaşlatır. Tablo ne kadar büyükse, eklemek ve sorgulamak o kadar uzun sürer. Bu tabloların ve Denetim Veritabanının temelde operasyonel bir veritabanı olduğunu unutmayın; yazma işlemleri sık sık oluyor ve bir data martta yaptığınız gibi yalnızca okuma işlemlerine odaklanamadığımız için aleyhimize çalışıyor.

Content Store'a çok benzer şekilde, Cognos ortamının sağlığı da Denetim Veritabanının sağlığını hesaba katmalıdır. Denetim Veritabanının sınırsız büyümesi zamanla bir sorun haline gelebilir ve sonunda bir Cognos ortamının genel performansını bile etkileyebilir. Dış düzenlemelerin dayatıldığı birçok kuruluşta, tam bir denetim kaydına sahip olmamak, onları ağır sonuçlarla uyumsuzluk durumuna sokabilir. Peki, geçmiş denetim amaçları için bu kadar çok veriyi (bazı durumlarda 10 yıla kadar) muhafaza etmek zorundayken, yine de ortamı korumak ve kullanıcıları performanstan memnun tutmak için ihtiyaç duyduğumuz raporları nasıl alıyoruz?

Zorlu Görev

    • Denetim Veritabanının sınırsız büyümesi, Cognos ortamının sağlığını olumsuz yönde etkiliyor
    • Denetim Veritabanından raporlama yavaşladı veya kullanılamaz hale geldi
    • Cognos, Denetim Veritabanına yazılan kayıtlarda gecikmeler yaşıyor
    • Denetim Veritabanında disk alanı tükeniyor

Tüm bunlar, yalnızca Denetim Veritabanına dayanan raporların değil, çoğu zaman tüm sistemin zarar gördüğü anlamına gelir. Denetim Veritabanı, Cognos içerik deposuyla aynı sunucudaysa, Cognos'un tüm özelliklerinin performansı bu ortamda etkilenecektir.

Kurulum

Varsayıyoruz:

    1. Cognos Analytics kurulu ve çalışıyor
    2. Cognos, bir Denetim Veritabanında oturum açmak üzere yapılandırıldı
        • Bir Denetim Veritabanına sahip olun
        • Cognos yönetiminde uygun Denetim günlüğü düzeylerini ayarlayın
        • Cognos tarafından veritabanına kayıt yazılıyor
    3. Denetim Veritabanı bir yıldan uzun süredir kullanılmaktadır
    4. Ortam, kullanıcılar ve yürütmelerle çok aktif
    5. Denetim paketi, Cognos kullanım verilerini ortaya çıkarmak için kullanılıyor
    6. Denetim Veritabanı raporlama performansını iyileştirmek istiyoruz
    7. Eski kayıtları yeniden başlatmak veya silmek her zaman bir seçenek değildir

Henüz Cognos Audit'i kurmadıysanız ve yapılandırdıysanız, Lodestar Solutions, bir Motio ortak, mükemmel bir Facebook post Cognos BI /CA'da Denetimi etkinleştirme üzerine.

Çözüm

Kendilerini hızlı bir şekilde sunan bazı olası çözümler vardır:

    1. Veri hacmini şu şekilde azaltın:
        • Eski verilerin bir kısmını başka bir veritabanına taşıma
        • Eski verilerin bir kısmını aynı veritabanında başka bir tabloya taşıma
    2. Sadece sil veya yayhive bazı veriler ve bunun için endişelenme
    3. Onunla yaşa. Kutuyu aşağı tekmele road ve performans için Veritabanı Yöneticisini zorlayın
      şemanın değiştirilmesine izin vermeyerek onları kelepçelerken iyileştirmeler veya
      indeksler

Seçenek 3 ile ilgilenmeyeceğiz. Seçenek 2, verileri silmek iyi bir seçenek değil ve en az 18 aylık bir değeri minimumda tutmanızı tavsiye ederim. Ancak, bu kadar istekliyseniz, IBM bir yardımcı program sağlar, DenetimDBTemizleme (Cognos BI) veya bir senaryo (Cognos Analytics) tam olarak bunu yapacaktır. Cognos BI için yardımcı program, kayıtları bir zaman damgasına dayalı olarak silerken, Cognos Analytics komut dosyaları yalnızca dizinleri ve tabloları siler.

Müşterilere daha önce bu konuda yaptığımız öneriler iki veritabanına ayrılmaktı:

    1. Denetim – Canlı : en son haftanın verilerini içerir
    2. Denetim – Geçmiş : geçmiş verileri içerir (N yıla kadar)

Kısacası süreç, en son kayıtları Canlı Denetimden Denetim Geçmişine taşımak için haftalık olarak çalışır. Bu süreç çalıştıktan sonra Canlı Denetim boş bir sayfa olarak yeniden başlar.

    1. Live DB hızlı ve sıkıdır, eklemelerin olabildiğince hızlı gerçekleşmesine olanak tanır
    2. Denetim sorguları yalnızca Tarihsel Veritabanına yönlendirilir

Bu yaklaşımı kullanarak, Canlı verilerin ve Geçmiş verilerin örtük bir şekilde "birleştirilmesi" söz konusu değildir. Muhtemelen bu şekilde tutmak istediğinizi iddia ediyorum.

Cognos Administration'da, Denetim Veri Kaynağı için iki farklı bağlantı ekleyebilirsiniz. Bir kullanıcı Denetim paketine karşı bir rapor çalıştırdığında, hangi bağlantıyı kullanmak istedikleri sorulur:

Denetim Veritabanları

Geçmiş denetim verileri yerine canlı denetim verilerine bakmak isterseniz, sorulduğunda yalnızca "Denetim - Canlı" bağlantısını seçmeniz yeterlidir (normal değil, istisna olmalıdır).

GERÇEKTEN aynı zamanda hem Canlı hem de Geçmişe ilişkin birleştirilmiş bir görünüm sağlamak istiyorsanız, bunu yapabilirsiniz, ancak bu performansı etkiler.

Örneğin, “Denetim – Konsolide Görünüm” adında bir 3. Veritabanı oluşturabilir ve ardından, Denetim şemasındaki her tablo için: canlı DB'deki tablo ile veritabanındaki tablo arasında bir SQL birliği olan aynı adlı bir görünüm oluşturun. tarihi DB. Benzer şekilde, bu, Framework Manager modelinde de başarılabilir, ancak yine performans, önemli bir husus olacaktır.

Müşterilerimizden bazıları birleştirilmiş bir görünüm oluşturdu. Kanaatimizce bunun abartılı olması muhtemeldir. Bu birleştirilmiş görünümde performans her zaman daha kötü olurdu ve hem Canlı veri kümelerini hem de Geçmiş'i kullanan pek çok kullanım örneğiyle karşılaşmadık. Sorun giderme için kullanılan Live ve trend raporlaması için Tarihsel.

Cognos Analytics 11.1.7'den itibaren, Denetim Veritabanı 21 tabloya ulaşmıştır. Daha fazla bilgiyi Denetim Veritabanında, örnek denetim raporlarında ve Çerçeve Yöneticisi modelinde başka bir yerde bulabilirsiniz. Varsayılan günlük kaydı düzeyi Minimum'dur, ancak kullanım isteklerini, kullanıcı hesabı yönetimini ve çalışma zamanı kullanımını yakalamak için bir sonraki düzey olan Temel'i kullanmak isteyebilirsiniz. Sistem performansını korumanın bir yolu, günlüğe kaydetme düzeyini gereken en düşük düzeyde tutmaktır. Açıkçası, sunucu tarafından ne kadar çok günlük kaydı yapılırsa, genel sunucu performansı o kadar fazla etkilenebilir.

Çoğu yöneticinin ilgileneceği temel tablolar, sistemdeki kullanıcı etkinliğini ve raporlama etkinliğini günlüğe kaydeden 6 tablodur.

  • COGIPF_USERLOGON : Kullanıcı oturum açma (oturum kapatma dahil) bilgilerini depolar
  • COGIPF_RUNREPORT : Rapor yürütmeleri hakkında bilgi depolar
  • COGIPF_VIEWREPORT : Rapor görüntüleme istekleri hakkında bilgi depolar
  • COGIPF_EDITQUERY : Sorgu çalıştırmaları hakkında bilgi depolar
  • COGIPF_RUNJOB : İş istekleriyle ilgili bilgileri depolar
  • COGIPF_ACTION : Cognos'ta kullanıcı eylemlerini kaydeder (bu tablo diğerlerinden çok daha hızlı büyüyebilir)

Kullanıma hazır yapılandırma şöyle görünür:

Varsayılan Denetim Yapılandırması

Önerilen yapılandırma:

Önerilen Denetim yapılandırması

Cognos Audit Database – Live, 1 haftalık denetim verisi içerir. 1 haftadan eski veriler Cognos Denetim Veritabanı – Geçmiş'e taşınır.

Diyagramdaki Cognos Audit Database – Live to Cognos Audit Database – Tarihsel satırı aşağıdakilerden sorumludur:

  • Canlı Denetimden Geçmiş Denetime veri kopyalama
  • Canlı Denetimdeki 1 haftadan eski tüm satırları kaldırın
  • Geçmiş Denetimdeki x yıldan eski tüm satırları kaldırın
  • COGIPF_ACTION içindeki 6 aydan eski tüm satırları kaldırın

Dizinler

Farklı veritabanı türlerinin farklı dizinleme türleri vardır. Veritabanı dizini, o tablodan (veya Görünümden) veri alınırken sorgu yürütme süresini iyileştirmek için kullanılan bir Tablo (veya Görünüm) ile ilişkili bir veri yapısıdır. Optimum stratejiyi oluşturmak için DBA'nızla birlikte çalışın. Hangi sütunların dizine ekleneceği konusunda en iyi kararları vermek için bu gibi soruların yanıtlarını bilmek isteyeceklerdir. Açıkçası, veritabanı yöneticisi sizin yardımınız olmadan bu soruların bazılarının veya tümünün yanıtlarını bulabilir, ancak bu biraz araştırma ve biraz zaman alacaktır:

  • Tabloların kaç kaydı var ve bunların hangi boyutta büyümesini bekliyorsunuz? (Tabloda çok sayıda kayıt olmadığı sürece bir tabloyu indekslemek faydalı olmayacaktır.)
  • Hangi sütunların benzersiz olduğunu biliyor musunuz? NULL değerlere izin veriyorlar mı? Hangi sütunlarda tamsayı veya büyük tamsayı veri türü var? (Sayısal veri türlerine sahip olan ve UNIQUE ve NOT NULL olan sütunlar, dizin anahtarına katılmak için güçlü adaylardır.)
  • Bugün ana performans sorunlarınız nerede? Verileri alıyorlar mı? Daha fazla sorun oluşturan belirli sorgular veya raporlar var mı? (Bu, veritabanı yöneticisini optimize edilebilecek bazı belirli sütunlara yönlendirebilir.)
  • Raporlama için tabloların birleştirilmesinde hangi alanlar kullanılır?
  • Filtreleme, sıralama, gruplama ve toplama için hangi alanlar kullanılır?

Şaşırtıcı olmayan bir şekilde, bunlar herhangi bir veritabanı tablosunun performansını iyileştirmek için yanıtlanması gereken sorularla aynı sorulardır.

IBM Desteği önerir performansı artırmak için aşağıdaki tablolar için "COGIPF_REQUESTID", "COGIPF_SUBREQUESTID" ve "COGIPF_STEPID" sütunlarında bir dizin oluşturmak:

  • COGIPF_NATIVEQUERY
  • COGIPF_RUNJOB
  • COGIPF_RUNJOBSTEP
  • COGIPF_RUNREPORT
  • COGIPF_EDITQUERY

Artı daha az kullanılan diğer tablolarda:

  • COGIPF_POWERPLAY
  • COGIPF_HUMANTASKSERVICE
  • COGIPF_HUMANTASKSERVICE_DETAIL

Bunu bir başlangıç ​​noktası olarak kullanabilirsiniz, ancak kuruluşunuz için en iyi cevaba ulaşmak için yukarıdaki soruları yanıtlama alıştırmasını yapacağım.

diğer Hususlar

  1. Denetim FM Modeli. IBM'in sağladığı Framework Manager modelinin varsayılan tablolar ve alanlar üzerinde modellendiğini unutmayın. Raporlama tablolarında yaptığınız tüm değişikliklerin modele yansıtılması gerekecektir. Bu değişikliklerin kolaylığı veya karmaşıklığı - veya bu değişiklikleri yapmak için kurumsal yetkinliğiniz - seçtiğiniz çözümü etkileyebilir.
  2. İlave Alanlar. Bunu yapacaksanız, şimdi denetim raporlamasını iyileştirmek için bağlam veya referans verileri için ek alanlar eklemenin zamanı geldi.
  3. Özet tablolar. Verileri yalnızca geçmiş tablonuza kopyalamak yerine sıkıştırın. Raporlama için daha verimli hale getirmek için verileri gün düzeyinde toplayabilirsiniz.
  4. Tablolar yerine görünümler. Diğerleri, “Yani, 'geçerli' bir veri tabanına ve 'tarihsel' bir veri tabanına sahip olmak yerine, yalnızca bir veri tabanınız olmalı ve içindeki tüm tablolar 'tarihsel' ile başlamalıdır. Ardından, 'geçerli' olarak görmek istediğiniz her tablo için bir görünüm kümesi oluşturmalı ve her görünümün görmek istemediğiniz geçmiş satırları filtrelemesini ve yalnızca mevcut olanların geçmesine izin vermesini sağlamalısınız.
    https://softwareengineering.stackexchange.com/questions/276395/two-database-architecture-operational-and-historical/276419#276419

Sonuç

Sonuç olarak, burada sağlanan bilgilerle, DBA'nızla verimli bir konuşma yapmaya hazır olmalısınız. Daha önce benzer sorunları çözmüş olma ihtimali yüksektir.

Cognos Audit Database mimarisinde önerilen değişiklikler, hem doğrudan raporlamada hem de buna dayanan 3. kişi uygulamalarında performansı artıracaktır. Motio'S ReportCard ve Envanter.

Bu arada, DBA'nızla bu konuşmayı yaptıysanız, bunu duymayı çok isteriz. Ayrıca, düşük performans gösteren bir Denetim Veritabanı sorununu çözüp çözmediğinizi ve bunu nasıl yaptığınızı da öğrenmek isteriz.