|
@@ -7,10 +7,19 @@
|
|
|
-- 不会把 D 之后的变更算进来;因此可 seed 到任意历史日。
|
|
-- 不会把 D 之后的变更算进来;因此可 seed 到任意历史日。
|
|
|
-- merge 模式需要一个起点,本脚本就是那个起点,只跑一次;之后由
|
|
-- merge 模式需要一个起点,本脚本就是那个起点,只跑一次;之后由
|
|
|
-- jobs/ods/trd/ods_trd_card_group_order_info_ful_d.sql 天天 merge 递推。
|
|
-- jobs/ods/trd/ods_trd_card_group_order_info_ful_d.sql 天天 merge 递推。
|
|
|
--- 排序键 COALESCE(update_time, create_time) 与 ods 的 ods_dt 归位口径一致。
|
|
|
|
|
|
|
+-- 排序键 GREATEST(create_time, update_time) = 活动日口径,取最后活动那版为最新态。
|
|
|
-- 静态分区写入(PARTITION(dt='${dt}')):源=inc、目标=full,不同表,无读写冲突。
|
|
-- 静态分区写入(PARTITION(dt='${dt}')):源=inc、目标=full,不同表,无读写冲突。
|
|
|
-- 跑法:python3 bin/spark-sql-starter.py -f <本文件> -dt <seed日, 如 20260716>
|
|
-- 跑法:python3 bin/spark-sql-starter.py -f <本文件> -dt <seed日, 如 20260716>
|
|
|
|
|
|
|
|
|
|
+-- 资源放大(一次性 seed,扫全 ODS + 按 id shuffle;集群闲,L2 SET 覆盖默认 15×2核/6g/shuffle200)。
|
|
|
|
|
+SET spark.executor.instances=30;
|
|
|
|
|
+SET spark.executor.cores=4;
|
|
|
|
|
+SET spark.executor.memory=8g;
|
|
|
|
|
+SET spark.executor.memoryOverhead=2g;
|
|
|
|
|
+SET spark.driver.memory=8g;
|
|
|
|
|
+SET spark.sql.shuffle.partitions=1000;
|
|
|
|
|
+SET spark.default.parallelism=1000;
|
|
|
|
|
+
|
|
|
INSERT OVERWRITE TABLE ods.ods_trd_card_group_order_info_ful_d PARTITION (dt='${dt}')
|
|
INSERT OVERWRITE TABLE ods.ods_trd_card_group_order_info_ful_d PARTITION (dt='${dt}')
|
|
|
SELECT
|
|
SELECT
|
|
|
id, group_info_id, merchant_id, user_id, shipping_address_id,
|
|
id, group_info_id, merchant_id, user_id, shipping_address_id,
|
|
@@ -34,7 +43,7 @@ SELECT
|
|
|
act_discount, is_deleted
|
|
act_discount, is_deleted
|
|
|
FROM (
|
|
FROM (
|
|
|
SELECT *,
|
|
SELECT *,
|
|
|
- ROW_NUMBER() OVER (PARTITION BY id ORDER BY COALESCE(update_time, create_time) DESC) AS rn
|
|
|
|
|
|
|
+ ROW_NUMBER() OVER (PARTITION BY id ORDER BY GREATEST(create_time, update_time) DESC) AS rn
|
|
|
FROM ods.ods_trd_card_group_order_info_inc_d
|
|
FROM ods.ods_trd_card_group_order_info_inc_d
|
|
|
WHERE dt <= '${dt}'
|
|
WHERE dt <= '${dt}'
|
|
|
) t
|
|
) t
|