Sfoglia il codice sorgente

feat(ods/trd): 订单/拼团全量最新态表 ful_d + seed + 日常 merge

按日分区、保留 7 天;merge 用静态分区写入避开读写同表路径冲突;
起点由一次性 seed(扫全量 inc 按 id 取最新)建立,之后 full dt=${dt} ←
full dt=${pdt} ⨝ inc dt=${dt} 递推。历史多版本仍在 inc,本表只保当前态。

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
tianyu.chu 2 settimane fa
parent
commit
1f48ef66e5

+ 51 - 0
jobs/ods/trd/ods_trd_card_group_info_ful_d.sql

@@ -0,0 +1,51 @@
+-- 作者:tianyu.chu
+-- 日期:2026-07-17
+-- 工单:(无)
+-- 目的:拼团全量最新态日常 merge —— full dt=${dt} ← full dt=${pdt} ⨝ inc dt=${dt},按 id 取最新一版
+-- 状态:[草案]
+-- 备注:sched=T,${dt}=业务日 T-1、${pdt}=T-2(即前一天的 full)。
+--       **静态分区写入**(PARTITION(dt='${dt}'))是硬要求:本 SQL 读 full dt=${pdt} 又写 full,
+--       若用动态分区(PARTITION(dt)),输出路径=表根目录、与读的分区路径重叠,Spark 会报
+--       "Cannot overwrite a path that is also being read from"。静态分区的输出是具体分区目录,不重叠。
+--       起点由 manual/backfill/20260717_..._ful_d_seed.sql 一次性 seed;断链需重新 seed。
+--       历史多版本在 inc 表(拉链底座),本表只保当前态。lock 是保留字,SELECT 里必须带反引号。
+--       **分区保留 7 天**:本 SQL 不做 drop(Spark SQL 对 DROP PARTITION 比较式过滤支持存疑),
+--       由 DS 后置任务用 Hive 执行:
+--         ALTER TABLE ods.ods_trd_card_group_info_ful_d DROP IF EXISTS PARTITION (dt < '$[yyyyMMdd-8]');
+
+INSERT OVERWRITE TABLE ods.ods_trd_card_group_info_ful_d PARTITION (dt='${dt}')
+SELECT
+    id, merchant_id, appid, name, code,
+    status, specs, type, random_type, total_price,
+    copies, unit_price, sold_copies, release_time, cycle,
+    show_applet, title, msg, remark, create_time,
+    update_by, update_time, order_quota_min, order_quota_max, user_quota_max,
+    start_time, marketing_info, reviewmsg, `lock`, commission_rate,
+    year, sport, manufacturer, sets, act,
+    config, info_config, total_num, banner_end_time, add_banner,
+    finished_time, display_name, group_sets_no, close_payment_time, confirm_send_time,
+    close_payment_status, open_card, close_payment_record, group_full_time, live_create_time,
+    live_start_time, live_end_time, report_start_time, report_end_time, report_review_num,
+    report_review_first_time, report_review_end_time, review_hold_time, review_approval_time, review_num,
+    config_json, free_flag, mer_name, change_type, act_price,
+    act_config_json, real_sold_num, weight, hot_type, team_first,
+    prop1, prop2, prop3, point_rate, point_max,
+    point_min, list_id, list_code, mix_copies, sub_type,
+    act_point_type, payment_method, payment_total_price, payment_commission, payment_finished_price,
+    payment_remain_price, payment_online_price, exclusive, has_bg, merchant_sort,
+    del_flg, del_time, review_account, act_id, sold_end_time,
+    panini_list_id, hot_type_config, goods_type, report_flag, use_coupon,
+    user_level, custom, gift_card_id, group_show_name, min_card_num,
+    act_type, waring_type, compensation_status, point_type, first_act_config,
+    gift_config, version, extra_prop, use_member_discount, merchant_open,
+    is_deleted
+FROM (
+    SELECT *,
+        ROW_NUMBER() OVER (PARTITION BY id ORDER BY COALESCE(update_time, create_time) DESC) AS rn
+    FROM (
+        SELECT * FROM ods.ods_trd_card_group_info_ful_d WHERE dt = '${pdt}'
+        UNION ALL
+        SELECT * FROM ods.ods_trd_card_group_info_inc_d WHERE dt = '${dt}'
+    ) u
+) t
+WHERE t.rn = 1;

+ 46 - 0
jobs/ods/trd/ods_trd_card_group_order_info_ful_d.sql

@@ -0,0 +1,46 @@
+-- 作者:tianyu.chu
+-- 日期:2026-07-17
+-- 工单:(无)
+-- 目的:订单全量最新态日常 merge —— full dt=${dt} ← full dt=${pdt} ⨝ inc dt=${dt},按 id 取最新一版
+-- 状态:[草案]
+-- 备注:sched=T,${dt}=业务日 T-1、${pdt}=T-2(即前一天的 full)。
+--       **静态分区写入**(PARTITION(dt='${dt}'))是硬要求:本 SQL 读 full dt=${pdt} 又写 full,
+--       若用动态分区(PARTITION(dt)),输出路径=表根目录、与读的分区路径重叠,Spark 会报
+--       "Cannot overwrite a path that is also being read from"。静态分区的输出是具体分区目录,不重叠。
+--       起点由 manual/backfill/20260717_..._ful_d_seed.sql 一次性 seed;断链需重新 seed。
+--       历史多版本在 inc 表(拉链底座),本表只保当前态。
+--       **分区保留 7 天**:本 SQL 不做 drop(Spark SQL 对 DROP PARTITION 比较式过滤支持存疑),
+--       由 DS 后置任务用 Hive 执行:
+--         ALTER TABLE ods.ods_trd_card_group_order_info_ful_d DROP IF EXISTS PARTITION (dt < '$[yyyyMMdd-8]');
+
+INSERT OVERWRITE TABLE ods.ods_trd_card_group_order_info_ful_d PARTITION (dt='${dt}')
+SELECT
+    id, group_info_id, merchant_id, user_id, shipping_address_id,
+    purchase_count, order_no, accounts_payable, actual_payment, payment_type,
+    payment_time, coupon, discount, status, remark,
+    create_time, create_by, update_time, update_by, payment_status,
+    payment_status_desc, payment_success_time, del_flg, curier_company, refund_fee,
+    refund_time, anonymous, pick_up_type, ship_time, refund_success_time,
+    refund_recv_accout, refund_account, refund_request_source, card_price, act_price,
+    goods_price_json, payment_sub_type, team_first, refuse_status, prop1,
+    prop2, prop3, point, order_type, trade_amount,
+    refund_type, refund_reason, evaluation, user_refund_time, refund_status,
+    merchant_refund_reason, point_deduct, shipping_cost, merchant_remark, pay_record,
+    order_sub_type, give_user_code, give_order_id, read_flag, give_num,
+    invoice_id, combination_no, open_self, refund_desc, goods_allocate,
+    close_payment_status, close_payment_time, finished_time, expire_time, settlement_amount,
+    platform_coupon, platform_discount, discount_amount, member_discount, shipping_free_id,
+    shipping_free_amount, discount_point, un_shipped_num, pre_un_shipped_num, wait_shipped_num,
+    pre_wait_shipped_num, refuse_time, refuse_notice, pickup_time, waring_type,
+    waring_status, point_type, delivery_end_time, serve_status, self_pickup_time,
+    act_discount, is_deleted
+FROM (
+    SELECT *,
+        ROW_NUMBER() OVER (PARTITION BY id ORDER BY COALESCE(update_time, create_time) DESC) AS rn
+    FROM (
+        SELECT * FROM ods.ods_trd_card_group_order_info_ful_d WHERE dt = '${pdt}'
+        UNION ALL
+        SELECT * FROM ods.ods_trd_card_group_order_info_inc_d WHERE dt = '${dt}'
+    ) u
+) t
+WHERE t.rn = 1;

+ 44 - 0
manual/backfill/20260717_ods_trd_card_group_info_ful_d_seed.sql

@@ -0,0 +1,44 @@
+-- 作者:tianyu.chu
+-- 日期:2026-07-17
+-- 工单:(无)
+-- 目的:一次性 seed 拼团全量最新态表——扫全部 ods inc 分区,按 id 取最新一版,写 full dt=${dt}
+-- 状态:[待执行]
+-- 备注:merge 模式需要一个起点,本脚本就是那个起点,只跑一次;之后由
+--       jobs/ods/trd/ods_trd_card_group_info_ful_d.sql 天天 merge 递推。
+--       排序键 COALESCE(update_time, create_time) 与 ods 的 ods_dt 归位口径一致。
+--       静态分区写入(PARTITION(dt='${dt}')):源=inc、目标=full,不同表,无读写冲突。
+--       lock 是保留字,SELECT 里必须带反引号。
+--       跑法:python3 bin/spark-sql-starter.py -f <本文件> -dt <seed日, 如 20260716>
+
+INSERT OVERWRITE TABLE ods.ods_trd_card_group_info_ful_d PARTITION (dt='${dt}')
+SELECT
+    id, merchant_id, appid, name, code,
+    status, specs, type, random_type, total_price,
+    copies, unit_price, sold_copies, release_time, cycle,
+    show_applet, title, msg, remark, create_time,
+    update_by, update_time, order_quota_min, order_quota_max, user_quota_max,
+    start_time, marketing_info, reviewmsg, `lock`, commission_rate,
+    year, sport, manufacturer, sets, act,
+    config, info_config, total_num, banner_end_time, add_banner,
+    finished_time, display_name, group_sets_no, close_payment_time, confirm_send_time,
+    close_payment_status, open_card, close_payment_record, group_full_time, live_create_time,
+    live_start_time, live_end_time, report_start_time, report_end_time, report_review_num,
+    report_review_first_time, report_review_end_time, review_hold_time, review_approval_time, review_num,
+    config_json, free_flag, mer_name, change_type, act_price,
+    act_config_json, real_sold_num, weight, hot_type, team_first,
+    prop1, prop2, prop3, point_rate, point_max,
+    point_min, list_id, list_code, mix_copies, sub_type,
+    act_point_type, payment_method, payment_total_price, payment_commission, payment_finished_price,
+    payment_remain_price, payment_online_price, exclusive, has_bg, merchant_sort,
+    del_flg, del_time, review_account, act_id, sold_end_time,
+    panini_list_id, hot_type_config, goods_type, report_flag, use_coupon,
+    user_level, custom, gift_card_id, group_show_name, min_card_num,
+    act_type, waring_type, compensation_status, point_type, first_act_config,
+    gift_config, version, extra_prop, use_member_discount, merchant_open,
+    is_deleted
+FROM (
+    SELECT *,
+        ROW_NUMBER() OVER (PARTITION BY id ORDER BY COALESCE(update_time, create_time) DESC) AS rn
+    FROM ods.ods_trd_card_group_info_inc_d
+) t
+WHERE t.rn = 1;

+ 38 - 0
manual/backfill/20260717_ods_trd_card_group_order_info_ful_d_seed.sql

@@ -0,0 +1,38 @@
+-- 作者:tianyu.chu
+-- 日期:2026-07-17
+-- 工单:(无)
+-- 目的:一次性 seed 订单全量最新态表——扫全部 ods inc 分区,按 id 取最新一版,写 full dt=${dt}
+-- 状态:[待执行]
+-- 备注:merge 模式需要一个起点,本脚本就是那个起点,只跑一次;之后由
+--       jobs/ods/trd/ods_trd_card_group_order_info_ful_d.sql 天天 merge 递推。
+--       排序键 COALESCE(update_time, create_time) 与 ods 的 ods_dt 归位口径一致。
+--       静态分区写入(PARTITION(dt='${dt}')):源=inc、目标=full,不同表,无读写冲突。
+--       跑法:python3 bin/spark-sql-starter.py -f <本文件> -dt <seed日, 如 20260716>
+
+INSERT OVERWRITE TABLE ods.ods_trd_card_group_order_info_ful_d PARTITION (dt='${dt}')
+SELECT
+    id, group_info_id, merchant_id, user_id, shipping_address_id,
+    purchase_count, order_no, accounts_payable, actual_payment, payment_type,
+    payment_time, coupon, discount, status, remark,
+    create_time, create_by, update_time, update_by, payment_status,
+    payment_status_desc, payment_success_time, del_flg, curier_company, refund_fee,
+    refund_time, anonymous, pick_up_type, ship_time, refund_success_time,
+    refund_recv_accout, refund_account, refund_request_source, card_price, act_price,
+    goods_price_json, payment_sub_type, team_first, refuse_status, prop1,
+    prop2, prop3, point, order_type, trade_amount,
+    refund_type, refund_reason, evaluation, user_refund_time, refund_status,
+    merchant_refund_reason, point_deduct, shipping_cost, merchant_remark, pay_record,
+    order_sub_type, give_user_code, give_order_id, read_flag, give_num,
+    invoice_id, combination_no, open_self, refund_desc, goods_allocate,
+    close_payment_status, close_payment_time, finished_time, expire_time, settlement_amount,
+    platform_coupon, platform_discount, discount_amount, member_discount, shipping_free_id,
+    shipping_free_amount, discount_point, un_shipped_num, pre_un_shipped_num, wait_shipped_num,
+    pre_wait_shipped_num, refuse_time, refuse_notice, pickup_time, waring_type,
+    waring_status, point_type, delivery_end_time, serve_status, self_pickup_time,
+    act_discount, is_deleted
+FROM (
+    SELECT *,
+        ROW_NUMBER() OVER (PARTITION BY id ORDER BY COALESCE(update_time, create_time) DESC) AS rn
+    FROM ods.ods_trd_card_group_order_info_inc_d
+) t
+WHERE t.rn = 1;

+ 136 - 0
manual/ddl/ods/trd/ods_trd_card_group_info_ful_d_create.sql

@@ -0,0 +1,136 @@
+-- 作者:tianyu.chu
+-- 日期:2026-07-17
+-- 工单:(无)
+-- 目的:ods 拼团全量最新态表——每 dt 分区 = 该业务日结束时每个拼团的当前态(一条一行)
+-- 状态:[待执行]
+-- 备注:schema 与 ods_trd_card_group_info_inc_d 完全一致(类型化 + is_deleted)。
+--       构建:seed 一次性全量(manual/backfill/20260717_..._ful_d_seed.sql)
+--             日常 merge(jobs/ods/trd/ods_trd_card_group_info_ful_d.sql):
+--               full dt=${dt} ← full dt=${pdt} ⨝ inc dt=${dt},按 id 取 max(COALESCE(update_time,create_time))
+--       分区保留 7 天,更早由 merge 后的 drop 步骤清理(kb/90 待办 3 的保留工具尚未实现,暂手工/DS 任务做)。
+--       历史多版本在 inc 表(拉链底座),本表只承担"当前态供下游直接 JOIN"。
+
+DROP TABLE IF EXISTS ods.ods_trd_card_group_info_ful_d;
+
+CREATE EXTERNAL TABLE IF NOT EXISTS ods.ods_trd_card_group_info_ful_d (
+    id                          BIGINT         COMMENT 'id',
+    merchant_id                 BIGINT         COMMENT '商家id',
+    appid                       STRING         COMMENT '所属程序',
+    name                        STRING         COMMENT '名称',
+    code                        STRING         COMMENT '编码',
+    status                      BIGINT         COMMENT '状态',
+    specs                       STRING         COMMENT '商品规格',
+    type                        STRING         COMMENT '组团方式',
+    random_type                 STRING         COMMENT '随机方式',
+    total_price                 DECIMAL(20,4)  COMMENT '商品总价',
+    copies                      BIGINT         COMMENT '商品份数',
+    unit_price                  DECIMAL(20,4)  COMMENT '单份售价',
+    sold_copies                 BIGINT         COMMENT '售出份数',
+    release_time                STRING         COMMENT '发布时间',
+    cycle                       STRING         COMMENT '销售周期',
+    show_applet                 STRING         COMMENT '是否在小程序显示',
+    title                       STRING         COMMENT '商品子标题',
+    msg                         STRING         COMMENT '详情描述',
+    remark                      STRING         COMMENT '备注',
+    create_time                 TIMESTAMP      COMMENT '创建时间',
+    update_by                   STRING         COMMENT '更新人',
+    update_time                 TIMESTAMP      COMMENT '更新时间',
+    order_quota_min             BIGINT         COMMENT '每笔订单最少购买',
+    order_quota_max             BIGINT         COMMENT '每笔订单最多购买',
+    user_quota_max              BIGINT         COMMENT '用户最多购买',
+    start_time                  TIMESTAMP      COMMENT '计划开售时间',
+    marketing_info              STRING         COMMENT '营销信息',
+    reviewmsg                   STRING         COMMENT '审核描述',
+    lock                        BOOLEAN        COMMENT '锁定状态',
+    commission_rate             STRING         COMMENT '佣金比例(百分比)',
+    year                        STRING         COMMENT '',
+    sport                       STRING         COMMENT '',
+    manufacturer                STRING         COMMENT '',
+    sets                        STRING         COMMENT '',
+    act                         STRING         COMMENT '',
+    config                      STRING         COMMENT '',
+    info_config                 STRING         COMMENT '',
+    total_num                   BIGINT         COMMENT '',
+    banner_end_time             TIMESTAMP      COMMENT '',
+    add_banner                  STRING         COMMENT '',
+    finished_time               TIMESTAMP      COMMENT '结束时间',
+    display_name                STRING         COMMENT '系列别名(显示名)',
+    group_sets_no               BIGINT         COMMENT '同商家,同系列 序号',
+    close_payment_time          TIMESTAMP      COMMENT '打款日期(确认发货日期 后5个工作日)',
+    confirm_send_time           TIMESTAMP      COMMENT '确认发货日期',
+    close_payment_status        BIGINT         COMMENT '结算状态:100=未结束,101=待申请,201=审核中,202=驳回,203=审核通过/待打款,301=打款成功/结束结算,302=部分打款成功,501=已开票',
+    open_card                   BIGINT         COMMENT '开卡动作,0:无开卡动作,1:有',
+    close_payment_record        STRING         COMMENT '结款记录',
+    group_full_time             TIMESTAMP      COMMENT '组齐时间',
+    live_create_time            TIMESTAMP      COMMENT '直播创建时间',
+    live_start_time             TIMESTAMP      COMMENT '直播开播时间',
+    live_end_time               TIMESTAMP      COMMENT '直播结束时间',
+    report_start_time           TIMESTAMP      COMMENT '报告开始时间',
+    report_end_time             TIMESTAMP      COMMENT '报告结束时间',
+    report_review_num           BIGINT         COMMENT '报告审核次数',
+    report_review_first_time    TIMESTAMP      COMMENT '报告第一次审核时间',
+    report_review_end_time      TIMESTAMP      COMMENT '报告最后一次审核时间',
+    review_hold_time            TIMESTAMP      COMMENT '组队提交审核时间',
+    review_approval_time        TIMESTAMP      COMMENT '组队审核通过时间',
+    review_num                  BIGINT         COMMENT '组队审核次数(驳回次数)',
+    config_json                 STRING         COMMENT '',
+    free_flag                   BIGINT         COMMENT '免单标记',
+    mer_name                    STRING         COMMENT '商户名称',
+    change_type                 STRING         COMMENT '买对玩法,改变之后的组队方式',
+    act_price                   DECIMAL(20,4)  COMMENT '私域分享优惠价',
+    act_config_json             STRING         COMMENT '新营销活动配置',
+    real_sold_num               BIGINT         COMMENT '实际销售数量',
+    weight                      BIGINT         COMMENT '重量',
+    hot_type                    STRING         COMMENT '查询type',
+    team_first                  BIGINT         COMMENT '开启包队优先玩法',
+    prop1                       STRING         COMMENT '积分标记,1代表需要统计',
+    prop2                       STRING         COMMENT '搜索别名',
+    prop3                       STRING         COMMENT '精美卡片',
+    point_rate                  BIGINT         COMMENT '积分转换比例,默认1:100',
+    point_max                   BIGINT         COMMENT '积分兑换最大值',
+    point_min                   BIGINT         COMMENT '积分兑换最小值',
+    list_id                     BIGINT         COMMENT 'checklistId',
+    list_code                   STRING         COMMENT 'checklistCode',
+    mix_copies                  BIGINT         COMMENT '组合加倍,默认1',
+    sub_type                    STRING         COMMENT '组队方式子方式',
+    act_point_type              STRING         COMMENT '额外积分类型,SP等',
+    payment_method              BIGINT         COMMENT '打款方式:0 = 线下打款(默认),1=线上打款',
+    payment_total_price         DECIMAL(20,4)  COMMENT '打款总金额',
+    payment_commission          DECIMAL(20,4)  COMMENT '佣金金额',
+    payment_finished_price      DECIMAL(20,4)  COMMENT '已打款金额',
+    payment_remain_price        DECIMAL(20,4)  COMMENT '剩余打款金额',
+    payment_online_price        DECIMAL(20,4)  COMMENT '线上打款金额',
+    exclusive                   BIGINT         COMMENT '是否使用专属支付通道:0否(默认),1是',
+    has_bg                      BIGINT         COMMENT '是否有背景图:0否(默认),1=是',
+    merchant_sort               BIGINT         COMMENT '商家自定义排序',
+    del_flg                     BIGINT         COMMENT '删除标记',
+    del_time                    TIMESTAMP      COMMENT '删除时间',
+    review_account              STRING         COMMENT '审核账号',
+    act_id                      BIGINT         COMMENT '关联活动id',
+    sold_end_time               TIMESTAMP      COMMENT '售卖结束时间',
+    panini_list_id              BIGINT         COMMENT '帕尼尼list表id',
+    hot_type_config             STRING         COMMENT 'hotType 配置',
+    goods_type                  BIGINT         COMMENT '卡密类型,默认0,1:新库',
+    report_flag                 BIGINT         COMMENT '是否强制使用新版报告形式,默认0:非,1:强制',
+    use_coupon                  BIGINT         COMMENT '是否可用优惠劵,默认0:可以,1:不允许',
+    user_level                  BIGINT         COMMENT '用户可看等级',
+    custom                      BIGINT         COMMENT '是否自定义,1=是',
+    gift_card_id                BIGINT         COMMENT '关联精美卡片id',
+    group_show_name             STRING         COMMENT '精美卡片名称',
+    min_card_num                BIGINT         COMMENT '免运费达标数量',
+    act_type                    STRING         COMMENT '活动标签',
+    waring_type                 STRING         COMMENT '风险异常类型',
+    compensation_status         BIGINT         COMMENT '赔付状态:1未补偿、2已补偿',
+    point_type                  STRING         COMMENT '兑换积分类型,搭配point使用',
+    first_act_config            STRING         COMMENT '首次购买活动',
+    gift_config                 STRING         COMMENT '赠礼活动配置',
+    version                     BIGINT         COMMENT '',
+    extra_prop                  STRING         COMMENT '额外配置json信息',
+    use_member_discount         BIGINT         COMMENT '参与会员折扣:默认0不参与 平台会员折扣 1 品牌会员折扣 2',
+    merchant_open               BIGINT         COMMENT '支持商家代开卡密:默认0不支持,1支持',
+    is_deleted                  BOOLEAN        COMMENT '软删除归一(CASE WHEN del_* THEN TRUE)'
+)
+COMMENT '拼团信息全量最新态表(每 dt = 当日结束时每条当前态,保留 7 天)'
+PARTITIONED BY (dt STRING)
+STORED AS ORC
+LOCATION '/user/hive/warehouse/ods.db/ods_trd_card_group_info_ful_d';

+ 112 - 0
manual/ddl/ods/trd/ods_trd_card_group_order_info_ful_d_create.sql

@@ -0,0 +1,112 @@
+-- 作者:tianyu.chu
+-- 日期:2026-07-17
+-- 工单:(无)
+-- 目的:ods 订单全量最新态表——每 dt 分区 = 该业务日结束时每单的当前态(一单一行)
+-- 状态:[待执行]
+-- 备注:schema 与 ods_trd_card_group_order_info_inc_d 完全一致(类型化 + is_deleted)。
+--       构建:seed 一次性全量(manual/backfill/20260717_..._ful_d_seed.sql)
+--             日常 merge(jobs/ods/trd/ods_trd_card_group_order_info_ful_d.sql):
+--               full dt=${dt} ← full dt=${pdt} ⨝ inc dt=${dt},按 id 取 max(COALESCE(update_time,create_time))
+--       分区保留 7 天,更早由 merge 后的 drop 步骤清理(kb/90 待办 3 的保留工具尚未实现,暂手工/DS 任务做)。
+--       历史多版本在 inc 表(拉链底座),本表只承担"当前态供下游直接 JOIN"。
+
+DROP TABLE IF EXISTS ods.ods_trd_card_group_order_info_ful_d;
+
+CREATE EXTERNAL TABLE IF NOT EXISTS ods.ods_trd_card_group_order_info_ful_d (
+    id                        BIGINT         COMMENT 'id',
+    group_info_id             BIGINT         COMMENT '组团信息id',
+    merchant_id               BIGINT         COMMENT '商家id',
+    user_id                   BIGINT         COMMENT '用户id',
+    shipping_address_id       BIGINT         COMMENT '收货地址id',
+    purchase_count            BIGINT         COMMENT '购买数量',
+    order_no                  STRING         COMMENT '订单编码',
+    accounts_payable          DECIMAL(20,4)  COMMENT '应付款',
+    actual_payment            DECIMAL(20,4)  COMMENT '实付款',
+    payment_type              STRING         COMMENT '支付方式-交易类型',
+    payment_time              TIMESTAMP      COMMENT '支付时间',
+    coupon                    BIGINT         COMMENT '优惠券',
+    discount                  DECIMAL(20,4)  COMMENT '折扣',
+    status                    BIGINT         COMMENT '订单状态',
+    remark                    STRING         COMMENT '备注',
+    create_time               TIMESTAMP      COMMENT '创建时间',
+    create_by                 STRING         COMMENT '创建人',
+    update_time               TIMESTAMP      COMMENT '更新时间',
+    update_by                 STRING         COMMENT '更新人',
+    payment_status            STRING         COMMENT '交易状态',
+    payment_status_desc       STRING         COMMENT '交易状态描述',
+    payment_success_time      TIMESTAMP      COMMENT '支付完成时间',
+    del_flg                   BIGINT         COMMENT '删除标记:0=正常,1=删除',
+    curier_company            STRING         COMMENT '快递公司',
+    refund_fee                DECIMAL(20,4)  COMMENT '退款金额',
+    refund_time               TIMESTAMP      COMMENT '退款时间',
+    anonymous                 BOOLEAN        COMMENT '是否匿名',
+    pick_up_type              STRING         COMMENT '提货方式',
+    ship_time                 TIMESTAMP      COMMENT '发货时间',
+    refund_success_time       TIMESTAMP      COMMENT '退款成功时间',
+    refund_recv_accout        STRING         COMMENT '退款入账账户',
+    refund_account            STRING         COMMENT '退款资金来源',
+    refund_request_source     STRING         COMMENT '退款发起来源',
+    card_price                DECIMAL(20,4)  COMMENT '应付款',
+    act_price                 DECIMAL(20,4)  COMMENT '应付款',
+    goods_price_json          STRING         COMMENT '价格json',
+    payment_sub_type          STRING         COMMENT '支付 子分类:杉德支付(微信),宝付支付(微信)等',
+    team_first                STRING         COMMENT '买队优先队伍',
+    refuse_status             BIGINT         COMMENT '是否接受累积发货,0申请,1拒绝,2同意',
+    prop1                     STRING         COMMENT '备用',
+    prop2                     STRING         COMMENT '备用',
+    prop3                     STRING         COMMENT '备用',
+    point                     BIGINT         COMMENT '消耗积分',
+    order_type                STRING         COMMENT '订单类型',
+    trade_amount              DECIMAL(20,4)  COMMENT '订单交易金额',
+    refund_type               STRING         COMMENT '仅退款refund_amount,退货退款refund_goods,换货change',
+    refund_reason             STRING         COMMENT '订单退换原因',
+    evaluation                STRING         COMMENT '订单评价',
+    user_refund_time          TIMESTAMP      COMMENT '退换申请时间',
+    refund_status             BIGINT         COMMENT '1:申请  2同意 3拒绝 ,4退回货物  5商家收到货',
+    merchant_refund_reason    STRING         COMMENT '商家拒绝原因',
+    point_deduct              DECIMAL(20,4)  COMMENT '积分抵扣金额',
+    shipping_cost             DECIMAL(20,4)  COMMENT '运费',
+    merchant_remark           STRING         COMMENT '商家备注',
+    pay_record                BIGINT         COMMENT '是否重复支付:1=是',
+    order_sub_type            STRING         COMMENT '订单子类型,赠与:receive',
+    give_user_code            STRING         COMMENT '赠与人',
+    give_order_id             BIGINT         COMMENT '赠与关联订单id',
+    read_flag                 BIGINT         COMMENT '赠送未读0和1',
+    give_num                  BIGINT         COMMENT '赠送个数',
+    invoice_id                BIGINT         COMMENT '发票记录id',
+    combination_no            STRING         COMMENT '拆分订单关联编号',
+    open_self                 BIGINT         COMMENT '是否用户自己拆卡,默认0,1:商家待拆',
+    refund_desc               STRING         COMMENT '退款原因详细描述',
+    goods_allocate            BIGINT         COMMENT '卡密是否分配,默认0:未分配,1已分配',
+    close_payment_status      BIGINT         COMMENT '打款状态:0=未打款,1=申请中,2=已打款',
+    close_payment_time        TIMESTAMP      COMMENT '打款时间,签收时间后5个工作日',
+    finished_time             TIMESTAMP      COMMENT '订单结束时间',
+    expire_time               TIMESTAMP      COMMENT '过期时间',
+    settlement_amount         DECIMAL(20,4)  COMMENT '结算金额,实付款-退款(预售组队为已开卡总金额)',
+    platform_coupon           BIGINT         COMMENT '平台优惠券id',
+    platform_discount         DECIMAL(20,4)  COMMENT '平台优惠劵折扣',
+    discount_amount           DECIMAL(20,4)  COMMENT '折扣金额',
+    member_discount           DECIMAL(20,4)  COMMENT '会员折扣',
+    shipping_free_id          BIGINT         COMMENT '运费券id',
+    shipping_free_amount      DECIMAL(20,4)  COMMENT '运费券金额',
+    discount_point            BIGINT         COMMENT '折扣积分',
+    un_shipped_num            BIGINT         COMMENT '精美卡片未发货数量',
+    pre_un_shipped_num        BIGINT         COMMENT '拼豆订单提醒用户申请时间',
+    wait_shipped_num          BIGINT         COMMENT '精美卡片等待发货数量',
+    pre_wait_shipped_num      BIGINT         COMMENT '用户支付拼豆订单运费时间',
+    refuse_time               TIMESTAMP      COMMENT '用户同意累计发货时间',
+    refuse_notice             BIGINT         COMMENT '累计发货通知提醒:0未发送 1已发送',
+    pickup_time               TIMESTAMP      COMMENT '揽收时间',
+    waring_type               STRING         COMMENT '风险异常类型',
+    waring_status             BIGINT         COMMENT '风险异常状态:1风险预警、2违规',
+    point_type                STRING         COMMENT '使用积分类型',
+    delivery_end_time         TIMESTAMP      COMMENT '发货截止时间',
+    serve_status              BIGINT         COMMENT '订单业务状态,业务之间,间隔100',
+    self_pickup_time          TIMESTAMP      COMMENT '申请自提时间,24小时内有效',
+    act_discount              DECIMAL(20,4)  COMMENT '平台折扣(拼豆无余额折扣)',
+    is_deleted                BOOLEAN        COMMENT '软删除归一(CASE WHEN del_* THEN TRUE)'
+)
+COMMENT '拼团订单全量最新态表(每 dt = 当日结束时每单当前态,保留 7 天)'
+PARTITIONED BY (dt STRING)
+STORED AS ORC
+LOCATION '/user/hive/warehouse/ods.db/ods_trd_card_group_order_info_ful_d';