Blog Audit Cognos – Kiat dan Trik untuk Lingkungan Bervolume Besar & Tinggi

by 17 Mei 2021Auditkomentar 0

Sebuah blog oleh John Boyer dan Mike Norris.

Pengantar

Penting agar kemampuan Cognos Auditing berfungsi untuk mengetahui dan memahami bagaimana Cognos digunakan oleh komunitas pengguna Anda dan membantu menjawab pertanyaan seperti:

    • Siapa yang menggunakan sistem?
    • Laporan apa yang mereka jalankan?
    • Apa waktu menjalankan laporan?
    • Dengan bantuan alat lain, seperti MotioCI, konten apa yang tidak digunakan?

Mempertimbangkan betapa pentingnya menjaga lingkungan Cognos Analytics yang sehat, secara mengejutkan hanya sedikit yang telah ditulis tentang database auditnya di luar dokumentasi produk standar. Mungkin, ini diterima begitu saja, tetapi organisasi yang menggunakannya tahu bahwa seiring waktu kueri tabel Database Audit akan mulai melambat – terutama jika organisasi Anda memiliki banyak pengguna yang menjalankan banyak laporan dan memiliki banyak riwayat. Terlebih lagi, logging aktivitas audit itu sendiri mungkin tertunda karena sedang antri ketika tidak dapat ditambahkan ke database dengan cukup cepat, misalnya. Saat itulah Anda mulai berpikir tentang kinerja basis data seperti yang Anda lakukan dengan basis data operasional apa pun yang memiliki persyaratan pelaporan.

Tabel besar biasanya memperlambat kinerja kueri. Semakin besar tabel, semakin lama waktu yang dibutuhkan untuk menyisipkan dan membuat kueri. Ingatlah bahwa tabel-tabel ini dan Basis Data Audit pada dasarnya adalah basis data operasional; penulisan sering terjadi dan merugikan kami karena kami tidak dapat memfokuskannya hanya untuk operasi baca seperti yang Anda lakukan dengan data mart.

Sama seperti penyimpanan konten, kesehatan lingkungan Cognos juga harus memperhitungkan kesehatan Basis Data Audit. Pertumbuhan Database Audit yang tidak terbatas dapat menjadi masalah dari waktu ke waktu dan pada akhirnya bahkan dapat memengaruhi kinerja keseluruhan lingkungan Cognos. Di banyak organisasi dengan peraturan eksternal yang dipaksakan kepada mereka, tidak memiliki catatan audit yang lengkap dapat menempatkan mereka dalam situasi ketidakpatuhan dengan akibat yang berat. Jadi, bagaimana kita menghadapi keharusan mempertahankan begitu banyak data untuk tujuan audit historis — dalam beberapa kasus hingga 10 tahun — namun masih mendapatkan pelaporan yang kita butuhkan untuk menjaga lingkungan dan membuat pengguna senang dengan kinerjanya?

Tantangan

    • Pertumbuhan tak terbatas dari Basis Data Audit berdampak negatif pada kesehatan lingkungan Cognos
    • Pelaporan dari Basis Data Audit menjadi lambat atau tidak dapat digunakan
    • Cognos mengalami keterlambatan dalam catatan yang ditulis ke Basis Data Audit
    • Basis Data Audit kehabisan ruang disk

Semua ini berarti bahwa bukan hanya laporan yang bergantung pada Basis Data Audit yang menderita, tetapi seringkali seluruh sistem. Jika Database Audit berada di server yang sama dengan penyimpanan konten Cognos, kinerja semua hal Cognos akan terpengaruh di lingkungan itu.

Setup

Kami berasumsi:

    1. Cognos Analytics diinstal dan dijalankan
    2. Cognos dikonfigurasi untuk masuk ke Database Audit
        • Memiliki Database Audit di tempat
        • Tetapkan level logging Audit yang sesuai dalam administrasi Cognos
        • Catatan sedang ditulis ke database oleh Cognos
    3. Database Audit telah digunakan selama lebih dari satu tahun
    4. Lingkungan sangat aktif dengan pengguna dan eksekusi
    5. Paket Audit sedang digunakan untuk menampilkan data penggunaan Cognos
    6. Kami ingin meningkatkan kinerja pelaporan Basis Data Audit
    7. Memulai kembali atau menghapus catatan lama tidak selalu merupakan pilihan

Jika Anda belum menginstal dan mengonfigurasi Cognos Audit, Solusi Lodestar, a Motio mitra, memiliki yang sangat baik pos tentang mengaktifkan Audit di Cognos BI /CA.

Solusi

Ada beberapa solusi yang mungkin muncul dengan cepat:

    1. Kurangi volume data dengan:
        • Memindahkan beberapa data lama ke database lain
        • Memindahkan beberapa data lama ke tabel lain dalam database yang sama
    2. Hapus saja atau busurhive beberapa data dan jangan khawatir tentang itu
    3. Jalani saja. Tendang kalengnya ke bawah road dan dorong Administrator Basis Data untuk kinerja
      perbaikan sambil memborgol mereka dengan tidak mengizinkan perubahan skema atau
      indeks

Kami tidak akan berurusan dengan opsi 3. Opsi 2, menghapus data, bukanlah pilihan yang baik dan saya akan merekomendasikan untuk menyimpan setidaknya senilai 18 bulan. Tapi, jika Anda ingin, IBM menyediakan utilitas, AuditDBCcleanup (Cognos BI) atau a naskah (Cognos Analytics) yang akan melakukan hal itu. Utilitas untuk Cognos BI menghapus catatan berdasarkan stempel waktu sementara skrip untuk Cognos Analytics hanya menghapus indeks dan tabel.

Rekomendasi yang kami buat untuk klien sebelumnya tentang ini adalah untuk memisahkan menjadi dua database:

    1. Audit – Live : berisi data terbaru minggu ini
    2. Audit – Historis : berisi data historis (hingga N tahun)

Singkatnya, proses berjalan setiap minggu untuk memindahkan catatan terbaru dari Audit Langsung ke Audit Historis. Audit Live dimulai kembali sebagai papan tulis kosong setelah proses ini berjalan.

    1. Live DB cepat dan ketat, memungkinkan penyisipan dilakukan secepat mungkin
    2. Kueri audit secara eksklusif diarahkan ke DB Historis

Dengan menggunakan pendekatan ini, tidak ada "penjahitan bersama" implisit dari data Langsung dan data Historis. Saya berpendapat bahwa Anda mungkin ingin tetap seperti itu.

Di Administrasi Cognos, Anda dapat menambahkan dua koneksi berbeda untuk Sumber Data Audit. Saat pengguna menjalankan laporan terhadap paket Audit, mereka akan diminta untuk koneksi mana yang ingin mereka gunakan:

Basis Data Audit

Jika Anda ingin melihat data audit langsung daripada data audit historis, Anda cukup memilih koneksi "Audit - Langsung" saat diminta (seharusnya pengecualian, bukan norma.)

Jika Anda BENAR-BENAR juga ingin memberikan tampilan gabungan dari Live dan Historis, Anda dapat melakukannya, tetapi itu akan memengaruhi kinerja.

Misalnya, Anda dapat membuat Database ke-3 yang disebut “Audit – Tampilan Konsolidasi” dan kemudian , untuk setiap tabel dalam skema Audit: buat tampilan bernama identik yang merupakan gabungan SQL antara tabel di DB langsung dan tabel di sejarah DB. Demikian pula, ini juga dapat dicapai dalam model Framework Manager, tetapi, sekali lagi, kinerja akan menjadi pertimbangan utama.

Beberapa klien kami telah membuat tampilan konsolidasi. Menurut pendapat kami, ini mungkin berlebihan. Performa akan selalu lebih buruk dalam tampilan gabungan ini dan kami belum menemukan banyak kasus penggunaan yang menggunakan set data Langsung dan Historis. Live digunakan untuk pemecahan masalah dan Historis untuk pelaporan tren.

Pada Cognos Analytics 11.1.7, Database Audit telah berkembang menjadi 21 tabel. Anda dapat menemukan informasi lebih lanjut di tempat lain di Database Audit, contoh laporan audit dan model Framework Manager. Level logging default adalah Minimal, tetapi Anda mungkin ingin menggunakan level berikutnya, Basic, untuk menangkap permintaan penggunaan, manajemen akun pengguna, dan penggunaan runtime. Salah satu cara Anda dapat mempertahankan kinerja sistem adalah dengan menjaga level logging ke level terendah yang diperlukan. Jelas, semakin banyak logging yang dilakukan oleh server, kinerja server secara keseluruhan dapat lebih terpengaruh.

Tabel utama yang paling diminati oleh sebagian besar administrator adalah 6 tabel yang mencatat aktivitas pengguna dan aktivitas pelaporan dalam sistem.

  • COGIPF_USERLOGON : Menyimpan informasi login pengguna (termasuk logout)
  • COGIPF_RUNREPORT : Menyimpan informasi tentang eksekusi laporan
  • COGIPF_VIEWREPORT : Menyimpan informasi tentang permintaan tampilan laporan
  • COGIPF_EDITQUERY : Menyimpan informasi tentang menjalankan kueri
  • COGIPF_RUNJOB : Menyimpan informasi tentang permintaan pekerjaan
  • COGIPF_ACTION : Merekam tindakan pengguna di Cognos (tabel ini mungkin tumbuh jauh lebih cepat daripada yang lain)

Konfigurasi out-of-the-box terlihat seperti ini:

Konfigurasi Audit Default

Konfigurasi yang disarankan:

Konfigurasi Audit yang Disarankan

Database Audit Cognos – Live berisi data audit selama 1 minggu. Data yang lebih lama dari 1 minggu dipindahkan ke Cognos Audit Database – Historis.

Baris dari Cognos Audit Database – Live to Cognos Audit Database – Historis dalam diagram bertanggung jawab untuk:

  • Menyalin data dari Audit Langsung ke Audit Historis
  • Hapus semua baris dalam Live Audit yang lebih lama dari 1 minggu
  • Hapus semua baris dalam Audit Historis yang lebih lama dari x tahun
  • Hapus semua baris di COGIPF_ACTION yang lebih lama dari 6 bulan

Indeks

Tipe database yang berbeda memiliki tipe pengindeksan yang berbeda. Indeks database adalah struktur data, yang terkait dengan Tabel (atau Tampilan), yang digunakan untuk meningkatkan waktu eksekusi kueri saat mengambil data dari tabel (atau Tampilan) tersebut. Bekerja dengan DBA Anda untuk menciptakan strategi yang optimal. Mereka ingin mengetahui jawaban atas pertanyaan seperti ini untuk membuat keputusan terbaik tentang kolom apa yang akan diindeks. Jelas, administrator basis data dapat menemukan jawaban untuk beberapa atau semua pertanyaan ini tanpa bantuan Anda, tetapi itu akan membutuhkan beberapa penelitian dan waktu:

  • Berapa banyak catatan yang dimiliki tabel dan berapa ukuran yang Anda harapkan untuk tumbuh? (Pengindeksan tabel tidak akan berguna kecuali tabel memiliki sejumlah besar catatan.)
  • Tahukah Anda kolom mana yang unik? Apakah mereka mengizinkan nilai NULL? Kolom mana yang memiliki tipe data integer atau integer besar? (Kolom dengan tipe data numerik dan UNIQUE dan NOT NULL adalah kandidat kuat untuk berpartisipasi dalam kunci indeks.)
  • Di mana masalah kinerja utama Anda hari ini? Apakah mereka dalam mengambil data? Apakah ada pertanyaan atau laporan khusus yang lebih merupakan masalah? (Ini dapat mengarahkan administrator database ke beberapa kolom tertentu yang dapat dioptimalkan.)
  • Bidang apa yang digunakan dalam menggabungkan tabel untuk pelaporan?
  • Bidang apa yang digunakan untuk memfilter, menyortir, mengelompokkan, dan menggabungkan?

Tidak mengherankan, ini adalah pertanyaan yang sama yang perlu dijawab untuk meningkatkan kinerja tabel database apa pun.

Dukungan IBM merekomendasikan membuat indeks pada kolom “COGIPF_REQUESTID”, “COGIPF_SUBREQUESTID”, dan “COGIPF_STEPID” untuk tabel berikut untuk meningkatkan kinerja:

  • COGIPF_NATIVEQUERY
  • COGIPF_RUNJOB
  • COGIPF_RUNJOBSTEP
  • COGIPF_RUNLAPORAN
  • COGIPF_EDITQUERY

Plus pada tabel lain yang jarang digunakan:

  • COGIPF_POWERPLAY
  • COGIPF_HUMANTASKSERVICE
  • COGIPF_HUMANTASKSERVICE_DETAIL

Anda dapat menggunakan ini sebagai titik awal, tetapi saya akan melalui latihan menjawab pertanyaan di atas untuk sampai pada jawaban terbaik untuk organisasi Anda.

Pertimbangan lainnya

  1. Audit FM Model. Ingatlah bahwa model Framework Manager yang disediakan IBM dimodelkan pada tabel dan bidang default. Setiap perubahan yang Anda buat pada tabel pelaporan harus tercermin dalam model. Kemudahan atau kerumitan perubahan ini – atau kompetensi organisasi Anda untuk membuat perubahan ini – dapat memengaruhi solusi yang Anda pilih.
  2. Bidang tambahan. Jika Anda akan melakukannya, sekarang saatnya untuk menambahkan bidang tambahan untuk konteks atau data referensi untuk meningkatkan pelaporan audit.
  3. Tabel ringkasan. Alih-alih hanya menyalin data ke tabel historis Anda, kompreslah. Anda dapat menggabungkan data ke tingkat hari untuk membuatnya lebih efisien untuk pelaporan.
  4. Tampilan alih-alih tabel. Yang lain berkata, “Jadi, daripada memiliki database 'saat ini' dan database 'historis', Anda seharusnya hanya memiliki satu database, dan semua tabel di dalamnya harus diawali dengan 'historis'. Kemudian, Anda harus membuat sekumpulan tampilan, satu untuk setiap tabel yang ingin Anda lihat sebagai 'saat ini', dan minta setiap tampilan memfilter baris historis yang tidak ingin Anda lihat dan hanya membiarkan yang sekarang saja yang melewatinya.”
    https://softwareengineering.stackexchange.com/questions/276395/two-database-architecture-operational-and-historical/276419#276419

Kesimpulan

Intinya adalah bahwa dengan informasi yang diberikan di sini Anda harus siap untuk melakukan percakapan yang produktif dengan DBA Anda. Kemungkinannya bagus bahwa dia telah memecahkan masalah serupa sebelumnya.

Perubahan yang diusulkan dalam arsitektur Database Audit Cognos akan meningkatkan kinerja baik dalam pelaporan langsung maupun aplikasi pihak ketiga yang mengandalkannya, seperti Motio'S ReportCard dan Inventaris.

Omong-omong, jika Anda sudah melakukan percakapan itu dengan DBA Anda, kami akan senang mendengarnya. Kami juga ingin mendengar jika Anda telah memecahkan masalah Basis Data Audit yang berkinerja buruk dan bagaimana Anda melakukannya.