Skip to content

refactor: 楽天dbtモデルをEPOSと同様の構造に分割 #34

Description

@kawawan

背景

現在 int_transactions_prepare_rakuten.sql 1ファイルが重複排除とキャンセル検出を両方担っている。EPOSでは別々のモデルに分かれているため、楽天も同様の構造に揃えて保守性を高める。

現状と目標

【現状】
stg_raw__rakuten_csv_rows
  ↓
int_transactions_prepare_rakuten  ← 重複排除+キャンセル検出が1ファイルに混在
  ↓
int_transactions_union_epos_and_manual

【変更後】
stg_raw__rakuten_csv_rows
  ↓
int_transactions_remove_duplicate_rakuten_rows_across_loads  (新規)
  ↓
int_transactions_prepare_rakuten_detect_cancellations        (新規)
  ↓
int_transactions_union_epos_and_manual                       (参照先変更)

作業一覧

操作 ファイル 内容
新規作成 int_transactions_remove_duplicate_rakuten_rows_across_loads.sql prepare_rakutenbasewith_txn_id 部分を移行
新規作成 int_transactions_prepare_rakuten_detect_cancellations.sql prepare_rakuten のキャンセル検出部分を移行
改修 int_transactions_union_epos_and_manual.sql 楽天の参照先を新モデルに変更
削除 int_transactions_prepare_rakuten.sql 上記2ファイルに分割後に削除

分割の境界線

前半 → remove_duplicate_rakuten_rows_across_loads:

  • base: shop_masterとJOINしてshop_name_norm取得
  • with_seq: load_id内で重複キーにseqを付与
  • deduped: load_id跨ぎの重複排除
  • with_txn_id: txn_id生成

後半 → prepare_rakuten_detect_cancellations:

  • positives / cancellations: 決済とキャンセルに分岐
  • paired_cancel / cancel_agg_by_original: キャンセルペアリング・集約
  • positives_with_cancel: 正決済にキャンセル情報付与
  • orphan_cancellations: 孤児キャンセルの処理
  • 最終 UNION ALL

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions