# 一意性

> DQSが測定する6つの一意性指標、重複と繰り返しコンテンツを見つける診断フロー、そして一意性分析の設定方法について解説します。

Source: https://dataqualitysense.com/ja/resources/data-quality/uniqueness/
Last updated: 2026-04-16

---

## 一意性とは

一意性は、データ値が異なり重複していないかどうかを測定します。フィールドは、各レコードが異なる値を持つときに高い一意性を持ちます。複数のレコードで同じ値が現れたり、テキストフィールドに分析価値を生まない繰り返しのテンプレートコンテンツが含まれているときに、一意性は損なわれます。

重複レコードは組織のあらゆる段階でコストを生みます。同じ会社の3件のAccountレコードはパイプラインを分断します。同じ人物の2件のContactレコードは2通のマーケティングメールを受け取ります。数千件のCase説明に貼り付けられた定型文はインサイトの抽出を不可能にします。一意性分析はこれらすべての問題を定量化します。

```
一意性率 =（ユニークな値を持つレコード / 全レコード）× 100
```

Contactレコード10,000件のうち7,800件が独自のEmail値を持っていれば、Emailの一意性率は78%です。残り22%は少なくとも1件の他のレコードとメールアドレスを共有しています。この1つの指標により、一意性が期待されるフィールドに実際に一意性があるかがわかります。

## 一意性が重要な理由

### レポート

重複レコードは数字を水増しします。同じ会社が3件のAccountとして現れると、Account数は2件多く表示されます。パイプラインレポートは1件しかない商談を3件として表示します。経営会議や投資家向けレポートに使われる顧客数は誤ったものになります。

### 自動化

Salesforceの自動化は各レコードを独立して扱います。重複Accountは重複ワークフローをトリガーし、重複通知を送り、重複タスクを作成します。同じ会社名に一致するAccountで起動する更新プロセスは、1回ではなく3回実行されます。

### AIとAgentforce

AIモデルは各レコードを別のエンティティとして処理します。重複レコードは、モデルにおける顧客の見え方を分断します。AgentforceはSalesforceのデータを使って応答を生成します。同じ会社のAccountレコードが3件あるとき、Agentforceは完全な履歴を持つ1人の顧客ではなく3人の顧客を見ることになります。テキストフィールド内の繰り返しの定型文は、ビジネスパターンではなくテンプレートをモデルに学習させます。

| システム | 一意性の影響 |
|--------|-------------------|
| レポート | 水増しされた件数、分断された指標 |
| ワークフロー | 重複トリガー、冗長な通知 |
| 重複ルール | 既存の重複を検出していないと処理が追いつかない |
| Agentforce | 分断された顧客ビュー、テンプレートに汚染された学習 |

## DQSによる一意性の測定方法

DQSは次の診断的な問いを軸として6つの一意性指標を算出します。**「データは異なっているか、どのように分布しているか、そしてテキストコンテンツは独自のものか」**

これらの指標は診断フローのようなものです。各レイヤーが前のレイヤーの上に積み上がります。

### レイヤー1：値はユニークか

**一意性率**は看板となる指標です。フィールド値が（データセット内の他のどのレコードとも重複していない）異なるものであるレコードの割合を計算します。ダッシュボードに掲載する数字がこれです。

Contactオブジェクトでスキャンを実行します。`Email`フィールドは一意性率78%と表示されます。つまり22%のメールアドレスが複数のContactに現れているということです。一部は正当なもの（info@company.comのような共有部門メール）ですが、大半はマージが必要な重複Contactである可能性が高いです。この1つの数字だけで重複排除の取り組みを正当化できます。

**Distinct件数**はフィールドのカーディナリティ、つまり実際にいくつの異なる値が存在するかを示します。Contactレコード10,000件に8,200の異なるメールアドレスがあれば、Distinct件数は8,200です。

**例：**`Lead_Source`選択リストには約12の値（設定した選択リストオプション）があると想定しています。しかしDistinct件数は87と表示されます。選択リストが制限される前、担当者は自由入力していました。「Web」「web」「Website」「Webinar」「web form」はすべて別々の値として数えられます。この指標は、選択リストが今はロックされていても、Lead Sourceデータに正規化が必要であることを明らかにします。

### レイヤー2：データの分布はどうか

一意性率はいくつの値がユニークかを示します。分布指標はそれらの値がレコードにどのように広がっているかを示します。2つのフィールドが同じ一意性率を持っていても、分布は大きく異なることがあります。

**Entropy**は、Shannonエントロピーを使って値がどれほど均等に分布しているかを測定します。スケールは0（すべてのレコードがまったく同じ値）から、異なる値の数で決まる最大値までの範囲です。エントロピーが高いほど、より多様で均等に広がったデータを意味します。

エントロピーそのものに意味はありません。そのフィールドの最大可能エントロピーと比較しましょう。最大値 = log2(Distinct件数)、つまり各異なる値がまったく同じ回数現れた場合のエントロピーです。比率（実際値 / 最大値）は0から1の正規化されたスコアを与えます。

| 正規化値（実際値 / 最大値） | 解釈 |
|---------------------------|----------------|
| 0.9以上 | 均等分布：値が一様に広がっている |
| 0.7〜0.9 | 中程度の偏り：一部の値が他より多く現れる |
| 0.7未満 | 支配的：少数の値がほとんどのレコードを占める |

**例：**Accountの`Industry`フィールドは一意性率2%（選択リストとして想定通り）、24の異なる値があります。良好に見えます。しかしエントロピーは1.3で、24値の最大エントロピーは4.6です。正規化スコアは0.28です。分布は深刻に偏っており、レコードの60%が「Technology」と「Financial Services」です。業種ベースのセグメンテーションは、24カテゴリを装った2バケットシステムです。

**Max Frequency**は、最も一般的な単一の値の出現回数を示します。「London」が`City`フィールドに8,400回現れれば、Max Frequencyは8,400です。

単一の支配的な値は、デフォルト値の問題、移行時の残滓、または調査が必要な真のビジネスの集中を示すことがよくあります。Max Frequencyは問いを投げかけます。実際の値を素早く確認することで答えが見つかります。

**例：**`Billing_Country`フィールドは40,000件のうちMax Frequencyが34,000です。レコードの85%が1つの国です。ビジネスが本当に1つの市場に集中しているか、あるいは移行時に誰かがデフォルトを設定したかのどちらかです。この指標はパターンを浮かび上がらせます。原因の判断はあなたが行います。

### レイヤー3：テキストコンテンツは独自のものか

最初の2つのレイヤーは値が*同一*であるかを測定します。レイヤー3は異なる問いを投げかけます。テキストコンテンツは*実質的に類似*しているか。2つのCase説明は100%ユニーク（異なるケース番号、日付）でありながら、90%が定型文（同じテンプレート、同じフレーズ）であることがあります。

**Boilerplate Rate**はテキストコンテンツの独自性を示す看板となる指標です。繰り返しまたはテンプレート化されたコンテンツの割合を測定します。スコアが高いほど、定型文の少ない独自コンテンツが多いことを意味します。DQSはメール署名、法的注意書き、繰り返しのフレーズなどの一般的なテンプレートを検出します。

**例：**あなたの組織は、AIによる勝敗分析にOpportunityの`Description`フィールドが適しているかを評価しています。一意性率は99%です（技術的にはすべての説明が異なります）。しかしBoilerplate Rateを見ると、コンテンツの65%が同じテンプレートに従っていることがわかります。「顧客：[名前]。ニーズ：[製品]。期日：[日付]。」AIモデルは勝ちパターンではなく、テンプレート構造を学習することになります。Boilerplate Rateは、ゴミ入りゴミ出しAIプロジェクトからあなたを救います。

**Boilerplate Records件数**は、絶対数でクレンジング範囲を示します。12,400件のレコードに定型文が含まれていれば、データスチュワードは対応プロジェクトの規模を把握できます。工数を見積もり、リソースを割り当て、現実的なタイムラインを設定できます。

**例：**サポートチームはすべてのやり取りを`Case Comments`に記録します。Boilerplate Records件数は12,400です。調査すると、エージェントが定型の冒頭（「サポートへのお問い合わせありがとうございます。お客様のケース番号は…」）と結び（「お気軽にお問い合わせください…」）をすべてのケースに貼り付けていることがわかります。サポートやり取りの分析にAIを使う前に、それらの12,400件のレコードから定型文を取り除く必要があります。

### 分析の3つの観点

一意性指標は3つの異なる関心事をカバーし、それぞれ異なるステークホルダーに対応します。

| 関心事 | 指標 | 問い | ステークホルダー |
|---------|---------|----------|-------------|
| **重複** | 一意性率、Distinct件数 | 繰り返しの値があるか | データスチュワード（マージ候補、重複排除ルール） |
| **分布** | Entropy、Max Frequency | データは値の間でどのように広がっているか | アナリスト、データサイエンティスト（セグメンテーション、モデリング） |
| **独自性** | Boilerplate Rate、Boilerplate Records件数 | テキストコンテンツは本当に独自のものか | AIチーム（学習データ品質、コンテンツ抽出） |

## 指標リファレンス

### 基礎指標

次の2つの指標は、一意性分析の基盤を成します。サポートされる15のフィールドタイプすべてで機能します。

| 指標 | タイプ | 測定内容 |
|--------|------|-----------------|
| 一意性率 | パーセンテージ | 重複していない値を持つレコードの割合 |
| Distinct件数 | 件数 | フィールド内の異なる値の総数 |

### 高度指標

次の4つの指標は「値はユニークか」を超えて、分布パターンとテキストの独自性を分析します。Advanced Uniqueness Analysisモードが必要です。

| 指標 | タイプ | 測定内容 |
|--------|------|-----------------|
| Entropy | 小数 | 値がどれほど均等に分布しているか（Shannonエントロピー） |
| Max Frequency | 件数 | 最も一般的な単一の値の出現回数 |
| Boilerplate Rate | パーセンテージ | テンプレート化または繰り返しコンテンツの程度 |
| Boilerplate Records件数 | 件数 | 定型文コンテンツを含むレコードの数 |

### フィールドタイプのカバレッジ

測定内容に基づき、異なる指標は異なるフィールドタイプに適用されます。

| カバレッジグループ | フィールドタイプ | 利用可能な指標 |
|---------------|-------------|-------------------|
| 全タイプ（15） | String、TextArea、LongTextArea、Number、Currency、Percent、AutoNumber、Date、DateTime、Picklist、Email、Phone、URL、Lookup、Checkbox | 一意性率、Distinct件数 |
| 分析タイプ（9） | String、TextArea、Number、Picklist、Multiselect Picklist、Checkbox、Email、Phone、URL | Entropy、Max Frequency |
| テキストフィールド（3） | String、TextArea、Html | Boilerplate Records件数 |
| ロングテキストフィールド（3） | TextArea、LongTextArea、Html | Boilerplate Rate |

コア指標は15のフィールドタイプすべてで機能します。どのフィールドにも重複がありうるからです。分布指標（Entropy、Max Frequency）は、数えられる頻度テーブルを生成する9つのフィールドタイプで機能します。定型文指標は、自由入力データの繰り返しコンテンツパターンを検出するため、テキストフィールドにのみ適用されます。

## 2つの分析モード

DQSには2つの一意性分析モードがあります。

**Basic Uniqueness**は「値は異なるか」という問いに答えます。2つの基礎指標を生成し、簡易な重複検出チェックやベースライン監査に必要な要素をカバーします。

**Advanced Uniqueness Analysis**はさらに深く掘り下げます。分布分析、頻度パターン、定型文検出を含む6指標すべてを生成します。重複率だけでなく、データ分布とテキスト独自性の全体像を把握する必要がある場合にこのモードを使います。

| ビジネスニーズ | 推奨モード |
|---------------|-----------------|
| 簡易重複検出監査 | Basic Uniqueness |
| データ移行評価 | Advanced（Max Frequencyでデフォルト値を捕捉、Entropyで偏りを明らかにする） |
| 選択リスト衛生チェック | Advanced（Entropy＋Max Frequencyで偏りと正規化ニーズを明らかにする） |
| AI学習データ評価 | Advanced（定型文指標でコンテンツ独自性を評価） |
| 継続的データガバナンス | Basic Uniquenessから始め、深い分析のためにAdvancedへ |

## 一意性の設定

DQSは一意性に対して2つの設定入力を提供します。それぞれグローバルレベル（すべてのフィールドに適用）で設定し、個別フィールドレベルでオーバーライドできます。

| 設定 | 制御内容 |
|---------|-----------------|
| **Case Sensitive** | 値比較が大文字小文字を区別するかを制御します。無効（デフォルト）にすると、「Apple」と「apple」は同じ値として数えられます。有効にすると、2つの異なる値として数えられます。 |
| **Include Blanks** | nullや空欄レコードが一意性計算に含まれるかを制御します。無効（デフォルト）にすると、空欄は評価から除外されます。有効にすると、すべての空欄レコードが1つの「空欄」値を共有し、多くの空レコードを持つフィールドの一意性率を下げることがあります。 |

> **ヒント：**ほとんどのフィールドではCase Sensitiveを無効（デフォルト）にしましょう。「ABC-100」と「abc-100」が真に異なるアイテムである製品コードのように、大文字小文字が意味を持つ場合にのみ有効にします。

### Include Blanksを有効にすべきとき

デフォルトでは、DQSは空欄とnullレコードを一意性計算から除外します。これは空欄が想定される任意フィールドでは理にかなっています。

測定したい問題が空欄そのものである場合、Include Blanksを有効にしましょう。3,000件のContactレコードにEmail値がなければ、それらの3,000件の空欄は一意性計算で1つの「空欄」値を共有します。これは一意性率を下げ、空欄の問題を看板指標で可視化します。

**例：**Include Blanksを無効にしてContactの`Phone`をスキャンします。一意性率は91%です。Include Blanksを有効にして再スキャンします。一意性率は72%まで下がります。その差は、Contactレコードの大部分が電話番号を持たないという共通の特徴を共有していることを明らかにします。空欄を除外したときはフィールドは健全に見えましたが、全体像は異なる物語を語ります。

## よくある一意性の問題

### 一括インポートからの重複レコード

マッチングロジックが不十分だと、データ移行やリストインポートは重複を招きます。購入した連絡先リストはすでに存在する人の新レコードを作成します。レガシーシステムのエクスポートは現在のデータと重複するAccountを作成します。

**対処法：**ロード前にインポートを監査します。各インポートの前後で、重要な識別子フィールド（Email、Phone、Website）に対してDQSで一意性のベースラインを確立します。

### データを装うデフォルト値

インテグレーションや移行では、フィールドにデフォルト値を書き込むことがよくあります。「Unknown」「N/A」または会社名自体が数千件のレコードに現れます。これらは重複件数を水増しし、分布指標を歪めます。

**対処法：**Advanced Uniqueness Analysisを実行しましょう。Max Frequencyが支配的な値を明らかにします。1つの値がレコードの85%に現れている場合、それが実際のデータかデフォルト値かを調査しましょう。

### ガバナンスのない自由入力フィールド

選択リストの制約がないテキストフィールドは、時間とともにバリエーションを蓄積します。Contactの`Job_Title`フィールドは同じ役職を15の異なる方法で保存します。Distinct件数が増えていく一方、実際のビジネス概念の集合は小さいままです。

**対処法：**標準化を計画しているテキストフィールドに対してAdvanced Uniqueness Analysisを実行しましょう。Distinct件数とEntropyを使って正規化作業の範囲を設定します。価値の高い自由入力フィールドを選択リストに変換しましょう。

### 定型文で汚染されたテキストフィールド

サポートエージェントは、定型の冒頭と結びをすべてのケースに貼り付けます。営業担当者はOpportunity説明のテンプレートをコピーします。フィールドは技術的には「ユニーク」（異なるケース番号、日付）ですが、コンテンツの90%は同一です。

**対処法：**テキストフィールドに対して定型文検出付きのAdvanced Uniqueness Analysisを実行しましょう。Boilerplate Rateはテンプレート汚染の程度を明らかにします。これらのフィールドをAI学習や分析に使う前に対処しましょう。

### 重複のように見える共有識別子

部門メール（info@company.com）、共有電話番号、会社全体のファクス番号は、正当な重複値を作ります。一意性率の低さがすべて問題を示すわけではありません。

**対処法：**一意性をコンテキストで評価しましょう。一意性78%のEmailフィールドは調査が必要です。一意性40%のFaxフィールドは想定内です。フィールドが表すものに基づいてモニタリングのしきい値を設定しましょう。

## ベストプラクティス

### フィールドタイプに応じた看板指標を選ぶ

一意性率は識別子フィールド（Email、Phone、Account名）にとって適切な看板指標です。テキストコンテンツフィールド（Description、Notes、Comments）では、一意性率とBoilerplate Rateを組み合わせて全体像を把握しましょう。フィールドは一意性率99%でも定型文率65%であることがあります。

### セグメンテーションフィールドでは分布指標を使う

セグメンテーション、フィルタリング、レポート（業種、国、Lead Source）に使うフィールドでは、EntropyとMax Frequencyを確認しましょう。低いエントロピーは、「24カテゴリ」選択リストが実際には2バケットシステムであることを明らかにします。Max Frequencyは、セグメントを歪めるデフォルト値を明らかにします。

### スキャンをまたいでトレンドを追跡する

単一のスキャンは現状を示します。定期的にスキャンを実行し、新しい重複源を検出し、重複排除施策の影響を測定し、繰り返しデータを生み出すインテグレーションを特定しましょう。スキャンの間に90%から75%まで一意性が下がるフィールドには、新しい問題源があります。

### ビジネスインパクトで優先順位をつける

すべてのフィールドに高い一意性が必要なわけではありません。重複のあるEmailフィールドはマージの問題を示します。重複のあるCountryフィールドは正常です。識別子として機能するフィールド、重複排除ルールを駆動するフィールド、AIモデルに供給されるフィールドに一意性モニタリングの焦点を当てましょう。

### 根本原因に対処する

低い一意性はプロセスの問題を示します。ユーザーが既存レコードを確認せずに作成しているのか、インポートに重複排除ロジックがないのか、インテグレーションがデフォルト値を書き込んでいるのかを調査しましょう。症状ではなく原因を修正します。

## 次のステップ

一意性の問題を測定し診断する方法を理解しました。次の次元について学び続けましょう。

- **次へ：**[適時性](/ja/resources/data-quality/timeliness/) - データの鮮度と最新性を測定する
- **前へ：**[妥当性](/ja/resources/data-quality/validity/) - データが期待されるフォーマットに準拠することを確認する
- **関連：**[5つの次元](/ja/resources/data-quality/five-dimensions/) - すべての次元の概要
- **アクション：**[AI対応度診断](/ja/ai-readiness/) - 現在の一意性スコアを確認する
