tianyu.chu af92767303 test(spark): 幂等测试加 hive 动态分区前置 1 روز پیش
..
README.md f9749898a3 test(spark): 加幂等性默认行为验证测试 1 روز پیش
partition_overwrite_default.sql af92767303 test(spark): 幂等测试加 hive 动态分区前置 1 روز پیش

README.md

幂等性测试

验证 Spark 2.4 动态分区 INSERT OVERWRITE 的默认行为,影响 ods 调度幂等性。

跑法(在 m2)

cd /home/bigdata/release/poyee-data-warehouse
python3 bin/spark-sql-starter.py -f tests/integration/spark/idempotence/partition_overwrite_default.sql -dt 20260507

-dt 只是占位(SQL 不依赖 ${dt}),随便填一天。

判读(看 stdout 输出)

关注点 A(初始 SHOW PARTITIONS):应输出 5 行,dt=20260501dt=20260505

关注点 B(跑完动态分区 INSERT OVERWRITE 后 SHOW PARTITIONS):

  • 输出 5 行 → 默认是 DYNAMIC:只覆盖 SELECT 出现的 03 / 04,其他保留
  • 输出 2 行(仅 03 / 04)→ 默认是 STATIC:动态分区会清空全表,反幂等

关注点 C(SELECT *):

  • DYNAMIC:(1, init-501, 01) (2, init-502, 02) (99, rewritten-503, 03) (100, rewritten-504, 04) (5, init-505, 05) 共 5 行
  • STATIC:(99, rewritten-503, 03) (100, rewritten-504, 04) 共 2 行

跑完反馈

把关注点 B + C 的输出贴回,依此决定 ods 调度是否需要显式 set DYNAMIC。