Cognos Auditing Blog – porady i wskazówki dotyczące środowisk o dużej i dużej objętości

by 17 maja 2021 r.Audyt0 komentarze

Blog Johna Boyera i Mike'a Norrisa.

Wprowadzenie

Ważne jest, aby funkcja Cognos Auditing działała, aby poznać i zrozumieć, w jaki sposób Cognos jest używany przez społeczność użytkowników i pomóc odpowiedzieć na pytania, takie jak:

    • Kto korzysta z systemu?
    • Jakie raporty generują?
    • Jakie są czasy wykonywania raportu?
    • Za pomocą innych narzędzi, takich jak MotioCI, jaka treść jest nieużywana?

Biorąc pod uwagę, jak ważne jest utrzymanie zdrowych środowisk Cognos Analytics, zaskakująco niewiele napisano o jego bazie danych audytu poza standardową dokumentacją produktu. Być może jest to brane za pewnik, ale organizacje, które z niego korzystają, wiedzą, że z biegiem czasu wykonywanie zapytań do tabel bazy danych audytu zacznie zwalniać — zwłaszcza jeśli Twoja organizacja ma wielu użytkowników wykonujących wiele raportów i ma dużą historię. Co więcej, samo rejestrowanie aktywności audytu może być opóźnione, ponieważ jest umieszczane w kolejce, gdy na przykład nie można go wystarczająco szybko dodać do bazy danych. Wtedy zaczynasz myśleć o wydajności bazy danych tak, jak o każdej operacyjnej bazie danych, która ma wymagania dotyczące raportowania.

Duże tabele zwykle spowalniają wydajność zapytań. Im większa tabela, tym dłużej trwa wstawianie i zapytanie. Pamiętaj, że te tabele i baza danych audytu są w zasadzie operacyjną bazą danych; zapisy zdarzają się często i działają przeciwko nam, ponieważ nie możemy skoncentrować ich tylko na operacjach odczytu, tak jak w przypadku hurtowni danych.

Podobnie jak składnica treści, kondycja środowiska Cognos musi również uwzględniać kondycję bazy danych audytu. Nieograniczony rozwój Bazy Danych Audytu może z czasem stać się problemem, a nawet wpłynąć na ogólną wydajność środowiska Cognos. W wielu organizacjach, w których narzucono zewnętrzne regulacje, brak pełnej dokumentacji audytu może doprowadzić do sytuacji niezgodności z poważnymi konsekwencjami. Jak więc radzić sobie z koniecznością przechowywania tak dużej ilości danych do celów audytu historycznego — w niektórych przypadkach nawet do 10 lat — a mimo to nadal uzyskiwać raporty potrzebne do utrzymania środowiska i zadowolenia użytkowników z wydajności?

Wyzwanie

    • Nieograniczony wzrost Bazy Audytowej negatywnie wpływa na stan środowiska Cognos
    • Raportowanie z Bazy Audytu stało się powolne lub bezużyteczne
    • Cognos doświadcza opóźnień w zapisie zapisów do Bazy Audytu
    • W bazie danych audytu kończy się miejsce na dysku

Wszystko to sprawia, że ​​cierpią na tym nie tylko raporty, które opierają się na Bazie Audytu, ale często cały system. Jeśli baza danych kontroli znajduje się na tym samym serwerze, co składnica treści Cognos, w tym środowisku wpłynie to na wydajność wszystkich elementów Cognos.

Instalator

Przyjmujemy:

    1. Cognos Analytics jest zainstalowany i uruchomiony
    2. Cognos jest skonfigurowany do logowania do bazy danych audytu
        • Posiadać bazę danych audytów
        • Ustaw odpowiednie poziomy rejestrowania audytu w administracji Cognos
        • Rekordy są zapisywane do bazy danych przez Cognos
    3. Baza audytów jest używana od ponad roku
    4. Środowisko jest bardzo aktywne z użytkownikami i wykonaniami
    5. Pakiet Audit jest używany do ujawniania danych o użytkowaniu Cognos
    6. Chcemy poprawić wydajność raportowania bazy danych audytu
    7. Rozpoczęcie od nowa lub usunięcie starych rekordów nie zawsze wchodzi w grę

Jeśli jeszcze nie masz zainstalowanego i skonfigurowanego Cognos Audit, Lodestar Solutions, a Motio partner, ma doskonały pisać o włączeniu Audytu w Cognos BI /CA.

Rozwiązanie

Istnieje kilka możliwych rozwiązań, które szybko się prezentują:

    1. Zmniejsz ilość danych o:
        • Przenoszenie niektórych starszych danych do innej bazy danych
        • Przenoszenie niektórych starszych danych do innej tabeli w tej samej bazie danych
    2. Po prostu usuń lub łukhive niektóre dane i nie martw się o to
    3. Żyj z tym. Kopnij puszkę road i popchnij administratora bazy danych w celu uzyskania wydajności
      usprawnienia podczas skuwania ich kajdankami poprzez uniemożliwienie zmian schematu lub
      indeksy

Nie będziemy zajmować się opcją 3. Opcja 2, usunięcie danych, nie jest dobrą opcją i radzę zachować minimum 18 miesięcy. Ale jeśli masz takie skłonności, IBM zapewnia narzędzie, Audyt Oczyszczanie bazy danych (Cognos BI) lub scenariusz (Cognos Analytics), który właśnie to zrobi. Narzędzie dla Cognos BI usuwa rekordy na podstawie sygnatury czasowej, podczas gdy skrypty dla Cognos Analytics po prostu usuwają indeksy i tabele.

Zalecenia, które wcześniej skierowaliśmy do klientów w tej sprawie, polegały na podzieleniu na dwie bazy danych:

    1. Audyt – na żywo : zawiera dane z ostatniego tygodnia
    2. Audyt – Historyczny : zawiera dane historyczne (do N lat)

Krótko mówiąc, proces jest uruchamiany co tydzień, aby przenieść najnowsze rekordy z Audit Live do Audit Historical. Audit Live rozpoczyna się od nowa jako pusta karta po uruchomieniu tego procesu.

    1. Live DB jest szybki i ciasny, dzięki czemu wstawia się tak szybko, jak to możliwe
    2. Zapytania audytowe są kierowane wyłącznie do Historycznej Bazy Danych

Stosując to podejście, nie ma niejawnego „zszywania” danych bieżących i danych historycznych. Twierdzę, że prawdopodobnie chcesz, aby tak pozostało.

W Cognos Administration możesz dodać dwa różne połączenia dla źródła danych audytu. Gdy użytkownik uruchomi raport dotyczący pakietu Audytu, zostanie zapytany, którego połączenia chce użyć:

Audytowe Bazy Danych

Jeśli chcesz spojrzeć na dane audytu na żywo, a nie historyczne dane audytu, po prostu wybierz połączenie „Audyt – Na żywo” po wyświetleniu monitu (powinno to być wyjątkiem, a nie normą).

Jeśli NAPRAWDĘ chcesz również zapewnić skonsolidowany widok zarówno na żywo, jak i historycznych, możesz to zrobić, ale wpłynie to na wydajność.

Na przykład możesz utworzyć trzecią bazę danych o nazwie „Audit – Widok skonsolidowany”, a następnie dla każdej tabeli w schemacie audytu: utworzyć widok o identycznej nazwie, który jest połączeniem SQL między tabelą w aktywnej bazie danych i tabelą w historyczny DB. Podobnie można to również osiągnąć w modelu Framework Managera, ale ponownie wydajność byłaby kluczowym czynnikiem.

Niektórzy z naszych klientów stworzyli skonsolidowany widok. Naszym zdaniem jest to prawdopodobnie przesada. Wydajność zawsze byłaby gorsza w tym skonsolidowanym widoku i nie natknęliśmy się na wiele przypadków użycia, które wykorzystują zarówno zestawy danych bieżących, jak i dane historyczne. Dane na żywo używane do rozwiązywania problemów oraz dane historyczne do raportowania trendów.

Począwszy od Cognos Analytics 11.1.7, Baza Audytu rozrosła się do 21 tabel. Więcej informacji można znaleźć w innym miejscu na temat Bazy danych audytu, przykładowych raportów z audytu i modelu Framework Manager. Domyślny poziom rejestrowania to Minimalny, ale możesz chcieć użyć następnego poziomu, Podstawowy, do przechwytywania żądań użycia, zarządzania kontem użytkownika i wykorzystania środowiska wykonawczego. Jednym ze sposobów utrzymania wydajności systemu jest utrzymywanie poziomu rejestrowania na najniższym wymaganym poziomie. Oczywiście im więcej rejestrowania jest wykonywane przez serwer, tym bardziej może to wpłynąć na ogólną wydajność serwera.

Kluczowe tabele, którymi zainteresuje większość administratorów, to 6 tabel, które rejestrują aktywność użytkowników i raportują aktywność w systemie.

  • COGIPF_USERLOGON : Przechowuje informacje o logowaniu użytkownika (w tym o wylogowaniu)
  • COGIPF_RUNREPORT : Przechowuje informacje o wykonaniach raportów
  • COGIPF_VIEWREPORT : Przechowuje informacje o żądaniach wyświetlenia raportu
  • COGIPF_EDITQUERY: Przechowuje informacje o przebiegu zapytania
  • COGIPF_RUNJOB : Przechowuje informacje o zapytaniach o pracę
  • COGIPF_ACTION : Rejestruje działania użytkownika w Cognos (ta tabela może rosnąć znacznie szybciej niż inne)

Konfiguracja po wyjęciu z pudełka wygląda tak:

Domyślna konfiguracja audytu

Zalecana konfiguracja:

Zalecana konfiguracja audytu

Baza danych audytu Cognos – Live zawiera dane audytu z 1 tygodnia. Dane starsze niż 1 tydzień są przenoszone do Cognos Audit Database – Historical.

Linia z Cognos Audit Database – Live to Cognos Audit Database – Historical na diagramie odpowiada za:

  • Kopiowanie danych z audytu na żywo do audytu historycznego
  • Usuń wszystkie wiersze w Live Audit, które są starsze niż 1 tydzień
  • Usuń wszystkie wiersze z Audytu historycznego starsze niż x lat
  • Usuń wszystkie wiersze w COGIPF_ACTION starsze niż 6 miesięcy

Indeksy

Różne typy baz danych mają różne typy indeksowania. Indeks bazy danych to struktura danych powiązana z tabelą (lub widokiem), używana do skrócenia czasu wykonywania zapytań podczas pobierania danych z tej tabeli (lub widoku). Współpracuj z administratorem baz danych, aby stworzyć optymalną strategię. Będą chcieli poznać odpowiedzi na takie pytania, aby podejmować najlepsze decyzje dotyczące indeksowania kolumn. Oczywiście administrator bazy danych mógłby znaleźć odpowiedzi na niektóre lub wszystkie te pytania bez Twojej pomocy, ale zajęłoby to trochę badań i trochę czasu:

  • Ile rekordów mają tabele i do jakiego rozmiaru spodziewasz się ich wzrostu? (Indeksowanie tabeli nie będzie przydatne, chyba że tabela zawiera dużą liczbę rekordów).
  • Czy wiesz, które kolumny są unikalne? Czy zezwalają na wartości NULL? Które kolumny mają typ danych typu liczba całkowita lub duża liczba całkowita? (Kolumny z liczbowymi typami danych, które są UNIQUE i NOT NULL są silnymi kandydatami do udziału w kluczu indeksu).
  • Gdzie są dzisiaj twoje główne problemy z wydajnością? Czy pobierają dane? Czy istnieją konkretne zapytania lub raporty, które stanowią większy problem? (Może to prowadzić administratora bazy danych do pewnych określonych kolumn, które można zoptymalizować).
  • Jakie pola są używane przy łączeniu tabel w celu raportowania?
  • Jakie pola są używane do filtrowania, sortowania, grupowania i agregowania?

Nic dziwnego, że są to te same pytania, na które należy odpowiedzieć, aby poprawić wydajność dowolnych tabel bazy danych.

Wsparcie IBM zaleca tworzenie indeksu w kolumnach „COGIPF_REQUESTID”, „COGIPF_SUBREQUESTID” i „COGIPF_STEPID” dla następujących tabel w celu poprawy wydajności:

  • COGIPF_NATIVEQUERY
  • COGIPF_RUNJOB
  • COGIPF_RUNJOBSTEP
  • RAPORT COGIPF_RUN
  • COGIPF_EDITQUERY

Plus na innych rzadziej używanych stołach:

  • COGIPF_POWERPLAY
  • COGIPF_HUMANTASKSERVICE
  • COGIPF_HUMANTASKSERVICE_DETAIL

Możesz użyć tego jako punktu wyjścia, ale chciałbym przejść przez ćwiczenie polegające na odpowiedzi na powyższe pytania, aby uzyskać najlepszą odpowiedź dla Twojej organizacji.

Inne uwagi

  1. Audyt modelu FM. Pamiętaj, że model Framework Manager dostarczany przez IBM jest wzorowany na domyślnych tabelach i polach. Wszelkie zmiany wprowadzone w tabelach raportowania będą musiały zostać odzwierciedlone w modelu. Łatwość lub złożoność tych zmian – lub Twoje kompetencje organizacyjne do wprowadzenia tych zmian – mogą mieć wpływ na wybrane rozwiązanie.
  2. Dodatkowe pola. Jeśli masz zamiar to zrobić, nadszedł czas, aby dodać dodatkowe pola dla danych kontekstowych lub referencyjnych, aby ulepszyć raportowanie kontrolne.
  3. Tabele podsumowujące. Zamiast po prostu kopiować dane do tabeli historycznej, skompresuj je. Możesz agregować dane na poziomie dziennym, aby zwiększyć wydajność raportowania.
  4. Widoki zamiast tabel. Inni mówią: „Tak więc zamiast „bieżącej” bazy danych i „historycznej” bazy danych, powinieneś mieć tylko jedną bazę danych, a wszystkie znajdujące się w niej tabele powinny być poprzedzone prefiksem „historyczna”. Następnie należy utworzyć zestaw widoków, po jednym dla każdej tabeli, którą chcesz widzieć jako „bieżącą”, i odfiltrować w każdym widoku historyczne wiersze, których nie chcesz widzieć, i przepuścić tylko bieżące”.
    https://softwareengineering.stackexchange.com/questions/276395/two-database-architecture-operational-and-historical/276419#276419

Wnioski

Najważniejsze jest to, że dzięki dostarczonym tutaj informacjom powinieneś być dobrze przygotowany do owocnej rozmowy z Twoim DBA. Są duże szanse, że już wcześniej rozwiązywała podobne problemy.

Proponowane zmiany w architekturze Cognos Audit Database poprawią wydajność zarówno raportowania bezpośredniego, jak i aplikacji zewnętrznych, które na nim bazują, takich jak Motio'S ReportCard i inwentaryzacja.

Przy okazji, jeśli już rozmawiałeś z administratorem, chcielibyśmy o tym usłyszeć. Chcielibyśmy również dowiedzieć się, czy rozwiązałeś problem źle działającej bazy danych audytu i jak to zrobiłeś.