| レイヤー | 役割 | 結合ルール |
|---|---|---|
| Base | 型変換のみ。ビジネスロジックなし | JOIN禁止。ソース別に独立 |
| Staging | カテゴリ × システム単位で清浄化・標準化 例: stg_crm_customer, stg_ma_customer |
同一ソース内JOINのみ可 |
| Intermediate | dbt内部モデルで3段階処理(事業→会社→会社間) 外部公開は1ドメイン1テーブル |
クロスソースJOIN可 (唯一の統合ポイント) |
| Mart | 分析・BI向け集計(ユースケース別) | int_* から読み込みのみ。追加JOIN禁止 |
※ Raw列は事業会社ごとに独立したDB(DB分割)。Base〜Mart列はDWH内スキーマ分割。Raw〜STGは各事業会社内で独立(他社データ不参照)。クロスソースJOINはIntermediate層のみ許可。
※ 1事業×1システムは会社Cのさらに縮退ケース(sys7のみ)として実現可能
| テーブル名 | 種別 | 概要 |
|---|---|---|
int_顧客_id |
IDスパイン | cdp_customer_id ↔ 各ソースIDのマッピング。名寄せキーの正本 |
int_顧客_detail |
ワイドテーブル | 全ソースの顧客属性を列挙。競合属性はMartで選択 |
int_契約_id |
IDスパイン | 契約IDの名寄せマッピング |
int_契約_detail |
ワイドテーブル | 各事業の契約テーブルを統合した参照ビュー |
int_商品_id |
IDスパイン | 商品IDの名寄せマッピング |
int_商品_detail |
ワイドテーブル | 事業別独立商品マスタ。横断参照のみ |
各テーブルの構造を示すダミーデータ(2〜3行)。見出しをクリックで開閉できます。
_id テーブル(縦持ち・IDスパイン)
int_顧客_id — 顧客 ID スパイン(各ソースの顧客 ID を縦に集約)| cdp_顧客_id | source_system | source_顧客_id |
|---|---|---|
CDP-C-00001 | sys1 | SYS1-CUST-001 |
CDP-C-00001 | sys3 | S3-C-9981 |
CDP-C-00002 | sys2 | SYS2-USER-047 |
int_契約_id — 契約 ID スパイン(各ソースの契約 ID を縦に集約)| cdp_契約_id | cdp_顧客_id | source_system | source_契約_id |
|---|---|---|---|
CDP-K-00101 | CDP-C-00001 | sys1 | SYS1-CON-5501 |
CDP-K-00101 | CDP-C-00001 | sys4 | S4-K-0077 |
CDP-K-00102 | CDP-C-00002 | sys2 | SYS2-CON-3320 |
int_商品_id — 商品 ID スパイン(各ソースの商品 ID を縦に集約)| cdp_商品_id | cdp_契約_id | source_system | source_商品_id |
|---|---|---|---|
CDP-P-00301 | CDP-K-00101 | sys1 | SYS1-PROD-801 |
CDP-P-00301 | CDP-K-00101 | sys5 | S5-ITEM-042 |
CDP-P-00302 | CDP-K-00102 | sys3 | SYS3-PROD-115 |
_detail テーブル(横持ち・ワイドテーブル)
int_顧客_detail — 顧客属性ワイドテーブル(全ソースの顧客属性を横に並べる)| cdp_顧客_id | sys1_氏名 | sys1_メール | sys2_氏名 | sys2_メール | sys3_氏名 | sys3_メール |
|---|---|---|---|---|---|---|
CDP-C-00001 |
山田 太郎 | yamada@sys1.example | — | — | YAMADA Taro | taro.yamada@sys3.example |
CDP-C-00002 |
— | — | 佐藤 花子 | sato@sys2.example | — | — |
CDP-C-00003 |
鈴木 一郎 | suzuki@sys1.example | 鈴木 一 | i.suzuki@sys2.example | — | — |
int_契約_detail — 契約属性ワイドテーブル(全ソースの契約属性を横に並べる)| cdp_契約_id | cdp_顧客_id | sys1_契約種別 | sys1_開始日 | sys2_契約種別 | sys2_開始日 | sys4_契約種別 | sys4_開始日 |
|---|---|---|---|---|---|---|---|
CDP-K-00101 |
CDP-C-00001 |
賃貸 | 2024-04-01 | — | — | 賃貸(月極) | 2024-04-01 |
CDP-K-00102 |
CDP-C-00002 |
— | — | 売買 | 2023-11-15 | — | — |
CDP-K-00103 |
CDP-C-00003 |
管理委託 | 2025-01-01 | PM委託 | 2025-01-01 | — | — |
int_商品_detail — 商品属性ワイドテーブル(全ソースの商品属性を横に並べる)| cdp_商品_id | cdp_契約_id | sys1_商品名 | sys1_カテゴリ | sys2_商品名 | sys2_カテゴリ | sys5_商品名 | sys5_カテゴリ |
|---|---|---|---|---|---|---|---|
CDP-P-00301 |
CDP-K-00101 |
渋谷区桜ヶ丘201号室 | 賃貸マンション | — | — | 桜丘 #201 | RENT_APART |
CDP-P-00302 |
CDP-K-00102 |
— | — | 新宿区西新宿土地A | 売買用地 | — | — |
CDP-P-00303 |
CDP-K-00103 |
港区白金パーキング | 駐車場 | 白金PK-B | 駐車場 | — | — |
Int層のID(cdp_顧客_id、cdp_契約_id、cdp_商品_id)は、各ソースシステムのキーを統合スパインテーブルにJOINすることで解決される。以下にその処理フローを示す。
int_顧客_id スパインを JOIN することで cdp_顧客_id を解決し、int_契約_id / int_契約_detail に付与する。
int_契約_id スパインを JOIN することで cdp_契約_id を解決し、int_商品_id / int_商品_detail に付与する。
ID解決フロー
| 処理ステップ | JOIN元(スパイン) | 解決されるID | 付与先テーブル |
|---|---|---|---|
| ステップ1: 顧客ID解決 | int_顧客_id |
cdp_顧客_id |
int_契約_id, int_契約_detail |
| ステップ2: 契約ID解決 | int_契約_id |
cdp_契約_id |
int_商品_id, int_商品_detail |