Database Rotation

  • リリースバージョン: Washingtondc
  • 更新日 2024年02月01日
  • 読む3読むのに数分
  • Database Rotation は、テーブルサイズの増加を管理し、古いデータをアーカイブします。

    インスタンス内のデータは急速に増加し、これらのテーブルのサイズが大きくなるにつれて管理が必要になります。データベースローテーションはインスタンスのパフォーマンスを維持し、3 つのテクニックを利用して、増加するデータセットのクエリに関連するリスクを回避します。これらのテクニックは、セット全体を個々のテーブルに分割して大量のデータを管理するという概念に基づいています。このタスクが実行された後、各テクニックにより異なる方法でデータが処理されます。
    • テーブルローテーションは、少数のテーブル間でローテーションし、古いテーブルを削除して新しいデータを再利用することで機能します。
    • テーブル拡張は、定期的に新しいテーブルを開始し、古いテーブルを簡単にアーカイブしてシステムから削除できるようにすることで機能します。
    • テーブルシャーディングは、レコードをドキュメント ID で単一のテーブルにグループ化できるようにすることで機能します。

    テーブルローテーションプラグイン

    • Database Rotations プラグインは、自動的にテーブルを含めずにテーブルのローテーションと拡張を有効にします (com.snc.db.rotation)
    • Database Rotations Default Tables プラグインは、特定のテーブルにテーブルローテーションと拡張を適用します (com.snc.db.rotation_default_tables)
    表 : 1. Database Rotation
    機能 テーブルの適用先
    テーブルローテーション syslog

    sys_querystat

    ecc_queue

    ecc_event

    cmdb_metric

    sysevent

    テーブル拡張 sys_audit

    sys_email

    文字列に変換された参照値

    アーカイブされたデータは、他のテーブルへの参照フィールドを持たないフラットファイルとして格納されます。アーカイブプロセスは、他のテーブルへの参照を文字列値に変換します。

    参照フィールドの場合、文字列は発信者のユーザー名などの表示値を使用します。たとえば、インシデントの [発信者] 参照フィールドには、文字列「ITIL User」が表示されます。参照がドキュメント ID で、アーカイブルールに関連ドキュメント ID をアーカイブするオプションが含まれている場合、文字列は関連レコードのドキュメント ID です。

    アーカイブレコードは、参照値に対する将来の変更を受け取らないことに注意してください。たとえば、「John Smith」のユーザー名を「John A Smith」に変更すると、インシデントテーブルとユーザーテーブル間の参照により、すべてのアクティブなインシデントレコードで発信者が自動的に「John A Smith」と表示されます。ただし、アーカイブされたすべてのインシデントレコードには、アーカイブ時に存在していたユーザー名が表示されます。「John Smith」のインシデントはこのユーザーを引き続き参照します。同様に、システムからユーザーを削除すると、現在のインシデントでは削除されたユーザーは発信者として表示されなくなります。ただし、アーカイブされた時点でユーザーが存在していると、ユーザーとして「John Smith」という文字列が表示され続けるアーカイブ化済みインシデントがある場合があります。

    テーブルローテーションと拡張

    システム定義テーブルローテーションモジュールを使用すると、新しいテーブルローテーション、新しいテーブル拡張、新しいテーブルシャードを定義したり、既存のテーブルを変更したりすることができます。

    図 : 1. テーブルローテーショングループ
    テーブルローテーショングループ
    • 名前:テーブル名から自動生成されます
    • 期間:関数の全体的な時間パラメーター
    • 初期化済み:機能をアクティブ (true) または非アクティブ (false) に設定します
    • ローテーション:期間内に作成されるテーブルの数
    • タイプ:拡張 (アーカイブ)、ローテーション (削除)、またはシャード (ドキュメント ID) 機能を示します

    新しいローテーションを定義すると、スケジュールが作成され、その後、新しいデータがローテーショングループのテーブルのいずれかに書き込まれます。グループには、元のテーブルといくつかの追加のテーブルが含まれていることがわかります。ローテーションを削除すると、追加のテーブルとすべてのデータが削除されるため、データが必要な場合はローテーションを削除しないでください。

    テーブルの管理の詳細については、次のトピックを参照してください。