CDP テーブル関係および処理設計書 — TFHD 案件 (Framework v2)

作成日: 2026-05-12 / 作成: consulting M層 / 対象: TFHD CDP 構築 (framework v2 例示)

1. 概要

本書は TFHD(東急不動産ホールディングス想定)案件における CDP 構築のテーブル関係および処理設計を framework v2 として整理したものである。賃貸基幹・売買基幹・営業CRM・Web会員・MA の5ソースを横断し、顧客(customer)・契約(contract)・物件(product)・商談(deal)・行動(activity)の5ドメインに対し Raw → Base → Staging → Core → Mart の5レイヤーで段階加工する。各レイヤーの責務を明確化し、名寄せ・統合・配信の処理順序を再現可能な形で固定することを目的とする。

v1(テーブル列挙のみ)では「Raw と Base の責務が曖昧」「処理順序が暗黙」「名寄せロジックがブラックボックス」という課題があった。v2 では (1) 5レイヤー責務をレイヤー定義表で固定、(2) ドメイン別フロー図で依存を可視化、(3) 名寄せ・customer 統合を独立処理として切り出し、(4) 管理マスタを横断参照として独立化した。これにより設計レビュー・実装委譲・運用継承のいずれも単一の図表セットで完結する。

本書は framework v2 の例示構成である。TFHD 実環境のソース確定後、v3 で実テーブル名・実カラム・実件数に置換する。

2. レイヤー定義

レイヤー役割加工粒度
管理マスタコード値・分類定義の SoT。全レイヤーから参照手動メンテ/外部マスタ取込1コード=1行company_master, product_type_master
Rawソースシステムの原文取込。1ソース=1テーブル無加工(型のみ)ソース行そのままraw_customer_sales_crm
BaseRaw のクレンジング・型統一・正規化。1Raw=1BaseNULL正規化・型変換・PIIマスキングRaw と同粒度base_customer_sales_crm
Staging同ドメインの複数 Base を共通スキーマに集約UNION・列マッピング・ソース識別子付与顧客レコード横断stg_customer_common
Core名寄せ後の統合エンティティ。CDP の中核名寄せ・代表属性選定・履歴化1顧客=1行 などcustomer, customer_identity
Mart用途別の集計・非正規化・配信整形集計・JOIN・セグメント・同意制御用途依存mart_customer_360
DashboardBI・外部連携の参照層(Mart の直接参照)表示用整形のみMart 同等BI / HubSpot / 広告連携

3. データフロー図

ドメインごとに Raw → Base → Staging → Core → Mart のフローを通す。Raw / Base は複数ソースが並列に存在し、Staging で1本に集約、Core で統合される。管理マスタは全レイヤーから参照される横断資産として上段に独立配置する。

▲ 管理マスタ — 全レイヤーから参照
company_master business_master source_system_master product_type_master contract_type_master deal_stage_master activity_type_master consent_master
customer
RAW (5)
raw_customer_sales_crm営業CRM顧客
raw_customer_rent_core賃貸基幹顧客
raw_customer_sales_core売買基幹顧客
raw_customer_webWeb会員
raw_customer_maMA顧客
BASE (5)
base_customer_sales_crm営業CRM顧客 整形
base_customer_rent_core賃貸基幹顧客 整形
base_customer_sales_core売買基幹顧客 整形
base_customer_webWeb会員 整形
base_customer_maMA顧客 整形
STAGING (1)
stg_customer_common5本集約・共通スキーマ
CORE (2)
customer統合顧客(1顧客=1行)
customer_identity名寄せ結果・ID紐付
MART (3)
mart_customer_360顧客360°ビュー
mart_hubspot_contactHubSpot連携整形
mart_identity_quality名寄せ品質可視化
contract
RAW (2)
raw_contract_rent_core賃貸契約
raw_contract_sales_core売買契約
BASE (2)
base_contract_rent_core賃貸契約 整形
base_contract_sales_core売買契約 整形
STAGING (1)
stg_contract2本集約
CORE (1)
customer_contract顧客紐付済 契約
MART (1)
mart_dashboard_kpi経営KPI
product
RAW (2)
raw_product_rent_core賃貸物件
raw_product_sales_core売買物件
BASE (2)
base_product_rent_core賃貸物件 整形
base_product_sales_core売買物件 整形
STAGING (1)
stg_product2本集約
CORE (1)
product統合物件
MART (1)
mart_cross_sell_candidateクロスセル候補
deal
RAW (1)
raw_deal_sales_crm商談
BASE (1)
base_deal_sales_crm商談 整形
STAGING (1)
stg_deal商談 共通形
CORE (1)
customer_deal顧客紐付済 商談
MART (1)
mart_dashboard_kpi商談ファネルKPI
activity
RAW (3)
raw_activity_webWeb行動
raw_activity_maメール配信
raw_activity_sales_crmCRM活動
BASE (3)
base_activity_webWeb行動 整形
base_activity_maメール配信 整形
base_activity_sales_crmCRM活動 整形
STAGING (1)
stg_activity3本集約
CORE (1)
customer_activity顧客紐付済 行動
MART (1)
mart_hubspot_contact行動ベース連携

4. 管理マスタ一覧

テーブル名役割主な利用先
company_masterグループ会社コード・社名・事業区分全レイヤー(会社別集計・所有権判定)
business_master事業区分(賃貸・売買・その他)の定義Staging 以降の事業別分岐・Mart KPI
source_system_masterソースシステム識別(sales_crm / rent_core 等)Raw タグ付け・Staging UNION・名寄せ重み
business_mapping_rule会社×ソース×事業の対応ルールStaging 集約時の事業判定
product_type_master物件種別(マンション・戸建・収益・その他)product / Mart
contract_type_master契約種別(賃貸普通借・売買・更新 等)contract / Mart KPI
deal_stage_master商談ステージ定義・順序deal / ファネル分析
activity_type_master行動種別(ページ閲覧・問合せ・来店 等)activity / スコアリング
customer_role_master顧客の役割(本人・連帯保証人・同居人)customer / contract
consent_type_master同意種別(メール・SMS・第三者提供)Mart 配信フィルタ・ガバナンス

5. テーブル定義一覧

レイヤー物理名論理名主キー粒度入力元出力先更新頻度備考
Rawraw_customer_sales_crm営業CRM顧客crm_contact_idCRM 顧客1行営業CRM (HubSpot想定)base_customer_sales_crm日次API取込
Rawraw_customer_rent_core賃貸基幹顧客rent_customer_id賃貸顧客1行賃貸基幹base_customer_rent_core日次DB抽出
Rawraw_customer_sales_core売買基幹顧客sales_customer_id売買顧客1行売買基幹base_customer_sales_core日次DB抽出
Rawraw_customer_webWeb会員web_member_idWeb会員1行会員DBbase_customer_web日次同意フラグ含む
Rawraw_customer_maMA顧客ma_contact_idMA連絡先1行MAツールbase_customer_ma日次配信履歴別管理
Rawraw_contract_rent_core賃貸契約contract_no契約1行賃貸基幹base_contract_rent_core日次更新契約含む
Rawraw_contract_sales_core売買契約contract_no契約1行売買基幹base_contract_sales_core日次
Rawraw_product_rent_core賃貸物件property_id物件1行賃貸基幹base_product_rent_core日次
Rawraw_product_sales_core売買物件property_id物件1行売買基幹base_product_sales_core日次
Rawraw_deal_sales_crm商談deal_id商談1行営業CRMbase_deal_sales_crm日次
Rawraw_activity_webWeb行動event_idイベント1行Web計測基盤base_activity_web日次大量データ
Rawraw_activity_maメール配信履歴send_event_id送信/開封/クリック1行MAツールbase_activity_ma日次
Rawraw_activity_sales_crmCRM活動activity_id活動1行営業CRMbase_activity_sales_crm日次
Basebase_customer_sales_crm営業CRM顧客 整形crm_contact_idRaw 同等raw_customer_sales_crmstg_customer_common日次型統一・PIIマスキング
Basebase_customer_rent_core賃貸基幹顧客 整形rent_customer_idRaw 同等raw_customer_rent_corestg_customer_common日次
Basebase_customer_sales_core売買基幹顧客 整形sales_customer_idRaw 同等raw_customer_sales_corestg_customer_common日次
Basebase_customer_webWeb会員 整形web_member_idRaw 同等raw_customer_webstg_customer_common日次
Basebase_customer_maMA顧客 整形ma_contact_idRaw 同等raw_customer_mastg_customer_common日次
Basebase_contract_rent_core賃貸契約 整形contract_noRaw 同等raw_contract_rent_corestg_contract日次
Basebase_contract_sales_core売買契約 整形contract_noRaw 同等raw_contract_sales_corestg_contract日次
Basebase_product_rent_core賃貸物件 整形property_idRaw 同等raw_product_rent_corestg_product日次
Basebase_product_sales_core売買物件 整形property_idRaw 同等raw_product_sales_corestg_product日次
Basebase_deal_sales_crm商談 整形deal_idRaw 同等raw_deal_sales_crmstg_deal日次
Basebase_activity_webWeb行動 整形event_idRaw 同等raw_activity_webstg_activity日次
Basebase_activity_maメール配信履歴 整形send_event_idRaw 同等raw_activity_mastg_activity日次
Basebase_activity_sales_crmCRM活動 整形activity_idRaw 同等raw_activity_sales_crmstg_activity日次
Stagingstg_customer_common顧客 共通スキーマsource_system+source_idソース顧客1行base_customer_* (5本)customer_identity / customer日次UNION・列マッピング
Stagingstg_contract契約 共通スキーマsource_system+contract_no契約1行base_contract_* (2本)customer_contract日次
Stagingstg_product物件 共通スキーマsource_system+property_id物件1行base_product_* (2本)product日次
Stagingstg_deal商談 共通スキーマsource_system+deal_id商談1行base_deal_sales_crmcustomer_deal日次
Stagingstg_activity行動 共通スキーマsource_system+event_id行動1行base_activity_* (3本)customer_activity日次
Corecustomer統合顧客customer_id1顧客=1行customer_identity + stg_customer_commoncustomer_contract / customer_deal / customer_activity / Mart日次代表属性選定済
Corecustomer_identity名寄せ結果customer_id + source_system + source_idソース顧客×customer_id 紐付1行stg_customer_commoncustomer日次履歴持ち
Coreproduct統合物件product_id1物件=1行stg_productcustomer_contract / Mart日次
Corecustomer_contract顧客紐付済 契約contract_id契約1行stg_contract + customer_identity + productMart日次customer_id 必須
Corecustomer_deal顧客紐付済 商談deal_id商談1行stg_deal + customer_identityMart日次
Corecustomer_activity顧客紐付済 行動activity_id行動1行stg_activity + customer_identityMart日次/一部リアルタイム大量データ
Martmart_customer_360顧客360°ビューcustomer_id1顧客=1行customer / customer_contract / customer_deal / customer_activityBI Dashboard日次非正規化
Martmart_hubspot_contactHubSpot 連携用customer_id1顧客=1行customer / customer_activity / consent_masterHubSpot API日次同意フィルタ適用
Martmart_dashboard_kpi経営KPIkpi_date+segment日次×セグメントcustomer_contract / customer_dealBI Dashboard日次集計
Martmart_identity_quality名寄せ品質指標snapshot_date日次スナップショットcustomer_identityBI / 運用監視日次重複率・統合率
Martmart_cross_sell_candidateクロスセル候補customer_id+product_id候補1行customer / product / customer_activity営業CRM 配信週次スコア付き

6. 処理設計一覧

処理ID処理名入力出力処理内容実行順
0管理マスタ整備外部マスタ/手動メンテ各種 *_masterコード値・分類定義の更新0(先行)
1Raw 取込5ソースシステムraw_* (13本)無加工取込・型のみ確保1
2aBase 作成 — customerraw_customer_* (5本)base_customer_* (5本)クレンジング・型統一・PIIマスキング2
2bBase 作成 — contractraw_contract_* (2本)base_contract_* (2本)同上2
2cBase 作成 — productraw_product_* (2本)base_product_* (2本)同上2
2dBase 作成 — dealraw_deal_sales_crmbase_deal_sales_crm同上2
2eBase 作成 — activityraw_activity_* (3本)base_activity_* (3本)同上2
3aStaging 集約 — customerbase_customer_* (5本)stg_customer_commonUNION・列マッピング・ソース識別子付与3
3bStaging 集約 — contractbase_contract_* (2本)stg_contract同上3
3cStaging 集約 — productbase_product_* (2本)stg_product同上3
3dStaging 集約 — dealbase_deal_sales_crmstg_deal共通スキーマ整形3
3eStaging 集約 — activitybase_activity_* (3本)stg_activityUNION・列マッピング3
4名寄せstg_customer_commoncustomer_identity強一致/弱一致/新規採番ルール適用4
5customer 作成customer_identity + stg_customer_commoncustomer代表属性選定・履歴化5
6product 作成stg_productproduct正規化・分類付与5
7customer_contract 作成stg_contract + customer_identity + productcustomer_contract顧客・物件紐付6
8customer_deal 作成stg_deal + customer_identitycustomer_deal顧客紐付・ステージ正規化6
9customer_activity 作成stg_activity + customer_identitycustomer_activity顧客紐付6
10Mart 作成customer / customer_contract / customer_deal / customer_activity / productmart_*集計・非正規化・セグメント・同意制御7
11Dashboard / 外部連携配信mart_*BI / HubSpot / 広告表示・API配信8

7. 名寄せ・customer_identity 処理

名寄せは stg_customer_common を入力に、ソースを跨いで同一人物を識別し統合 customer_id を採番する処理である。出力 customer_identity は (customer_id, source_system, source_id) を粒度とし、履歴を保持する。判定強度・信頼度・名寄せルールIDを列として持ち、後段の品質可視化(mart_identity_quality)で検証可能にする。

入出力

区分項目
入力stg_customer_common(5ソース統合・PIIマスキング済)
参照customer_identity 前日スナップショット(既存ID維持判定)
出力customer_identity(customer_id, source_system, source_id, match_rule, confidence, valid_from, valid_to)

customer_id 決定方針

パターン条件customer_id 動作備考
既存ID維持前日と同一ソースID・属性大変動なし既存 customer_id を継続履歴は更新せず
強一致紐づけメール完全一致 or 電話完全一致 (+氏名類似)強一致先の既存 customer_id を継承match_rule=STRONG
新規採番強一致も弱一致も無い新規 customer_id 採番初出ソースを保存
統合新着レコードが複数の既存 customer_id に強一致最古の customer_id に統合・他は廃止statement_id 履歴を残す
分離既存 customer_id が誤統合と運用判明新 customer_id を採番し履歴に分離記録運用ツール経由

8. customer 処理

customer は customer_identity と stg_customer_common を入力に、1顧客=1行の統合エンティティを作る処理である。同一 customer_id に紐づく複数ソース属性のうちどれを代表値とするかを、項目ごとのルールで一意に決める。代表値選定は再現可能で説明可能であること(監査対応)を最優先とする。

代表属性選定ルール

属性選定ルール優先ソース
氏名最新更新日 + ソース優先度賃貸基幹 > 売買基幹 > CRM > Web > MA
メールアドレス同意あり優先・最新更新Web > MA > CRM
電話番号形式正規化後の最新値基幹優先
住所最新契約に紐づく住所優先賃貸基幹(現契約) > 売買基幹 > CRM
customer_type所有契約の種類から導出(賃貸/売買/見込)customer_contract 参照
first_seen_at / last_seen_at全ソース横断で min / max

9. Mart 処理

Mart は用途別に Core を集計・非正規化・整形する層である。配信先(BI / HubSpot / 広告)の要件に応じてスキーマと更新頻度を分ける。同意制御は Mart 段階で必ず適用する(Core では適用しない)。

Mart 一覧

Mart用途主入力配信先更新頻度
mart_customer_360顧客360°ビューcustomer + 全 customer_*BI Dashboard日次
mart_hubspot_contactHubSpot 連携customer + customer_activity + consent_masterHubSpot API日次
mart_dashboard_kpi経営 KPIcustomer_contract + customer_dealBI Dashboard日次
mart_identity_quality名寄せ品質customer_identityBI / 運用監視日次
mart_cross_sell_candidateクロスセル候補customer + product + customer_activity営業CRM週次

Mart 処理リスト

処理種別内容
集計契約金額・件数・LTV を customer_id 粒度で集計
非正規化customer に契約サマリ・行動サマリを横並び展開
セグメント属性・行動・契約ステータスから配信セグメントを付与
スコアリングクロスセル確度・離反確度をルール/モデルで算出
外部連携整形連携先API(HubSpot等)のスキーマに合わせて整形
同意・権限制御consent_master を JOIN し配信可レコードのみ抽出

10. データ品質・ガバナンス

観点チェックレイヤー対応
件数前日比 ±N% 以内Raw / Base / Staging / Core / Mart逸脱時アラート
重複主キー重複ゼロBase 以降全レイヤー重複検知=処理停止
NULL必須項目の NULL 率しきい値Base / Stagingしきい値超でアラート
参照整合customer_id 紐付ヒット率customer_contract / customer_deal / customer_activity未紐付分は隔離テーブル
更新遅延各テーブルの SLA 遵守全レイヤー遅延でアラート
PIIマスキング必要属性のマスキング適用Base 以降全レイヤー非マスキング検出=処理停止

11. Before / After 比較

観点Before (v1)After (v2)効果
レイヤー責務Raw と Base が曖昧・混在5レイヤー責務を表で固定実装レビュー可能化
処理順序暗黙・口頭伝承処理ID + 実行順を表で固定再現可能・委譲可能
名寄せブラックボックス(コード参照必須)独立処理+customer_id決定方針表監査対応・ルール改訂容易
管理マスタ各テーブルに散在横断資産として独立配置SoT 一元化・参照容易

12. リスク

Raw / Base 責務曖昧: 「Raw でクレンジングするか Base でクレンジングするか」を実装ごとに判断するとレイヤー責務が崩壊する。本書のレイヤー定義表を実装規約として固定し、レビュー時に逸脱を弾く運用が必要。

テーブル依存だけでは不十分: テーブル間の依存グラフだけでは「同レイヤー内の並列実行可否」「再実行時の整合性」が表現できない。処理設計一覧の実行順とトランザクション境界を併せて参照する必要がある。

処理順序不明だと再現不可: 処理順序が暗黙のままだと障害時の再実行・差分実行が判断できない。本書の処理ID 0〜11 を実装ジョブ名と1対1対応させ、ジョブ依存定義に反映することが必須。

13. 結論

本 framework v2 により、CDP のテーブル関係と処理が単一の図表セットで再現可能となった。レイヤー責務の固定・処理順序の明示・名寄せの独立化・管理マスタの横断化により、設計レビュー・実装委譲・運用継承のいずれも図表参照のみで完結する。

次ステップは TFHD 実環境のソース確定とカラムマッピング作業である。実テーブル・実件数・実SLAを v3 で置換し、その後ジョブ実装・品質監視・本番運用へと展開する。

14. 後続作業 TODO