背景
現在 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_rakuten の base〜with_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
背景
現在
int_transactions_prepare_rakuten.sql1ファイルが重複排除とキャンセル検出を両方担っている。EPOSでは別々のモデルに分かれているため、楽天も同様の構造に揃えて保守性を高める。現状と目標
作業一覧
int_transactions_remove_duplicate_rakuten_rows_across_loads.sqlprepare_rakutenのbase〜with_txn_id部分を移行int_transactions_prepare_rakuten_detect_cancellations.sqlprepare_rakutenのキャンセル検出部分を移行int_transactions_union_epos_and_manual.sqlint_transactions_prepare_rakuten.sql分割の境界線
前半 →
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