DMTableクリーナー |一般的な概要Summary<!-- /*NS Branding Styles*/ --> .ns-kb-css-body-editor-container { p { font-size: 12pt; font-family: Lato; color: var(--now-color--text-primary, #000000); } span { font-size: 12pt; font-family: Lato; color: var(--now-color--text-primary, #000000); } h2 { font-size: 24pt; font-family: Lato; color: var(--now-color--text-primary, black); } h3 { font-size: 18pt; font-family: Lato; color: var(--now-color--text-primary, black); } h4 { font-size: 14pt; font-family: Lato; color: var(--now-color--text-primary, black); } a { font-size: 12pt; font-family: Lato; color: var(--now-color--link-primary, #00718F); } a:hover { font-size: 12pt; color: var(--now-color--link-primary, #024F69); } a:target { font-size: 12pt; color: var(--now-color--link-primary, #032D42); } a:visited { font-size: 12pt; color: var(--now-color--link-primary, #00718f); } ul { font-size: 12pt; font-family: Lato; } li { font-size: 12pt; font-family: Lato; } img { display: ; max-width: ; width: ; height: ; } } このナレッジベースの記事では、DMTableCleanerの概要と運用ガイドを提供します。 注:大規模なデータセットの削除は、処理に数週間から数か月かかる場合があります。この期間により、徹底的かつ体系的な削除が保証され、業務の中断が最小限に抑えられます。 注:この KB 記事にリンクされている詳細なドキュメントを表示するには、NowSupport ポータルにログインしてください。 目次: 概要 DMJobs フレームワーク DMTableCleanerと主な利点 DMTableCleanerの仕組み DMTableCleaner ジョブのナビゲーション プロデューサー/コンシューマー構成 エラーコードと警告 導入: データ量の増加は、データ管理とクリーンアップに課題をもたらしています。データのクリーニングは、データがクリーンアップの対象になる速度よりも遅くなる可能性があります。DMTableCleanerは、新しいデータ管理(DM)フレームワークに基づいて構築され、現在のデータハウスキーピングに対処するように設計されています。従来のシングルスレッド クリーニング メカニズムをマルチスレッド アーキテクチャに置き換え、より高速、安全、信頼性の高いデータ削除を保証します。 DMJOBs フレームワーク: DM(データ管理フレームワーク)ジョブは、まったく新しいプラグイン「DMJobプラグイン」の一部としてOOTBでインストールされます。DMJob は、プロデューサーとコンシューマーのパターンに従います (現在すでにこのパターンを使用しているアーカイブジョブと同様です)。この DMJob フレームワークは、DM フレームワークを使用してデータ管理ジョブをオンボーディングするために新しく構築されました。 DMJob は「DMScheduler」という名前の sys_trigger で構成され、1 時間ごとに実行されるように繰り返し間隔でスケジュールされています。 この DM プラグインで作成された 3 つの追加のテーブル: sys_dm_job: フレームワークが実行できる各 DMJob インスタンスの構成の詳細を保存します。sys_dm_run: プロデューサージョブによって開始されたすべての実行 (「実行」) を記録します。たとえば、各 DMTableCleaner 実行は通常、アクティブなテーブルクリーナールールに対応します。sys_dm_chunk: sys_dm_runごとに生成されたデータ「チャンク」が含まれ、これらはコンシューマージョブによって処理されます。 DMTableCleanerと利点: DMTableCleaner は、DMJob フレームワークを利用したマルチスレッド テーブル クリーンアップ ソリューションです。従来のシングルスレッドテーブルクリーナーに比べて、複数の生産者と消費者が並行して操作できるようにすることで、明らかに改善されています。 この構成により、アドミニストレーターは、インスタンスの特定のデータ増加と高速なデータクリーンアップのニーズに合わせた同時実行の度合いを構成できます。 主な利点: 並列処理: 複数のプロデューサーとコンシューマーが、1 つのスレッドのタイムアウトによってクリーンアッププロセス全体が停止しないようにします。 スケーラビリティ: 管理者は、特に大規模な環境で、必要に応じてプロデューサーとコンシューマーを構成して、クリーニングを高速化できます。 コスト効率: 迅速なデータ クリーンアップは、ディスク容量の使用量の削減とコストの削減につながります。 レジリエンス: いずれかのプロデューサーまたはコンシューマーでタイムアウトまたはエラーが発生した場合、他のプロデューサーまたはコンシューマーは影響を受けずに処理を続行します。 DMTableCleaner の仕組み: Yokohama リリース以降、デフォルトでは、sys_trigger の DMScheduler は 1 時間ごとに開始されます。これは、すべてのアクティブなDMJob(sys_dm_job)を通過し、そのうちの1つが通常DMTableCleanerです。アクティブなテーブルクリーナー (sys_auto_flush) ルールごとに、対応する「sys_dm_run」が生成されます。 プロデューサーロジックは、sys_dm_job の「producer_class」列に従って名前が付けられたシステムトリガーを作成し、「max_producers」値に基づいてプロデューサースレッドの数を管理します。 同様に、コンシューマーは「consumer_class」列にちなんで名付けられ、「max_consumers」によって制御されるトリガーでスピンアップされます。 プロデューサーは、まだ実行されていない利用可能な DM 実行を取得し、その DM 実行の DM チャンク (sys_dm_chunk) を生成します。 コンシューマーは利用可能なチャンクを取得し、適切なテーブルからデータ削除を実行します。 プロデューサーとコンシューマーは並行して動作するため、スループットが最大化され、ジョブ時間が最小限に抑えられます。 すべての DM チャンクが処理されると、DMJob は DM 実行ステータスを「完了」にマークします DMTableCleaner ジョブの操作: DMTableCleaner はデフォルトで有効になっており、Yokohoma リリースのシングルスレッドテーブルクリーナーを置き換えます。ただし、いずれの場合も、次の手順で有効/無効にすることができます。 https://<instancename>.service-now.com/sys_dm_job_list.do に移動します。DMTableCleaner ジョブを見つけて開きます。アクティブなチェックボックスを切り替えて、有効または無効にします。 プロデューサー/コンシューマー構成: プロデューサーとコンシューマーの数の微調整は簡単です。DMTableCleaner ジョブフォーム内で、アドミニストレーターは [max_producers] フィールドと [max_consumers] フィールドをスケールアップまたはスケールダウンに設定できます。 これらの値を増やすと、並列処理が強化されます。これは、データが急速に増加する環境や、クリーンアップするテーブルが非常に大きい環境で特に重要です。 この変更には「maint」ロールが必要です。お客様は ServiceNow サポートに問い合わせてプロデューサーとコンシューマーの数 を拡大することをお勧めします。 エラーコードと警告: 「sys_dm_run」テーブルには、各実行のステータスが「ステータス」列に保存されます。 準備完了:実行が作成されたときの初期ステータス。処理中:コンシューマーが実行のためにチャンクをアクティブに消費している場合。完了:実行がエラーなしで正常に終了したとき。 エラー:チャンク処理またはデータクリーンアップ中に発生したエラー。タイムアウト:実行が許容期間を超えて停止したとき。 Related Links<!-- /*NS Branding Styles*/ --> .ns-kb-css-body-editor-container { p { font-size: 12pt; font-family: Lato; color: var(--now-color--text-primary, #000000); } span { font-size: 12pt; font-family: Lato; color: var(--now-color--text-primary, #000000); } h2 { font-size: 24pt; font-family: Lato; color: var(--now-color--text-primary, black); } h3 { font-size: 18pt; font-family: Lato; color: var(--now-color--text-primary, black); } h4 { font-size: 14pt; font-family: Lato; color: var(--now-color--text-primary, black); } a { font-size: 12pt; font-family: Lato; color: var(--now-color--link-primary, #00718F); } a:hover { font-size: 12pt; color: var(--now-color--link-primary, #024F69); } a:target { font-size: 12pt; color: var(--now-color--link-primary, #032D42); } a:visited { font-size: 12pt; color: var(--now-color--link-primary, #00718f); } ul { font-size: 12pt; font-family: Lato; } li { font-size: 12pt; font-family: Lato; } img { display: ; max-width: ; width: ; height: ; } } ServiceNow でのデータ管理をマスターするテーブルクリーナーのリソース使用量の管理