This commit is contained in:
Neo
2026-02-04 21:39:01 +08:00
parent ee773a9b52
commit a3f4d04335
148 changed files with 31455 additions and 182 deletions

View File

@@ -19,6 +19,11 @@ CREATE TABLE IF NOT EXISTS billiards_ods.member_profiles (
status INT,
user_status INT,
create_time TIMESTAMP,
pay_money_sum NUMERIC(18,2),
person_tenant_org_id BIGINT,
person_tenant_org_name TEXT,
recharge_money_sum NUMERIC(18,2),
register_source TEXT,
content_hash TEXT NOT NULL,
source_file TEXT,
source_endpoint TEXT,
@@ -75,6 +80,9 @@ CREATE TABLE IF NOT EXISTS billiards_ods.member_balance_changes (
operator_name TEXT,
is_delete INT,
create_time TIMESTAMP,
principal_after NUMERIC(18,2),
principal_before NUMERIC(18,2),
principal_data TEXT,
content_hash TEXT NOT NULL,
source_file TEXT,
source_endpoint TEXT,
@@ -185,6 +193,13 @@ CREATE TABLE IF NOT EXISTS billiards_ods.member_stored_value_cards (
tenantName TEXT,
pdAssisnatLevel TEXT,
cxAssisnatLevel TEXT,
able_share_member_discount BOOLEAN,
electricity_deduct_radio NUMERIC(18,4),
electricity_discount NUMERIC(18,4),
electricitycarddeduct BOOLEAN,
member_grade BIGINT,
principal_balance NUMERIC(18,2),
rechargefreezebalance NUMERIC(18,2),
content_hash TEXT NOT NULL,
source_file TEXT,
source_endpoint TEXT,
@@ -331,6 +346,12 @@ CREATE TABLE IF NOT EXISTS billiards_ods.recharge_settlements (
isfirst INT,
rechargecardamount NUMERIC(18,2),
giftcardamount NUMERIC(18,2),
electricityadjustmoney NUMERIC(18,2),
electricitymoney NUMERIC(18,2),
mervousalesamount NUMERIC(18,2),
plcouponsaleamount NUMERIC(18,2),
realelectricitymoney NUMERIC(18,2),
settlelist JSONB,
content_hash TEXT NOT NULL,
source_file TEXT,
source_endpoint TEXT,
@@ -469,6 +490,12 @@ CREATE TABLE IF NOT EXISTS billiards_ods.settlement_records (
isfirst INT,
rechargecardamount NUMERIC(18,2),
giftcardamount NUMERIC(18,2),
electricityadjustmoney NUMERIC(18,2),
electricitymoney NUMERIC(18,2),
mervousalesamount NUMERIC(18,2),
plcouponsaleamount NUMERIC(18,2),
realelectricitymoney NUMERIC(18,2),
settlelist JSONB,
content_hash TEXT NOT NULL,
source_file TEXT,
source_endpoint TEXT,
@@ -559,6 +586,7 @@ CREATE TABLE IF NOT EXISTS billiards_ods.assistant_cancellation_records (
tableName TEXT,
trashReason TEXT,
createTime TIMESTAMP,
tenant_id BIGINT,
content_hash TEXT NOT NULL,
source_file TEXT,
source_endpoint TEXT,
@@ -792,6 +820,8 @@ CREATE TABLE IF NOT EXISTS billiards_ods.assistant_service_records (
get_grade_times INT,
is_not_responding INT,
is_confirm INT,
assistantteamname TEXT,
real_service_money NUMERIC(18,2),
payload JSONB NOT NULL,
content_hash TEXT NOT NULL,
source_file TEXT,
@@ -897,6 +927,7 @@ CREATE TABLE IF NOT EXISTS billiards_ods.site_tables_master (
table_status INT,
temporary_light_second INT,
virtual_table INT,
order_id BIGINT,
content_hash TEXT NOT NULL,
source_file TEXT,
source_endpoint TEXT,
@@ -957,6 +988,14 @@ CREATE TABLE IF NOT EXISTS billiards_ods.table_fee_discount_records (
order_trade_no TEXT,
is_delete INT,
create_time TIMESTAMP,
area_type_id BIGINT,
charge_free BOOLEAN,
site_table_area_id BIGINT,
site_table_area_name TEXT,
sitename TEXT,
table_name TEXT,
table_price NUMERIC(18,2),
tenant_name TEXT,
content_hash TEXT NOT NULL,
source_file TEXT,
source_endpoint TEXT,
@@ -1032,6 +1071,9 @@ CREATE TABLE IF NOT EXISTS billiards_ods.table_fee_transactions (
salesman_org_id BIGINT,
salesman_user_id BIGINT,
create_time TIMESTAMP,
activity_discount_amount NUMERIC(18,2),
order_consumption_type INT,
real_service_money NUMERIC(18,2),
payload JSONB NOT NULL,
content_hash TEXT NOT NULL,
source_file TEXT,
@@ -1234,6 +1276,7 @@ CREATE TABLE IF NOT EXISTS billiards_ods.payment_transactions (
create_time TIMESTAMP,
payment_method INT,
online_pay_channel INT,
tenant_id BIGINT,
content_hash TEXT NOT NULL,
source_file TEXT,
source_endpoint TEXT,
@@ -1440,6 +1483,7 @@ CREATE TABLE IF NOT EXISTS billiards_ods.tenant_goods_master (
remark_name TEXT,
create_time TIMESTAMP,
update_time TIMESTAMP,
not_sale BOOLEAN,
payload JSONB NOT NULL,
content_hash TEXT NOT NULL,
source_file TEXT,
@@ -1522,6 +1566,9 @@ CREATE TABLE IF NOT EXISTS billiards_ods.group_buy_packages (
area_tag_type INT,
creator_name TEXT,
create_time TIMESTAMP,
is_first_limit BOOLEAN,
sort INT,
tenantcouponsaleorderitemid BIGINT,
content_hash TEXT NOT NULL,
source_file TEXT,
source_endpoint TEXT,
@@ -1616,6 +1663,15 @@ CREATE TABLE IF NOT EXISTS billiards_ods.group_buy_redemption_records (
is_single_order INT,
is_delete INT,
create_time TIMESTAMP,
assistant_service_share_money NUMERIC(18,2),
assistant_share_money NUMERIC(18,2),
coupon_sale_id BIGINT,
good_service_share_money NUMERIC(18,2),
goods_share_money NUMERIC(18,2),
member_discount_money NUMERIC(18,2),
recharge_share_money NUMERIC(18,2),
table_service_share_money NUMERIC(18,2),
table_share_money NUMERIC(18,2),
payload JSONB NOT NULL,
content_hash TEXT NOT NULL,
source_file TEXT,
@@ -1812,6 +1868,8 @@ CREATE TABLE IF NOT EXISTS billiards_ods.store_goods_master (
goods_cover TEXT,
create_time TIMESTAMP,
update_time TIMESTAMP,
commodity_code TEXT,
not_sale INTEGER,
payload JSONB NOT NULL,
content_hash TEXT NOT NULL,
source_file TEXT,
@@ -1923,6 +1981,7 @@ CREATE TABLE IF NOT EXISTS billiards_ods.store_goods_sales_records (
tenant_goods_business_id BIGINT,
tenant_goods_category_id BIGINT,
create_time TIMESTAMP,
coupon_share_money NUMERIC(18,2),
payload JSONB NOT NULL,
content_hash TEXT NOT NULL,
source_file TEXT,

View File

@@ -107,7 +107,7 @@ COMMENT ON COLUMN billiards_dwd.dim_site.scd2_is_current IS '【说明】SCD2
COMMENT ON COLUMN billiards_dwd.dim_site.scd2_version IS '【说明】SCD2 版本号(自增),用于与时间段一起避免版本重叠。 【示例】1SCD2 版本号(自增),用于与时间段一起避免版本重叠)。 【ODS来源】table_fee_transactions - 无DWD慢变元数据。 【JSON字段】无 - DWD慢变元数据 - 无。';
CREATE TABLE IF NOT EXISTS dim_site_Ex (
CREATE TABLE IF NOT EXISTS dim_site_ex (
site_id BIGINT,
avatar TEXT,
address TEXT,
@@ -172,6 +172,7 @@ CREATE TABLE IF NOT EXISTS dim_table (
site_table_area_name TEXT,
tenant_table_area_id BIGINT,
table_price NUMERIC(18,2),
order_id BIGINT,
SCD2_start_time TIMESTAMPTZ DEFAULT now(),
SCD2_end_time TIMESTAMPTZ DEFAULT '9999-12-31',
SCD2_is_current INT DEFAULT 1,
@@ -193,7 +194,7 @@ COMMENT ON COLUMN billiards_dwd.dim_table.scd2_is_current IS '【说明】SCD2
COMMENT ON COLUMN billiards_dwd.dim_table.scd2_version IS '【说明】SCD2 版本号(自增),用于与时间段一起避免版本重叠。 【示例】1SCD2 版本号(自增),用于与时间段一起避免版本重叠)。 【ODS来源】site_tables_master - 无DWD慢变元数据。 【JSON字段】无 - DWD慢变元数据 - 无。';
CREATE TABLE IF NOT EXISTS dim_table_Ex (
CREATE TABLE IF NOT EXISTS dim_table_ex (
table_id BIGINT,
show_status INTEGER,
is_online_reservation INTEGER,
@@ -265,7 +266,7 @@ COMMENT ON COLUMN billiards_dwd.dim_assistant.scd2_is_current IS '【说明】SC
COMMENT ON COLUMN billiards_dwd.dim_assistant.scd2_version IS '【说明】SCD2 版本号(自增),用于与时间段一起避免版本重叠。 【示例】1SCD2 版本号(自增),用于与时间段一起避免版本重叠)。 【ODS来源】assistant_accounts_master - 无DWD慢变元数据。 【JSON字段】无 - DWD慢变元数据 - 无。';
CREATE TABLE IF NOT EXISTS dim_assistant_Ex (
CREATE TABLE IF NOT EXISTS dim_assistant_ex (
assistant_id BIGINT,
gender INTEGER,
birth_date TIMESTAMPTZ,
@@ -379,6 +380,8 @@ CREATE TABLE IF NOT EXISTS dim_member (
member_card_grade_name TEXT,
create_time TIMESTAMPTZ,
update_time TIMESTAMPTZ,
pay_money_sum NUMERIC(18,2),
recharge_money_sum NUMERIC(18,2),
SCD2_start_time TIMESTAMPTZ,
SCD2_end_time TIMESTAMPTZ,
SCD2_is_current INT,
@@ -403,7 +406,7 @@ COMMENT ON COLUMN billiards_dwd.dim_member.scd2_is_current IS '【说明】SCD2
COMMENT ON COLUMN billiards_dwd.dim_member.scd2_version IS '【说明】SCD2 版本号(自增),用于与时间段一起避免版本重叠。 【示例】1SCD2 版本号(自增),用于与时间段一起避免版本重叠)。 【ODS来源】member_profiles - 无DWD慢变元数据。 【JSON字段】无 - DWD慢变元数据 - 无。';
CREATE TABLE IF NOT EXISTS dim_member_Ex (
CREATE TABLE IF NOT EXISTS dim_member_ex (
member_id BIGINT,
referrer_member_id BIGINT,
point NUMERIC(18,2),
@@ -411,6 +414,9 @@ CREATE TABLE IF NOT EXISTS dim_member_Ex (
growth_value NUMERIC(18,2),
user_status INTEGER,
status INTEGER,
person_tenant_org_id BIGINT,
person_tenant_org_name TEXT,
register_source TEXT,
SCD2_start_time TIMESTAMPTZ,
SCD2_end_time TIMESTAMPTZ,
SCD2_is_current INT,
@@ -450,6 +456,8 @@ CREATE TABLE IF NOT EXISTS dim_member_card_account (
last_consume_time TIMESTAMPTZ,
status INTEGER,
is_delete INTEGER,
principal_balance NUMERIC(18,2),
member_grade BIGINT,
SCD2_start_time TIMESTAMPTZ,
SCD2_end_time TIMESTAMPTZ,
SCD2_is_current INT,
@@ -481,7 +489,7 @@ COMMENT ON COLUMN billiards_dwd.dim_member_card_account.scd2_is_current IS '【
COMMENT ON COLUMN billiards_dwd.dim_member_card_account.scd2_version IS '【说明】SCD2 版本号(自增),用于与时间段一起避免版本重叠。 【示例】1SCD2 版本号(自增),用于与时间段一起避免版本重叠)。 【ODS来源】member_stored_value_cards - 无DWD慢变元数据。 【JSON字段】无 - DWD慢变元数据 - 无。';
CREATE TABLE IF NOT EXISTS dim_member_card_account_Ex (
CREATE TABLE IF NOT EXISTS dim_member_card_account_ex (
member_card_id BIGINT,
site_name TEXT,
tenant_name VARCHAR(64),
@@ -534,6 +542,11 @@ CREATE TABLE IF NOT EXISTS dim_member_card_account_Ex (
goodsCategoryId TEXT,
pdAssisnatLevel TEXT,
cxAssisnatLevel TEXT,
able_share_member_discount BOOLEAN,
electricity_deduct_radio NUMERIC(18,4),
electricity_discount NUMERIC(18,4),
electricity_card_deduct BOOLEAN,
recharge_freeze_balance NUMERIC(18,2),
SCD2_start_time TIMESTAMPTZ,
SCD2_end_time TIMESTAMPTZ,
SCD2_is_current INT,
@@ -615,6 +628,7 @@ CREATE TABLE IF NOT EXISTS dim_tenant_goods (
create_time TIMESTAMPTZ,
update_time TIMESTAMPTZ,
is_delete INTEGER,
not_sale INTEGER,
SCD2_start_time TIMESTAMPTZ,
SCD2_end_time TIMESTAMPTZ,
SCD2_is_current INT,
@@ -643,7 +657,7 @@ COMMENT ON COLUMN billiards_dwd.dim_tenant_goods.scd2_is_current IS '【说明
COMMENT ON COLUMN billiards_dwd.dim_tenant_goods.scd2_version IS '【说明】SCD2 版本号(自增),用于与时间段一起避免版本重叠。 【示例】1SCD2 版本号(自增),用于与时间段一起避免版本重叠)。 【ODS来源】tenant_goods_master - 无DWD慢变元数据。 【JSON字段】无 - DWD慢变元数据 - 无。';
CREATE TABLE IF NOT EXISTS dim_tenant_goods_Ex (
CREATE TABLE IF NOT EXISTS dim_tenant_goods_ex (
tenant_goods_id BIGINT,
remark_name VARCHAR(128),
pinyin_initial VARCHAR(128),
@@ -715,6 +729,8 @@ CREATE TABLE IF NOT EXISTS dim_store_goods (
enable_status INTEGER,
send_state INTEGER,
is_delete INTEGER,
commodity_code TEXT,
not_sale INTEGER,
SCD2_start_time TIMESTAMPTZ,
SCD2_end_time TIMESTAMPTZ,
SCD2_is_current INT,
@@ -749,7 +765,7 @@ COMMENT ON COLUMN billiards_dwd.dim_store_goods.scd2_is_current IS '【说明】
COMMENT ON COLUMN billiards_dwd.dim_store_goods.scd2_version IS '【说明】SCD2 版本号(自增),用于与时间段一起避免版本重叠。 【示例】1SCD2 版本号(自增),用于与时间段一起避免版本重叠)。 【ODS来源】store_goods_master - 无DWD慢变元数据。 【JSON字段】无 - DWD慢变元数据 - 无。';
CREATE TABLE IF NOT EXISTS dim_store_goods_Ex (
CREATE TABLE IF NOT EXISTS dim_store_goods_ex (
site_goods_id BIGINT,
site_name TEXT,
unit TEXT,
@@ -872,6 +888,8 @@ CREATE TABLE IF NOT EXISTS dim_groupbuy_package (
create_time TIMESTAMPTZ,
tenant_table_area_id_list VARCHAR(512),
card_type_ids VARCHAR(255),
sort INTEGER,
is_first_limit BOOLEAN,
SCD2_start_time TIMESTAMPTZ,
SCD2_end_time TIMESTAMPTZ,
SCD2_is_current INT,
@@ -902,7 +920,7 @@ COMMENT ON COLUMN billiards_dwd.dim_groupbuy_package.scd2_is_current IS '【说
COMMENT ON COLUMN billiards_dwd.dim_groupbuy_package.scd2_version IS '【说明】SCD2 版本号(自增),用于与时间段一起避免版本重叠。 【示例】1SCD2 版本号(自增),用于与时间段一起避免版本重叠)。 【ODS来源】group_buy_packages - 无DWD慢变元数据。 【JSON字段】无 - DWD慢变元数据 - 无。';
CREATE TABLE IF NOT EXISTS dim_groupbuy_package_Ex (
CREATE TABLE IF NOT EXISTS dim_groupbuy_package_ex (
groupbuy_package_id BIGINT,
site_name VARCHAR(100),
usable_count INTEGER,
@@ -923,6 +941,7 @@ CREATE TABLE IF NOT EXISTS dim_groupbuy_package_Ex (
effective_status INTEGER,
max_selectable_categories INTEGER,
creator_name VARCHAR(100),
tenant_coupon_sale_order_item_id BIGINT,
SCD2_start_time TIMESTAMPTZ,
SCD2_end_time TIMESTAMPTZ,
SCD2_is_current INT,
@@ -990,6 +1009,11 @@ CREATE TABLE IF NOT EXISTS dwd_settlement_head (
coupon_amount NUMERIC(18,2),
rounding_amount NUMERIC(18,2),
point_amount NUMERIC(18,2),
electricity_money NUMERIC(18,2),
real_electricity_money NUMERIC(18,2),
electricity_adjust_money NUMERIC(18,2),
pl_coupon_sale_amount NUMERIC(18,2),
mervou_sales_amount NUMERIC(18,2),
PRIMARY KEY (order_settle_id)
);
@@ -1028,7 +1052,7 @@ COMMENT ON COLUMN billiards_dwd.dwd_settlement_head.rounding_amount IS '【说
COMMENT ON COLUMN billiards_dwd.dwd_settlement_head.point_amount IS '【说明】金额字段,用于计费/结算/核算等金额计算。 【示例】NULL金额字段用于计费/结算/核算等金额计算)。 【ODS来源】settlement_records - pointamount。 【JSON字段】settlement_records.json - $ - pointamount。';
CREATE TABLE IF NOT EXISTS dwd_settlement_head_Ex (
CREATE TABLE IF NOT EXISTS dwd_settlement_head_ex (
order_settle_id BIGINT,
serial_number INTEGER,
settle_status INTEGER,
@@ -1059,6 +1083,7 @@ CREATE TABLE IF NOT EXISTS dwd_settlement_head_Ex (
order_remark VARCHAR(255),
operator_id BIGINT,
salesman_user_id BIGINT,
settle_list JSONB,
PRIMARY KEY (order_settle_id)
);
@@ -1123,6 +1148,8 @@ CREATE TABLE IF NOT EXISTS dwd_table_fee_log (
ledger_status INTEGER,
is_single_order INTEGER,
is_delete INTEGER,
activity_discount_amount NUMERIC(18,2),
real_service_money NUMERIC(18,2),
PRIMARY KEY (table_fee_log_id)
);
@@ -1156,7 +1183,7 @@ COMMENT ON COLUMN billiards_dwd.dwd_table_fee_log.is_single_order IS '【说明
COMMENT ON COLUMN billiards_dwd.dwd_table_fee_log.is_delete IS '【说明】布尔/开关字段,用于表示是否/可用性等业务开关。 【示例】0布尔/开关字段,用于表示是否/可用性等业务开关)。 【ODS来源】table_fee_transactions - is_delete。 【JSON字段】table_fee_transactions.json - data.siteTableUseDetailsList - is_delete。';
CREATE TABLE IF NOT EXISTS dwd_table_fee_log_Ex (
CREATE TABLE IF NOT EXISTS dwd_table_fee_log_ex (
table_fee_log_id BIGINT,
operator_name VARCHAR(64),
salesman_name VARCHAR(64),
@@ -1169,6 +1196,7 @@ CREATE TABLE IF NOT EXISTS dwd_table_fee_log_Ex (
operator_id BIGINT,
salesman_user_id BIGINT,
salesman_org_id BIGINT,
order_consumption_type INTEGER,
PRIMARY KEY (table_fee_log_id)
);
@@ -1201,6 +1229,9 @@ CREATE TABLE IF NOT EXISTS dwd_table_fee_adjust (
ledger_status INTEGER,
is_delete INTEGER,
adjust_time TIMESTAMPTZ,
table_name TEXT,
table_price NUMERIC(18,2),
charge_free BOOLEAN,
PRIMARY KEY (table_fee_adjust_id)
);
@@ -1220,7 +1251,7 @@ COMMENT ON COLUMN billiards_dwd.dwd_table_fee_adjust.is_delete IS '【说明】
COMMENT ON COLUMN billiards_dwd.dwd_table_fee_adjust.adjust_time IS '【说明】时间/日期字段,用于记录业务时间与统计口径对齐。 【示例】2025-11-09 23:25:11时间/日期字段,用于记录业务时间与统计口径对齐)。 【ODS来源】table_fee_discount_records - create_time。 【JSON字段】table_fee_discount_records.json - data.taiFeeAdjustInfos - create_time。';
CREATE TABLE IF NOT EXISTS dwd_table_fee_adjust_Ex (
CREATE TABLE IF NOT EXISTS dwd_table_fee_adjust_ex (
table_fee_adjust_id BIGINT,
adjust_type INTEGER,
ledger_count INTEGER,
@@ -1229,6 +1260,11 @@ CREATE TABLE IF NOT EXISTS dwd_table_fee_adjust_Ex (
operator_name VARCHAR(64),
applicant_id BIGINT,
operator_id BIGINT,
area_type_id BIGINT,
site_table_area_id BIGINT,
site_table_area_name TEXT,
site_name TEXT,
tenant_name TEXT,
PRIMARY KEY (table_fee_adjust_id)
);
@@ -1267,6 +1303,7 @@ CREATE TABLE IF NOT EXISTS dwd_store_goods_sale (
ledger_status INTEGER,
is_delete INTEGER,
create_time TIMESTAMPTZ,
coupon_share_money NUMERIC(18,2),
PRIMARY KEY (store_goods_sale_id)
);
@@ -1296,7 +1333,7 @@ COMMENT ON COLUMN billiards_dwd.dwd_store_goods_sale.is_delete IS '【说明】
COMMENT ON COLUMN billiards_dwd.dwd_store_goods_sale.create_time IS '【说明】时间/日期字段,用于记录业务时间与统计口径对齐。 【示例】2025-11-09 23:35:57时间/日期字段,用于记录业务时间与统计口径对齐)。 【ODS来源】store_goods_sales_records - create_time。 【JSON字段】store_goods_sales_records.json - data.orderGoodsLedgers - create_time。';
CREATE TABLE IF NOT EXISTS dwd_store_goods_sale_Ex (
CREATE TABLE IF NOT EXISTS dwd_store_goods_sale_ex (
store_goods_sale_id BIGINT,
legacy_order_goods_id BIGINT,
site_name TEXT,
@@ -1392,6 +1429,7 @@ CREATE TABLE IF NOT EXISTS dwd_assistant_service_log (
start_use_time TIMESTAMPTZ,
last_use_time TIMESTAMPTZ,
is_delete INTEGER,
real_service_money NUMERIC(18,2),
PRIMARY KEY (assistant_service_id)
);
@@ -1430,7 +1468,7 @@ COMMENT ON COLUMN billiards_dwd.dwd_assistant_service_log.last_use_time IS '【
COMMENT ON COLUMN billiards_dwd.dwd_assistant_service_log.is_delete IS '【说明】布尔/开关字段,用于表示是否/可用性等业务开关。 【示例】0布尔/开关字段,用于表示是否/可用性等业务开关)。 【ODS来源】assistant_service_records - is_delete。 【JSON字段】assistant_service_records.json - data.orderAssistantDetails - is_delete。';
CREATE TABLE IF NOT EXISTS dwd_assistant_service_log_Ex (
CREATE TABLE IF NOT EXISTS dwd_assistant_service_log_ex (
assistant_service_id BIGINT,
table_name VARCHAR(64),
assistant_name VARCHAR(64),
@@ -1461,6 +1499,7 @@ CREATE TABLE IF NOT EXISTS dwd_assistant_service_log_Ex (
get_grade_times INTEGER,
grade_status INTEGER,
composite_grade_time TIMESTAMPTZ,
assistant_team_name TEXT,
PRIMARY KEY (assistant_service_id)
);
@@ -1508,6 +1547,7 @@ CREATE TABLE IF NOT EXISTS dwd_assistant_trash_event (
abolish_amount NUMERIC(18,2),
trash_reason VARCHAR(255),
create_time TIMESTAMPTZ,
tenant_id BIGINT,
PRIMARY KEY (assistant_trash_event_id)
);
@@ -1524,7 +1564,7 @@ COMMENT ON COLUMN billiards_dwd.dwd_assistant_trash_event.trash_reason IS '【
COMMENT ON COLUMN billiards_dwd.dwd_assistant_trash_event.create_time IS '【说明】时间/日期字段,用于记录业务时间与统计口径对齐。 【示例】2025-11-09 19:23:29时间/日期字段,用于记录业务时间与统计口径对齐)。 【ODS来源】assistant_cancellation_records - createTime。 【JSON字段】assistant_cancellation_records.json - data.abolitionAssistants - createTime。';
CREATE TABLE IF NOT EXISTS dwd_assistant_trash_event_Ex (
CREATE TABLE IF NOT EXISTS dwd_assistant_trash_event_ex (
assistant_trash_event_id BIGINT,
table_name VARCHAR(64),
table_area_name VARCHAR(64),
@@ -1557,6 +1597,8 @@ CREATE TABLE IF NOT EXISTS dwd_member_balance_change (
change_time TIMESTAMPTZ,
is_delete INTEGER,
remark VARCHAR(255),
principal_before NUMERIC(18,2),
principal_after NUMERIC(18,2),
PRIMARY KEY (balance_change_id)
);
@@ -1582,13 +1624,14 @@ COMMENT ON COLUMN billiards_dwd.dwd_member_balance_change.is_delete IS '【说
COMMENT ON COLUMN billiards_dwd.dwd_member_balance_change.remark IS '【说明】明细字段,用于记录事实取值。 【示例】充值退款(明细字段,用于记录事实取值)。 【ODS来源】member_balance_changes - remark。 【JSON字段】member_balance_changes.json - data.tenantMemberCardLogs - remark。';
CREATE TABLE IF NOT EXISTS dwd_member_balance_change_EX (
CREATE TABLE IF NOT EXISTS dwd_member_balance_change_ex (
balance_change_id BIGINT,
pay_site_name VARCHAR(64),
register_site_name VARCHAR(64),
refund_amount NUMERIC(18,2),
operator_id BIGINT,
operator_name VARCHAR(64),
principal_data TEXT,
PRIMARY KEY (balance_change_id)
);
@@ -1625,6 +1668,8 @@ CREATE TABLE IF NOT EXISTS dwd_groupbuy_redemption (
is_delete INTEGER,
ledger_name VARCHAR(128),
create_time TIMESTAMPTZ,
member_discount_money NUMERIC(18,2),
coupon_sale_id BIGINT,
PRIMARY KEY (redemption_id)
);
@@ -1654,7 +1699,7 @@ COMMENT ON COLUMN billiards_dwd.dwd_groupbuy_redemption.ledger_name IS '【说
COMMENT ON COLUMN billiards_dwd.dwd_groupbuy_redemption.create_time IS '【说明】时间/日期字段,用于记录业务时间与统计口径对齐。 【示例】2025-11-09 23:35:57时间/日期字段,用于记录业务时间与统计口径对齐)。 【ODS来源】group_buy_redemption_records - create_time。 【JSON字段】group_buy_redemption_records.json - data.siteTableUseDetailsList - create_time。';
CREATE TABLE IF NOT EXISTS dwd_groupbuy_redemption_Ex (
CREATE TABLE IF NOT EXISTS dwd_groupbuy_redemption_ex (
redemption_id BIGINT,
site_name VARCHAR(64),
table_name VARCHAR(64),
@@ -1676,6 +1721,13 @@ CREATE TABLE IF NOT EXISTS dwd_groupbuy_redemption_Ex (
salesman_role_id BIGINT,
salesman_org_id BIGINT,
ledger_group_name VARCHAR(128),
table_share_money NUMERIC(18,2),
table_service_share_money NUMERIC(18,2),
goods_share_money NUMERIC(18,2),
good_service_share_money NUMERIC(18,2),
assistant_share_money NUMERIC(18,2),
assistant_service_share_money NUMERIC(18,2),
recharge_share_money NUMERIC(18,2),
PRIMARY KEY (redemption_id)
);
@@ -1750,7 +1802,7 @@ COMMENT ON COLUMN billiards_dwd.dwd_platform_coupon_redemption.create_time IS '
COMMENT ON COLUMN billiards_dwd.dwd_platform_coupon_redemption.consume_time IS '【说明】时间/日期字段,用于记录业务时间与统计口径对齐。 【示例】2025-11-09 23:41:04时间/日期字段,用于记录业务时间与统计口径对齐)。 【ODS来源】platform_coupon_redemption_records - consume_time。 【JSON字段】platform_coupon_redemption_records.json - $ - consume_time。';
CREATE TABLE IF NOT EXISTS dwd_platform_coupon_redemption_Ex (
CREATE TABLE IF NOT EXISTS dwd_platform_coupon_redemption_ex (
platform_coupon_redemption_id BIGINT,
coupon_cover VARCHAR(255),
coupon_remark VARCHAR(255),
@@ -1814,7 +1866,7 @@ COMMENT ON COLUMN billiards_dwd.dwd_recharge_order.create_time IS '【说明】
COMMENT ON COLUMN billiards_dwd.dwd_recharge_order.pay_time IS '【说明】时间/日期字段,用于记录业务时间与统计口径对齐。 【示例】NULL时间/日期字段,用于记录业务时间与统计口径对齐)。 【ODS来源】recharge_settlements - paytime。 【JSON字段】recharge_settlements.json - $ - paytime。';
CREATE TABLE IF NOT EXISTS dwd_recharge_order_Ex (
CREATE TABLE IF NOT EXISTS dwd_recharge_order_ex (
recharge_order_id BIGINT,
site_name_snapshot TEXT,
settle_status INTEGER,
@@ -1919,6 +1971,7 @@ CREATE TABLE IF NOT EXISTS dwd_payment (
create_time TIMESTAMPTZ,
pay_time TIMESTAMPTZ,
pay_date DATE,
tenant_id BIGINT,
PRIMARY KEY (payment_id)
);
@@ -1967,7 +2020,7 @@ COMMENT ON COLUMN billiards_dwd.dwd_refund.member_id IS '【说明】标识类 I
COMMENT ON COLUMN billiards_dwd.dwd_refund.member_card_id IS '【说明】标识类 ID 字段,用于关联/定位相关实体。 【示例】0标识类 ID 字段,用于关联/定位相关实体)。 【ODS来源】refund_transactions - member_card_id。 【JSON字段】refund_transactions.json - $ - member_card_id。';
CREATE TABLE IF NOT EXISTS dwd_refund_Ex (
CREATE TABLE IF NOT EXISTS dwd_refund_ex (
refund_id BIGINT,
tenant_name VARCHAR(64),
pay_sn BIGINT,

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,118 @@
-- =============================================================================
-- 指数算法参数初始化脚本
-- 版本: v1.0
-- 创建日期: 2026-02-03
-- 描述: 为客户召回指数和客户-助教亲密指数插入默认参数
-- =============================================================================
-- 清空旧数据(如果需要重新初始化)
-- DELETE FROM billiards_dws.cfg_index_parameters WHERE index_type IN ('RECALL', 'INTIMACY');
-- =============================================================================
-- 客户召回指数RECALL参数
-- =============================================================================
INSERT INTO billiards_dws.cfg_index_parameters
(index_type, param_name, param_value, description, effective_from)
VALUES
-- 基础参数
('RECALL', 'lookback_days', 60, '回溯窗口分析近60天的数据', CURRENT_DATE),
('RECALL', 'sigma_min', 2.0, '波动下限(天):避免σ过小导致超期过敏', CURRENT_DATE),
-- 半衰期参数
('RECALL', 'halflife_new', 7, '新客户半衰期7天后新客户加分衰减到一半', CURRENT_DATE),
('RECALL', 'halflife_recharge', 10, '刚充值半衰期10天后充值加分衰减到一半', CURRENT_DATE),
-- 权重参数
('RECALL', 'weight_overdue', 3.0, '超期紧急性权重主导因子建议3.0', CURRENT_DATE),
('RECALL', 'weight_new', 1.0, '新客户权重建议1.0', CURRENT_DATE),
('RECALL', 'weight_recharge', 1.0, '刚充值权重建议1.0', CURRENT_DATE),
('RECALL', 'weight_hot', 1.0, '热度断档权重建议1.0', CURRENT_DATE),
-- 映射参数
('RECALL', 'percentile_lower', 5, '下锚分位数5分位', CURRENT_DATE),
('RECALL', 'percentile_upper', 95, '上锚分位数95分位', CURRENT_DATE),
('RECALL', 'ewma_alpha', 0.2, 'EWMA平滑系数越小越平滑建议0.2', CURRENT_DATE)
ON CONFLICT (index_type, param_name, effective_from) DO UPDATE SET
param_value = EXCLUDED.param_value,
description = EXCLUDED.description,
updated_at = NOW();
-- =============================================================================
-- 客户-助教亲密指数INTIMACY参数
-- =============================================================================
INSERT INTO billiards_dws.cfg_index_parameters
(index_type, param_name, param_value, description, effective_from)
VALUES
-- 基础参数
('INTIMACY', 'lookback_days', 60, '回溯窗口分析近60天的数据', CURRENT_DATE),
('INTIMACY', 'session_merge_hours', 4, '会话合并间隔小时4小时内的服务算同次', CURRENT_DATE),
('INTIMACY', 'recharge_attribute_hours', 1, '充值归因窗口小时服务结束后1小时内', CURRENT_DATE),
('INTIMACY', 'amount_base', 500, '金额压缩基准(元):选门店常见充值档位', CURRENT_DATE),
('INTIMACY', 'incentive_weight', 1.5, '附加课权重倍数:附加课=基础课的1.5倍', CURRENT_DATE),
-- 半衰期参数
('INTIMACY', 'halflife_session', 14, '会话衰减半衰期14天后权重衰减到一半', CURRENT_DATE),
('INTIMACY', 'halflife_last', 10, '最近一次半衰期10天后温度衰减到一半', CURRENT_DATE),
('INTIMACY', 'halflife_recharge', 21, '充值衰减半衰期21天后充值贡献衰减到一半', CURRENT_DATE),
('INTIMACY', 'halflife_short', 7, '短期激增检测半衰期用于Burst检测', CURRENT_DATE),
('INTIMACY', 'halflife_long', 30, '长期激增检测半衰期用于Burst检测', CURRENT_DATE),
-- 权重参数
('INTIMACY', 'weight_frequency', 2.0, '频次权重建议2.0', CURRENT_DATE),
('INTIMACY', 'weight_recency', 1.5, '最近一次权重建议1.5', CURRENT_DATE),
('INTIMACY', 'weight_recharge', 2.0, '归因充值权重建议2.0', CURRENT_DATE),
('INTIMACY', 'weight_duration', 0.5, '时长权重次要因素建议0.5', CURRENT_DATE),
('INTIMACY', 'burst_gamma', 0.6, '激增放大系数γ建议0.6', CURRENT_DATE),
-- 映射参数
('INTIMACY', 'percentile_lower', 5, '下锚分位数5分位', CURRENT_DATE),
('INTIMACY', 'percentile_upper', 95, '上锚分位数95分位', CURRENT_DATE),
('INTIMACY', 'ewma_alpha', 0.2, 'EWMA平滑系数越小越平滑建议0.2', CURRENT_DATE)
ON CONFLICT (index_type, param_name, effective_from) DO UPDATE SET
param_value = EXCLUDED.param_value,
description = EXCLUDED.description,
updated_at = NOW();
-- =============================================================================
-- 验证
-- =============================================================================
-- 检查参数数量
DO $$
DECLARE
recall_count INTEGER;
intimacy_count INTEGER;
BEGIN
SELECT COUNT(*) INTO recall_count
FROM billiards_dws.cfg_index_parameters
WHERE index_type = 'RECALL';
SELECT COUNT(*) INTO intimacy_count
FROM billiards_dws.cfg_index_parameters
WHERE index_type = 'INTIMACY';
RAISE NOTICE '召回指数参数数量: %', recall_count;
RAISE NOTICE '亲密指数参数数量: %', intimacy_count;
IF recall_count < 10 THEN
RAISE WARNING '召回指数参数不完整期望至少10个';
END IF;
IF intimacy_count < 15 THEN
RAISE WARNING '亲密指数参数不完整期望至少15个';
END IF;
END $$;
-- 显示所有参数
SELECT
index_type,
param_name,
param_value,
description,
effective_from
FROM billiards_dws.cfg_index_parameters
ORDER BY index_type, param_name;