データ重複排除とは:手法とメリット

Michael Chen | コンテンツ・ストラテジスト | 2024年2月14日

データ重複排除は、データやファイルの冗長なコピーを体系的に排除するプロセスであり、これによりストレージコストの削減やバージョン管理の向上が期待できます。あらゆるデバイスがデータを生成し、組織全体でファイルを共有する時代において、データ重複排除はIT運用における重要な要素です。また、データ保護と事業継続性を支える重要なプロセスでもあります。バックアップにこの手法を適用すると、重複したファイルやデータブロックを特定・排除し、重複のないデータを1つだけ保存できます。これによりネットワーク経由で転送されるデータ量が減り、コスト削減だけでなく、バックアップやリカバリの所要時間短縮にもつながります。

データ重複排除とは

データ重複排除とは、データベースやストレージから同一のファイルやブロックを取り除くプロセスです。この処理は、ファイル単位、ブロック単位、あるいはバイト単位など、アルゴリズムに応じてさまざまな精度で実行されます。効果は「データ重複排除率」と呼ばれる指標で測定されることが一般的です。重複排除を行うことで、組織のストレージに空き容量が増えますが、その効果の大きさは業務内容やファイルの種類によって異なります。IT部門は定期的に重複データの有無を確認すべきですが、重複排除を頻繁に行うメリットも環境や条件によって大きく異なります。

主なポイント

  • データ重複排除は、重複データを検出・排除するプロセスです。
  • 重複排除ツールは、ファイル単位からファイルセグメント、またはブロック単位まで、さまざまな精度で実行できます。
  • 精度が高い重複排除ほど多くの計算リソースを必要とします。
  • バックアップやアーカイブの場合、重複排除はデータ転送の前後どちらにも実施できます。転送前に行う場合は帯域幅の節約に、転送後に行う場合はローカルリソースの消費を抑える効果があります。

データ重複排除の基本

データ重複排除プロセスでは、専用のツールがストレージボリュームをスキャンし、重複データを検出して指定されたコピーを削除します。重複を見つけるため、システムは各データに付与された一意の識別子(ハッシュ値)を比較します。同じハッシュ値が見つかった場合、そのデータは1つだけ保存し、重複分は元のコピーへの参照に置き換えられます。

重複排除システムは、ローカルストレージ、データカタログなどの管理ツール、データストア内を検索し、構造化データ・非構造化データの両方をスキャンします。以下は、このプロセスを理解するうえで重要な用語と定義です。

  • データ重複排除率: 重複排除プロセスの成果を測定する指標です。元のデータストア容量と重複排除後の容量を比較して算出されます。高い値ほど重複排除が効果的に行われていることを示しますが、重複排除の頻度やデータの種類など、さまざまな要素によって結果は異なります。たとえば仮想化技術では、仮想マシンのバックアップや複製により複数のデータコピーが生まれます。一部コピーを保持することは冗長性やデータ損失時のリカバリに重要です。
  • データ保持期間: データがストレージに保存される期間で、通常はポリシーで定められます。たとえば財務レポートはメールよりも長期間保存が必要です。保持期間が長いほど、バックアップや転送、仮想マシン利用を通じてデータが重複する可能性も高まります。
  • データタイプ: 保管されるデータの形式のことです。一般的には、実行ファイル、ドキュメント、メディアファイルなどがあります。ファイルの用途や重要性、アクセス頻度などによって、重複の有無や保持期間が決まります。
  • 変更率: ファイルがどれだけ頻繁に更新・変更されるかを示す指標です。変更率が高いファイルは、重複される頻度が比較的低い傾向にあります。
  • 保存場所: データが保存されている場所を指します。同一ファイルが複数の場所に存在することで重複が生じることがよくあります。これは、バックアップ目的で意図的に同じファイルを複数箇所に保存する場合もあれば、コピー&ペーストによって偶然複製されてしまう場合もあります。複数のロケーションに仮想マシンを配置することで重複ファイルが生まれるケースもあります。

データ重複排除が役立つ理由

データ重複排除は、ストレージ容量や計算リソース、コストの節約に大きく貢献します。基本的には、重複排除はストレージボリュームの削減を目的としています。しかし、あらゆるデバイスが膨大なデータを生成し、部門間でファイル共有が日常的に行われている現代では、重複データの影響は非常に広範囲に及びます。たとえば、重複データが多いと処理速度が遅くなったり、ハードウェアリソースを無駄に消費したり、冗長性が増すことで各チームが異なる重複ファイルを使い混乱を招くこともあります。重複排除によって、これらの課題を解消できるため、多くの組織ではITメンテナンス戦略の一環として定期的に重複排除を実施しています。

データ重複排除を実施するタイミング

データ重複排除はリソースを多く消費するデータ管理プロセスであるため、実施のタイミングはネットワーク設計や従業員のファイルアクセスの状況など、複数の要素を考慮して判断する必要があります。以下は、データ重複排除がよく利用される代表的なケースです。

汎用ファイルサーバー

汎用ファイルサーバーは、個人のキャッシュファイルや部門共有フォルダなど、幅広い種類のデータの保存・提供を担います。この種のサーバーは、利用者数も多く、ユーザーロールも多様なため、重複ファイルが多く存在しやすい環境です。重複の主な原因としては、ローカルハードドライブからのバックアップ、アプリケーションのインストール、ファイル共有などが挙げられます。

仮想デスクトップインフラ(VDI)環境

仮想デスクトップ・インフラストラクチャ(VDI)は、仮想化されたデスクトップを集中管理し、リモートアクセスを提供する技術です。ただし、仮想ハードドライブの内容がほとんど同一であることが多いため、重複ファイルがストレージ容量を圧迫しがちです。さらに、多数のユーザーが業務開始時などに一斉に仮想マシンを起動すると、「VDIブートストーム」と呼ばれる現象が発生し、パフォーマンスが著しく低下することがあります。重複排除を用いれば、各種アプリケーションリソースをオンデマンドで呼び出す際にインメモリキャッシュを利用することで、こうした問題を緩和できます。

ストレージシステムとバックアップ

バックアップでは、冗長性確保のためにファイルのコピーが頻繁に作成されます。ただし、同じファイルを際限なくコピーし続ける必要はありません。データ重複排除を活用することで、1つの「きれいな」バックアップファイルを基準にして、以後のバックアップで重複するデータは基のファイルを参照するだけで済みます。これにより、冗長性を維持しつつリソースやストレージスペースを最適化できます。

データ転送

重複排除ツールを利用することで、データ転送プロセスをより効率的に進めることができます。全体を上書きするのではなく、ツールがファイルをセグメント単位で判別し、必要な部分のみを転送します。たとえば、非常に大きなファイルの新バージョンを受け取る際、更新されたセグメントが一部だけであれば、転送や上書き処理はその部分だけに限定され、処理時間が大幅に短縮されます。

アーカイブシステム

アーカイブシステムは一般的にバックアップと混同されがちですが、いずれも長期保存を目的としています。システムでは災害復旧や備えのためにバックアップを生成しますが、アーカイブシステムは、もはや日常的に使われなくなったデータを保持するために利用されます。ストレージボリュームの統合や新規セグメントの追加時に重複が発生することがありますが、重複排除プロセスによってアーカイブの効率を最大化することが可能です。

データ重複排除の仕組み

データ重複排除ツールは、ファイルやファイルブロックごとに重複識別用のフィンガープリント(ハッシュ)を比較し、重複が確認されれば、それを記録し削除します。ここでは、具体的な処理手順について説明します。

チャンク化

チャンク化とは、ファイルを細かなセグメント(チャンク)に分割して重複排除を行うプロセスです。セグメントのサイズはアルゴリズムで自動的に決定したり、設定ガイドラインで指定したりします。チャンク化によって、より細かな粒度で正確な重複排除が可能となりますが、その分計算リソースも多く必要です。

ハッシュ化

次に、ハッシュアルゴリズムによって各チャンクに対し一意のハッシュ値が割り当てられます。重複排除ツールは、処理済みデータのログにこのハッシュ値がすでに存在するかをチェックし、すでに存在する場合は重複データとみなし、削除してストレージスペースを節約します。

参照テーブル

重複排除プロセスの結果は、参照テーブルに記録されます。このテーブルには「どのセグメントやファイルが削除されたのか」「どのデータと重複していたのか」といった情報が残されます。これにより、重複排除の透明性や追跡性が確保でき、ストレージ全体で各ファイルがどのソースを参照しているかの記録も残ります。

データ重複排除の手法

組織は、予算やネットワーク帯域、冗長性ニーズに応じて、さまざまなデータ重複排除の手法から最適なものを選択できます。どこで処理を行うか、いつ処理するか、どの程度細かく処理するかといった要素を組み合わせることで、自社に合わせた最適なソリューションを構築できます。

インライン重複排除とポストプロセス重複排除のどちらが自社に最適かを検討する際、それぞれのメリット・デメリットを知ることが重要です。

インライン重複排除とポストプロセス重複排除の図:

インライン重複排除:

  • データがストレージに書き込まれる前に重複排除を実施します。
  • データがディスクに書き込まれる前にデータ容量を最適化・削減します。
  • 長所:
    • ストレージ容量の必要量を削減でき、コストを削減。
    • データ転送量が減ることでパフォーマンスが向上。
  • 短所:
    • 重複データをリアルタイムで排除するため、より多くの処理能力が必要。
    • 効率的に処理できない場合、システム全体の動作が遅くなる。

ポストプロセス重複排除

  • データが一度ストレージへ書き込まれた後で重複排除を実施します。
  • RAWデータがそのままディスクに書き込まれます。
  • データがディスクに書き込まれた後にデータ容量を最適化・削減します。
  • 長所:
    • 必要なリソースが少なくて済む。
    • 重複排除はバッチ処理として分けて実行されるため、本番環境のパフォーマンスに影響を与えない。
  • 短所:
    • 重複データがリアルタイムで排除されないため、不整合がさらに生じる可能性がある。
    • バッチ処理のタイミング次第で重複データの特定および削除に遅れが生じる

重複排除の主な手法

  • ブロックレベル重複排除: 重複排除ツールがデータをブロック単位(セグメント単位)で比較し、各ブロックのフィンガープリント(ハッシュ値)を判定して重複を削除します。非常に精度の高い重複排除が可能ですが、リソース消費が大きく、物理ストレージが大規模な場合には適用が難しい場合もあります。
  • 可変長重複排除: アルゴリズムでファイル内のデータセグメントのサイズを決定し、そのうえで重複をチェックします。ブロックレベル重複排除と似た高い精度が得られますが、各ブロックのサイズが固定でない点が特徴です。
  • ファイルレベル重複排除: ブロック単位ではなく、ファイル単位で重複を検出します。この方法はブロックレベルほど細かい粒度ではありませんが、処理が速く、消費リソースも少ないため、ストレージ規模に関係なく適用しやすい利点があります。

重複排除の実行ポイント

  • ソース重複排除: クライアント側(ローカル端末)で重複排除を実行する方式です。バックアップ前にクライアントで重複排除を行うことで、通信帯域や転送コストを抑えられる一方で、クライアントのリソースを多く消費する点が特徴です。
  • ターゲット重複排除: バックアップの転送後に重複排除を実施する方式です。こちらはソース重複排除とは逆で、クライアント側の負担は小さいものの、ネットワーク帯域やターゲット側のリソースに大きく依存します。

重複排除のタイミング

  • インライン重複排除: データ処理の実行中にリアルタイムで重複を検出・排除する方法です。ローカルの計算リソースを多く消費しますが、その分ストレージスペースを大きく節約できるという利点があります。
  • ポストプロセス重複排除: データがターゲット側に転送された後に、重複データの比較・削除を実行する方法です。この方式では、送信前のローカルリソース消費は少なくて済みますが、ターゲット側にはより多くのストレージスペースが必要となります。

データ重複排除のメリット

文書を編集して重複する言葉や表現を削除し、内容をすっきりさせるのと同じように、重複排除は企業のデータを整理し、ストレージコストの削減、帯域幅の節約、バックアップ効率の向上といった効果をもたらします。

ストレージの節約

ファイル数が減ることで、組織全体で必要となるストレージ容量が少なくなります。これはデータ重複排除の最も明確な利点のひとつであり、他のシステムにも恩恵をもたらします。バックアップ用のスペースを減らせるだけでなく、データのスキャンやバックアップ時に消費するコンピュートや帯域幅も節約できます。

ディザスタ・リカバリ

データ重複排除によりバックアップ処理の負荷が軽減されるため、結果として災害復旧のスピードと容易さが向上します。バックアップファイル自体が小さくなり、効率的に作成できるため、復旧時に必要となるリソースも少なくて済みます。

バックアップ時間の短縮

データ重複排除によってバックアップファイルの容量が小さくなるため、ストレージ・計算リソース・処理時間といったバックアップ時の負荷も減少します。これにより、組織はバックアップのスケジュールを柔軟に調整できるようになります。

ネットワーク効率の向上

転送すべきファイル数が減れば、その分必要な帯域幅も少なくて済みます。データ重複排除は、バックアップやアーカイブ、災害復旧時のリストアなどあらゆるデータ転送プロセスにおいて、ネットワークリソースの使用量を低減し、ネットワーク効率を高める効果があります。

経済的なメリット

データ量の急増により、あらゆる規模の組織でストレージコストが急速に上昇しています。重複排除を導入することで、日常業務やバックアップ・アーカイブに必要なストレージ容量を減らし、コスト削減が期待できます。さらに、エネルギー・計算リソース・帯域幅・運用管理にかかる人件費の削減など、間接的なコストメリットも得られます。

データ重複排除の課題と注意点

データ重複排除は、リソース活用の最大化やコスト削減に有効な手段ですが、その一方でいくつかの課題も伴います。特に、細かな粒度で重複排除を行う場合には多くの計算リソースが必要となる点が挙げられます。主な課題や懸念事項は以下の通りです。

パフォーマンスへの影響

ブロックレベルで重複排除を実施する場合など、データ重複排除は多くのリソースを消費します。IT部門は、十分な帯域幅があるか、業務活動やバックアップ先・納期に影響がないかなど、自社環境に合わせて重複排除のタイミングや方法を慎重に検討する必要があります。

ハッシュ衝突

ハッシュ衝突とは、ランダムに生成されるハッシュ値がたまたま重複する現象です。重複排除プロセスでブロックレベル手法を用いる場合、各データチャンクにハッシュ値を割り当てることから、このハッシュ衝突が発生するリスクがあり、最悪の場合データが破損する恐れもあります。これを防ぐには、ハッシュテーブルのサイズを大きくするか、衝突解決と呼ばれる方法を導入する必要があります。代表的な手法として、チェイン法とオープンアドレス法があります。チェイン法とは同じハッシュ値を持つ複数の要素を連結リストや別のデータ構造で管理する方法で、オープンアドレス法とはハッシュテーブル内の別の空き場所に重複した要素を格納する方法です。それぞれに長所と短所があるため、ITチームはハッシュアルゴリズムの長さや複雑さと、これらの回避策を慎重に比較検討する必要があります。

データ整合性のリスク

どんなプロセスにも絶対の安全はなく、重複排除の過程で、重要かつ一意のデータが誤って削除・改変される可能性は常に存在します。完全性の問題が発生する主な要因には、ハッシュ衝突、ソースブロックの破損、ディスク障害・停電・作業ミスなどによる処理中断、サイバー攻撃の成功、あるいは単純な操作ミスなどが挙げられます。現在の重複排除ツールやプロトコルの品質は高いですが、こうした問題が発生するリスクはゼロではなく、深刻なトラブルの原因にもなり得ます。

追加メタデータの発生

重複排除プロセスでは、変更履歴や各ブロックごとに付与されるデジタル署名など、新たなメタデータ(「フィンガープリントファイル」)が生成されます。 このメタデータ自体がストレージ容量を必要とし、場合によってはデータ整合性の問題を引き起こす場合もあります。たとえば、このメタデータが破損すると、データ復旧作業が大幅に困難になる恐れがあります。

導入コスト

データ重複排除は長期的にはストレージ使用量の削減によってコストを節約できますが、初期導入時には投資が必要です。これには、重複排除ツール自体のライセンス費用(通常はレコード数ベース)、さらに導入・運用・管理を行うIT担当の作業工数などが含まれます。

データ重複排除の主なユースケース

実際の現場でデータ重複排除はどのように機能しているのでしょうか。理論上は「重複データを削除し、リソース消費を減らし、複数のバージョンが混在することによるエラーを最小限に抑える」というシンプルなデータサイエンスの概念ですが、業種や部門ごとに目的や課題が異なります。ここでは代表的なユースケースを紹介します。

顧客関係管理: CRMシステム内では、顧客情報や連絡先、取引情報などが複数のソース、異なる粒度やフォーマットで記録される場合があります。その結果、マネージャーごとに微妙に異なる情報を持つなど、データの不整合が発生しやすくなります。たとえば、取引先担当者の情報が複数のデータリポジトリにある場合、その人が退職した際、一つのリポジトリだけしか更新されないと、古い情報をそのまま使い続ける人も出てきます。データ重複排除を行うことで、常に正確な顧客情報の「単一の情報源」を確保でき、すべての担当者やグループが最新データに基づいてビジュアライゼーションを作成したり、分析を実行したりできます。

データ統合: 合併や組織再編、M&Aなどで複数の組織が統合されると、同じアプリケーションの異なるインスタンス間に重複レコードが大量に生じます。たとえば、大手企業が小規模な競合企業を買収した際、顧客の40%が重複してERPシステムに登録されているケースもあります。こうした場合、重複排除を活用すれば、無駄なデータやストレージを削減できるだけでなく、統合後の組織内で一貫性のある最新情報の活用が可能になります。

仮想コンピューティング: テスト環境や、特定のアプリケーションや社内システムへの仮想アクセスなどで仮想デスクトップを使用する場合、データ重複排除により効率性を高めることができます。特にユーザー数が多い場合に効果的です。仮想マシンには非常に似たデータが多く含まれているため、重複したファイルが多数存在します。データ重複排除を行うことで、仮想マシンによって大量生成される重複データを一掃し、ストレージの無駄な消費を防ぐことができます。

バンキング: 銀行などの金融機関では、部門や支店ごとに同じ顧客情報のデータが重複して保存されていることがあります。重複した顧客情報は、不正利用の入り口になる恐れがあり、犯罪者によるなりすましや不正取引など、さまざまな違法行為につながるリスクがあります。また、不正の有無をチェックするために重複データを調べたり処理したりするには、多くの手間やリソースが必要になります。データ重複排除を行うことで、銀行や信用金庫などの金融機関は業務効率とセキュリティの両面を向上させることができます。

これらはユースケースの一部にすぎません。大量のデータを生成するあらゆる組織が、データ重複排除の恩恵を受けることができます。

データ重複排除ツールを選ぶ際に考慮すべきポイント

多くのプロバイダーがデータ重複排除ツールを提供していますが、自社に最適なものはどれでしょうか。以下は、候補を絞り込む際に検討すべき主な要素です。

  • パフォーマンス: 重複排除の方式によって必要なリソース量は大きく異なります。たとえば、大規模ネットワーク環境でソース側のブロックレベル重複排除を行う場合は、ターゲット側でファイルレベル重複排除を実行する場合と比較して、格段に多くのリソースを消費します。
  • スケーラビリティ: スケーラビリティとパフォーマンスは密接に関係しています。パフォーマンスを低下させるような処理はスケールアップが難しくなるため、重複排除においてもプロセスが重ければ重いほど、拡張性に制約が生まれます。多様な拡張要件を持つ組織は、このトレードオフも考慮してツールを選定してください。
  • 統合性: データソースが分断されている場合、重複排除プロセスがより複雑になります。たとえば、データベースがサイロ化していると、重複データの発生確率が高くなります。また、拠点が多い大規模ネットワークでは、重複排除前により厳格なデータクレンジングや変換手順が必要になる場合もあります。自社のデータ統合状況をきちんと把握し、それに応じて重複排除の導入方法を検討しましょう。
  • コスト: 重複排除ツールの費用は、複雑さや機能性に応じて大きく異なります。処理レコード数が増えるほど価格も上昇します。まずは業界標準や見積価格を参考に予算案を作成し、長期的なコスト削減効果とバランスを取って導入を判断することが重要です。

Oracle HeatWaveでデータ重複排除のニーズ自体をなくす

データ重複排除の課題を根本的に解決する最善策は、そもそも重複を極力発生させないことです。Oracle HeatWaveは、トランザクション処理、データウェアハウスやデータレイクを横断するリアルタイム分析、機械学習、生成AIをひとつのクラウドサービスで統合的に提供することにより、これを実現します。HeatWaveのお客様は、分析のためにトランザクションデータベースから別の分析用データベースへデータを複製する必要がなく、次のようなメリットが得られます。

  • さまざまな用途ごとに、同じデータを複数のデータストアに保存する必要がありません。
  • データストア間の複雑で時間も手間もかかる、ミスの起きやすいETL(抽出・変換・ロード)プロセスを行う必要がありません。
  • 常に最新のデータに直接分析クエリが実行できるため、別の分析用データベースで古くなったデータを分析するリスクなく、より高品質な分析結果を得られます。
  • データベース間でデータを転送しないため、データ移動時のセキュリティリスクも最小限に抑えられます。
  • HeatWave Lakehouseを使えば、オブジェクトストア内の最大0.5ペタバイトものデータ照会が可能で、MySQLデータベース内のデータと組み合わせて参照することもできます。お客様は、MySQLデータベース内の取引データ、オブジェクトストレージ内の多様な形式のデータ、あるいはその両方を、データをコピーせずに標準のMySQLコマンドで検索・分析できます。

組み込みのHeatWave AutoML機能により、お客様はHeatWave環境内でデータを複製することなく、機械学習モデルの構築・学習・説明を行うことができます。

さらに、HeatWave GenAIは、自動化されたデータベース内ベクトルストア、スケールアウト型ベクトル処理、自然言語での対話機能などを備え、統合・自動化されたセキュアな生成AIを提供します。AI分野の専門知識がなくても、データを別のベクトルデータベースに移動することなく、生成AIのメリットを直接活用できます。

HeatWaveを利用すれば、トランザクション処理、分析、機械学習、生成AIといった複数のクラウドサービス間でデータを重複させる必要がなくなり、データ基盤のシンプル化、意思決定の迅速化と高度化、生産性向上、セキュリティ強化、コスト削減が実現できます。

AIは、CIOがデータを分析してクラウド支出を最適化したり、アーキテクトにコードの調整を提案してエグレスを最小限に抑えたりするのに役立ちます。人工知能のパワーを今すぐ活用して、人材、セキュリティ、その他の課題に対処する方法をご確認ください。

データ重複排除に関するよくある質問

重複排除の具体例を挙げてください。

重複排除の例として、組織のデータをバージョンごとにバックアップやアーカイブするケースが挙げられます。それぞれのアーカイブには、変更されていない同じファイルが複数含まれることが一般的です。重複排除を行うことで、これらの重複ファイルを含まない新しいアーカイブバージョンを作成し、代わりに単一のオリジナルファイルへの参照(ポインタ)を含めることで、追加のストレージを消費せずにデータを管理できます。

重複排除を行う理由は?

重複したレコードはストレージ容量を無駄に消費します。ストレージが無駄に増えることで、バックアップやマルウェアスキャンの際にもより多くの帯域幅や計算リソースが必要となります。重複排除により、ストレージ使用量が削減され、帯域幅やストレージ容量など全体的なリソース消費も抑えられます。

データの重複とは何ですか?

重複は「データの重複」と「データの冗長性」の両方から発生します。データの重複は、ユーザー自身が重複ファイルをシステムに追加してしまう状況を指します。一方、データの冗長性は、重複するファイルやレコードを一部含む複数のデータベースを統合した際に、重複データが生成される状況を指します。

重複排除のデメリットは何ですか?

重複排除は、ストレージ容量を解放し、長期的な効率向上やコスト削減に役立ちます。プロセスそのものは多くのリソースを消費し、コンピュート性能や転送帯域幅など、ネットワークのさまざまな部分を遅延させる可能性があります。そのため、IT部門は重複排除の実行タイミングを戦略的に計画する必要があります。