[stderr] [2026-03-07 04:40:50] INFO  | etl_billiards | 配置加载完成
[stderr] [2026-03-07 04:40:50] INFO  | etl_billiards | 门店ID: 2790685415443269
[stderr] [2026-03-07 04:40:51] INFO  | etl_billiards | 执行模式: Flow 模式
[stderr] [2026-03-07 04:40:51] INFO  | etl_billiards | Flow 类型: api_full
[stderr] [2026-03-07 04:40:51] INFO  | etl_billiards | 处理模式: full_window
[stderr] [2026-03-07 04:40:51] INFO  | etl_billiards | FLOW_API_FULL | 开始执行 Flow: api_full | 开始时间: 2026-03-07 04:40:51
[stderr] [2026-03-07 04:40:51] INFO  | etl_billiards | Flow api_full: 执行增量 ETL，层=['ODS', 'DWD', 'DWS', 'INDEX']
[stderr] [2026-03-07 04:40:51] INFO  | etl_billiards | 开始运行任务: ['ODS_ASSISTANT_ACCOUNT', 'ODS_ASSISTANT_LEDGER', 'ODS_STAFF_INFO', 'ODS_SETTLEMENT_RECORDS', 'ODS_PAYMENT', 'ODS_REFUND', 'ODS_TABLE_USE', 'ODS_TABLE_FEE_DISCOUNT', 'ODS_TABLES', 'ODS_MEMBER', 'ODS_MEMBER_CARD', 'ODS_MEMBER_BALANCE', 'ODS_RECHARGE_SETTLE', 'ODS_GOODS_CATEGORY', 'ODS_STORE_GOODS', 'ODS_STORE_GOODS_SALES', 'ODS_TENANT_GOODS', 'ODS_PLATFORM_COUPON', 'ODS_GROUP_PACKAGE', 'ODS_GROUP_BUY_REDEMPTION', 'ODS_INVENTORY_STOCK', 'ODS_INVENTORY_CHANGE', 'DWD_LOAD_FROM_ODS', 'DWS_GOODS_STOCK_DAILY', 'DWS_GOODS_STOCK_WEEKLY', 'DWS_GOODS_STOCK_MONTHLY', 'DWS_ASSISTANT_DAILY', 'DWS_ASSISTANT_CUSTOMER', 'DWS_ASSISTANT_SALARY', 'DWS_BUILD_ORDER_SUMMARY', 'DWS_MEMBER_CONSUMPTION', 'DWS_MEMBER_VISIT', 'DWS_FINANCE_DAILY', 'DWS_FINANCE_RECHARGE', 'DWS_FINANCE_INCOME_STRUCTURE', 'DWS_FINANCE_DISCOUNT_DETAIL', 'DWS_ASSISTANT_MONTHLY', 'DWS_ASSISTANT_FINANCE', 'DWS_WINBACK_INDEX', 'DWS_NEWCONV_INDEX', 'DWS_RELATION_INDEX', 'DWS_SPENDING_POWER_INDEX'], run_uuid=4736006166e1415d92c5e3fbab2336b3
[stderr] [2026-03-07 04:40:52] INFO  | etl_billiards | ODS_ASSISTANT_ACCOUNT: ODS fetch+load start, dir=C:\NeoZQYY\export\ETL-Connectors\feiqiu\JSON\ODS_ASSISTANT_ACCOUNT\ODS_ASSISTANT_ACCOUNT-10096-20260307-044052
[stderr] [2026-03-07 04:40:52] INFO  | etl_billiards | 开始执行ODS_ASSISTANT_ACCOUNT (ODS)
[stderr] [2026-03-07 04:40:52] INFO  | etl_billiards | ODS_ASSISTANT_ACCOUNT: 窗口拆分为 9 段（共 251.17 天）
[stderr] [2026-03-07 04:40:52] INFO  | etl_billiards | ODS_ASSISTANT_ACCOUNT: 开始执行(1/9)，窗口[2025-07-01 06:00:00+08:00 ~ 2025-07-31 06:00:00+08:00]
[stderr] [2026-03-07 04:40:55] INFO  | etl_billiards | 管道执行摘要: status=SUCCESS, 总耗时=3.5s [请求=2.6s, 处理=0.0s, 写入=0.8s], 请求=1/1, 获取=71, 写入(inserted=0, updated=71, skipped=0), 失败(request=0, process=0, write=0)
[stderr] [2026-03-07 04:40:56] INFO  | etl_billiards | ODS_ASSISTANT_ACCOUNT: 完成(1/9)，已处理 30/251.17 天
[stderr] [2026-03-07 04:40:56] INFO  | etl_billiards | ODS_ASSISTANT_ACCOUNT: 开始执行(2/9)，窗口[2025-07-31 06:00:00+08:00 ~ 2025-08-30 06:00:00+08:00]
[stderr] [2026-03-07 04:40:58] INFO  | etl_billiards | 管道执行摘要: status=SUCCESS, 总耗时=2.4s [请求=1.3s, 处理=0.0s, 写入=1.2s], 请求=1/1, 获取=71, 写入(inserted=0, updated=71, skipped=0), 失败(request=0, process=0, write=0)
[stderr] [2026-03-07 04:40:58] INFO  | etl_billiards | ODS_ASSISTANT_ACCOUNT: 完成(2/9)，已处理 60/251.17 天
[stderr] [2026-03-07 04:40:58] INFO  | etl_billiards | ODS_ASSISTANT_ACCOUNT: 开始执行(3/9)，窗口[2025-08-30 06:00:00+08:00 ~ 2025-09-29 06:00:00+08:00]
[stderr] [2026-03-07 04:41:01] INFO  | etl_billiards | 管道执行摘要: status=SUCCESS, 总耗时=3.1s [请求=2.7s, 处理=0.0s, 写入=0.4s], 请求=1/1, 获取=71, 写入(inserted=0, updated=71, skipped=0), 失败(request=0, process=0, write=0)
[stderr] [2026-03-07 04:41:01] INFO  | etl_billiards | ODS_ASSISTANT_ACCOUNT: 完成(3/9)，已处理 90/251.17 天
[stderr] [2026-03-07 04:41:01] INFO  | etl_billiards | ODS_ASSISTANT_ACCOUNT: 开始执行(4/9)，窗口[2025-09-29 06:00:00+08:00 ~ 2025-10-29 06:00:00+08:00]
[stderr] [2026-03-07 04:41:05] INFO  | etl_billiards | 管道执行摘要: status=SUCCESS, 总耗时=3.5s [请求=3.0s, 处理=0.0s, 写入=0.5s], 请求=1/1, 获取=71, 写入(inserted=0, updated=71, skipped=0), 失败(request=0, process=0, write=0)
[stderr] [2026-03-07 04:41:05] INFO  | etl_billiards | ODS_ASSISTANT_ACCOUNT: 完成(4/9)，已处理 120/251.17 天
[stderr] [2026-03-07 04:41:05] INFO  | etl_billiards | ODS_ASSISTANT_ACCOUNT: 开始执行(5/9)，窗口[2025-10-29 06:00:00+08:00 ~ 2025-11-28 06:00:00+08:00]
[stderr] [2026-03-07 04:41:07] INFO  | etl_billiards | 管道执行摘要: status=SUCCESS, 总耗时=1.6s [请求=1.3s, 处理=0.0s, 写入=0.4s], 请求=1/1, 获取=71, 写入(inserted=0, updated=71, skipped=0), 失败(request=0, process=0, write=0)
[stderr] [2026-03-07 04:41:07] INFO  | etl_billiards | ODS_ASSISTANT_ACCOUNT: 完成(5/9)，已处理 150/251.17 天
[stderr] [2026-03-07 04:41:07] INFO  | etl_billiards | ODS_ASSISTANT_ACCOUNT: 开始执行(6/9)，窗口[2025-11-28 06:00:00+08:00 ~ 2025-12-28 06:00:00+08:00]
[stderr] [2026-03-07 04:41:10] INFO  | etl_billiards | 管道执行摘要: status=SUCCESS, 总耗时=3.1s [请求=2.7s, 处理=0.0s, 写入=0.4s], 请求=1/1, 获取=71, 写入(inserted=0, updated=71, skipped=0), 失败(request=0, process=0, write=0)
[stderr] [2026-03-07 04:41:10] INFO  | etl_billiards | ODS_ASSISTANT_ACCOUNT: 完成(6/9)，已处理 180/251.17 天
[stderr] [2026-03-07 04:41:10] INFO  | etl_billiards | ODS_ASSISTANT_ACCOUNT: 开始执行(7/9)，窗口[2025-12-28 06:00:00+08:00 ~ 2026-01-27 06:00:00+08:00]
[stderr] [2026-03-07 04:41:13] INFO  | etl_billiards | 管道执行摘要: status=SUCCESS, 总耗时=2.4s [请求=1.8s, 处理=0.0s, 写入=0.6s], 请求=1/1, 获取=71, 写入(inserted=0, updated=71, skipped=0), 失败(request=0, process=0, write=0)
[stderr] [2026-03-07 04:41:13] INFO  | etl_billiards | ODS_ASSISTANT_ACCOUNT: 完成(7/9)，已处理 210/251.17 天
[stderr] [2026-03-07 04:41:13] INFO  | etl_billiards | ODS_ASSISTANT_ACCOUNT: 开始执行(8/9)，窗口[2026-01-27 06:00:00+08:00 ~ 2026-02-26 06:00:00+08:00]
[stderr] [2026-03-07 04:41:15] INFO  | etl_billiards | 管道执行摘要: status=SUCCESS, 总耗时=2.1s [请求=1.8s, 处理=0.0s, 写入=0.3s], 请求=1/1, 获取=71, 写入(inserted=0, updated=71, skipped=0), 失败(request=0, process=0, write=0)
[stderr] [2026-03-07 04:41:15] INFO  | etl_billiards | ODS_ASSISTANT_ACCOUNT: 完成(8/9)，已处理 240/251.17 天
[stderr] [2026-03-07 04:41:15] INFO  | etl_billiards | ODS_ASSISTANT_ACCOUNT: 开始执行(9/9)，窗口[2026-02-26 06:00:00+08:00 ~ 2026-03-09 10:00:00+08:00]
[stderr] [2026-03-07 04:41:18] INFO  | etl_billiards | 管道执行摘要: status=SUCCESS, 总耗时=2.8s [请求=2.4s, 处理=0.0s, 写入=0.3s], 请求=1/1, 获取=71, 写入(inserted=0, updated=71, skipped=0), 失败(request=0, process=0, write=0)
[stderr] [2026-03-07 04:41:18] INFO  | etl_billiards | ODS_ASSISTANT_ACCOUNT: 完成(9/9)，已处理 251.17/251.17 天
[stderr] [2026-03-07 04:41:18] INFO  | etl_billiards | ODS_ASSISTANT_ACCOUNT ODS 任务完成: {'fetched': 639, 'inserted': 0, 'updated': 639, 'skipped': 0, 'errors': 0, 'deleted': 0}
[stderr] [2026-03-07 04:41:18] INFO  | etl_billiards | [ODS_ASSISTANT_ACCOUNT] 开始执行ODS_ASSISTANT_ACCOUNT (ODS)
[stderr] [2026-03-07 04:41:18] INFO  | etl_billiards | [ODS_ASSISTANT_ACCOUNT] 窗口拆分为 9 段（共 251.17 天）
[stderr] [2026-03-07 04:41:18] INFO  | etl_billiards | [ODS_ASSISTANT_ACCOUNT] 开始执行(1/9)，窗口[2025-07-01 06:00:00+08:00 ~ 2025-07-31 06:00:00+08:00]
[stderr] [2026-03-07 04:41:18] INFO  | etl_billiards | [ODS_ASSISTANT_ACCOUNT] 完成(1/9)，已处理 30/251.17 天
[stderr] [2026-03-07 04:41:18] INFO  | etl_billiards | [ODS_ASSISTANT_ACCOUNT] 开始执行(2/9)，窗口[2025-07-31 06:00:00+08:00 ~ 2025-08-30 06:00:00+08:00]
[stderr] [2026-03-07 04:41:18] INFO  | etl_billiards | [ODS_ASSISTANT_ACCOUNT] 完成(2/9)，已处理 60/251.17 天
[stderr] [2026-03-07 04:41:18] INFO  | etl_billiards | [ODS_ASSISTANT_ACCOUNT] 开始执行(3/9)，窗口[2025-08-30 06:00:00+08:00 ~ 2025-09-29 06:00:00+08:00]
[stderr] [2026-03-07 04:41:18] INFO  | etl_billiards | [ODS_ASSISTANT_ACCOUNT] 完成(3/9)，已处理 90/251.17 天
[stderr] [2026-03-07 04:41:18] INFO  | etl_billiards | [ODS_ASSISTANT_ACCOUNT] 开始执行(4/9)，窗口[2025-09-29 06:00:00+08:00 ~ 2025-10-29 06:00:00+08:00]
[stderr] [2026-03-07 04:41:18] INFO  | etl_billiards | [ODS_ASSISTANT_ACCOUNT] 完成(4/9)，已处理 120/251.17 天
[stderr] [2026-03-07 04:41:18] INFO  | etl_billiards | [ODS_ASSISTANT_ACCOUNT] 开始执行(5/9)，窗口[2025-10-29 06:00:00+08:00 ~ 2025-11-28 06:00:00+08:00]
[stderr] [2026-03-07 04:41:18] INFO  | etl_billiards | [ODS_ASSISTANT_ACCOUNT] 完成(5/9)，已处理 150/251.17 天
[stderr] [2026-03-07 04:41:18] INFO  | etl_billiards | [ODS_ASSISTANT_ACCOUNT] 开始执行(6/9)，窗口[2025-11-28 06:00:00+08:00 ~ 2025-12-28 06:00:00+08:00]
[stderr] [2026-03-07 04:41:18] INFO  | etl_billiards | [ODS_ASSISTANT_ACCOUNT] 完成(6/9)，已处理 180/251.17 天
[stderr] [2026-03-07 04:41:18] INFO  | etl_billiards | [ODS_ASSISTANT_ACCOUNT] 开始执行(7/9)，窗口[2025-12-28 06:00:00+08:00 ~ 2026-01-27 06:00:00+08:00]
[stderr] [2026-03-07 04:41:18] INFO  | etl_billiards | [ODS_ASSISTANT_ACCOUNT] 完成(7/9)，已处理 210/251.17 天
[stderr] [2026-03-07 04:41:18] INFO  | etl_billiards | [ODS_ASSISTANT_ACCOUNT] 开始执行(8/9)，窗口[2026-01-27 06:00:00+08:00 ~ 2026-02-26 06:00:00+08:00]
[stderr] [2026-03-07 04:41:18] INFO  | etl_billiards | [ODS_ASSISTANT_ACCOUNT] 完成(8/9)，已处理 240/251.17 天
[stderr] [2026-03-07 04:41:18] INFO  | etl_billiards | [ODS_ASSISTANT_ACCOUNT] 开始执行(9/9)，窗口[2026-02-26 06:00:00+08:00 ~ 2026-03-09 10:00:00+08:00]
[stderr] [2026-03-07 04:41:18] INFO  | etl_billiards | [ODS_ASSISTANT_ACCOUNT] 完成(9/9)，已处理 251.17/251.17 天
[stderr] [2026-03-07 04:41:18] INFO  | etl_billiards | [ODS_ASSISTANT_ACCOUNT] ODS 任务完成: {'fetched': 639, 'inserted': 0, 'updated': 639, 'skipped': 0, 'errors': 0, 'deleted': 0}
[stderr] [2026-03-07 04:41:19] INFO  | etl_billiards | ODS_ASSISTANT_LEDGER: ODS fetch+load start, dir=C:\NeoZQYY\export\ETL-Connectors\feiqiu\JSON\ODS_ASSISTANT_LEDGER\ODS_ASSISTANT_LEDGER-10097-20260307-044119
[stderr] [2026-03-07 04:41:19] INFO  | etl_billiards | 开始执行ODS_ASSISTANT_LEDGER (ODS)
[stderr] [2026-03-07 04:41:19] INFO  | etl_billiards | ODS_ASSISTANT_LEDGER: 窗口拆分为 9 段（共 251.17 天）
[stderr] [2026-03-07 04:41:19] INFO  | etl_billiards | ODS_ASSISTANT_LEDGER: 开始执行(1/9)，窗口[2025-07-01 06:00:00+08:00 ~ 2025-07-31 06:00:00+08:00]
[stderr] [2026-03-07 04:41:25] INFO  | etl_billiards | 管道执行摘要: status=SUCCESS, 总耗时=5.4s [请求=4.6s, 处理=0.0s, 写入=0.8s], 请求=2/2, 获取=340, 写入(inserted=0, updated=340, skipped=0), 失败(request=0, process=0, write=0)
[stderr] [2026-03-07 04:41:25] INFO  | etl_billiards | ODS_ASSISTANT_LEDGER: early-cutoff 保护生效，软删除窗口起点从 2025-07-01 06:00:00+08:00 收窄至 2025-07-21 15:24:41+08:00
[stderr] [2026-03-07 04:41:25] INFO  | etl_billiards | ODS_ASSISTANT_LEDGER: late-cutoff 保护生效，软删除窗口终点从 2025-07-31 06:00:00+08:00 收窄至 2025-07-31 02:54:10+08:00
[stderr] [2026-03-07 04:41:25] INFO  | etl_billiards | ODS_ASSISTANT_LEDGER: 完成(1/9)，已处理 30/251.17 天
[stderr] [2026-03-07 04:41:25] INFO  | etl_billiards | ODS_ASSISTANT_LEDGER: 开始执行(2/9)，窗口[2025-07-31 06:00:00+08:00 ~ 2025-08-30 06:00:00+08:00]
[stderr] [2026-03-07 04:41:39] INFO  | etl_billiards | 管道执行摘要: status=SUCCESS, 总耗时=14.5s [请求=6.5s, 处理=0.0s, 写入=8.0s], 请求=5/5, 获取=826, 写入(inserted=0, updated=826, skipped=0), 失败(request=0, process=0, write=0)
[stderr] [2026-03-07 04:41:39] INFO  | etl_billiards | ODS_ASSISTANT_LEDGER: early-cutoff 保护生效，软删除窗口起点从 2025-07-31 06:00:00+08:00 收窄至 2025-07-31 17:32:58+08:00
[stderr] [2026-03-07 04:41:39] INFO  | etl_billiards | ODS_ASSISTANT_LEDGER: late-cutoff 保护生效，软删除窗口终点从 2025-08-30 06:00:00+08:00 收窄至 2025-08-30 03:08:21+08:00
[stderr] [2026-03-07 04:41:39] INFO  | etl_billiards | ODS_ASSISTANT_LEDGER: 完成(2/9)，已处理 60/251.17 天
[stderr] [2026-03-07 04:41:39] INFO  | etl_billiards | ODS_ASSISTANT_LEDGER: 开始执行(3/9)，窗口[2025-08-30 06:00:00+08:00 ~ 2025-09-29 06:00:00+08:00]
[stderr] [2026-03-07 04:41:50] INFO  | etl_billiards | 管道执行摘要: status=SUCCESS, 总耗时=10.2s [请求=9.7s, 处理=0.0s, 写入=0.4s], 请求=4/4, 获取=675, 写入(inserted=0, updated=675, skipped=0), 失败(request=0, process=0, write=0)
[stderr] [2026-03-07 04:41:50] INFO  | etl_billiards | ODS_ASSISTANT_LEDGER: early-cutoff 保护生效，软删除窗口起点从 2025-08-30 06:00:00+08:00 收窄至 2025-08-30 19:15:53+08:00
[stderr] [2026-03-07 04:41:50] INFO  | etl_billiards | ODS_ASSISTANT_LEDGER: late-cutoff 保护生效，软删除窗口终点从 2025-09-29 06:00:00+08:00 收窄至 2025-09-29 01:55:25+08:00
[stderr] [2026-03-07 04:41:50] INFO  | etl_billiards | ODS_ASSISTANT_LEDGER: 完成(3/9)，已处理 90/251.17 天
[stderr] [2026-03-07 04:41:50] INFO  | etl_billiards | ODS_ASSISTANT_LEDGER: 开始执行(4/9)，窗口[2025-09-29 06:00:00+08:00 ~ 2025-10-29 06:00:00+08:00]
[stderr] [2026-03-07 04:42:01] INFO  | etl_billiards | 管道执行摘要: status=SUCCESS, 总耗时=10.6s [请求=6.2s, 处理=0.0s, 写入=4.2s], 请求=3/3, 获取=526, 写入(inserted=0, updated=526, skipped=0), 失败(request=0, process=0, write=0)
[stderr] [2026-03-07 04:42:01] INFO  | etl_billiards | ODS_ASSISTANT_LEDGER: early-cutoff 保护生效，软删除窗口起点从 2025-09-29 06:00:00+08:00 收窄至 2025-09-29 15:47:03+08:00
[stderr] [2026-03-07 04:42:01] INFO  | etl_billiards | ODS_ASSISTANT_LEDGER: late-cutoff 保护生效，软删除窗口终点从 2025-10-29 06:00:00+08:00 收窄至 2025-10-29 02:58:50+08:00
[stderr] [2026-03-07 04:42:01] INFO  | etl_billiards | ODS_ASSISTANT_LEDGER: 完成(4/9)，已处理 120/251.17 天
[stderr] [2026-03-07 04:42:01] INFO  | etl_billiards | ODS_ASSISTANT_LEDGER: 开始执行(5/9)，窗口[2025-10-29 06:00:00+08:00 ~ 2025-11-28 06:00:00+08:00]
[stderr] [2026-03-07 04:42:11] INFO  | etl_billiards | 管道执行摘要: status=SUCCESS, 总耗时=10.5s [请求=7.8s, 处理=0.0s, 写入=2.4s], 请求=5/5, 获取=883, 写入(inserted=0, updated=883, skipped=0), 失败(request=0, process=0, write=0)
[stderr] [2026-03-07 04:42:11] INFO  | etl_billiards | ODS_ASSISTANT_LEDGER: early-cutoff 保护生效，软删除窗口起点从 2025-10-29 06:00:00+08:00 收窄至 2025-10-29 06:57:22+08:00
[stderr] [2026-03-07 04:42:11] INFO  | etl_billiards | ODS_ASSISTANT_LEDGER: late-cutoff 保护生效，软删除窗口终点从 2025-11-28 06:00:00+08:00 收窄至 2025-11-28 04:07:19+08:00
[stderr] [2026-03-07 04:42:12] INFO  | etl_billiards | ODS_ASSISTANT_LEDGER: 完成(5/9)，已处理 150/251.17 天
[stderr] [2026-03-07 04:42:12] INFO  | etl_billiards | ODS_ASSISTANT_LEDGER: 开始执行(6/9)，窗口[2025-11-28 06:00:00+08:00 ~ 2025-12-28 06:00:00+08:00]
[stderr] [2026-03-07 04:42:30] INFO  | etl_billiards | 管道执行摘要: status=SUCCESS, 总耗时=18.2s [请求=9.3s, 处理=0.0s, 写入=8.7s], 请求=5/5, 获取=761, 写入(inserted=0, updated=761, skipped=0), 失败(request=0, process=0, write=0)
[stderr] [2026-03-07 04:42:30] INFO  | etl_billiards | ODS_ASSISTANT_LEDGER: early-cutoff 保护生效，软删除窗口起点从 2025-11-28 06:00:00+08:00 收窄至 2025-11-28 17:09:12+08:00
[stderr] [2026-03-07 04:42:30] INFO  | etl_billiards | ODS_ASSISTANT_LEDGER: late-cutoff 保护生效，软删除窗口终点从 2025-12-28 06:00:00+08:00 收窄至 2025-12-28 04:31:30+08:00
[stderr] [2026-03-07 04:42:33] INFO  | etl_billiards | ODS_ASSISTANT_LEDGER: 完成(6/9)，已处理 180/251.17 天
[stderr] [2026-03-07 04:42:33] INFO  | etl_billiards | ODS_ASSISTANT_LEDGER: 开始执行(7/9)，窗口[2025-12-28 06:00:00+08:00 ~ 2026-01-27 06:00:00+08:00]
[stderr] [2026-03-07 04:42:45] INFO  | etl_billiards | 管道执行摘要: status=SUCCESS, 总耗时=12.5s [请求=9.9s, 处理=0.0s, 写入=2.5s], 请求=5/5, 获取=838, 写入(inserted=0, updated=838, skipped=0), 失败(request=0, process=0, write=0)
[stderr] [2026-03-07 04:42:45] INFO  | etl_billiards | ODS_ASSISTANT_LEDGER: early-cutoff 保护生效，软删除窗口起点从 2025-12-28 06:00:00+08:00 收窄至 2025-12-28 16:41:09+08:00
[stderr] [2026-03-07 04:42:45] INFO  | etl_billiards | ODS_ASSISTANT_LEDGER: late-cutoff 保护生效，软删除窗口终点从 2026-01-27 06:00:00+08:00 收窄至 2026-01-27 05:01:06+08:00
[stderr] [2026-03-07 04:42:46] INFO  | etl_billiards | ODS_ASSISTANT_LEDGER: 完成(7/9)，已处理 210/251.17 天
[stderr] [2026-03-07 04:42:46] INFO  | etl_billiards | ODS_ASSISTANT_LEDGER: 开始执行(8/9)，窗口[2026-01-27 06:00:00+08:00 ~ 2026-02-26 06:00:00+08:00]
[stderr] [2026-03-07 04:42:50] INFO  | etl_billiards | 管道执行摘要: status=SUCCESS, 总耗时=4.8s [请求=3.7s, 处理=0.0s, 写入=0.7s], 请求=2/2, 获取=272, 写入(inserted=0, updated=272, skipped=0), 失败(request=0, process=0, write=0)
[stderr] [2026-03-07 04:42:50] INFO  | etl_billiards | ODS_ASSISTANT_LEDGER: early-cutoff 保护生效，软删除窗口起点从 2026-01-27 06:00:00+08:00 收窄至 2026-01-27 06:05:01+08:00
[stderr] [2026-03-07 04:42:50] INFO  | etl_billiards | ODS_ASSISTANT_LEDGER: late-cutoff 保护生效，软删除窗口终点从 2026-02-26 06:00:00+08:00 收窄至 2026-02-25 00:32:31+08:00
[stderr] [2026-03-07 04:42:50] INFO  | etl_billiards | ODS_ASSISTANT_LEDGER: 完成(8/9)，已处理 240/251.17 天
[stderr] [2026-03-07 04:42:50] INFO  | etl_billiards | ODS_ASSISTANT_LEDGER: 开始执行(9/9)，窗口[2026-02-26 06:00:00+08:00 ~ 2026-03-09 10:00:00+08:00]
[stderr] [2026-03-07 04:42:54] INFO  | etl_billiards | 管道执行摘要: status=SUCCESS, 总耗时=3.3s [请求=2.4s, 处理=0.0s, 写入=0.9s], 请求=1/1, 获取=39, 写入(inserted=0, updated=39, skipped=0), 失败(request=0, process=0, write=0)
[stderr] [2026-03-07 04:42:54] INFO  | etl_billiards | ODS_ASSISTANT_LEDGER: early-cutoff 保护生效，软删除窗口起点从 2026-02-26 06:00:00+08:00 收窄至 2026-03-03 00:50:11+08:00
[stderr] [2026-03-07 04:42:54] INFO  | etl_billiards | ODS_ASSISTANT_LEDGER: late-cutoff 保护生效，软删除窗口终点从 2026-03-09 10:00:00+08:00 收窄至 2026-03-07 02:05:35+08:00
[stderr] [2026-03-07 04:42:54] INFO  | etl_billiards | ODS_ASSISTANT_LEDGER: 完成(9/9)，已处理 251.17/251.17 天
[stderr] [2026-03-07 04:42:54] INFO  | etl_billiards | ODS_ASSISTANT_LEDGER ODS 任务完成: {'fetched': 5160, 'inserted': 64, 'updated': 5160, 'skipped': 0, 'errors': 0, 'deleted': 64}
[stderr] [2026-03-07 04:42:54] INFO  | etl_billiards | [ODS_ASSISTANT_LEDGER] 开始执行ODS_ASSISTANT_LEDGER (ODS)
[stderr] [2026-03-07 04:42:54] INFO  | etl_billiards | [ODS_ASSISTANT_LEDGER] 窗口拆分为 9 段（共 251.17 天）
[stderr] [2026-03-07 04:42:54] INFO  | etl_billiards | [ODS_ASSISTANT_LEDGER] 开始执行(1/9)，窗口[2025-07-01 06:00:00+08:00 ~ 2025-07-31 06:00:00+08:00]
[stderr] [2026-03-07 04:42:54] INFO  | etl_billiards | [ODS_ASSISTANT_LEDGER] early-cutoff 保护生效，软删除窗口起点从 2025-07-01 06:00:00+08:00 收窄至 2025-07-21 15:24:41+08:00
[stderr] [2026-03-07 04:42:54] INFO  | etl_billiards | [ODS_ASSISTANT_LEDGER] late-cutoff 保护生效，软删除窗口终点从 2025-07-31 06:00:00+08:00 收窄至 2025-07-31 02:54:10+08:00
[stderr] [2026-03-07 04:42:54] INFO  | etl_billiards | [ODS_ASSISTANT_LEDGER] 完成(1/9)，已处理 30/251.17 天
[stderr] [2026-03-07 04:42:54] INFO  | etl_billiards | [ODS_ASSISTANT_LEDGER] 开始执行(2/9)，窗口[2025-07-31 06:00:00+08:00 ~ 2025-08-30 06:00:00+08:00]
[stderr] [2026-03-07 04:42:54] INFO  | etl_billiards | [ODS_ASSISTANT_LEDGER] early-cutoff 保护生效，软删除窗口起点从 2025-07-31 06:00:00+08:00 收窄至 2025-07-31 17:32:58+08:00
[stderr] [2026-03-07 04:42:54] INFO  | etl_billiards | [ODS_ASSISTANT_LEDGER] late-cutoff 保护生效，软删除窗口终点从 2025-08-30 06:00:00+08:00 收窄至 2025-08-30 03:08:21+08:00
[stderr] [2026-03-07 04:42:54] INFO  | etl_billiards | [ODS_ASSISTANT_LEDGER] 完成(2/9)，已处理 60/251.17 天
[stderr] [2026-03-07 04:42:54] INFO  | etl_billiards | [ODS_ASSISTANT_LEDGER] 开始执行(3/9)，窗口[2025-08-30 06:00:00+08:00 ~ 2025-09-29 06:00:00+08:00]
[stderr] [2026-03-07 04:42:54] INFO  | etl_billiards | [ODS_ASSISTANT_LEDGER] early-cutoff 保护生效，软删除窗口起点从 2025-08-30 06:00:00+08:00 收窄至 2025-08-30 19:15:53+08:00
[stderr] [2026-03-07 04:42:54] INFO  | etl_billiards | [ODS_ASSISTANT_LEDGER] late-cutoff 保护生效，软删除窗口终点从 2025-09-29 06:00:00+08:00 收窄至 2025-09-29 01:55:25+08:00
[stderr] [2026-03-07 04:42:54] INFO  | etl_billiards | [ODS_ASSISTANT_LEDGER] 完成(3/9)，已处理 90/251.17 天
[stderr] [2026-03-07 04:42:54] INFO  | etl_billiards | [ODS_ASSISTANT_LEDGER] 开始执行(4/9)，窗口[2025-09-29 06:00:00+08:00 ~ 2025-10-29 06:00:00+08:00]
[stderr] [2026-03-07 04:42:54] INFO  | etl_billiards | [ODS_ASSISTANT_LEDGER] early-cutoff 保护生效，软删除窗口起点从 2025-09-29 06:00:00+08:00 收窄至 2025-09-29 15:47:03+08:00
[stderr] [2026-03-07 04:42:54] INFO  | etl_billiards | [ODS_ASSISTANT_LEDGER] late-cutoff 保护生效，软删除窗口终点从 2025-10-29 06:00:00+08:00 收窄至 2025-10-29 02:58:50+08:00
[stderr] [2026-03-07 04:42:54] INFO  | etl_billiards | [ODS_ASSISTANT_LEDGER] 完成(4/9)，已处理 120/251.17 天
[stderr] [2026-03-07 04:42:54] INFO  | etl_billiards | [ODS_ASSISTANT_LEDGER] 开始执行(5/9)，窗口[2025-10-29 06:00:00+08:00 ~ 2025-11-28 06:00:00+08:00]
[stderr] [2026-03-07 04:42:54] INFO  | etl_billiards | [ODS_ASSISTANT_LEDGER] early-cutoff 保护生效，软删除窗口起点从 2025-10-29 06:00:00+08:00 收窄至 2025-10-29 06:57:22+08:00
[stderr] [2026-03-07 04:42:54] INFO  | etl_billiards | [ODS_ASSISTANT_LEDGER] late-cutoff 保护生效，软删除窗口终点从 2025-11-28 06:00:00+08:00 收窄至 2025-11-28 04:07:19+08:00
[stderr] [2026-03-07 04:42:54] INFO  | etl_billiards | [ODS_ASSISTANT_LEDGER] 完成(5/9)，已处理 150/251.17 天
[stderr] [2026-03-07 04:42:54] INFO  | etl_billiards | [ODS_ASSISTANT_LEDGER] 开始执行(6/9)，窗口[2025-11-28 06:00:00+08:00 ~ 2025-12-28 06:00:00+08:00]
[stderr] [2026-03-07 04:42:54] INFO  | etl_billiards | [ODS_ASSISTANT_LEDGER] early-cutoff 保护生效，软删除窗口起点从 2025-11-28 06:00:00+08:00 收窄至 2025-11-28 17:09:12+08:00
[stderr] [2026-03-07 04:42:54] INFO  | etl_billiards | [ODS_ASSISTANT_LEDGER] late-cutoff 保护生效，软删除窗口终点从 2025-12-28 06:00:00+08:00 收窄至 2025-12-28 04:31:30+08:00
[stderr] [2026-03-07 04:42:54] INFO  | etl_billiards | [ODS_ASSISTANT_LEDGER] 完成(6/9)，已处理 180/251.17 天
[stderr] [2026-03-07 04:42:54] INFO  | etl_billiards | [ODS_ASSISTANT_LEDGER] 开始执行(7/9)，窗口[2025-12-28 06:00:00+08:00 ~ 2026-01-27 06:00:00+08:00]
[stderr] [2026-03-07 04:42:54] INFO  | etl_billiards | [ODS_ASSISTANT_LEDGER] early-cutoff 保护生效，软删除窗口起点从 2025-12-28 06:00:00+08:00 收窄至 2025-12-28 16:41:09+08:00
[stderr] [2026-03-07 04:42:54] INFO  | etl_billiards | [ODS_ASSISTANT_LEDGER] late-cutoff 保护生效，软删除窗口终点从 2026-01-27 06:00:00+08:00 收窄至 2026-01-27 05:01:06+08:00
[stderr] [2026-03-07 04:42:54] INFO  | etl_billiards | [ODS_ASSISTANT_LEDGER] 完成(7/9)，已处理 210/251.17 天
[stderr] [2026-03-07 04:42:54] INFO  | etl_billiards | [ODS_ASSISTANT_LEDGER] 开始执行(8/9)，窗口[2026-01-27 06:00:00+08:00 ~ 2026-02-26 06:00:00+08:00]
[stderr] [2026-03-07 04:42:54] INFO  | etl_billiards | [ODS_ASSISTANT_LEDGER] early-cutoff 保护生效，软删除窗口起点从 2026-01-27 06:00:00+08:00 收窄至 2026-01-27 06:05:01+08:00
[stderr] [2026-03-07 04:42:54] INFO  | etl_billiards | [ODS_ASSISTANT_LEDGER] late-cutoff 保护生效，软删除窗口终点从 2026-02-26 06:00:00+08:00 收窄至 2026-02-25 00:32:31+08:00
[stderr] [2026-03-07 04:42:54] INFO  | etl_billiards | [ODS_ASSISTANT_LEDGER] 完成(8/9)，已处理 240/251.17 天
[stderr] [2026-03-07 04:42:54] INFO  | etl_billiards | [ODS_ASSISTANT_LEDGER] 开始执行(9/9)，窗口[2026-02-26 06:00:00+08:00 ~ 2026-03-09 10:00:00+08:00]
[stderr] [2026-03-07 04:42:54] INFO  | etl_billiards | [ODS_ASSISTANT_LEDGER] early-cutoff 保护生效，软删除窗口起点从 2026-02-26 06:00:00+08:00 收窄至 2026-03-03 00:50:11+08:00
[stderr] [2026-03-07 04:42:54] INFO  | etl_billiards | [ODS_ASSISTANT_LEDGER] late-cutoff 保护生效，软删除窗口终点从 2026-03-09 10:00:00+08:00 收窄至 2026-03-07 02:05:35+08:00
[stderr] [2026-03-07 04:42:54] INFO  | etl_billiards | [ODS_ASSISTANT_LEDGER] 完成(9/9)，已处理 251.17/251.17 天
[stderr] [2026-03-07 04:42:54] INFO  | etl_billiards | [ODS_ASSISTANT_LEDGER] ODS 任务完成: {'fetched': 5160, 'inserted': 64, 'updated': 5160, 'skipped': 0, 'errors': 0, 'deleted': 64}
[stderr] [2026-03-07 04:42:56] INFO  | etl_billiards | ODS_STAFF_INFO: ODS fetch+load start, dir=C:\NeoZQYY\export\ETL-Connectors\feiqiu\JSON\ODS_STAFF_INFO\ODS_STAFF_INFO-10098-20260307-044256
[stderr] [2026-03-07 04:42:56] INFO  | etl_billiards | 开始执行ODS_STAFF_INFO (ODS)
[stderr] [2026-03-07 04:42:56] INFO  | etl_billiards | ODS_STAFF_INFO: 窗口拆分为 9 段（共 251.17 天）
[stderr] [2026-03-07 04:42:56] INFO  | etl_billiards | ODS_STAFF_INFO: 开始执行(1/9)，窗口[2025-07-01 06:00:00+08:00 ~ 2025-07-31 06:00:00+08:00]
[stderr] [2026-03-07 04:42:57] INFO  | etl_billiards | 管道执行摘要: status=SUCCESS, 总耗时=0.7s [请求=0.4s, 处理=0.0s, 写入=0.3s], 请求=1/1, 获取=15, 写入(inserted=15, updated=0, skipped=0), 失败(request=0, process=0, write=0)
[stderr] [2026-03-07 04:42:57] INFO  | etl_billiards | ODS_STAFF_INFO: 完成(1/9)，已处理 30/251.17 天
[stderr] [2026-03-07 04:42:57] INFO  | etl_billiards | ODS_STAFF_INFO: 开始执行(2/9)，窗口[2025-07-31 06:00:00+08:00 ~ 2025-08-30 06:00:00+08:00]
[stderr] [2026-03-07 04:42:58] INFO  | etl_billiards | 管道执行摘要: status=SUCCESS, 总耗时=0.8s [请求=0.7s, 处理=0.0s, 写入=0.1s], 请求=1/1, 获取=15, 写入(inserted=15, updated=0, skipped=0), 失败(request=0, process=0, write=0)
[stderr] [2026-03-07 04:42:58] INFO  | etl_billiards | ODS_STAFF_INFO: 完成(2/9)，已处理 60/251.17 天
[stderr] [2026-03-07 04:42:58] INFO  | etl_billiards | ODS_STAFF_INFO: 开始执行(3/9)，窗口[2025-08-30 06:00:00+08:00 ~ 2025-09-29 06:00:00+08:00]
[stderr] [2026-03-07 04:42:59] INFO  | etl_billiards | 管道执行摘要: status=SUCCESS, 总耗时=0.6s [请求=0.5s, 处理=0.0s, 写入=0.1s], 请求=1/1, 获取=15, 写入(inserted=15, updated=0, skipped=0), 失败(request=0, process=0, write=0)
[stderr] [2026-03-07 04:42:59] INFO  | etl_billiards | ODS_STAFF_INFO: 完成(3/9)，已处理 90/251.17 天
[stderr] [2026-03-07 04:42:59] INFO  | etl_billiards | ODS_STAFF_INFO: 开始执行(4/9)，窗口[2025-09-29 06:00:00+08:00 ~ 2025-10-29 06:00:00+08:00]
[stderr] [2026-03-07 04:43:00] INFO  | etl_billiards | 管道执行摘要: status=SUCCESS, 总耗时=1.4s [请求=0.8s, 处理=0.0s, 写入=0.2s], 请求=1/1, 获取=15, 写入(inserted=15, updated=0, skipped=0), 失败(request=0, process=0, write=0)
[stderr] [2026-03-07 04:43:00] INFO  | etl_billiards | ODS_STAFF_INFO: 完成(4/9)，已处理 120/251.17 天
[stderr] [2026-03-07 04:43:00] INFO  | etl_billiards | ODS_STAFF_INFO: 开始执行(5/9)，窗口[2025-10-29 06:00:00+08:00 ~ 2025-11-28 06:00:00+08:00]
[stderr] [2026-03-07 04:43:03] INFO  | etl_billiards | 管道执行摘要: status=SUCCESS, 总耗时=2.8s [请求=2.6s, 处理=0.0s, 写入=0.2s], 请求=1/1, 获取=15, 写入(inserted=15, updated=0, skipped=0), 失败(request=0, process=0, write=0)
[stderr] [2026-03-07 04:43:03] INFO  | etl_billiards | ODS_STAFF_INFO: 完成(5/9)，已处理 150/251.17 天
[stderr] [2026-03-07 04:43:03] INFO  | etl_billiards | ODS_STAFF_INFO: 开始执行(6/9)，窗口[2025-11-28 06:00:00+08:00 ~ 2025-12-28 06:00:00+08:00]
[stderr] [2026-03-07 04:43:05] INFO  | etl_billiards | 管道执行摘要: status=SUCCESS, 总耗时=1.8s [请求=1.2s, 处理=0.0s, 写入=0.4s], 请求=1/1, 获取=15, 写入(inserted=15, updated=0, skipped=0), 失败(request=0, process=0, write=0)
[stderr] [2026-03-07 04:43:05] INFO  | etl_billiards | ODS_STAFF_INFO: 完成(6/9)，已处理 180/251.17 天
[stderr] [2026-03-07 04:43:05] INFO  | etl_billiards | ODS_STAFF_INFO: 开始执行(7/9)，窗口[2025-12-28 06:00:00+08:00 ~ 2026-01-27 06:00:00+08:00]
[stderr] [2026-03-07 04:43:06] INFO  | etl_billiards | 管道执行摘要: status=SUCCESS, 总耗时=1.4s [请求=1.3s, 处理=0.0s, 写入=0.1s], 请求=1/1, 获取=15, 写入(inserted=15, updated=0, skipped=0), 失败(request=0, process=0, write=0)
[stderr] [2026-03-07 04:43:07] INFO  | etl_billiards | ODS_STAFF_INFO: 完成(7/9)，已处理 210/251.17 天
[stderr] [2026-03-07 04:43:07] INFO  | etl_billiards | ODS_STAFF_INFO: 开始执行(8/9)，窗口[2026-01-27 06:00:00+08:00 ~ 2026-02-26 06:00:00+08:00]
[stderr] [2026-03-07 04:43:08] INFO  | etl_billiards | 管道执行摘要: status=SUCCESS, 总耗时=1.7s [请求=1.5s, 处理=0.0s, 写入=0.2s], 请求=1/1, 获取=15, 写入(inserted=15, updated=0, skipped=0), 失败(request=0, process=0, write=0)
[stderr] [2026-03-07 04:43:08] INFO  | etl_billiards | ODS_STAFF_INFO: 完成(8/9)，已处理 240/251.17 天
[stderr] [2026-03-07 04:43:08] INFO  | etl_billiards | ODS_STAFF_INFO: 开始执行(9/9)，窗口[2026-02-26 06:00:00+08:00 ~ 2026-03-09 10:00:00+08:00]
[stderr] [2026-03-07 04:43:10] INFO  | etl_billiards | 管道执行摘要: status=SUCCESS, 总耗时=1.9s [请求=1.8s, 处理=0.0s, 写入=0.1s], 请求=1/1, 获取=15, 写入(inserted=15, updated=0, skipped=0), 失败(request=0, process=0, write=0)
[stderr] [2026-03-07 04:43:10] INFO  | etl_billiards | ODS_STAFF_INFO: 完成(9/9)，已处理 251.17/251.17 天
[stderr] [2026-03-07 04:43:10] INFO  | etl_billiards | ODS_STAFF_INFO ODS 任务完成: {'fetched': 135, 'inserted': 135, 'updated': 0, 'skipped': 0, 'errors': 0, 'deleted': 0}
[stderr] [2026-03-07 04:43:10] INFO  | etl_billiards | [ODS_STAFF_INFO] 开始执行ODS_STAFF_INFO (ODS)
[stderr] [2026-03-07 04:43:10] INFO  | etl_billiards | [ODS_STAFF_INFO] 窗口拆分为 9 段（共 251.17 天）
[stderr] [2026-03-07 04:43:10] INFO  | etl_billiards | [ODS_STAFF_INFO] 开始执行(1/9)，窗口[2025-07-01 06:00:00+08:00 ~ 2025-07-31 06:00:00+08:00]
[stderr] [2026-03-07 04:43:10] INFO  | etl_billiards | [ODS_STAFF_INFO] 完成(1/9)，已处理 30/251.17 天
[stderr] [2026-03-07 04:43:10] INFO  | etl_billiards | [ODS_STAFF_INFO] 开始执行(2/9)，窗口[2025-07-31 06:00:00+08:00 ~ 2025-08-30 06:00:00+08:00]
[stderr] [2026-03-07 04:43:10] INFO  | etl_billiards | [ODS_STAFF_INFO] 完成(2/9)，已处理 60/251.17 天
[stderr] [2026-03-07 04:43:10] INFO  | etl_billiards | [ODS_STAFF_INFO] 开始执行(3/9)，窗口[2025-08-30 06:00:00+08:00 ~ 2025-09-29 06:00:00+08:00]
[stderr] [2026-03-07 04:43:10] INFO  | etl_billiards | [ODS_STAFF_INFO] 完成(3/9)，已处理 90/251.17 天
[stderr] [2026-03-07 04:43:10] INFO  | etl_billiards | [ODS_STAFF_INFO] 开始执行(4/9)，窗口[2025-09-29 06:00:00+08:00 ~ 2025-10-29 06:00:00+08:00]
[stderr] [2026-03-07 04:43:10] INFO  | etl_billiards | [ODS_STAFF_INFO] 完成(4/9)，已处理 120/251.17 天
[stderr] [2026-03-07 04:43:10] INFO  | etl_billiards | [ODS_STAFF_INFO] 开始执行(5/9)，窗口[2025-10-29 06:00:00+08:00 ~ 2025-11-28 06:00:00+08:00]
[stderr] [2026-03-07 04:43:10] INFO  | etl_billiards | [ODS_STAFF_INFO] 完成(5/9)，已处理 150/251.17 天
[stderr] [2026-03-07 04:43:10] INFO  | etl_billiards | [ODS_STAFF_INFO] 开始执行(6/9)，窗口[2025-11-28 06:00:00+08:00 ~ 2025-12-28 06:00:00+08:00]
[stderr] [2026-03-07 04:43:10] INFO  | etl_billiards | [ODS_STAFF_INFO] 完成(6/9)，已处理 180/251.17 天
[stderr] [2026-03-07 04:43:10] INFO  | etl_billiards | [ODS_STAFF_INFO] 开始执行(7/9)，窗口[2025-12-28 06:00:00+08:00 ~ 2026-01-27 06:00:00+08:00]
[stderr] [2026-03-07 04:43:10] INFO  | etl_billiards | [ODS_STAFF_INFO] 完成(7/9)，已处理 210/251.17 天
[stderr] [2026-03-07 04:43:10] INFO  | etl_billiards | [ODS_STAFF_INFO] 开始执行(8/9)，窗口[2026-01-27 06:00:00+08:00 ~ 2026-02-26 06:00:00+08:00]
[stderr] [2026-03-07 04:43:10] INFO  | etl_billiards | [ODS_STAFF_INFO] 完成(8/9)，已处理 240/251.17 天
[stderr] [2026-03-07 04:43:10] INFO  | etl_billiards | [ODS_STAFF_INFO] 开始执行(9/9)，窗口[2026-02-26 06:00:00+08:00 ~ 2026-03-09 10:00:00+08:00]
[stderr] [2026-03-07 04:43:10] INFO  | etl_billiards | [ODS_STAFF_INFO] 完成(9/9)，已处理 251.17/251.17 天
[stderr] [2026-03-07 04:43:10] INFO  | etl_billiards | [ODS_STAFF_INFO] ODS 任务完成: {'fetched': 135, 'inserted': 135, 'updated': 0, 'skipped': 0, 'errors': 0, 'deleted': 0}
[stderr] [2026-03-07 04:43:12] INFO  | etl_billiards | ODS_SETTLEMENT_RECORDS: ODS fetch+load start, dir=C:\NeoZQYY\export\ETL-Connectors\feiqiu\JSON\ODS_SETTLEMENT_RECORDS\ODS_SETTLEMENT_RECORDS-10099-20260307-044312
[stderr] [2026-03-07 04:43:12] INFO  | etl_billiards | 开始执行ODS_SETTLEMENT_RECORDS (ODS)
[stderr] [2026-03-07 04:43:12] INFO  | etl_billiards | ODS_SETTLEMENT_RECORDS: 窗口拆分为 9 段（共 251.17 天）
[stderr] [2026-03-07 04:43:12] INFO  | etl_billiards | ODS_SETTLEMENT_RECORDS: 开始执行(1/9)，窗口[2025-07-01 06:00:00+08:00 ~ 2025-07-31 06:00:00+08:00]
[stderr] [2026-03-07 04:43:36] INFO  | etl_billiards | 管道执行摘要: status=SUCCESS, 总耗时=23.6s [请求=22.8s, 处理=0.0s, 写入=0.4s], 请求=9/9, 获取=1656, 写入(inserted=0, updated=1656, skipped=0), 失败(request=0, process=0, write=0)
[stderr] [2026-03-07 04:43:36] INFO  | etl_billiards | ODS_SETTLEMENT_RECORDS: 完成(1/9)，已处理 30/251.17 天
[stderr] [2026-03-07 04:43:36] INFO  | etl_billiards | ODS_SETTLEMENT_RECORDS: 开始执行(2/9)，窗口[2025-07-31 06:00:00+08:00 ~ 2025-08-30 06:00:00+08:00]
[stderr] [2026-03-07 04:44:20] INFO  | etl_billiards | 管道执行摘要: status=SUCCESS, 总耗时=44.1s [请求=43.9s, 处理=0.0s, 写入=0.2s], 请求=23/23, 获取=4443, 写入(inserted=0, updated=4443, skipped=0), 失败(request=0, process=0, write=0)
[stderr] [2026-03-07 04:44:20] INFO  | etl_billiards | ODS_SETTLEMENT_RECORDS: 完成(2/9)，已处理 60/251.17 天
[stderr] [2026-03-07 04:44:20] INFO  | etl_billiards | ODS_SETTLEMENT_RECORDS: 开始执行(3/9)，窗口[2025-08-30 06:00:00+08:00 ~ 2025-09-29 06:00:00+08:00]
[stderr] [2026-03-07 04:45:02] INFO  | etl_billiards | 管道执行摘要: status=SUCCESS, 总耗时=41.3s [请求=40.8s, 处理=0.0s, 写入=0.5s], 请求=19/19, 获取=3797, 写入(inserted=0, updated=3797, skipped=0), 失败(request=0, process=0, write=0)
[stderr] [2026-03-07 04:45:02] INFO  | etl_billiards | ODS_SETTLEMENT_RECORDS: 完成(3/9)，已处理 90/251.17 天
[stderr] [2026-03-07 04:45:02] INFO  | etl_billiards | ODS_SETTLEMENT_RECORDS: 开始执行(4/9)，窗口[2025-09-29 06:00:00+08:00 ~ 2025-10-29 06:00:00+08:00]
[stderr] [2026-03-07 04:45:41] INFO  | etl_billiards | 管道执行摘要: status=SUCCESS, 总耗时=39.5s [请求=39.4s, 处理=0.0s, 写入=0.2s], 请求=16/16, 获取=3432, 写入(inserted=0, updated=3432, skipped=0), 失败(request=0, process=0, write=0)
[stderr] [2026-03-07 04:45:41] INFO  | etl_billiards | ODS_SETTLEMENT_RECORDS: 完成(4/9)，已处理 120/251.17 天
[stderr] [2026-03-07 04:45:41] INFO  | etl_billiards | ODS_SETTLEMENT_RECORDS: 开始执行(5/9)，窗口[2025-10-29 06:00:00+08:00 ~ 2025-11-28 06:00:00+08:00]
[stderr] [2026-03-07 04:46:30] INFO  | etl_billiards | 管道执行摘要: status=SUCCESS, 总耗时=48.7s [请求=48.0s, 处理=0.0s, 写入=0.6s], 请求=19/19, 获取=3773, 写入(inserted=0, updated=3773, skipped=0), 失败(request=0, process=0, write=0)
[stderr] [2026-03-07 04:46:30] INFO  | etl_billiards | ODS_SETTLEMENT_RECORDS: 完成(5/9)，已处理 150/251.17 天
[stderr] [2026-03-07 04:46:30] INFO  | etl_billiards | ODS_SETTLEMENT_RECORDS: 开始执行(6/9)，窗口[2025-11-28 06:00:00+08:00 ~ 2025-12-28 06:00:00+08:00]
[stderr] [2026-03-07 04:47:08] INFO  | etl_billiards | 管道执行摘要: status=SUCCESS, 总耗时=37.6s [请求=37.2s, 处理=0.0s, 写入=0.1s], 请求=18/18, 获取=3310, 写入(inserted=0, updated=3310, skipped=0), 失败(request=0, process=0, write=0)
[stderr] [2026-03-07 04:47:08] INFO  | etl_billiards | ODS_SETTLEMENT_RECORDS: 完成(6/9)，已处理 180/251.17 天
[stderr] [2026-03-07 04:47:08] INFO  | etl_billiards | ODS_SETTLEMENT_RECORDS: 开始执行(7/9)，窗口[2025-12-28 06:00:00+08:00 ~ 2026-01-27 06:00:00+08:00]
[stderr] [2026-03-07 04:47:49] INFO  | etl_billiards | 管道执行摘要: status=SUCCESS, 总耗时=41.1s [请求=41.0s, 处理=0.0s, 写入=0.1s], 请求=19/19, 获取=3605, 写入(inserted=0, updated=3605, skipped=0), 失败(request=0, process=0, write=0)
[stderr] [2026-03-07 04:47:49] INFO  | etl_billiards | ODS_SETTLEMENT_RECORDS: 完成(7/9)，已处理 210/251.17 天
[stderr] [2026-03-07 04:47:49] INFO  | etl_billiards | ODS_SETTLEMENT_RECORDS: 开始执行(8/9)，窗口[2026-01-27 06:00:00+08:00 ~ 2026-02-26 06:00:00+08:00]
[stderr] [2026-03-07 04:48:12] INFO  | etl_billiards | 管道执行摘要: status=SUCCESS, 总耗时=23.6s [请求=23.5s, 处理=0.0s, 写入=0.1s], 请求=10/10, 获取=1919, 写入(inserted=0, updated=1919, skipped=0), 失败(request=0, process=0, write=0)
[stderr] [2026-03-07 04:48:12] INFO  | etl_billiards | ODS_SETTLEMENT_RECORDS: 完成(8/9)，已处理 240/251.17 天
[stderr] [2026-03-07 04:48:12] INFO  | etl_billiards | ODS_SETTLEMENT_RECORDS: 开始执行(9/9)，窗口[2026-02-26 06:00:00+08:00 ~ 2026-03-09 10:00:00+08:00]
[stderr] [2026-03-07 04:48:17] INFO  | etl_billiards | 管道执行摘要: status=SUCCESS, 总耗时=4.6s [请求=4.2s, 处理=0.0s, 写入=0.4s], 请求=2/2, 获取=374, 写入(inserted=0, updated=374, skipped=0), 失败(request=0, process=0, write=0)
[stderr] [2026-03-07 04:48:17] INFO  | etl_billiards | ODS_SETTLEMENT_RECORDS: 完成(9/9)，已处理 251.17/251.17 天
[stderr] [2026-03-07 04:48:17] INFO  | etl_billiards | ODS_SETTLEMENT_RECORDS ODS 任务完成: {'fetched': 26309, 'inserted': 0, 'updated': 26309, 'skipped': 0, 'errors': 0, 'deleted': 0}
[stderr] [2026-03-07 04:48:17] INFO  | etl_billiards | [ODS_SETTLEMENT_RECORDS] 开始执行ODS_SETTLEMENT_RECORDS (ODS)
[stderr] [2026-03-07 04:48:17] INFO  | etl_billiards | [ODS_SETTLEMENT_RECORDS] 窗口拆分为 9 段（共 251.17 天）
[stderr] [2026-03-07 04:48:17] INFO  | etl_billiards | [ODS_SETTLEMENT_RECORDS] 开始执行(1/9)，窗口[2025-07-01 06:00:00+08:00 ~ 2025-07-31 06:00:00+08:00]
[stderr] [2026-03-07 04:48:17] INFO  | etl_billiards | [ODS_SETTLEMENT_RECORDS] 完成(1/9)，已处理 30/251.17 天
[stderr] [2026-03-07 04:48:17] INFO  | etl_billiards | [ODS_SETTLEMENT_RECORDS] 开始执行(2/9)，窗口[2025-07-31 06:00:00+08:00 ~ 2025-08-30 06:00:00+08:00]
[stderr] [2026-03-07 04:48:17] INFO  | etl_billiards | [ODS_SETTLEMENT_RECORDS] 完成(2/9)，已处理 60/251.17 天
[stderr] [2026-03-07 04:48:17] INFO  | etl_billiards | [ODS_SETTLEMENT_RECORDS] 开始执行(3/9)，窗口[2025-08-30 06:00:00+08:00 ~ 2025-09-29 06:00:00+08:00]
[stderr] [2026-03-07 04:48:17] INFO  | etl_billiards | [ODS_SETTLEMENT_RECORDS] 完成(3/9)，已处理 90/251.17 天
[stderr] [2026-03-07 04:48:17] INFO  | etl_billiards | [ODS_SETTLEMENT_RECORDS] 开始执行(4/9)，窗口[2025-09-29 06:00:00+08:00 ~ 2025-10-29 06:00:00+08:00]
[stderr] [2026-03-07 04:48:17] INFO  | etl_billiards | [ODS_SETTLEMENT_RECORDS] 完成(4/9)，已处理 120/251.17 天
[stderr] [2026-03-07 04:48:17] INFO  | etl_billiards | [ODS_SETTLEMENT_RECORDS] 开始执行(5/9)，窗口[2025-10-29 06:00:00+08:00 ~ 2025-11-28 06:00:00+08:00]
[stderr] [2026-03-07 04:48:17] INFO  | etl_billiards | [ODS_SETTLEMENT_RECORDS] 完成(5/9)，已处理 150/251.17 天
[stderr] [2026-03-07 04:48:17] INFO  | etl_billiards | [ODS_SETTLEMENT_RECORDS] 开始执行(6/9)，窗口[2025-11-28 06:00:00+08:00 ~ 2025-12-28 06:00:00+08:00]
[stderr] [2026-03-07 04:48:17] INFO  | etl_billiards | [ODS_SETTLEMENT_RECORDS] 完成(6/9)，已处理 180/251.17 天
[stderr] [2026-03-07 04:48:17] INFO  | etl_billiards | [ODS_SETTLEMENT_RECORDS] 开始执行(7/9)，窗口[2025-12-28 06:00:00+08:00 ~ 2026-01-27 06:00:00+08:00]
[stderr] [2026-03-07 04:48:17] INFO  | etl_billiards | [ODS_SETTLEMENT_RECORDS] 完成(7/9)，已处理 210/251.17 天
[stderr] [2026-03-07 04:48:17] INFO  | etl_billiards | [ODS_SETTLEMENT_RECORDS] 开始执行(8/9)，窗口[2026-01-27 06:00:00+08:00 ~ 2026-02-26 06:00:00+08:00]
[stderr] [2026-03-07 04:48:17] INFO  | etl_billiards | [ODS_SETTLEMENT_RECORDS] 完成(8/9)，已处理 240/251.17 天
[stderr] [2026-03-07 04:48:17] INFO  | etl_billiards | [ODS_SETTLEMENT_RECORDS] 开始执行(9/9)，窗口[2026-02-26 06:00:00+08:00 ~ 2026-03-09 10:00:00+08:00]
[stderr] [2026-03-07 04:48:17] INFO  | etl_billiards | [ODS_SETTLEMENT_RECORDS] 完成(9/9)，已处理 251.17/251.17 天
[stderr] [2026-03-07 04:48:17] INFO  | etl_billiards | [ODS_SETTLEMENT_RECORDS] ODS 任务完成: {'fetched': 26309, 'inserted': 0, 'updated': 26309, 'skipped': 0, 'errors': 0, 'deleted': 0}
[stderr] [2026-03-07 04:48:18] INFO  | etl_billiards | ODS_PAYMENT: ODS fetch+load start, dir=C:\NeoZQYY\export\ETL-Connectors\feiqiu\JSON\ODS_PAYMENT\ODS_PAYMENT-10100-20260307-044818
[stderr] [2026-03-07 04:48:18] INFO  | etl_billiards | 开始执行ODS_PAYMENT (ODS)
[stderr] [2026-03-07 04:48:18] INFO  | etl_billiards | ODS_PAYMENT: 窗口拆分为 9 段（共 251.17 天）
[stderr] [2026-03-07 04:48:18] INFO  | etl_billiards | ODS_PAYMENT: 开始执行(1/9)，窗口[2025-07-01 06:00:00+08:00 ~ 2025-07-31 06:00:00+08:00]
[stderr] [2026-03-07 04:49:29] INFO  | etl_billiards | 管道执行摘要: status=SUCCESS, 总耗时=71.2s [请求=71.1s, 处理=0.0s, 写入=0.1s], 请求=46/46, 获取=9038, 写入(inserted=0, updated=9038, skipped=0), 失败(request=0, process=0, write=0)
[stderr] [2026-03-07 04:49:29] INFO  | etl_billiards | ODS_PAYMENT: 完成(1/9)，已处理 30/251.17 天
[stderr] [2026-03-07 04:49:29] INFO  | etl_billiards | ODS_PAYMENT: 开始执行(2/9)，窗口[2025-07-31 06:00:00+08:00 ~ 2025-08-30 06:00:00+08:00]
[stderr] [2026-03-07 04:50:45] INFO  | etl_billiards | 管道执行摘要: status=SUCCESS, 总耗时=75.3s [请求=75.1s, 处理=0.0s, 写入=0.2s], 请求=46/46, 获取=9038, 写入(inserted=0, updated=9038, skipped=0), 失败(request=0, process=0, write=0)
[stderr] [2026-03-07 04:50:45] INFO  | etl_billiards | ODS_PAYMENT: 完成(2/9)，已处理 60/251.17 天
[stderr] [2026-03-07 04:50:45] INFO  | etl_billiards | ODS_PAYMENT: 开始执行(3/9)，窗口[2025-08-30 06:00:00+08:00 ~ 2025-09-29 06:00:00+08:00]
[stderr] [2026-03-07 04:51:55] INFO  | etl_billiards | 管道执行摘要: status=SUCCESS, 总耗时=70.6s [请求=70.5s, 处理=0.0s, 写入=0.2s], 请求=46/46, 获取=9038, 写入(inserted=0, updated=9038, skipped=0), 失败(request=0, process=0, write=0)
[stderr] [2026-03-07 04:51:55] INFO  | etl_billiards | ODS_PAYMENT: 完成(3/9)，已处理 90/251.17 天
[stderr] [2026-03-07 04:51:55] INFO  | etl_billiards | ODS_PAYMENT: 开始执行(4/9)，窗口[2025-09-29 06:00:00+08:00 ~ 2025-10-29 06:00:00+08:00]
[stderr] [2026-03-07 04:53:18] INFO  | etl_billiards | 管道执行摘要: status=SUCCESS, 总耗时=82.8s [请求=82.7s, 处理=0.0s, 写入=0.2s], 请求=46/46, 获取=9038, 写入(inserted=0, updated=9038, skipped=0), 失败(request=0, process=0, write=0)
[stderr] [2026-03-07 04:53:18] INFO  | etl_billiards | ODS_PAYMENT: 完成(4/9)，已处理 120/251.17 天
[stderr] [2026-03-07 04:53:18] INFO  | etl_billiards | ODS_PAYMENT: 开始执行(5/9)，窗口[2025-10-29 06:00:00+08:00 ~ 2025-11-28 06:00:00+08:00]
[stderr] [2026-03-07 04:54:46] INFO  | etl_billiards | 管道执行摘要: status=SUCCESS, 总耗时=87.3s [请求=87.1s, 处理=0.0s, 写入=0.2s], 请求=46/46, 获取=9038, 写入(inserted=0, updated=9038, skipped=0), 失败(request=0, process=0, write=0)
[stderr] [2026-03-07 04:54:46] INFO  | etl_billiards | ODS_PAYMENT: 完成(5/9)，已处理 150/251.17 天
[stderr] [2026-03-07 04:54:46] INFO  | etl_billiards | ODS_PAYMENT: 开始执行(6/9)，窗口[2025-11-28 06:00:00+08:00 ~ 2025-12-28 06:00:00+08:00]
[stderr] [2026-03-07 04:56:00] INFO  | etl_billiards | 管道执行摘要: status=SUCCESS, 总耗时=73.9s [请求=73.4s, 处理=0.0s, 写入=0.5s], 请求=46/46, 获取=9038, 写入(inserted=0, updated=9038, skipped=0), 失败(request=0, process=0, write=0)
[stderr] [2026-03-07 04:56:00] INFO  | etl_billiards | ODS_PAYMENT: 完成(6/9)，已处理 180/251.17 天
[stderr] [2026-03-07 04:56:00] INFO  | etl_billiards | ODS_PAYMENT: 开始执行(7/9)，窗口[2025-12-28 06:00:00+08:00 ~ 2026-01-27 06:00:00+08:00]
[stderr] [2026-03-07 04:57:16] INFO  | etl_billiards | 管道执行摘要: status=SUCCESS, 总耗时=76.5s [请求=75.7s, 处理=0.0s, 写入=0.5s], 请求=46/46, 获取=9038, 写入(inserted=0, updated=9038, skipped=0), 失败(request=0, process=0, write=0)
[stderr] [2026-03-07 04:57:17] INFO  | etl_billiards | ODS_PAYMENT: 完成(7/9)，已处理 210/251.17 天
[stderr] [2026-03-07 04:57:17] INFO  | etl_billiards | ODS_PAYMENT: 开始执行(8/9)，窗口[2026-01-27 06:00:00+08:00 ~ 2026-02-26 06:00:00+08:00]
[stderr] [2026-03-07 04:58:32] INFO  | etl_billiards | 管道执行摘要: status=SUCCESS, 总耗时=75.7s [请求=75.6s, 处理=0.0s, 写入=0.0s], 请求=46/46, 获取=9038, 写入(inserted=0, updated=9038, skipped=0), 失败(request=0, process=0, write=0)
[stderr] [2026-03-07 04:58:32] INFO  | etl_billiards | ODS_PAYMENT: 完成(8/9)，已处理 240/251.17 天
[stderr] [2026-03-07 04:58:32] INFO  | etl_billiards | ODS_PAYMENT: 开始执行(9/9)，窗口[2026-02-26 06:00:00+08:00 ~ 2026-03-09 10:00:00+08:00]
[stderr] [2026-03-07 04:59:45] INFO  | etl_billiards | 管道执行摘要: status=SUCCESS, 总耗时=72.8s [请求=72.5s, 处理=0.0s, 写入=0.1s], 请求=46/46, 获取=9038, 写入(inserted=0, updated=9038, skipped=0), 失败(request=0, process=0, write=0)
[stderr] [2026-03-07 04:59:45] INFO  | etl_billiards | ODS_PAYMENT: 完成(9/9)，已处理 251.17/251.17 天
[stderr] [2026-03-07 04:59:45] INFO  | etl_billiards | ODS_PAYMENT ODS 任务完成: {'fetched': 81342, 'inserted': 0, 'updated': 81342, 'skipped': 0, 'errors': 0, 'deleted': 0}
[stderr] [2026-03-07 04:59:45] INFO  | etl_billiards | [ODS_PAYMENT] 开始执行ODS_PAYMENT (ODS)
[stderr] [2026-03-07 04:59:45] INFO  | etl_billiards | [ODS_PAYMENT] 窗口拆分为 9 段（共 251.17 天）
[stderr] [2026-03-07 04:59:45] INFO  | etl_billiards | [ODS_PAYMENT] 开始执行(1/9)，窗口[2025-07-01 06:00:00+08:00 ~ 2025-07-31 06:00:00+08:00]
[stderr] [2026-03-07 04:59:45] INFO  | etl_billiards | [ODS_PAYMENT] 完成(1/9)，已处理 30/251.17 天
[stderr] [2026-03-07 04:59:45] INFO  | etl_billiards | [ODS_PAYMENT] 开始执行(2/9)，窗口[2025-07-31 06:00:00+08:00 ~ 2025-08-30 06:00:00+08:00]
[stderr] [2026-03-07 04:59:45] INFO  | etl_billiards | [ODS_PAYMENT] 完成(2/9)，已处理 60/251.17 天
[stderr] [2026-03-07 04:59:45] INFO  | etl_billiards | [ODS_PAYMENT] 开始执行(3/9)，窗口[2025-08-30 06:00:00+08:00 ~ 2025-09-29 06:00:00+08:00]
[stderr] [2026-03-07 04:59:45] INFO  | etl_billiards | [ODS_PAYMENT] 完成(3/9)，已处理 90/251.17 天
[stderr] [2026-03-07 04:59:45] INFO  | etl_billiards | [ODS_PAYMENT] 开始执行(4/9)，窗口[2025-09-29 06:00:00+08:00 ~ 2025-10-29 06:00:00+08:00]
[stderr] [2026-03-07 04:59:45] INFO  | etl_billiards | [ODS_PAYMENT] 完成(4/9)，已处理 120/251.17 天
[stderr] [2026-03-07 04:59:45] INFO  | etl_billiards | [ODS_PAYMENT] 开始执行(5/9)，窗口[2025-10-29 06:00:00+08:00 ~ 2025-11-28 06:00:00+08:00]
[stderr] [2026-03-07 04:59:45] INFO  | etl_billiards | [ODS_PAYMENT] 完成(5/9)，已处理 150/251.17 天
[stderr] [2026-03-07 04:59:45] INFO  | etl_billiards | [ODS_PAYMENT] 开始执行(6/9)，窗口[2025-11-28 06:00:00+08:00 ~ 2025-12-28 06:00:00+08:00]
[stderr] [2026-03-07 04:59:45] INFO  | etl_billiards | [ODS_PAYMENT] 完成(6/9)，已处理 180/251.17 天
[stderr] [2026-03-07 04:59:45] INFO  | etl_billiards | [ODS_PAYMENT] 开始执行(7/9)，窗口[2025-12-28 06:00:00+08:00 ~ 2026-01-27 06:00:00+08:00]
[stderr] [2026-03-07 04:59:45] INFO  | etl_billiards | [ODS_PAYMENT] 完成(7/9)，已处理 210/251.17 天
[stderr] [2026-03-07 04:59:45] INFO  | etl_billiards | [ODS_PAYMENT] 开始执行(8/9)，窗口[2026-01-27 06:00:00+08:00 ~ 2026-02-26 06:00:00+08:00]
[stderr] [2026-03-07 04:59:45] INFO  | etl_billiards | [ODS_PAYMENT] 完成(8/9)，已处理 240/251.17 天
[stderr] [2026-03-07 04:59:45] INFO  | etl_billiards | [ODS_PAYMENT] 开始执行(9/9)，窗口[2026-02-26 06:00:00+08:00 ~ 2026-03-09 10:00:00+08:00]
[stderr] [2026-03-07 04:59:45] INFO  | etl_billiards | [ODS_PAYMENT] 完成(9/9)，已处理 251.17/251.17 天
[stderr] [2026-03-07 04:59:45] INFO  | etl_billiards | [ODS_PAYMENT] ODS 任务完成: {'fetched': 81342, 'inserted': 0, 'updated': 81342, 'skipped': 0, 'errors': 0, 'deleted': 0}
[stderr] [2026-03-07 04:59:46] INFO  | etl_billiards | ODS_REFUND: ODS fetch+load start, dir=C:\NeoZQYY\export\ETL-Connectors\feiqiu\JSON\ODS_REFUND\ODS_REFUND-10101-20260307-045946
[stderr] [2026-03-07 04:59:46] INFO  | etl_billiards | 开始执行ODS_REFUND (ODS)
[stderr] [2026-03-07 04:59:46] INFO  | etl_billiards | ODS_REFUND: 窗口拆分为 9 段（共 251.17 天）
[stderr] [2026-03-07 04:59:46] INFO  | etl_billiards | ODS_REFUND: 开始执行(1/9)，窗口[2025-07-01 06:00:00+08:00 ~ 2025-07-31 06:00:00+08:00]
[stderr] [2026-03-07 04:59:47] INFO  | etl_billiards | 管道执行摘要: status=SUCCESS, 总耗时=1.5s [请求=1.1s, 处理=0.0s, 写入=0.4s], 请求=1/1, 获取=26, 写入(inserted=0, updated=26, skipped=0), 失败(request=0, process=0, write=0)
[stderr] [2026-03-07 04:59:47] INFO  | etl_billiards | ODS_REFUND: early-cutoff 保护生效，软删除窗口起点从 2025-07-01 06:00:00+08:00 收窄至 2025-12-10 21:38:44+08:00
[stderr] [2026-03-07 04:59:48] INFO  | etl_billiards | ODS_REFUND: 完成(1/9)，已处理 30/251.17 天
[stderr] [2026-03-07 04:59:48] INFO  | etl_billiards | ODS_REFUND: 开始执行(2/9)，窗口[2025-07-31 06:00:00+08:00 ~ 2025-08-30 06:00:00+08:00]
[stderr] [2026-03-07 04:59:52] INFO  | etl_billiards | 管道执行摘要: status=SUCCESS, 总耗时=4.4s [请求=3.6s, 处理=0.0s, 写入=0.6s], 请求=1/1, 获取=26, 写入(inserted=0, updated=26, skipped=0), 失败(request=0, process=0, write=0)
[stderr] [2026-03-07 04:59:52] INFO  | etl_billiards | ODS_REFUND: early-cutoff 保护生效，软删除窗口起点从 2025-07-31 06:00:00+08:00 收窄至 2025-12-10 21:38:44+08:00
[stderr] [2026-03-07 04:59:52] INFO  | etl_billiards | ODS_REFUND: 完成(2/9)，已处理 60/251.17 天
[stderr] [2026-03-07 04:59:52] INFO  | etl_billiards | ODS_REFUND: 开始执行(3/9)，窗口[2025-08-30 06:00:00+08:00 ~ 2025-09-29 06:00:00+08:00]
[stderr] [2026-03-07 04:59:54] INFO  | etl_billiards | 管道执行摘要: status=SUCCESS, 总耗时=1.6s [请求=1.2s, 处理=0.0s, 写入=0.4s], 请求=1/1, 获取=26, 写入(inserted=0, updated=26, skipped=0), 失败(request=0, process=0, write=0)
[stderr] [2026-03-07 04:59:54] INFO  | etl_billiards | ODS_REFUND: early-cutoff 保护生效，软删除窗口起点从 2025-08-30 06:00:00+08:00 收窄至 2025-12-10 21:38:44+08:00
[stderr] [2026-03-07 04:59:54] INFO  | etl_billiards | ODS_REFUND: 完成(3/9)，已处理 90/251.17 天
[stderr] [2026-03-07 04:59:54] INFO  | etl_billiards | ODS_REFUND: 开始执行(4/9)，窗口[2025-09-29 06:00:00+08:00 ~ 2025-10-29 06:00:00+08:00]
[stderr] [2026-03-07 04:59:56] INFO  | etl_billiards | 管道执行摘要: status=SUCCESS, 总耗时=1.8s [请求=1.6s, 处理=0.0s, 写入=0.2s], 请求=1/1, 获取=26, 写入(inserted=0, updated=26, skipped=0), 失败(request=0, process=0, write=0)
[stderr] [2026-03-07 04:59:56] INFO  | etl_billiards | ODS_REFUND: early-cutoff 保护生效，软删除窗口起点从 2025-09-29 06:00:00+08:00 收窄至 2025-12-10 21:38:44+08:00
[stderr] [2026-03-07 04:59:56] INFO  | etl_billiards | ODS_REFUND: 完成(4/9)，已处理 120/251.17 天
[stderr] [2026-03-07 04:59:56] INFO  | etl_billiards | ODS_REFUND: 开始执行(5/9)，窗口[2025-10-29 06:00:00+08:00 ~ 2025-11-28 06:00:00+08:00]
[stderr] [2026-03-07 04:59:58] INFO  | etl_billiards | 管道执行摘要: status=SUCCESS, 总耗时=1.7s [请求=1.4s, 处理=0.0s, 写入=0.3s], 请求=1/1, 获取=26, 写入(inserted=0, updated=26, skipped=0), 失败(request=0, process=0, write=0)
[stderr] [2026-03-07 04:59:58] INFO  | etl_billiards | ODS_REFUND: early-cutoff 保护生效，软删除窗口起点从 2025-10-29 06:00:00+08:00 收窄至 2025-12-10 21:38:44+08:00
[stderr] [2026-03-07 04:59:58] INFO  | etl_billiards | ODS_REFUND: 完成(5/9)，已处理 150/251.17 天
[stderr] [2026-03-07 04:59:58] INFO  | etl_billiards | ODS_REFUND: 开始执行(6/9)，窗口[2025-11-28 06:00:00+08:00 ~ 2025-12-28 06:00:00+08:00]
[stderr] [2026-03-07 04:59:59] INFO  | etl_billiards | 管道执行摘要: status=SUCCESS, 总耗时=1.3s [请求=1.1s, 处理=0.0s, 写入=0.2s], 请求=1/1, 获取=26, 写入(inserted=0, updated=26, skipped=0), 失败(request=0, process=0, write=0)
[stderr] [2026-03-07 04:59:59] INFO  | etl_billiards | ODS_REFUND: early-cutoff 保护生效，软删除窗口起点从 2025-11-28 06:00:00+08:00 收窄至 2025-12-10 21:38:44+08:00
[stderr] [2026-03-07 04:59:59] INFO  | etl_billiards | ODS_REFUND: 完成(6/9)，已处理 180/251.17 天
[stderr] [2026-03-07 04:59:59] INFO  | etl_billiards | ODS_REFUND: 开始执行(7/9)，窗口[2025-12-28 06:00:00+08:00 ~ 2026-01-27 06:00:00+08:00]
[stderr] [2026-03-07 05:00:02] INFO  | etl_billiards | 管道执行摘要: status=SUCCESS, 总耗时=2.4s [请求=2.2s, 处理=0.0s, 写入=0.2s], 请求=1/1, 获取=26, 写入(inserted=0, updated=26, skipped=0), 失败(request=0, process=0, write=0)
[stderr] [2026-03-07 05:00:02] INFO  | etl_billiards | ODS_REFUND: 完成(7/9)，已处理 210/251.17 天
[stderr] [2026-03-07 05:00:02] INFO  | etl_billiards | ODS_REFUND: 开始执行(8/9)，窗口[2026-01-27 06:00:00+08:00 ~ 2026-02-26 06:00:00+08:00]
[stderr] [2026-03-07 05:00:03] INFO  | etl_billiards | 管道执行摘要: status=SUCCESS, 总耗时=1.7s [请求=1.5s, 处理=0.0s, 写入=0.2s], 请求=1/1, 获取=26, 写入(inserted=0, updated=26, skipped=0), 失败(request=0, process=0, write=0)
[stderr] [2026-03-07 05:00:04] INFO  | etl_billiards | ODS_REFUND: 完成(8/9)，已处理 240/251.17 天
[stderr] [2026-03-07 05:00:04] INFO  | etl_billiards | ODS_REFUND: 开始执行(9/9)，窗口[2026-02-26 06:00:00+08:00 ~ 2026-03-09 10:00:00+08:00]
[stderr] [2026-03-07 05:00:06] INFO  | etl_billiards | 管道执行摘要: status=SUCCESS, 总耗时=2.3s [请求=1.8s, 处理=0.0s, 写入=0.5s], 请求=1/1, 获取=26, 写入(inserted=0, updated=26, skipped=0), 失败(request=0, process=0, write=0)
[stderr] [2026-03-07 05:00:06] INFO  | etl_billiards | ODS_REFUND: late-cutoff 保护生效，软删除窗口终点从 2026-03-09 10:00:00+08:00 收窄至 2026-03-04 21:27:32+08:00
[stderr] [2026-03-07 05:00:06] INFO  | etl_billiards | ODS_REFUND: 完成(9/9)，已处理 251.17/251.17 天
[stderr] [2026-03-07 05:00:06] INFO  | etl_billiards | ODS_REFUND ODS 任务完成: {'fetched': 234, 'inserted': 0, 'updated': 234, 'skipped': 0, 'errors': 0, 'deleted': 0}
[stderr] [2026-03-07 05:00:06] INFO  | etl_billiards | [ODS_REFUND] 开始执行ODS_REFUND (ODS)
[stderr] [2026-03-07 05:00:06] INFO  | etl_billiards | [ODS_REFUND] 窗口拆分为 9 段（共 251.17 天）
[stderr] [2026-03-07 05:00:06] INFO  | etl_billiards | [ODS_REFUND] 开始执行(1/9)，窗口[2025-07-01 06:00:00+08:00 ~ 2025-07-31 06:00:00+08:00]
[stderr] [2026-03-07 05:00:06] INFO  | etl_billiards | [ODS_REFUND] early-cutoff 保护生效，软删除窗口起点从 2025-07-01 06:00:00+08:00 收窄至 2025-12-10 21:38:44+08:00
[stderr] [2026-03-07 05:00:06] INFO  | etl_billiards | [ODS_REFUND] 完成(1/9)，已处理 30/251.17 天
[stderr] [2026-03-07 05:00:06] INFO  | etl_billiards | [ODS_REFUND] 开始执行(2/9)，窗口[2025-07-31 06:00:00+08:00 ~ 2025-08-30 06:00:00+08:00]
[stderr] [2026-03-07 05:00:06] INFO  | etl_billiards | [ODS_REFUND] early-cutoff 保护生效，软删除窗口起点从 2025-07-31 06:00:00+08:00 收窄至 2025-12-10 21:38:44+08:00
[stderr] [2026-03-07 05:00:06] INFO  | etl_billiards | [ODS_REFUND] 完成(2/9)，已处理 60/251.17 天
[stderr] [2026-03-07 05:00:06] INFO  | etl_billiards | [ODS_REFUND] 开始执行(3/9)，窗口[2025-08-30 06:00:00+08:00 ~ 2025-09-29 06:00:00+08:00]
[stderr] [2026-03-07 05:00:06] INFO  | etl_billiards | [ODS_REFUND] early-cutoff 保护生效，软删除窗口起点从 2025-08-30 06:00:00+08:00 收窄至 2025-12-10 21:38:44+08:00
[stderr] [2026-03-07 05:00:06] INFO  | etl_billiards | [ODS_REFUND] 完成(3/9)，已处理 90/251.17 天
[stderr] [2026-03-07 05:00:06] INFO  | etl_billiards | [ODS_REFUND] 开始执行(4/9)，窗口[2025-09-29 06:00:00+08:00 ~ 2025-10-29 06:00:00+08:00]
[stderr] [2026-03-07 05:00:06] INFO  | etl_billiards | [ODS_REFUND] early-cutoff 保护生效，软删除窗口起点从 2025-09-29 06:00:00+08:00 收窄至 2025-12-10 21:38:44+08:00
[stderr] [2026-03-07 05:00:06] INFO  | etl_billiards | [ODS_REFUND] 完成(4/9)，已处理 120/251.17 天
[stderr] [2026-03-07 05:00:06] INFO  | etl_billiards | [ODS_REFUND] 开始执行(5/9)，窗口[2025-10-29 06:00:00+08:00 ~ 2025-11-28 06:00:00+08:00]
[stderr] [2026-03-07 05:00:06] INFO  | etl_billiards | [ODS_REFUND] early-cutoff 保护生效，软删除窗口起点从 2025-10-29 06:00:00+08:00 收窄至 2025-12-10 21:38:44+08:00
[stderr] [2026-03-07 05:00:06] INFO  | etl_billiards | [ODS_REFUND] 完成(5/9)，已处理 150/251.17 天
[stderr] [2026-03-07 05:00:06] INFO  | etl_billiards | [ODS_REFUND] 开始执行(6/9)，窗口[2025-11-28 06:00:00+08:00 ~ 2025-12-28 06:00:00+08:00]
[stderr] [2026-03-07 05:00:06] INFO  | etl_billiards | [ODS_REFUND] early-cutoff 保护生效，软删除窗口起点从 2025-11-28 06:00:00+08:00 收窄至 2025-12-10 21:38:44+08:00
[stderr] [2026-03-07 05:00:06] INFO  | etl_billiards | [ODS_REFUND] 完成(6/9)，已处理 180/251.17 天
[stderr] [2026-03-07 05:00:06] INFO  | etl_billiards | [ODS_REFUND] 开始执行(7/9)，窗口[2025-12-28 06:00:00+08:00 ~ 2026-01-27 06:00:00+08:00]
[stderr] [2026-03-07 05:00:06] INFO  | etl_billiards | [ODS_REFUND] 完成(7/9)，已处理 210/251.17 天
[stderr] [2026-03-07 05:00:06] INFO  | etl_billiards | [ODS_REFUND] 开始执行(8/9)，窗口[2026-01-27 06:00:00+08:00 ~ 2026-02-26 06:00:00+08:00]
[stderr] [2026-03-07 05:00:06] INFO  | etl_billiards | [ODS_REFUND] 完成(8/9)，已处理 240/251.17 天
[stderr] [2026-03-07 05:00:06] INFO  | etl_billiards | [ODS_REFUND] 开始执行(9/9)，窗口[2026-02-26 06:00:00+08:00 ~ 2026-03-09 10:00:00+08:00]
[stderr] [2026-03-07 05:00:06] INFO  | etl_billiards | [ODS_REFUND] late-cutoff 保护生效，软删除窗口终点从 2026-03-09 10:00:00+08:00 收窄至 2026-03-04 21:27:32+08:00
[stderr] [2026-03-07 05:00:06] INFO  | etl_billiards | [ODS_REFUND] 完成(9/9)，已处理 251.17/251.17 天
[stderr] [2026-03-07 05:00:06] INFO  | etl_billiards | [ODS_REFUND] ODS 任务完成: {'fetched': 234, 'inserted': 0, 'updated': 234, 'skipped': 0, 'errors': 0, 'deleted': 0}
[stderr] [2026-03-07 05:00:07] INFO  | etl_billiards | ODS_TABLE_USE: ODS fetch+load start, dir=C:\NeoZQYY\export\ETL-Connectors\feiqiu\JSON\ODS_TABLE_USE\ODS_TABLE_USE-10102-20260307-050007
[stderr] [2026-03-07 05:00:07] INFO  | etl_billiards | 开始执行ODS_TABLE_USE (ODS)
[stderr] [2026-03-07 05:00:07] INFO  | etl_billiards | ODS_TABLE_USE: 窗口拆分为 9 段（共 251.17 天）
[stderr] [2026-03-07 05:00:08] INFO  | etl_billiards | ODS_TABLE_USE: 开始执行(1/9)，窗口[2025-07-01 06:00:00+08:00 ~ 2025-07-31 06:00:00+08:00]
[stderr] [2026-03-07 05:01:08] INFO  | etl_billiards | 管道执行摘要: status=SUCCESS, 总耗时=60.5s [请求=60.1s, 处理=0.0s, 写入=0.3s], 请求=39/39, 获取=7760, 写入(inserted=0, updated=7760, skipped=0), 失败(request=0, process=0, write=0)
[stderr] [2026-03-07 05:01:08] INFO  | etl_billiards | ODS_TABLE_USE: early-cutoff 保护生效，软删除窗口起点从 2025-07-01 06:00:00+08:00 收窄至 2025-12-06 11:10:37+08:00
[stderr] [2026-03-07 05:01:09] INFO  | etl_billiards | ODS_TABLE_USE: 完成(1/9)，已处理 30/251.17 天
[stderr] [2026-03-07 05:01:09] INFO  | etl_billiards | ODS_TABLE_USE: 开始执行(2/9)，窗口[2025-07-31 06:00:00+08:00 ~ 2025-08-30 06:00:00+08:00]
[stderr] [2026-03-07 05:02:06] INFO  | etl_billiards | 管道执行摘要: status=SUCCESS, 总耗时=57.6s [请求=57.4s, 处理=0.0s, 写入=0.2s], 请求=39/39, 获取=7760, 写入(inserted=0, updated=7760, skipped=0), 失败(request=0, process=0, write=0)
[stderr] [2026-03-07 05:02:06] INFO  | etl_billiards | ODS_TABLE_USE: early-cutoff 保护生效，软删除窗口起点从 2025-07-31 06:00:00+08:00 收窄至 2025-12-06 11:10:37+08:00
[stderr] [2026-03-07 05:02:06] INFO  | etl_billiards | ODS_TABLE_USE: 完成(2/9)，已处理 60/251.17 天
[stderr] [2026-03-07 05:02:06] INFO  | etl_billiards | ODS_TABLE_USE: 开始执行(3/9)，窗口[2025-08-30 06:00:00+08:00 ~ 2025-09-29 06:00:00+08:00]
[stderr] [2026-03-07 05:03:08] INFO  | etl_billiards | 管道执行摘要: status=SUCCESS, 总耗时=61.6s [请求=60.9s, 处理=0.0s, 写入=0.4s], 请求=39/39, 获取=7760, 写入(inserted=0, updated=7760, skipped=0), 失败(request=0, process=0, write=0)
[stderr] [2026-03-07 05:03:08] INFO  | etl_billiards | ODS_TABLE_USE: early-cutoff 保护生效，软删除窗口起点从 2025-08-30 06:00:00+08:00 收窄至 2025-12-06 11:10:37+08:00
[stderr] [2026-03-07 05:03:08] INFO  | etl_billiards | ODS_TABLE_USE: 完成(3/9)，已处理 90/251.17 天
[stderr] [2026-03-07 05:03:08] INFO  | etl_billiards | ODS_TABLE_USE: 开始执行(4/9)，窗口[2025-09-29 06:00:00+08:00 ~ 2025-10-29 06:00:00+08:00]
[stderr] [2026-03-07 05:04:04] INFO  | etl_billiards | 管道执行摘要: status=SUCCESS, 总耗时=55.8s [请求=55.5s, 处理=0.0s, 写入=0.2s], 请求=39/39, 获取=7760, 写入(inserted=0, updated=7760, skipped=0), 失败(request=0, process=0, write=0)
[stderr] [2026-03-07 05:04:04] INFO  | etl_billiards | ODS_TABLE_USE: early-cutoff 保护生效，软删除窗口起点从 2025-09-29 06:00:00+08:00 收窄至 2025-12-06 11:10:37+08:00
[stderr] [2026-03-07 05:04:04] INFO  | etl_billiards | ODS_TABLE_USE: 完成(4/9)，已处理 120/251.17 天
[stderr] [2026-03-07 05:04:04] INFO  | etl_billiards | ODS_TABLE_USE: 开始执行(5/9)，窗口[2025-10-29 06:00:00+08:00 ~ 2025-11-28 06:00:00+08:00]
[stderr] [2026-03-07 05:05:00] INFO  | etl_billiards | 管道执行摘要: status=SUCCESS, 总耗时=55.4s [请求=55.1s, 处理=0.0s, 写入=0.2s], 请求=39/39, 获取=7760, 写入(inserted=0, updated=7760, skipped=0), 失败(request=0, process=0, write=0)
[stderr] [2026-03-07 05:05:00] INFO  | etl_billiards | ODS_TABLE_USE: early-cutoff 保护生效，软删除窗口起点从 2025-10-29 06:00:00+08:00 收窄至 2025-12-06 11:10:37+08:00
[stderr] [2026-03-07 05:05:00] INFO  | etl_billiards | ODS_TABLE_USE: 完成(5/9)，已处理 150/251.17 天
[stderr] [2026-03-07 05:05:00] INFO  | etl_billiards | ODS_TABLE_USE: 开始执行(6/9)，窗口[2025-11-28 06:00:00+08:00 ~ 2025-12-28 06:00:00+08:00]
[stderr] [2026-03-07 05:05:52] INFO  | etl_billiards | 管道执行摘要: status=SUCCESS, 总耗时=52.2s [请求=51.9s, 处理=0.0s, 写入=0.3s], 请求=39/39, 获取=7760, 写入(inserted=0, updated=7760, skipped=0), 失败(request=0, process=0, write=0)
[stderr] [2026-03-07 05:05:52] INFO  | etl_billiards | ODS_TABLE_USE: early-cutoff 保护生效，软删除窗口起点从 2025-11-28 06:00:00+08:00 收窄至 2025-12-06 11:10:37+08:00
[stderr] [2026-03-07 05:05:52] INFO  | etl_billiards | ODS_TABLE_USE: 完成(6/9)，已处理 180/251.17 天
[stderr] [2026-03-07 05:05:52] INFO  | etl_billiards | ODS_TABLE_USE: 开始执行(7/9)，窗口[2025-12-28 06:00:00+08:00 ~ 2026-01-27 06:00:00+08:00]
[stderr] [2026-03-07 05:06:48] INFO  | etl_billiards | 管道执行摘要: status=SUCCESS, 总耗时=56.4s [请求=56.0s, 处理=0.0s, 写入=0.3s], 请求=39/39, 获取=7760, 写入(inserted=0, updated=7760, skipped=0), 失败(request=0, process=0, write=0)
[stderr] [2026-03-07 05:06:49] INFO  | etl_billiards | ODS_TABLE_USE: 完成(7/9)，已处理 210/251.17 天
[stderr] [2026-03-07 05:06:49] INFO  | etl_billiards | ODS_TABLE_USE: 开始执行(8/9)，窗口[2026-01-27 06:00:00+08:00 ~ 2026-02-26 06:00:00+08:00]
[stderr] [2026-03-07 05:07:39] INFO  | etl_billiards | 管道执行摘要: status=SUCCESS, 总耗时=50.3s [请求=50.0s, 处理=0.0s, 写入=0.3s], 请求=39/39, 获取=7760, 写入(inserted=0, updated=7760, skipped=0), 失败(request=0, process=0, write=0)
[stderr] [2026-03-07 05:07:39] INFO  | etl_billiards | ODS_TABLE_USE: 完成(8/9)，已处理 240/251.17 天
[stderr] [2026-03-07 05:07:39] INFO  | etl_billiards | ODS_TABLE_USE: 开始执行(9/9)，窗口[2026-02-26 06:00:00+08:00 ~ 2026-03-09 10:00:00+08:00]
[stderr] [2026-03-07 05:08:50] INFO  | etl_billiards | 管道执行摘要: status=SUCCESS, 总耗时=71.2s [请求=69.1s, 处理=0.3s, 写入=1.8s], 请求=39/39, 获取=7760, 写入(inserted=0, updated=7760, skipped=0), 失败(request=0, process=0, write=0)
[stderr] [2026-03-07 05:08:50] INFO  | etl_billiards | ODS_TABLE_USE: late-cutoff 保护生效，软删除窗口终点从 2026-03-09 10:00:00+08:00 收窄至 2026-03-07 03:08:53+08:00
[stderr] [2026-03-07 05:08:51] INFO  | etl_billiards | ODS_TABLE_USE: 完成(9/9)，已处理 251.17/251.17 天
[stderr] [2026-03-07 05:08:51] INFO  | etl_billiards | ODS_TABLE_USE ODS 任务完成: {'fetched': 69840, 'inserted': 0, 'updated': 69840, 'skipped': 0, 'errors': 0, 'deleted': 0}
[stderr] [2026-03-07 05:08:51] INFO  | etl_billiards | [ODS_TABLE_USE] 开始执行ODS_TABLE_USE (ODS)
[stderr] [2026-03-07 05:08:51] INFO  | etl_billiards | [ODS_TABLE_USE] 窗口拆分为 9 段（共 251.17 天）
[stderr] [2026-03-07 05:08:51] INFO  | etl_billiards | [ODS_TABLE_USE] 开始执行(1/9)，窗口[2025-07-01 06:00:00+08:00 ~ 2025-07-31 06:00:00+08:00]
[stderr] [2026-03-07 05:08:51] INFO  | etl_billiards | [ODS_TABLE_USE] early-cutoff 保护生效，软删除窗口起点从 2025-07-01 06:00:00+08:00 收窄至 2025-12-06 11:10:37+08:00
[stderr] [2026-03-07 05:08:51] INFO  | etl_billiards | [ODS_TABLE_USE] 完成(1/9)，已处理 30/251.17 天
[stderr] [2026-03-07 05:08:51] INFO  | etl_billiards | [ODS_TABLE_USE] 开始执行(2/9)，窗口[2025-07-31 06:00:00+08:00 ~ 2025-08-30 06:00:00+08:00]
[stderr] [2026-03-07 05:08:51] INFO  | etl_billiards | [ODS_TABLE_USE] early-cutoff 保护生效，软删除窗口起点从 2025-07-31 06:00:00+08:00 收窄至 2025-12-06 11:10:37+08:00
[stderr] [2026-03-07 05:08:51] INFO  | etl_billiards | [ODS_TABLE_USE] 完成(2/9)，已处理 60/251.17 天
[stderr] [2026-03-07 05:08:51] INFO  | etl_billiards | [ODS_TABLE_USE] 开始执行(3/9)，窗口[2025-08-30 06:00:00+08:00 ~ 2025-09-29 06:00:00+08:00]
[stderr] [2026-03-07 05:08:51] INFO  | etl_billiards | [ODS_TABLE_USE] early-cutoff 保护生效，软删除窗口起点从 2025-08-30 06:00:00+08:00 收窄至 2025-12-06 11:10:37+08:00
[stderr] [2026-03-07 05:08:51] INFO  | etl_billiards | [ODS_TABLE_USE] 完成(3/9)，已处理 90/251.17 天
[stderr] [2026-03-07 05:08:51] INFO  | etl_billiards | [ODS_TABLE_USE] 开始执行(4/9)，窗口[2025-09-29 06:00:00+08:00 ~ 2025-10-29 06:00:00+08:00]
[stderr] [2026-03-07 05:08:51] INFO  | etl_billiards | [ODS_TABLE_USE] early-cutoff 保护生效，软删除窗口起点从 2025-09-29 06:00:00+08:00 收窄至 2025-12-06 11:10:37+08:00
[stderr] [2026-03-07 05:08:51] INFO  | etl_billiards | [ODS_TABLE_USE] 完成(4/9)，已处理 120/251.17 天
[stderr] [2026-03-07 05:08:51] INFO  | etl_billiards | [ODS_TABLE_USE] 开始执行(5/9)，窗口[2025-10-29 06:00:00+08:00 ~ 2025-11-28 06:00:00+08:00]
[stderr] [2026-03-07 05:08:51] INFO  | etl_billiards | [ODS_TABLE_USE] early-cutoff 保护生效，软删除窗口起点从 2025-10-29 06:00:00+08:00 收窄至 2025-12-06 11:10:37+08:00
[stderr] [2026-03-07 05:08:51] INFO  | etl_billiards | [ODS_TABLE_USE] 完成(5/9)，已处理 150/251.17 天
[stderr] [2026-03-07 05:08:51] INFO  | etl_billiards | [ODS_TABLE_USE] 开始执行(6/9)，窗口[2025-11-28 06:00:00+08:00 ~ 2025-12-28 06:00:00+08:00]
[stderr] [2026-03-07 05:08:51] INFO  | etl_billiards | [ODS_TABLE_USE] early-cutoff 保护生效，软删除窗口起点从 2025-11-28 06:00:00+08:00 收窄至 2025-12-06 11:10:37+08:00
[stderr] [2026-03-07 05:08:51] INFO  | etl_billiards | [ODS_TABLE_USE] 完成(6/9)，已处理 180/251.17 天
[stderr] [2026-03-07 05:08:51] INFO  | etl_billiards | [ODS_TABLE_USE] 开始执行(7/9)，窗口[2025-12-28 06:00:00+08:00 ~ 2026-01-27 06:00:00+08:00]
[stderr] [2026-03-07 05:08:51] INFO  | etl_billiards | [ODS_TABLE_USE] 完成(7/9)，已处理 210/251.17 天
[stderr] [2026-03-07 05:08:51] INFO  | etl_billiards | [ODS_TABLE_USE] 开始执行(8/9)，窗口[2026-01-27 06:00:00+08:00 ~ 2026-02-26 06:00:00+08:00]
[stderr] [2026-03-07 05:08:51] INFO  | etl_billiards | [ODS_TABLE_USE] 完成(8/9)，已处理 240/251.17 天
[stderr] [2026-03-07 05:08:51] INFO  | etl_billiards | [ODS_TABLE_USE] 开始执行(9/9)，窗口[2026-02-26 06:00:00+08:00 ~ 2026-03-09 10:00:00+08:00]
[stderr] [2026-03-07 05:08:51] INFO  | etl_billiards | [ODS_TABLE_USE] late-cutoff 保护生效，软删除窗口终点从 2026-03-09 10:00:00+08:00 收窄至 2026-03-07 03:08:53+08:00
[stderr] [2026-03-07 05:08:51] INFO  | etl_billiards | [ODS_TABLE_USE] 完成(9/9)，已处理 251.17/251.17 天
[stderr] [2026-03-07 05:08:51] INFO  | etl_billiards | [ODS_TABLE_USE] ODS 任务完成: {'fetched': 69840, 'inserted': 0, 'updated': 69840, 'skipped': 0, 'errors': 0, 'deleted': 0}
[stderr] [2026-03-07 05:08:52] INFO  | etl_billiards | ODS_TABLE_FEE_DISCOUNT: ODS fetch+load start, dir=C:\NeoZQYY\export\ETL-Connectors\feiqiu\JSON\ODS_TABLE_FEE_DISCOUNT\ODS_TABLE_FEE_DISCOUNT-10103-20260307-050852
[stderr] [2026-03-07 05:08:52] INFO  | etl_billiards | 开始执行ODS_TABLE_FEE_DISCOUNT (ODS)
[stderr] [2026-03-07 05:08:52] INFO  | etl_billiards | ODS_TABLE_FEE_DISCOUNT: 窗口拆分为 9 段（共 251.17 天）
[stderr] [2026-03-07 05:08:52] INFO  | etl_billiards | ODS_TABLE_FEE_DISCOUNT: 开始执行(1/9)，窗口[2025-07-01 06:00:00+08:00 ~ 2025-07-31 06:00:00+08:00]
[stderr] [2026-03-07 05:09:08] INFO  | etl_billiards | 管道执行摘要: status=SUCCESS, 总耗时=16.3s [请求=15.9s, 处理=0.0s, 写入=0.3s], 请求=7/7, 获取=1277, 写入(inserted=0, updated=1277, skipped=0), 失败(request=0, process=0, write=0)
[stderr] [2026-03-07 05:09:08] INFO  | etl_billiards | ODS_TABLE_FEE_DISCOUNT: early-cutoff 保护生效，软删除窗口起点从 2025-07-01 06:00:00+08:00 收窄至 2025-12-06 15:29:13+08:00
[stderr] [2026-03-07 05:09:08] INFO  | etl_billiards | ODS_TABLE_FEE_DISCOUNT: 完成(1/9)，已处理 30/251.17 天
[stderr] [2026-03-07 05:09:08] INFO  | etl_billiards | ODS_TABLE_FEE_DISCOUNT: 开始执行(2/9)，窗口[2025-07-31 06:00:00+08:00 ~ 2025-08-30 06:00:00+08:00]
[stderr] [2026-03-07 05:09:24] INFO  | etl_billiards | 管道执行摘要: status=SUCCESS, 总耗时=15.8s [请求=14.6s, 处理=0.0s, 写入=1.2s], 请求=7/7, 获取=1277, 写入(inserted=0, updated=1277, skipped=0), 失败(request=0, process=0, write=0)
[stderr] [2026-03-07 05:09:24] INFO  | etl_billiards | ODS_TABLE_FEE_DISCOUNT: early-cutoff 保护生效，软删除窗口起点从 2025-07-31 06:00:00+08:00 收窄至 2025-12-06 15:29:13+08:00
[stderr] [2026-03-07 05:09:24] INFO  | etl_billiards | ODS_TABLE_FEE_DISCOUNT: 完成(2/9)，已处理 60/251.17 天
[stderr] [2026-03-07 05:09:24] INFO  | etl_billiards | ODS_TABLE_FEE_DISCOUNT: 开始执行(3/9)，窗口[2025-08-30 06:00:00+08:00 ~ 2025-09-29 06:00:00+08:00]
[stderr] [2026-03-07 05:09:43] INFO  | etl_billiards | 管道执行摘要: status=SUCCESS, 总耗时=18.1s [请求=17.3s, 处理=0.0s, 写入=0.8s], 请求=7/7, 获取=1277, 写入(inserted=0, updated=1277, skipped=0), 失败(request=0, process=0, write=0)
[stderr] [2026-03-07 05:09:43] INFO  | etl_billiards | ODS_TABLE_FEE_DISCOUNT: early-cutoff 保护生效，软删除窗口起点从 2025-08-30 06:00:00+08:00 收窄至 2025-12-06 15:29:13+08:00
[stderr] [2026-03-07 05:09:44] INFO  | etl_billiards | ODS_TABLE_FEE_DISCOUNT: 完成(3/9)，已处理 90/251.17 天
[stderr] [2026-03-07 05:09:44] INFO  | etl_billiards | ODS_TABLE_FEE_DISCOUNT: 开始执行(4/9)，窗口[2025-09-29 06:00:00+08:00 ~ 2025-10-29 06:00:00+08:00]
[stderr] [2026-03-07 05:10:00] INFO  | etl_billiards | 管道执行摘要: status=SUCCESS, 总耗时=15.9s [请求=12.2s, 处理=0.0s, 写入=3.5s], 请求=7/7, 获取=1277, 写入(inserted=0, updated=1277, skipped=0), 失败(request=0, process=0, write=0)
[stderr] [2026-03-07 05:10:00] INFO  | etl_billiards | ODS_TABLE_FEE_DISCOUNT: early-cutoff 保护生效，软删除窗口起点从 2025-09-29 06:00:00+08:00 收窄至 2025-12-06 15:29:13+08:00
[stderr] [2026-03-07 05:10:00] INFO  | etl_billiards | ODS_TABLE_FEE_DISCOUNT: 完成(4/9)，已处理 120/251.17 天
[stderr] [2026-03-07 05:10:00] INFO  | etl_billiards | ODS_TABLE_FEE_DISCOUNT: 开始执行(5/9)，窗口[2025-10-29 06:00:00+08:00 ~ 2025-11-28 06:00:00+08:00]
[stderr] [2026-03-07 05:10:15] INFO  | etl_billiards | 管道执行摘要: status=SUCCESS, 总耗时=15.2s [请求=14.5s, 处理=0.0s, 写入=0.6s], 请求=7/7, 获取=1277, 写入(inserted=0, updated=1277, skipped=0), 失败(request=0, process=0, write=0)
[stderr] [2026-03-07 05:10:15] INFO  | etl_billiards | ODS_TABLE_FEE_DISCOUNT: early-cutoff 保护生效，软删除窗口起点从 2025-10-29 06:00:00+08:00 收窄至 2025-12-06 15:29:13+08:00
[stderr] [2026-03-07 05:10:16] INFO  | etl_billiards | ODS_TABLE_FEE_DISCOUNT: 完成(5/9)，已处理 150/251.17 天
[stderr] [2026-03-07 05:10:16] INFO  | etl_billiards | ODS_TABLE_FEE_DISCOUNT: 开始执行(6/9)，窗口[2025-11-28 06:00:00+08:00 ~ 2025-12-28 06:00:00+08:00]
[stderr] [2026-03-07 05:10:37] INFO  | etl_billiards | 管道执行摘要: status=SUCCESS, 总耗时=20.9s [请求=17.3s, 处理=0.0s, 写入=2.4s], 请求=7/7, 获取=1277, 写入(inserted=0, updated=1277, skipped=0), 失败(request=0, process=0, write=0)
[stderr] [2026-03-07 05:10:37] INFO  | etl_billiards | ODS_TABLE_FEE_DISCOUNT: early-cutoff 保护生效，软删除窗口起点从 2025-11-28 06:00:00+08:00 收窄至 2025-12-06 15:29:13+08:00
[stderr] [2026-03-07 05:10:37] INFO  | etl_billiards | ODS_TABLE_FEE_DISCOUNT: 完成(6/9)，已处理 180/251.17 天
[stderr] [2026-03-07 05:10:37] INFO  | etl_billiards | ODS_TABLE_FEE_DISCOUNT: 开始执行(7/9)，窗口[2025-12-28 06:00:00+08:00 ~ 2026-01-27 06:00:00+08:00]
[stderr] [2026-03-07 05:10:53] INFO  | etl_billiards | 管道执行摘要: status=SUCCESS, 总耗时=16.0s [请求=14.4s, 处理=0.0s, 写入=0.3s], 请求=7/7, 获取=1277, 写入(inserted=0, updated=1277, skipped=0), 失败(request=0, process=0, write=0)
[stderr] [2026-03-07 05:10:53] INFO  | etl_billiards | ODS_TABLE_FEE_DISCOUNT: 完成(7/9)，已处理 210/251.17 天
[stderr] [2026-03-07 05:10:53] INFO  | etl_billiards | ODS_TABLE_FEE_DISCOUNT: 开始执行(8/9)，窗口[2026-01-27 06:00:00+08:00 ~ 2026-02-26 06:00:00+08:00]
[stderr] [2026-03-07 05:11:06] INFO  | etl_billiards | 管道执行摘要: status=SUCCESS, 总耗时=13.1s [请求=12.6s, 处理=0.0s, 写入=0.6s], 请求=7/7, 获取=1277, 写入(inserted=0, updated=1277, skipped=0), 失败(request=0, process=0, write=0)
[stderr] [2026-03-07 05:11:06] INFO  | etl_billiards | ODS_TABLE_FEE_DISCOUNT: 完成(8/9)，已处理 240/251.17 天
[stderr] [2026-03-07 05:11:06] INFO  | etl_billiards | ODS_TABLE_FEE_DISCOUNT: 开始执行(9/9)，窗口[2026-02-26 06:00:00+08:00 ~ 2026-03-09 10:00:00+08:00]
[stderr] [2026-03-07 05:11:19] INFO  | etl_billiards | 管道执行摘要: status=SUCCESS, 总耗时=12.2s [请求=11.8s, 处理=0.0s, 写入=0.4s], 请求=7/7, 获取=1277, 写入(inserted=0, updated=1277, skipped=0), 失败(request=0, process=0, write=0)
[stderr] [2026-03-07 05:11:19] INFO  | etl_billiards | ODS_TABLE_FEE_DISCOUNT: late-cutoff 保护生效，软删除窗口终点从 2026-03-09 10:00:00+08:00 收窄至 2026-03-07 01:59:13+08:00
[stderr] [2026-03-07 05:11:19] INFO  | etl_billiards | ODS_TABLE_FEE_DISCOUNT: 完成(9/9)，已处理 251.17/251.17 天
[stderr] [2026-03-07 05:11:19] INFO  | etl_billiards | ODS_TABLE_FEE_DISCOUNT ODS 任务完成: {'fetched': 11493, 'inserted': 0, 'updated': 11493, 'skipped': 0, 'errors': 0, 'deleted': 0}
[stderr] [2026-03-07 05:11:19] INFO  | etl_billiards | [ODS_TABLE_FEE_DISCOUNT] 开始执行ODS_TABLE_FEE_DISCOUNT (ODS)
[stderr] [2026-03-07 05:11:19] INFO  | etl_billiards | [ODS_TABLE_FEE_DISCOUNT] 窗口拆分为 9 段（共 251.17 天）
[stderr] [2026-03-07 05:11:19] INFO  | etl_billiards | [ODS_TABLE_FEE_DISCOUNT] 开始执行(1/9)，窗口[2025-07-01 06:00:00+08:00 ~ 2025-07-31 06:00:00+08:00]
[stderr] [2026-03-07 05:11:19] INFO  | etl_billiards | [ODS_TABLE_FEE_DISCOUNT] early-cutoff 保护生效，软删除窗口起点从 2025-07-01 06:00:00+08:00 收窄至 2025-12-06 15:29:13+08:00
[stderr] [2026-03-07 05:11:19] INFO  | etl_billiards | [ODS_TABLE_FEE_DISCOUNT] 完成(1/9)，已处理 30/251.17 天
[stderr] [2026-03-07 05:11:19] INFO  | etl_billiards | [ODS_TABLE_FEE_DISCOUNT] 开始执行(2/9)，窗口[2025-07-31 06:00:00+08:00 ~ 2025-08-30 06:00:00+08:00]
[stderr] [2026-03-07 05:11:19] INFO  | etl_billiards | [ODS_TABLE_FEE_DISCOUNT] early-cutoff 保护生效，软删除窗口起点从 2025-07-31 06:00:00+08:00 收窄至 2025-12-06 15:29:13+08:00
[stderr] [2026-03-07 05:11:19] INFO  | etl_billiards | [ODS_TABLE_FEE_DISCOUNT] 完成(2/9)，已处理 60/251.17 天
[stderr] [2026-03-07 05:11:19] INFO  | etl_billiards | [ODS_TABLE_FEE_DISCOUNT] 开始执行(3/9)，窗口[2025-08-30 06:00:00+08:00 ~ 2025-09-29 06:00:00+08:00]
[stderr] [2026-03-07 05:11:19] INFO  | etl_billiards | [ODS_TABLE_FEE_DISCOUNT] early-cutoff 保护生效，软删除窗口起点从 2025-08-30 06:00:00+08:00 收窄至 2025-12-06 15:29:13+08:00
[stderr] [2026-03-07 05:11:19] INFO  | etl_billiards | [ODS_TABLE_FEE_DISCOUNT] 完成(3/9)，已处理 90/251.17 天
[stderr] [2026-03-07 05:11:19] INFO  | etl_billiards | [ODS_TABLE_FEE_DISCOUNT] 开始执行(4/9)，窗口[2025-09-29 06:00:00+08:00 ~ 2025-10-29 06:00:00+08:00]
[stderr] [2026-03-07 05:11:19] INFO  | etl_billiards | [ODS_TABLE_FEE_DISCOUNT] early-cutoff 保护生效，软删除窗口起点从 2025-09-29 06:00:00+08:00 收窄至 2025-12-06 15:29:13+08:00
[stderr] [2026-03-07 05:11:19] INFO  | etl_billiards | [ODS_TABLE_FEE_DISCOUNT] 完成(4/9)，已处理 120/251.17 天
[stderr] [2026-03-07 05:11:19] INFO  | etl_billiards | [ODS_TABLE_FEE_DISCOUNT] 开始执行(5/9)，窗口[2025-10-29 06:00:00+08:00 ~ 2025-11-28 06:00:00+08:00]
[stderr] [2026-03-07 05:11:19] INFO  | etl_billiards | [ODS_TABLE_FEE_DISCOUNT] early-cutoff 保护生效，软删除窗口起点从 2025-10-29 06:00:00+08:00 收窄至 2025-12-06 15:29:13+08:00
[stderr] [2026-03-07 05:11:19] INFO  | etl_billiards | [ODS_TABLE_FEE_DISCOUNT] 完成(5/9)，已处理 150/251.17 天
[stderr] [2026-03-07 05:11:19] INFO  | etl_billiards | [ODS_TABLE_FEE_DISCOUNT] 开始执行(6/9)，窗口[2025-11-28 06:00:00+08:00 ~ 2025-12-28 06:00:00+08:00]
[stderr] [2026-03-07 05:11:19] INFO  | etl_billiards | [ODS_TABLE_FEE_DISCOUNT] early-cutoff 保护生效，软删除窗口起点从 2025-11-28 06:00:00+08:00 收窄至 2025-12-06 15:29:13+08:00
[stderr] [2026-03-07 05:11:19] INFO  | etl_billiards | [ODS_TABLE_FEE_DISCOUNT] 完成(6/9)，已处理 180/251.17 天
[stderr] [2026-03-07 05:11:19] INFO  | etl_billiards | [ODS_TABLE_FEE_DISCOUNT] 开始执行(7/9)，窗口[2025-12-28 06:00:00+08:00 ~ 2026-01-27 06:00:00+08:00]
[stderr] [2026-03-07 05:11:19] INFO  | etl_billiards | [ODS_TABLE_FEE_DISCOUNT] 完成(7/9)，已处理 210/251.17 天
[stderr] [2026-03-07 05:11:19] INFO  | etl_billiards | [ODS_TABLE_FEE_DISCOUNT] 开始执行(8/9)，窗口[2026-01-27 06:00:00+08:00 ~ 2026-02-26 06:00:00+08:00]
[stderr] [2026-03-07 05:11:19] INFO  | etl_billiards | [ODS_TABLE_FEE_DISCOUNT] 完成(8/9)，已处理 240/251.17 天
[stderr] [2026-03-07 05:11:19] INFO  | etl_billiards | [ODS_TABLE_FEE_DISCOUNT] 开始执行(9/9)，窗口[2026-02-26 06:00:00+08:00 ~ 2026-03-09 10:00:00+08:00]
[stderr] [2026-03-07 05:11:19] INFO  | etl_billiards | [ODS_TABLE_FEE_DISCOUNT] late-cutoff 保护生效，软删除窗口终点从 2026-03-09 10:00:00+08:00 收窄至 2026-03-07 01:59:13+08:00
[stderr] [2026-03-07 05:11:19] INFO  | etl_billiards | [ODS_TABLE_FEE_DISCOUNT] 完成(9/9)，已处理 251.17/251.17 天
[stderr] [2026-03-07 05:11:19] INFO  | etl_billiards | [ODS_TABLE_FEE_DISCOUNT] ODS 任务完成: {'fetched': 11493, 'inserted': 0, 'updated': 11493, 'skipped': 0, 'errors': 0, 'deleted': 0}
[stderr] [2026-03-07 05:11:20] INFO  | etl_billiards | ODS_TABLES: ODS fetch+load start, dir=C:\NeoZQYY\export\ETL-Connectors\feiqiu\JSON\ODS_TABLES\ODS_TABLES-10104-20260307-051120
[stderr] [2026-03-07 05:11:20] INFO  | etl_billiards | 开始执行ODS_TABLES (ODS)
[stderr] [2026-03-07 05:11:20] INFO  | etl_billiards | ODS_TABLES: 窗口拆分为 9 段（共 251.17 天）
[stderr] [2026-03-07 05:11:21] INFO  | etl_billiards | ODS_TABLES: 开始执行(1/9)，窗口[2025-07-01 06:00:00+08:00 ~ 2025-07-31 06:00:00+08:00]
[stderr] [2026-03-07 05:11:23] INFO  | etl_billiards | 管道执行摘要: status=SUCCESS, 总耗时=2.0s [请求=1.7s, 处理=0.0s, 写入=0.3s], 请求=1/1, 获取=74, 写入(inserted=0, updated=74, skipped=0), 失败(request=0, process=0, write=0)
[stderr] [2026-03-07 05:11:23] INFO  | etl_billiards | ODS_TABLES: 完成(1/9)，已处理 30/251.17 天
[stderr] [2026-03-07 05:11:23] INFO  | etl_billiards | ODS_TABLES: 开始执行(2/9)，窗口[2025-07-31 06:00:00+08:00 ~ 2025-08-30 06:00:00+08:00]
[stderr] [2026-03-07 05:11:25] INFO  | etl_billiards | 管道执行摘要: status=SUCCESS, 总耗时=2.0s [请求=1.6s, 处理=0.0s, 写入=0.5s], 请求=1/1, 获取=74, 写入(inserted=0, updated=74, skipped=0), 失败(request=0, process=0, write=0)
[stderr] [2026-03-07 05:11:25] INFO  | etl_billiards | ODS_TABLES: 完成(2/9)，已处理 60/251.17 天
[stderr] [2026-03-07 05:11:25] INFO  | etl_billiards | ODS_TABLES: 开始执行(3/9)，窗口[2025-08-30 06:00:00+08:00 ~ 2025-09-29 06:00:00+08:00]
[stderr] [2026-03-07 05:11:27] INFO  | etl_billiards | 管道执行摘要: status=SUCCESS, 总耗时=2.2s [请求=1.8s, 处理=0.0s, 写入=0.5s], 请求=1/1, 获取=74, 写入(inserted=0, updated=74, skipped=0), 失败(request=0, process=0, write=0)
[stderr] [2026-03-07 05:11:27] INFO  | etl_billiards | ODS_TABLES: 完成(3/9)，已处理 90/251.17 天
[stderr] [2026-03-07 05:11:27] INFO  | etl_billiards | ODS_TABLES: 开始执行(4/9)，窗口[2025-09-29 06:00:00+08:00 ~ 2025-10-29 06:00:00+08:00]
[stderr] [2026-03-07 05:11:30] INFO  | etl_billiards | 管道执行摘要: status=SUCCESS, 总耗时=2.6s [请求=2.2s, 处理=0.0s, 写入=0.2s], 请求=1/1, 获取=74, 写入(inserted=0, updated=74, skipped=0), 失败(request=0, process=0, write=0)
[stderr] [2026-03-07 05:11:30] INFO  | etl_billiards | ODS_TABLES: 完成(4/9)，已处理 120/251.17 天
[stderr] [2026-03-07 05:11:30] INFO  | etl_billiards | ODS_TABLES: 开始执行(5/9)，窗口[2025-10-29 06:00:00+08:00 ~ 2025-11-28 06:00:00+08:00]
[stderr] [2026-03-07 05:11:32] INFO  | etl_billiards | 管道执行摘要: status=SUCCESS, 总耗时=1.8s [请求=1.5s, 处理=0.0s, 写入=0.3s], 请求=1/1, 获取=74, 写入(inserted=0, updated=74, skipped=0), 失败(request=0, process=0, write=0)
[stderr] [2026-03-07 05:11:32] INFO  | etl_billiards | ODS_TABLES: 完成(5/9)，已处理 150/251.17 天
[stderr] [2026-03-07 05:11:32] INFO  | etl_billiards | ODS_TABLES: 开始执行(6/9)，窗口[2025-11-28 06:00:00+08:00 ~ 2025-12-28 06:00:00+08:00]
[stderr] [2026-03-07 05:11:33] INFO  | etl_billiards | 管道执行摘要: status=SUCCESS, 总耗时=1.1s [请求=0.7s, 处理=0.0s, 写入=0.3s], 请求=1/1, 获取=74, 写入(inserted=0, updated=74, skipped=0), 失败(request=0, process=0, write=0)
[stderr] [2026-03-07 05:11:33] INFO  | etl_billiards | ODS_TABLES: 完成(6/9)，已处理 180/251.17 天
[stderr] [2026-03-07 05:11:33] INFO  | etl_billiards | ODS_TABLES: 开始执行(7/9)，窗口[2025-12-28 06:00:00+08:00 ~ 2026-01-27 06:00:00+08:00]
[stderr] [2026-03-07 05:11:34] INFO  | etl_billiards | 管道执行摘要: status=SUCCESS, 总耗时=0.9s [请求=0.7s, 处理=0.0s, 写入=0.2s], 请求=1/1, 获取=74, 写入(inserted=0, updated=74, skipped=0), 失败(request=0, process=0, write=0)
[stderr] [2026-03-07 05:11:34] INFO  | etl_billiards | ODS_TABLES: 完成(7/9)，已处理 210/251.17 天
[stderr] [2026-03-07 05:11:34] INFO  | etl_billiards | ODS_TABLES: 开始执行(8/9)，窗口[2026-01-27 06:00:00+08:00 ~ 2026-02-26 06:00:00+08:00]
[stderr] [2026-03-07 05:11:35] INFO  | etl_billiards | 管道执行摘要: status=SUCCESS, 总耗时=0.8s [请求=0.6s, 处理=0.0s, 写入=0.2s], 请求=1/1, 获取=74, 写入(inserted=0, updated=74, skipped=0), 失败(request=0, process=0, write=0)
[stderr] [2026-03-07 05:11:35] INFO  | etl_billiards | ODS_TABLES: 完成(8/9)，已处理 240/251.17 天
[stderr] [2026-03-07 05:11:35] INFO  | etl_billiards | ODS_TABLES: 开始执行(9/9)，窗口[2026-02-26 06:00:00+08:00 ~ 2026-03-09 10:00:00+08:00]
[stderr] [2026-03-07 05:11:37] INFO  | etl_billiards | 管道执行摘要: status=SUCCESS, 总耗时=1.9s [请求=1.3s, 处理=0.0s, 写入=0.5s], 请求=1/1, 获取=74, 写入(inserted=0, updated=74, skipped=0), 失败(request=0, process=0, write=0)
[stderr] [2026-03-07 05:11:37] INFO  | etl_billiards | ODS_TABLES: 完成(9/9)，已处理 251.17/251.17 天
[stderr] [2026-03-07 05:11:37] INFO  | etl_billiards | ODS_TABLES ODS 任务完成: {'fetched': 666, 'inserted': 0, 'updated': 666, 'skipped': 0, 'errors': 0, 'deleted': 0}
[stderr] [2026-03-07 05:11:37] INFO  | etl_billiards | [ODS_TABLES] 开始执行ODS_TABLES (ODS)
[stderr] [2026-03-07 05:11:37] INFO  | etl_billiards | [ODS_TABLES] 窗口拆分为 9 段（共 251.17 天）
[stderr] [2026-03-07 05:11:37] INFO  | etl_billiards | [ODS_TABLES] 开始执行(1/9)，窗口[2025-07-01 06:00:00+08:00 ~ 2025-07-31 06:00:00+08:00]
[stderr] [2026-03-07 05:11:37] INFO  | etl_billiards | [ODS_TABLES] 完成(1/9)，已处理 30/251.17 天
[stderr] [2026-03-07 05:11:37] INFO  | etl_billiards | [ODS_TABLES] 开始执行(2/9)，窗口[2025-07-31 06:00:00+08:00 ~ 2025-08-30 06:00:00+08:00]
[stderr] [2026-03-07 05:11:37] INFO  | etl_billiards | [ODS_TABLES] 完成(2/9)，已处理 60/251.17 天
[stderr] [2026-03-07 05:11:37] INFO  | etl_billiards | [ODS_TABLES] 开始执行(3/9)，窗口[2025-08-30 06:00:00+08:00 ~ 2025-09-29 06:00:00+08:00]
[stderr] [2026-03-07 05:11:37] INFO  | etl_billiards | [ODS_TABLES] 完成(3/9)，已处理 90/251.17 天
[stderr] [2026-03-07 05:11:37] INFO  | etl_billiards | [ODS_TABLES] 开始执行(4/9)，窗口[2025-09-29 06:00:00+08:00 ~ 2025-10-29 06:00:00+08:00]
[stderr] [2026-03-07 05:11:37] INFO  | etl_billiards | [ODS_TABLES] 完成(4/9)，已处理 120/251.17 天
[stderr] [2026-03-07 05:11:37] INFO  | etl_billiards | [ODS_TABLES] 开始执行(5/9)，窗口[2025-10-29 06:00:00+08:00 ~ 2025-11-28 06:00:00+08:00]
[stderr] [2026-03-07 05:11:37] INFO  | etl_billiards | [ODS_TABLES] 完成(5/9)，已处理 150/251.17 天
[stderr] [2026-03-07 05:11:37] INFO  | etl_billiards | [ODS_TABLES] 开始执行(6/9)，窗口[2025-11-28 06:00:00+08:00 ~ 2025-12-28 06:00:00+08:00]
[stderr] [2026-03-07 05:11:37] INFO  | etl_billiards | [ODS_TABLES] 完成(6/9)，已处理 180/251.17 天
[stderr] [2026-03-07 05:11:37] INFO  | etl_billiards | [ODS_TABLES] 开始执行(7/9)，窗口[2025-12-28 06:00:00+08:00 ~ 2026-01-27 06:00:00+08:00]
[stderr] [2026-03-07 05:11:37] INFO  | etl_billiards | [ODS_TABLES] 完成(7/9)，已处理 210/251.17 天
[stderr] [2026-03-07 05:11:37] INFO  | etl_billiards | [ODS_TABLES] 开始执行(8/9)，窗口[2026-01-27 06:00:00+08:00 ~ 2026-02-26 06:00:00+08:00]
[stderr] [2026-03-07 05:11:37] INFO  | etl_billiards | [ODS_TABLES] 完成(8/9)，已处理 240/251.17 天
[stderr] [2026-03-07 05:11:37] INFO  | etl_billiards | [ODS_TABLES] 开始执行(9/9)，窗口[2026-02-26 06:00:00+08:00 ~ 2026-03-09 10:00:00+08:00]
[stderr] [2026-03-07 05:11:37] INFO  | etl_billiards | [ODS_TABLES] 完成(9/9)，已处理 251.17/251.17 天
[stderr] [2026-03-07 05:11:37] INFO  | etl_billiards | [ODS_TABLES] ODS 任务完成: {'fetched': 666, 'inserted': 0, 'updated': 666, 'skipped': 0, 'errors': 0, 'deleted': 0}
[stderr] [2026-03-07 05:11:37] INFO  | etl_billiards | ODS_MEMBER: ODS fetch+load start, dir=C:\NeoZQYY\export\ETL-Connectors\feiqiu\JSON\ODS_MEMBER\ODS_MEMBER-10105-20260307-051137
[stderr] [2026-03-07 05:11:37] INFO  | etl_billiards | 开始执行ODS_MEMBER (ODS)
[stderr] [2026-03-07 05:11:37] INFO  | etl_billiards | ODS_MEMBER: 窗口拆分为 9 段（共 251.17 天）
[stderr] [2026-03-07 05:11:38] INFO  | etl_billiards | ODS_MEMBER: 开始执行(1/9)，窗口[2025-07-01 06:00:00+08:00 ~ 2025-07-31 06:00:00+08:00]
[stderr] [2026-03-07 05:11:44] INFO  | etl_billiards | 管道执行摘要: status=SUCCESS, 总耗时=6.0s [请求=5.9s, 处理=0.0s, 写入=0.1s], 请求=3/3, 获取=558, 写入(inserted=0, updated=558, skipped=0), 失败(request=0, process=0, write=0)
[stderr] [2026-03-07 05:11:44] INFO  | etl_billiards | ODS_MEMBER: 完成(1/9)，已处理 30/251.17 天
[stderr] [2026-03-07 05:11:44] INFO  | etl_billiards | ODS_MEMBER: 开始执行(2/9)，窗口[2025-07-31 06:00:00+08:00 ~ 2025-08-30 06:00:00+08:00]
[stderr] [2026-03-07 05:11:48] INFO  | etl_billiards | 管道执行摘要: status=SUCCESS, 总耗时=4.5s [请求=4.4s, 处理=0.0s, 写入=0.1s], 请求=3/3, 获取=558, 写入(inserted=0, updated=558, skipped=0), 失败(request=0, process=0, write=0)
[stderr] [2026-03-07 05:11:48] INFO  | etl_billiards | ODS_MEMBER: 完成(2/9)，已处理 60/251.17 天
[stderr] [2026-03-07 05:11:48] INFO  | etl_billiards | ODS_MEMBER: 开始执行(3/9)，窗口[2025-08-30 06:00:00+08:00 ~ 2025-09-29 06:00:00+08:00]
[stderr] [2026-03-07 05:11:53] INFO  | etl_billiards | 管道执行摘要: status=SUCCESS, 总耗时=4.8s [请求=4.6s, 处理=0.0s, 写入=0.1s], 请求=3/3, 获取=558, 写入(inserted=0, updated=558, skipped=0), 失败(request=0, process=0, write=0)
[stderr] [2026-03-07 05:11:53] INFO  | etl_billiards | ODS_MEMBER: 完成(3/9)，已处理 90/251.17 天
[stderr] [2026-03-07 05:11:53] INFO  | etl_billiards | ODS_MEMBER: 开始执行(4/9)，窗口[2025-09-29 06:00:00+08:00 ~ 2025-10-29 06:00:00+08:00]
[stderr] [2026-03-07 05:12:00] INFO  | etl_billiards | 管道执行摘要: status=SUCCESS, 总耗时=7.0s [请求=6.8s, 处理=0.0s, 写入=0.1s], 请求=3/3, 获取=558, 写入(inserted=0, updated=558, skipped=0), 失败(request=0, process=0, write=0)
[stderr] [2026-03-07 05:12:00] INFO  | etl_billiards | ODS_MEMBER: 完成(4/9)，已处理 120/251.17 天
[stderr] [2026-03-07 05:12:00] INFO  | etl_billiards | ODS_MEMBER: 开始执行(5/9)，窗口[2025-10-29 06:00:00+08:00 ~ 2025-11-28 06:00:00+08:00]
[stderr] [2026-03-07 05:12:04] INFO  | etl_billiards | 管道执行摘要: status=SUCCESS, 总耗时=4.0s [请求=3.9s, 处理=0.0s, 写入=0.1s], 请求=3/3, 获取=558, 写入(inserted=0, updated=558, skipped=0), 失败(request=0, process=0, write=0)
[stderr] [2026-03-07 05:12:04] INFO  | etl_billiards | ODS_MEMBER: 完成(5/9)，已处理 150/251.17 天
[stderr] [2026-03-07 05:12:04] INFO  | etl_billiards | ODS_MEMBER: 开始执行(6/9)，窗口[2025-11-28 06:00:00+08:00 ~ 2025-12-28 06:00:00+08:00]
[stderr] [2026-03-07 05:12:10] INFO  | etl_billiards | 管道执行摘要: status=SUCCESS, 总耗时=6.3s [请求=6.0s, 处理=0.0s, 写入=0.4s], 请求=3/3, 获取=558, 写入(inserted=0, updated=558, skipped=0), 失败(request=0, process=0, write=0)
[stderr] [2026-03-07 05:12:11] INFO  | etl_billiards | ODS_MEMBER: 完成(6/9)，已处理 180/251.17 天
[stderr] [2026-03-07 05:12:11] INFO  | etl_billiards | ODS_MEMBER: 开始执行(7/9)，窗口[2025-12-28 06:00:00+08:00 ~ 2026-01-27 06:00:00+08:00]
[stderr] [2026-03-07 05:12:16] INFO  | etl_billiards | 管道执行摘要: status=SUCCESS, 总耗时=5.0s [请求=4.8s, 处理=0.0s, 写入=0.1s], 请求=3/3, 获取=558, 写入(inserted=0, updated=558, skipped=0), 失败(request=0, process=0, write=0)
[stderr] [2026-03-07 05:12:16] INFO  | etl_billiards | ODS_MEMBER: 完成(7/9)，已处理 210/251.17 天
[stderr] [2026-03-07 05:12:16] INFO  | etl_billiards | ODS_MEMBER: 开始执行(8/9)，窗口[2026-01-27 06:00:00+08:00 ~ 2026-02-26 06:00:00+08:00]
[stderr] [2026-03-07 05:12:21] INFO  | etl_billiards | 管道执行摘要: status=SUCCESS, 总耗时=5.7s [请求=5.3s, 处理=0.0s, 写入=0.4s], 请求=3/3, 获取=558, 写入(inserted=0, updated=558, skipped=0), 失败(request=0, process=0, write=0)
[stderr] [2026-03-07 05:12:21] INFO  | etl_billiards | ODS_MEMBER: 完成(8/9)，已处理 240/251.17 天
[stderr] [2026-03-07 05:12:21] INFO  | etl_billiards | ODS_MEMBER: 开始执行(9/9)，窗口[2026-02-26 06:00:00+08:00 ~ 2026-03-09 10:00:00+08:00]
[stderr] [2026-03-07 05:12:28] INFO  | etl_billiards | 管道执行摘要: status=SUCCESS, 总耗时=6.7s [请求=6.6s, 处理=0.0s, 写入=0.1s], 请求=3/3, 获取=558, 写入(inserted=0, updated=558, skipped=0), 失败(request=0, process=0, write=0)
[stderr] [2026-03-07 05:12:28] INFO  | etl_billiards | ODS_MEMBER: 完成(9/9)，已处理 251.17/251.17 天
[stderr] [2026-03-07 05:12:28] INFO  | etl_billiards | ODS_MEMBER ODS 任务完成: {'fetched': 5022, 'inserted': 0, 'updated': 5022, 'skipped': 0, 'errors': 0, 'deleted': 0}
[stderr] [2026-03-07 05:12:28] INFO  | etl_billiards | [ODS_MEMBER] 开始执行ODS_MEMBER (ODS)
[stderr] [2026-03-07 05:12:28] INFO  | etl_billiards | [ODS_MEMBER] 窗口拆分为 9 段（共 251.17 天）
[stderr] [2026-03-07 05:12:28] INFO  | etl_billiards | [ODS_MEMBER] 开始执行(1/9)，窗口[2025-07-01 06:00:00+08:00 ~ 2025-07-31 06:00:00+08:00]
[stderr] [2026-03-07 05:12:28] INFO  | etl_billiards | [ODS_MEMBER] 完成(1/9)，已处理 30/251.17 天
[stderr] [2026-03-07 05:12:28] INFO  | etl_billiards | [ODS_MEMBER] 开始执行(2/9)，窗口[2025-07-31 06:00:00+08:00 ~ 2025-08-30 06:00:00+08:00]
[stderr] [2026-03-07 05:12:28] INFO  | etl_billiards | [ODS_MEMBER] 完成(2/9)，已处理 60/251.17 天
[stderr] [2026-03-07 05:12:28] INFO  | etl_billiards | [ODS_MEMBER] 开始执行(3/9)，窗口[2025-08-30 06:00:00+08:00 ~ 2025-09-29 06:00:00+08:00]
[stderr] [2026-03-07 05:12:28] INFO  | etl_billiards | [ODS_MEMBER] 完成(3/9)，已处理 90/251.17 天
[stderr] [2026-03-07 05:12:28] INFO  | etl_billiards | [ODS_MEMBER] 开始执行(4/9)，窗口[2025-09-29 06:00:00+08:00 ~ 2025-10-29 06:00:00+08:00]
[stderr] [2026-03-07 05:12:28] INFO  | etl_billiards | [ODS_MEMBER] 完成(4/9)，已处理 120/251.17 天
[stderr] [2026-03-07 05:12:28] INFO  | etl_billiards | [ODS_MEMBER] 开始执行(5/9)，窗口[2025-10-29 06:00:00+08:00 ~ 2025-11-28 06:00:00+08:00]
[stderr] [2026-03-07 05:12:28] INFO  | etl_billiards | [ODS_MEMBER] 完成(5/9)，已处理 150/251.17 天
[stderr] [2026-03-07 05:12:28] INFO  | etl_billiards | [ODS_MEMBER] 开始执行(6/9)，窗口[2025-11-28 06:00:00+08:00 ~ 2025-12-28 06:00:00+08:00]
[stderr] [2026-03-07 05:12:28] INFO  | etl_billiards | [ODS_MEMBER] 完成(6/9)，已处理 180/251.17 天
[stderr] [2026-03-07 05:12:28] INFO  | etl_billiards | [ODS_MEMBER] 开始执行(7/9)，窗口[2025-12-28 06:00:00+08:00 ~ 2026-01-27 06:00:00+08:00]
[stderr] [2026-03-07 05:12:28] INFO  | etl_billiards | [ODS_MEMBER] 完成(7/9)，已处理 210/251.17 天
[stderr] [2026-03-07 05:12:28] INFO  | etl_billiards | [ODS_MEMBER] 开始执行(8/9)，窗口[2026-01-27 06:00:00+08:00 ~ 2026-02-26 06:00:00+08:00]
[stderr] [2026-03-07 05:12:28] INFO  | etl_billiards | [ODS_MEMBER] 完成(8/9)，已处理 240/251.17 天
[stderr] [2026-03-07 05:12:28] INFO  | etl_billiards | [ODS_MEMBER] 开始执行(9/9)，窗口[2026-02-26 06:00:00+08:00 ~ 2026-03-09 10:00:00+08:00]
[stderr] [2026-03-07 05:12:28] INFO  | etl_billiards | [ODS_MEMBER] 完成(9/9)，已处理 251.17/251.17 天
[stderr] [2026-03-07 05:12:28] INFO  | etl_billiards | [ODS_MEMBER] ODS 任务完成: {'fetched': 5022, 'inserted': 0, 'updated': 5022, 'skipped': 0, 'errors': 0, 'deleted': 0}
[stderr] [2026-03-07 05:12:29] INFO  | etl_billiards | ODS_MEMBER_CARD: ODS fetch+load start, dir=C:\NeoZQYY\export\ETL-Connectors\feiqiu\JSON\ODS_MEMBER_CARD\ODS_MEMBER_CARD-10106-20260307-051229
[stderr] [2026-03-07 05:12:29] INFO  | etl_billiards | 开始执行ODS_MEMBER_CARD (ODS)
[stderr] [2026-03-07 05:12:29] INFO  | etl_billiards | ODS_MEMBER_CARD: 窗口拆分为 9 段（共 251.17 天）
[stderr] [2026-03-07 05:12:29] INFO  | etl_billiards | ODS_MEMBER_CARD: 开始执行(1/9)，窗口[2025-07-01 06:00:00+08:00 ~ 2025-07-31 06:00:00+08:00]
[stderr] [2026-03-07 05:12:36] INFO  | etl_billiards | 管道执行摘要: status=SUCCESS, 总耗时=7.6s [请求=7.3s, 处理=0.0s, 写入=0.2s], 请求=5/5, 获取=947, 写入(inserted=0, updated=947, skipped=0), 失败(request=0, process=0, write=0)
[stderr] [2026-03-07 05:12:36] INFO  | etl_billiards | ODS_MEMBER_CARD: 完成(1/9)，已处理 30/251.17 天
[stderr] [2026-03-07 05:12:36] INFO  | etl_billiards | ODS_MEMBER_CARD: 开始执行(2/9)，窗口[2025-07-31 06:00:00+08:00 ~ 2025-08-30 06:00:00+08:00]
[stderr] [2026-03-07 05:12:46] INFO  | etl_billiards | 管道执行摘要: status=SUCCESS, 总耗时=9.7s [请求=9.4s, 处理=0.0s, 写入=0.3s], 请求=5/5, 获取=947, 写入(inserted=0, updated=947, skipped=0), 失败(request=0, process=0, write=0)
[stderr] [2026-03-07 05:12:46] INFO  | etl_billiards | ODS_MEMBER_CARD: 完成(2/9)，已处理 60/251.17 天
[stderr] [2026-03-07 05:12:46] INFO  | etl_billiards | ODS_MEMBER_CARD: 开始执行(3/9)，窗口[2025-08-30 06:00:00+08:00 ~ 2025-09-29 06:00:00+08:00]
[stderr] [2026-03-07 05:12:56] INFO  | etl_billiards | 管道执行摘要: status=SUCCESS, 总耗时=9.2s [请求=8.6s, 处理=0.0s, 写入=0.6s], 请求=5/5, 获取=947, 写入(inserted=0, updated=947, skipped=0), 失败(request=0, process=0, write=0)
[stderr] [2026-03-07 05:12:56] INFO  | etl_billiards | ODS_MEMBER_CARD: 完成(3/9)，已处理 90/251.17 天
[stderr] [2026-03-07 05:12:56] INFO  | etl_billiards | ODS_MEMBER_CARD: 开始执行(4/9)，窗口[2025-09-29 06:00:00+08:00 ~ 2025-10-29 06:00:00+08:00]
[stderr] [2026-03-07 05:13:05] INFO  | etl_billiards | 管道执行摘要: status=SUCCESS, 总耗时=9.8s [请求=8.8s, 处理=0.0s, 写入=1.0s], 请求=5/5, 获取=947, 写入(inserted=0, updated=947, skipped=0), 失败(request=0, process=0, write=0)
[stderr] [2026-03-07 05:13:06] INFO  | etl_billiards | ODS_MEMBER_CARD: 完成(4/9)，已处理 120/251.17 天
[stderr] [2026-03-07 05:13:06] INFO  | etl_billiards | ODS_MEMBER_CARD: 开始执行(5/9)，窗口[2025-10-29 06:00:00+08:00 ~ 2025-11-28 06:00:00+08:00]
[stderr] [2026-03-07 05:13:14] INFO  | etl_billiards | 管道执行摘要: status=SUCCESS, 总耗时=8.4s [请求=8.0s, 处理=0.0s, 写入=0.2s], 请求=5/5, 获取=947, 写入(inserted=0, updated=947, skipped=0), 失败(request=0, process=0, write=0)
[stderr] [2026-03-07 05:13:14] INFO  | etl_billiards | ODS_MEMBER_CARD: 完成(5/9)，已处理 150/251.17 天
[stderr] [2026-03-07 05:13:14] INFO  | etl_billiards | ODS_MEMBER_CARD: 开始执行(6/9)，窗口[2025-11-28 06:00:00+08:00 ~ 2025-12-28 06:00:00+08:00]
[stderr] [2026-03-07 05:13:24] INFO  | etl_billiards | 管道执行摘要: status=SUCCESS, 总耗时=9.3s [请求=8.6s, 处理=0.0s, 写入=0.2s], 请求=5/5, 获取=947, 写入(inserted=0, updated=947, skipped=0), 失败(request=0, process=0, write=0)
[stderr] [2026-03-07 05:13:24] INFO  | etl_billiards | ODS_MEMBER_CARD: 完成(6/9)，已处理 180/251.17 天
[stderr] [2026-03-07 05:13:24] INFO  | etl_billiards | ODS_MEMBER_CARD: 开始执行(7/9)，窗口[2025-12-28 06:00:00+08:00 ~ 2026-01-27 06:00:00+08:00]
[stderr] [2026-03-07 05:13:33] INFO  | etl_billiards | 管道执行摘要: status=SUCCESS, 总耗时=9.4s [请求=9.1s, 处理=0.0s, 写入=0.3s], 请求=5/5, 获取=947, 写入(inserted=0, updated=947, skipped=0), 失败(request=0, process=0, write=0)
[stderr] [2026-03-07 05:13:33] INFO  | etl_billiards | ODS_MEMBER_CARD: 完成(7/9)，已处理 210/251.17 天
[stderr] [2026-03-07 05:13:33] INFO  | etl_billiards | ODS_MEMBER_CARD: 开始执行(8/9)，窗口[2026-01-27 06:00:00+08:00 ~ 2026-02-26 06:00:00+08:00]
[stderr] [2026-03-07 05:13:43] INFO  | etl_billiards | 管道执行摘要: status=SUCCESS, 总耗时=9.7s [请求=9.4s, 处理=0.0s, 写入=0.3s], 请求=5/5, 获取=947, 写入(inserted=0, updated=947, skipped=0), 失败(request=0, process=0, write=0)
[stderr] [2026-03-07 05:13:43] INFO  | etl_billiards | ODS_MEMBER_CARD: 完成(8/9)，已处理 240/251.17 天
[stderr] [2026-03-07 05:13:43] INFO  | etl_billiards | ODS_MEMBER_CARD: 开始执行(9/9)，窗口[2026-02-26 06:00:00+08:00 ~ 2026-03-09 10:00:00+08:00]
[stderr] [2026-03-07 05:13:52] INFO  | etl_billiards | 管道执行摘要: status=SUCCESS, 总耗时=9.1s [请求=8.8s, 处理=0.0s, 写入=0.2s], 请求=5/5, 获取=947, 写入(inserted=0, updated=947, skipped=0), 失败(request=0, process=0, write=0)
[stderr] [2026-03-07 05:13:52] INFO  | etl_billiards | ODS_MEMBER_CARD: 完成(9/9)，已处理 251.17/251.17 天
[stderr] [2026-03-07 05:13:52] INFO  | etl_billiards | ODS_MEMBER_CARD ODS 任务完成: {'fetched': 8523, 'inserted': 0, 'updated': 8523, 'skipped': 0, 'errors': 0, 'deleted': 0}
[stderr] [2026-03-07 05:13:52] INFO  | etl_billiards | [ODS_MEMBER_CARD] 开始执行ODS_MEMBER_CARD (ODS)
[stderr] [2026-03-07 05:13:52] INFO  | etl_billiards | [ODS_MEMBER_CARD] 窗口拆分为 9 段（共 251.17 天）
[stderr] [2026-03-07 05:13:52] INFO  | etl_billiards | [ODS_MEMBER_CARD] 开始执行(1/9)，窗口[2025-07-01 06:00:00+08:00 ~ 2025-07-31 06:00:00+08:00]
[stderr] [2026-03-07 05:13:52] INFO  | etl_billiards | [ODS_MEMBER_CARD] 完成(1/9)，已处理 30/251.17 天
[stderr] [2026-03-07 05:13:52] INFO  | etl_billiards | [ODS_MEMBER_CARD] 开始执行(2/9)，窗口[2025-07-31 06:00:00+08:00 ~ 2025-08-30 06:00:00+08:00]
[stderr] [2026-03-07 05:13:52] INFO  | etl_billiards | [ODS_MEMBER_CARD] 完成(2/9)，已处理 60/251.17 天
[stderr] [2026-03-07 05:13:52] INFO  | etl_billiards | [ODS_MEMBER_CARD] 开始执行(3/9)，窗口[2025-08-30 06:00:00+08:00 ~ 2025-09-29 06:00:00+08:00]
[stderr] [2026-03-07 05:13:52] INFO  | etl_billiards | [ODS_MEMBER_CARD] 完成(3/9)，已处理 90/251.17 天
[stderr] [2026-03-07 05:13:52] INFO  | etl_billiards | [ODS_MEMBER_CARD] 开始执行(4/9)，窗口[2025-09-29 06:00:00+08:00 ~ 2025-10-29 06:00:00+08:00]
[stderr] [2026-03-07 05:13:52] INFO  | etl_billiards | [ODS_MEMBER_CARD] 完成(4/9)，已处理 120/251.17 天
[stderr] [2026-03-07 05:13:52] INFO  | etl_billiards | [ODS_MEMBER_CARD] 开始执行(5/9)，窗口[2025-10-29 06:00:00+08:00 ~ 2025-11-28 06:00:00+08:00]
[stderr] [2026-03-07 05:13:52] INFO  | etl_billiards | [ODS_MEMBER_CARD] 完成(5/9)，已处理 150/251.17 天
[stderr] [2026-03-07 05:13:52] INFO  | etl_billiards | [ODS_MEMBER_CARD] 开始执行(6/9)，窗口[2025-11-28 06:00:00+08:00 ~ 2025-12-28 06:00:00+08:00]
[stderr] [2026-03-07 05:13:52] INFO  | etl_billiards | [ODS_MEMBER_CARD] 完成(6/9)，已处理 180/251.17 天
[stderr] [2026-03-07 05:13:52] INFO  | etl_billiards | [ODS_MEMBER_CARD] 开始执行(7/9)，窗口[2025-12-28 06:00:00+08:00 ~ 2026-01-27 06:00:00+08:00]
[stderr] [2026-03-07 05:13:52] INFO  | etl_billiards | [ODS_MEMBER_CARD] 完成(7/9)，已处理 210/251.17 天
[stderr] [2026-03-07 05:13:52] INFO  | etl_billiards | [ODS_MEMBER_CARD] 开始执行(8/9)，窗口[2026-01-27 06:00:00+08:00 ~ 2026-02-26 06:00:00+08:00]
[stderr] [2026-03-07 05:13:52] INFO  | etl_billiards | [ODS_MEMBER_CARD] 完成(8/9)，已处理 240/251.17 天
[stderr] [2026-03-07 05:13:52] INFO  | etl_billiards | [ODS_MEMBER_CARD] 开始执行(9/9)，窗口[2026-02-26 06:00:00+08:00 ~ 2026-03-09 10:00:00+08:00]
[stderr] [2026-03-07 05:13:52] INFO  | etl_billiards | [ODS_MEMBER_CARD] 完成(9/9)，已处理 251.17/251.17 天
[stderr] [2026-03-07 05:13:52] INFO  | etl_billiards | [ODS_MEMBER_CARD] ODS 任务完成: {'fetched': 8523, 'inserted': 0, 'updated': 8523, 'skipped': 0, 'errors': 0, 'deleted': 0}
[stderr] [2026-03-07 05:13:54] INFO  | etl_billiards | ODS_MEMBER_BALANCE: ODS fetch+load start, dir=C:\NeoZQYY\export\ETL-Connectors\feiqiu\JSON\ODS_MEMBER_BALANCE\ODS_MEMBER_BALANCE-10107-20260307-051354
[stderr] [2026-03-07 05:13:54] INFO  | etl_billiards | 开始执行ODS_MEMBER_BALANCE (ODS)
[stderr] [2026-03-07 05:13:54] INFO  | etl_billiards | ODS_MEMBER_BALANCE: 窗口拆分为 9 段（共 251.17 天）
[stderr] [2026-03-07 05:13:54] INFO  | etl_billiards | ODS_MEMBER_BALANCE: 开始执行(1/9)，窗口[2025-07-01 06:00:00+08:00 ~ 2025-07-31 06:00:00+08:00]
[stderr] [2026-03-07 05:14:22] INFO  | etl_billiards | 管道执行摘要: status=SUCCESS, 总耗时=28.1s [请求=27.7s, 处理=0.0s, 写入=0.3s], 请求=9/9, 获取=1734, 写入(inserted=0, updated=1734, skipped=0), 失败(request=0, process=0, write=0)
[stderr] [2026-03-07 05:14:22] INFO  | etl_billiards | ODS_MEMBER_BALANCE: early-cutoff 保护生效，软删除窗口起点从 2025-07-01 06:00:00+08:00 收窄至 2025-12-06 16:49:48+08:00
[stderr] [2026-03-07 05:14:22] INFO  | etl_billiards | ODS_MEMBER_BALANCE: 完成(1/9)，已处理 30/251.17 天
[stderr] [2026-03-07 05:14:22] INFO  | etl_billiards | ODS_MEMBER_BALANCE: 开始执行(2/9)，窗口[2025-07-31 06:00:00+08:00 ~ 2025-08-30 06:00:00+08:00]
[stderr] [2026-03-07 05:14:47] INFO  | etl_billiards | 管道执行摘要: status=SUCCESS, 总耗时=24.8s [请求=24.7s, 处理=0.0s, 写入=0.1s], 请求=9/9, 获取=1734, 写入(inserted=0, updated=1734, skipped=0), 失败(request=0, process=0, write=0)
[stderr] [2026-03-07 05:14:47] INFO  | etl_billiards | ODS_MEMBER_BALANCE: early-cutoff 保护生效，软删除窗口起点从 2025-07-31 06:00:00+08:00 收窄至 2025-12-06 16:49:48+08:00
[stderr] [2026-03-07 05:14:47] INFO  | etl_billiards | ODS_MEMBER_BALANCE: 完成(2/9)，已处理 60/251.17 天
[stderr] [2026-03-07 05:14:47] INFO  | etl_billiards | ODS_MEMBER_BALANCE: 开始执行(3/9)，窗口[2025-08-30 06:00:00+08:00 ~ 2025-09-29 06:00:00+08:00]
[stderr] [2026-03-07 05:15:18] INFO  | etl_billiards | 管道执行摘要: status=SUCCESS, 总耗时=30.9s [请求=30.7s, 处理=0.0s, 写入=0.2s], 请求=9/9, 获取=1734, 写入(inserted=0, updated=1734, skipped=0), 失败(request=0, process=0, write=0)
[stderr] [2026-03-07 05:15:18] INFO  | etl_billiards | ODS_MEMBER_BALANCE: early-cutoff 保护生效，软删除窗口起点从 2025-08-30 06:00:00+08:00 收窄至 2025-12-06 16:49:48+08:00
[stderr] [2026-03-07 05:15:18] INFO  | etl_billiards | ODS_MEMBER_BALANCE: 完成(3/9)，已处理 90/251.17 天
[stderr] [2026-03-07 05:15:18] INFO  | etl_billiards | ODS_MEMBER_BALANCE: 开始执行(4/9)，窗口[2025-09-29 06:00:00+08:00 ~ 2025-10-29 06:00:00+08:00]
[stderr] [2026-03-07 05:15:48] INFO  | etl_billiards | 管道执行摘要: status=SUCCESS, 总耗时=30.0s [请求=29.8s, 处理=0.0s, 写入=0.1s], 请求=9/9, 获取=1734, 写入(inserted=0, updated=1734, skipped=0), 失败(request=0, process=0, write=0)
[stderr] [2026-03-07 05:15:48] INFO  | etl_billiards | ODS_MEMBER_BALANCE: early-cutoff 保护生效，软删除窗口起点从 2025-09-29 06:00:00+08:00 收窄至 2025-12-06 16:49:48+08:00
[stderr] [2026-03-07 05:15:49] INFO  | etl_billiards | ODS_MEMBER_BALANCE: 完成(4/9)，已处理 120/251.17 天
[stderr] [2026-03-07 05:15:49] INFO  | etl_billiards | ODS_MEMBER_BALANCE: 开始执行(5/9)，窗口[2025-10-29 06:00:00+08:00 ~ 2025-11-28 06:00:00+08:00]
[stderr] [2026-03-07 05:16:16] INFO  | etl_billiards | 管道执行摘要: status=SUCCESS, 总耗时=27.0s [请求=26.9s, 处理=0.0s, 写入=0.1s], 请求=9/9, 获取=1734, 写入(inserted=0, updated=1734, skipped=0), 失败(request=0, process=0, write=0)
[stderr] [2026-03-07 05:16:16] INFO  | etl_billiards | ODS_MEMBER_BALANCE: early-cutoff 保护生效，软删除窗口起点从 2025-10-29 06:00:00+08:00 收窄至 2025-12-06 16:49:48+08:00
[stderr] [2026-03-07 05:16:16] INFO  | etl_billiards | ODS_MEMBER_BALANCE: 完成(5/9)，已处理 150/251.17 天
[stderr] [2026-03-07 05:16:16] INFO  | etl_billiards | ODS_MEMBER_BALANCE: 开始执行(6/9)，窗口[2025-11-28 06:00:00+08:00 ~ 2025-12-28 06:00:00+08:00]
[stderr] [2026-03-07 05:16:44] INFO  | etl_billiards | 管道执行摘要: status=SUCCESS, 总耗时=28.4s [请求=28.3s, 处理=0.0s, 写入=0.1s], 请求=9/9, 获取=1734, 写入(inserted=0, updated=1734, skipped=0), 失败(request=0, process=0, write=0)
[stderr] [2026-03-07 05:16:44] INFO  | etl_billiards | ODS_MEMBER_BALANCE: early-cutoff 保护生效，软删除窗口起点从 2025-11-28 06:00:00+08:00 收窄至 2025-12-06 16:49:48+08:00
[stderr] [2026-03-07 05:16:44] INFO  | etl_billiards | ODS_MEMBER_BALANCE: 完成(6/9)，已处理 180/251.17 天
[stderr] [2026-03-07 05:16:44] INFO  | etl_billiards | ODS_MEMBER_BALANCE: 开始执行(7/9)，窗口[2025-12-28 06:00:00+08:00 ~ 2026-01-27 06:00:00+08:00]
[stderr] [2026-03-07 05:17:13] INFO  | etl_billiards | 管道执行摘要: status=SUCCESS, 总耗时=28.9s [请求=28.4s, 处理=0.0s, 写入=0.5s], 请求=9/9, 获取=1734, 写入(inserted=0, updated=1734, skipped=0), 失败(request=0, process=0, write=0)
[stderr] [2026-03-07 05:17:13] INFO  | etl_billiards | ODS_MEMBER_BALANCE: 完成(7/9)，已处理 210/251.17 天
[stderr] [2026-03-07 05:17:13] INFO  | etl_billiards | ODS_MEMBER_BALANCE: 开始执行(8/9)，窗口[2026-01-27 06:00:00+08:00 ~ 2026-02-26 06:00:00+08:00]
[stderr] [2026-03-07 05:17:42] INFO  | etl_billiards | 管道执行摘要: status=SUCCESS, 总耗时=28.7s [请求=28.6s, 处理=0.0s, 写入=0.1s], 请求=9/9, 获取=1734, 写入(inserted=0, updated=1734, skipped=0), 失败(request=0, process=0, write=0)
[stderr] [2026-03-07 05:17:42] INFO  | etl_billiards | ODS_MEMBER_BALANCE: 完成(8/9)，已处理 240/251.17 天
[stderr] [2026-03-07 05:17:42] INFO  | etl_billiards | ODS_MEMBER_BALANCE: 开始执行(9/9)，窗口[2026-02-26 06:00:00+08:00 ~ 2026-03-09 10:00:00+08:00]
[stderr] [2026-03-07 05:18:09] INFO  | etl_billiards | 管道执行摘要: status=SUCCESS, 总耗时=26.6s [请求=26.5s, 处理=0.0s, 写入=0.1s], 请求=9/9, 获取=1734, 写入(inserted=0, updated=1734, skipped=0), 失败(request=0, process=0, write=0)
[stderr] [2026-03-07 05:18:09] INFO  | etl_billiards | ODS_MEMBER_BALANCE: late-cutoff 保护生效，软删除窗口终点从 2026-03-09 10:00:00+08:00 收窄至 2026-03-07 02:04:06+08:00
[stderr] [2026-03-07 05:18:09] INFO  | etl_billiards | ODS_MEMBER_BALANCE: 完成(9/9)，已处理 251.17/251.17 天
[stderr] [2026-03-07 05:18:09] INFO  | etl_billiards | ODS_MEMBER_BALANCE ODS 任务完成: {'fetched': 15606, 'inserted': 0, 'updated': 15606, 'skipped': 0, 'errors': 0, 'deleted': 0}
[stderr] [2026-03-07 05:18:09] INFO  | etl_billiards | [ODS_MEMBER_BALANCE] 开始执行ODS_MEMBER_BALANCE (ODS)
[stderr] [2026-03-07 05:18:09] INFO  | etl_billiards | [ODS_MEMBER_BALANCE] 窗口拆分为 9 段（共 251.17 天）
[stderr] [2026-03-07 05:18:09] INFO  | etl_billiards | [ODS_MEMBER_BALANCE] 开始执行(1/9)，窗口[2025-07-01 06:00:00+08:00 ~ 2025-07-31 06:00:00+08:00]
[stderr] [2026-03-07 05:18:09] INFO  | etl_billiards | [ODS_MEMBER_BALANCE] early-cutoff 保护生效，软删除窗口起点从 2025-07-01 06:00:00+08:00 收窄至 2025-12-06 16:49:48+08:00
[stderr] [2026-03-07 05:18:09] INFO  | etl_billiards | [ODS_MEMBER_BALANCE] 完成(1/9)，已处理 30/251.17 天
[stderr] [2026-03-07 05:18:09] INFO  | etl_billiards | [ODS_MEMBER_BALANCE] 开始执行(2/9)，窗口[2025-07-31 06:00:00+08:00 ~ 2025-08-30 06:00:00+08:00]
[stderr] [2026-03-07 05:18:09] INFO  | etl_billiards | [ODS_MEMBER_BALANCE] early-cutoff 保护生效，软删除窗口起点从 2025-07-31 06:00:00+08:00 收窄至 2025-12-06 16:49:48+08:00
[stderr] [2026-03-07 05:18:09] INFO  | etl_billiards | [ODS_MEMBER_BALANCE] 完成(2/9)，已处理 60/251.17 天
[stderr] [2026-03-07 05:18:09] INFO  | etl_billiards | [ODS_MEMBER_BALANCE] 开始执行(3/9)，窗口[2025-08-30 06:00:00+08:00 ~ 2025-09-29 06:00:00+08:00]
[stderr] [2026-03-07 05:18:09] INFO  | etl_billiards | [ODS_MEMBER_BALANCE] early-cutoff 保护生效，软删除窗口起点从 2025-08-30 06:00:00+08:00 收窄至 2025-12-06 16:49:48+08:00
[stderr] [2026-03-07 05:18:09] INFO  | etl_billiards | [ODS_MEMBER_BALANCE] 完成(3/9)，已处理 90/251.17 天
[stderr] [2026-03-07 05:18:09] INFO  | etl_billiards | [ODS_MEMBER_BALANCE] 开始执行(4/9)，窗口[2025-09-29 06:00:00+08:00 ~ 2025-10-29 06:00:00+08:00]
[stderr] [2026-03-07 05:18:09] INFO  | etl_billiards | [ODS_MEMBER_BALANCE] early-cutoff 保护生效，软删除窗口起点从 2025-09-29 06:00:00+08:00 收窄至 2025-12-06 16:49:48+08:00
[stderr] [2026-03-07 05:18:09] INFO  | etl_billiards | [ODS_MEMBER_BALANCE] 完成(4/9)，已处理 120/251.17 天
[stderr] [2026-03-07 05:18:09] INFO  | etl_billiards | [ODS_MEMBER_BALANCE] 开始执行(5/9)，窗口[2025-10-29 06:00:00+08:00 ~ 2025-11-28 06:00:00+08:00]
[stderr] [2026-03-07 05:18:09] INFO  | etl_billiards | [ODS_MEMBER_BALANCE] early-cutoff 保护生效，软删除窗口起点从 2025-10-29 06:00:00+08:00 收窄至 2025-12-06 16:49:48+08:00
[stderr] [2026-03-07 05:18:09] INFO  | etl_billiards | [ODS_MEMBER_BALANCE] 完成(5/9)，已处理 150/251.17 天
[stderr] [2026-03-07 05:18:09] INFO  | etl_billiards | [ODS_MEMBER_BALANCE] 开始执行(6/9)，窗口[2025-11-28 06:00:00+08:00 ~ 2025-12-28 06:00:00+08:00]
[stderr] [2026-03-07 05:18:09] INFO  | etl_billiards | [ODS_MEMBER_BALANCE] early-cutoff 保护生效，软删除窗口起点从 2025-11-28 06:00:00+08:00 收窄至 2025-12-06 16:49:48+08:00
[stderr] [2026-03-07 05:18:09] INFO  | etl_billiards | [ODS_MEMBER_BALANCE] 完成(6/9)，已处理 180/251.17 天
[stderr] [2026-03-07 05:18:09] INFO  | etl_billiards | [ODS_MEMBER_BALANCE] 开始执行(7/9)，窗口[2025-12-28 06:00:00+08:00 ~ 2026-01-27 06:00:00+08:00]
[stderr] [2026-03-07 05:18:09] INFO  | etl_billiards | [ODS_MEMBER_BALANCE] 完成(7/9)，已处理 210/251.17 天
[stderr] [2026-03-07 05:18:09] INFO  | etl_billiards | [ODS_MEMBER_BALANCE] 开始执行(8/9)，窗口[2026-01-27 06:00:00+08:00 ~ 2026-02-26 06:00:00+08:00]
[stderr] [2026-03-07 05:18:09] INFO  | etl_billiards | [ODS_MEMBER_BALANCE] 完成(8/9)，已处理 240/251.17 天
[stderr] [2026-03-07 05:18:09] INFO  | etl_billiards | [ODS_MEMBER_BALANCE] 开始执行(9/9)，窗口[2026-02-26 06:00:00+08:00 ~ 2026-03-09 10:00:00+08:00]
[stderr] [2026-03-07 05:18:09] INFO  | etl_billiards | [ODS_MEMBER_BALANCE] late-cutoff 保护生效，软删除窗口终点从 2026-03-09 10:00:00+08:00 收窄至 2026-03-07 02:04:06+08:00
[stderr] [2026-03-07 05:18:09] INFO  | etl_billiards | [ODS_MEMBER_BALANCE] 完成(9/9)，已处理 251.17/251.17 天
[stderr] [2026-03-07 05:18:09] INFO  | etl_billiards | [ODS_MEMBER_BALANCE] ODS 任务完成: {'fetched': 15606, 'inserted': 0, 'updated': 15606, 'skipped': 0, 'errors': 0, 'deleted': 0}
[stderr] [2026-03-07 05:18:09] INFO  | etl_billiards | ODS_RECHARGE_SETTLE: ODS fetch+load start, dir=C:\NeoZQYY\export\ETL-Connectors\feiqiu\JSON\ODS_RECHARGE_SETTLE\ODS_RECHARGE_SETTLE-10108-20260307-051809
[stderr] [2026-03-07 05:18:09] INFO  | etl_billiards | 开始执行ODS_RECHARGE_SETTLE (ODS)
[stderr] [2026-03-07 05:18:09] INFO  | etl_billiards | ODS_RECHARGE_SETTLE: 窗口拆分为 9 段（共 251.17 天）
[stderr] [2026-03-07 05:18:09] INFO  | etl_billiards | ODS_RECHARGE_SETTLE: 开始执行(1/9)，窗口[2025-07-01 06:00:00+08:00 ~ 2025-07-31 06:00:00+08:00]
[stderr] [2026-03-07 05:18:11] INFO  | etl_billiards | 管道执行摘要: status=SUCCESS, 总耗时=1.3s [请求=1.0s, 处理=0.0s, 写入=0.3s], 请求=1/1, 获取=43, 写入(inserted=0, updated=43, skipped=0), 失败(request=0, process=0, write=0)
[stderr] [2026-03-07 05:18:11] INFO  | etl_billiards | ODS_RECHARGE_SETTLE: 完成(1/9)，已处理 30/251.17 天
[stderr] [2026-03-07 05:18:11] INFO  | etl_billiards | ODS_RECHARGE_SETTLE: 开始执行(2/9)，窗口[2025-07-31 06:00:00+08:00 ~ 2025-08-30 06:00:00+08:00]
[stderr] [2026-03-07 05:18:14] INFO  | etl_billiards | 管道执行摘要: status=SUCCESS, 总耗时=2.8s [请求=2.3s, 处理=0.0s, 写入=0.6s], 请求=1/1, 获取=88, 写入(inserted=0, updated=88, skipped=0), 失败(request=0, process=0, write=0)
[stderr] [2026-03-07 05:18:14] INFO  | etl_billiards | ODS_RECHARGE_SETTLE: 完成(2/9)，已处理 60/251.17 天
[stderr] [2026-03-07 05:18:14] INFO  | etl_billiards | ODS_RECHARGE_SETTLE: 开始执行(3/9)，窗口[2025-08-30 06:00:00+08:00 ~ 2025-09-29 06:00:00+08:00]
[stderr] [2026-03-07 05:18:17] INFO  | etl_billiards | 管道执行摘要: status=SUCCESS, 总耗时=3.0s [请求=2.5s, 处理=0.0s, 写入=0.6s], 请求=1/1, 获取=59, 写入(inserted=0, updated=59, skipped=0), 失败(request=0, process=0, write=0)
[stderr] [2026-03-07 05:18:17] INFO  | etl_billiards | ODS_RECHARGE_SETTLE: 完成(3/9)，已处理 90/251.17 天
[stderr] [2026-03-07 05:18:17] INFO  | etl_billiards | ODS_RECHARGE_SETTLE: 开始执行(4/9)，窗口[2025-09-29 06:00:00+08:00 ~ 2025-10-29 06:00:00+08:00]
[stderr] [2026-03-07 05:18:18] INFO  | etl_billiards | 管道执行摘要: status=SUCCESS, 总耗时=1.4s [请求=1.1s, 处理=0.0s, 写入=0.3s], 请求=1/1, 获取=50, 写入(inserted=0, updated=50, skipped=0), 失败(request=0, process=0, write=0)
[stderr] [2026-03-07 05:18:18] INFO  | etl_billiards | ODS_RECHARGE_SETTLE: 完成(4/9)，已处理 120/251.17 天
[stderr] [2026-03-07 05:18:18] INFO  | etl_billiards | ODS_RECHARGE_SETTLE: 开始执行(5/9)，窗口[2025-10-29 06:00:00+08:00 ~ 2025-11-28 06:00:00+08:00]
[stderr] [2026-03-07 05:18:21] INFO  | etl_billiards | 管道执行摘要: status=SUCCESS, 总耗时=2.5s [请求=1.9s, 处理=0.0s, 写入=0.5s], 请求=1/1, 获取=79, 写入(inserted=0, updated=79, skipped=0), 失败(request=0, process=0, write=0)
[stderr] [2026-03-07 05:18:21] INFO  | etl_billiards | ODS_RECHARGE_SETTLE: 完成(5/9)，已处理 150/251.17 天
[stderr] [2026-03-07 05:18:21] INFO  | etl_billiards | ODS_RECHARGE_SETTLE: 开始执行(6/9)，窗口[2025-11-28 06:00:00+08:00 ~ 2025-12-28 06:00:00+08:00]
[stderr] [2026-03-07 05:18:25] INFO  | etl_billiards | 管道执行摘要: status=SUCCESS, 总耗时=3.9s [请求=2.5s, 处理=0.0s, 写入=1.4s], 请求=2/2, 获取=60, 写入(inserted=0, updated=60, skipped=0), 失败(request=0, process=0, write=0)
[stderr] [2026-03-07 05:18:25] INFO  | etl_billiards | ODS_RECHARGE_SETTLE: 完成(6/9)，已处理 180/251.17 天
[stderr] [2026-03-07 05:18:25] INFO  | etl_billiards | ODS_RECHARGE_SETTLE: 开始执行(7/9)，窗口[2025-12-28 06:00:00+08:00 ~ 2026-01-27 06:00:00+08:00]
[stderr] [2026-03-07 05:18:27] INFO  | etl_billiards | 管道执行摘要: status=SUCCESS, 总耗时=1.5s [请求=0.7s, 处理=0.0s, 写入=0.7s], 请求=1/1, 获取=67, 写入(inserted=0, updated=67, skipped=0), 失败(request=0, process=0, write=0)
[stderr] [2026-03-07 05:18:27] INFO  | etl_billiards | ODS_RECHARGE_SETTLE: 完成(7/9)，已处理 210/251.17 天
[stderr] [2026-03-07 05:18:27] INFO  | etl_billiards | ODS_RECHARGE_SETTLE: 开始执行(8/9)，窗口[2026-01-27 06:00:00+08:00 ~ 2026-02-26 06:00:00+08:00]
[stderr] [2026-03-07 05:18:28] INFO  | etl_billiards | 管道执行摘要: status=SUCCESS, 总耗时=1.6s [请求=1.1s, 处理=0.0s, 写入=0.5s], 请求=1/1, 获取=28, 写入(inserted=0, updated=28, skipped=0), 失败(request=0, process=0, write=0)
[stderr] [2026-03-07 05:18:28] INFO  | etl_billiards | ODS_RECHARGE_SETTLE: 完成(8/9)，已处理 240/251.17 天
[stderr] [2026-03-07 05:18:28] INFO  | etl_billiards | ODS_RECHARGE_SETTLE: 开始执行(9/9)，窗口[2026-02-26 06:00:00+08:00 ~ 2026-03-09 10:00:00+08:00]
[stderr] [2026-03-07 05:18:31] INFO  | etl_billiards | 管道执行摘要: status=SUCCESS, 总耗时=2.8s [请求=2.4s, 处理=0.0s, 写入=0.3s], 请求=1/1, 获取=7, 写入(inserted=0, updated=7, skipped=0), 失败(request=0, process=0, write=0)
[stderr] [2026-03-07 05:18:31] INFO  | etl_billiards | ODS_RECHARGE_SETTLE: 完成(9/9)，已处理 251.17/251.17 天
[stderr] [2026-03-07 05:18:31] INFO  | etl_billiards | ODS_RECHARGE_SETTLE ODS 任务完成: {'fetched': 481, 'inserted': 0, 'updated': 481, 'skipped': 0, 'errors': 0, 'deleted': 0}
[stderr] [2026-03-07 05:18:31] INFO  | etl_billiards | [ODS_RECHARGE_SETTLE] 开始执行ODS_RECHARGE_SETTLE (ODS)
[stderr] [2026-03-07 05:18:31] INFO  | etl_billiards | [ODS_RECHARGE_SETTLE] 窗口拆分为 9 段（共 251.17 天）
[stderr] [2026-03-07 05:18:31] INFO  | etl_billiards | [ODS_RECHARGE_SETTLE] 开始执行(1/9)，窗口[2025-07-01 06:00:00+08:00 ~ 2025-07-31 06:00:00+08:00]
[stderr] [2026-03-07 05:18:31] INFO  | etl_billiards | [ODS_RECHARGE_SETTLE] 完成(1/9)，已处理 30/251.17 天
[stderr] [2026-03-07 05:18:31] INFO  | etl_billiards | [ODS_RECHARGE_SETTLE] 开始执行(2/9)，窗口[2025-07-31 06:00:00+08:00 ~ 2025-08-30 06:00:00+08:00]
[stderr] [2026-03-07 05:18:31] INFO  | etl_billiards | [ODS_RECHARGE_SETTLE] 完成(2/9)，已处理 60/251.17 天
[stderr] [2026-03-07 05:18:31] INFO  | etl_billiards | [ODS_RECHARGE_SETTLE] 开始执行(3/9)，窗口[2025-08-30 06:00:00+08:00 ~ 2025-09-29 06:00:00+08:00]
[stderr] [2026-03-07 05:18:31] INFO  | etl_billiards | [ODS_RECHARGE_SETTLE] 完成(3/9)，已处理 90/251.17 天
[stderr] [2026-03-07 05:18:31] INFO  | etl_billiards | [ODS_RECHARGE_SETTLE] 开始执行(4/9)，窗口[2025-09-29 06:00:00+08:00 ~ 2025-10-29 06:00:00+08:00]
[stderr] [2026-03-07 05:18:31] INFO  | etl_billiards | [ODS_RECHARGE_SETTLE] 完成(4/9)，已处理 120/251.17 天
[stderr] [2026-03-07 05:18:31] INFO  | etl_billiards | [ODS_RECHARGE_SETTLE] 开始执行(5/9)，窗口[2025-10-29 06:00:00+08:00 ~ 2025-11-28 06:00:00+08:00]
[stderr] [2026-03-07 05:18:31] INFO  | etl_billiards | [ODS_RECHARGE_SETTLE] 完成(5/9)，已处理 150/251.17 天
[stderr] [2026-03-07 05:18:31] INFO  | etl_billiards | [ODS_RECHARGE_SETTLE] 开始执行(6/9)，窗口[2025-11-28 06:00:00+08:00 ~ 2025-12-28 06:00:00+08:00]
[stderr] [2026-03-07 05:18:31] INFO  | etl_billiards | [ODS_RECHARGE_SETTLE] 完成(6/9)，已处理 180/251.17 天
[stderr] [2026-03-07 05:18:31] INFO  | etl_billiards | [ODS_RECHARGE_SETTLE] 开始执行(7/9)，窗口[2025-12-28 06:00:00+08:00 ~ 2026-01-27 06:00:00+08:00]
[stderr] [2026-03-07 05:18:31] INFO  | etl_billiards | [ODS_RECHARGE_SETTLE] 完成(7/9)，已处理 210/251.17 天
[stderr] [2026-03-07 05:18:31] INFO  | etl_billiards | [ODS_RECHARGE_SETTLE] 开始执行(8/9)，窗口[2026-01-27 06:00:00+08:00 ~ 2026-02-26 06:00:00+08:00]
[stderr] [2026-03-07 05:18:31] INFO  | etl_billiards | [ODS_RECHARGE_SETTLE] 完成(8/9)，已处理 240/251.17 天
[stderr] [2026-03-07 05:18:31] INFO  | etl_billiards | [ODS_RECHARGE_SETTLE] 开始执行(9/9)，窗口[2026-02-26 06:00:00+08:00 ~ 2026-03-09 10:00:00+08:00]
[stderr] [2026-03-07 05:18:31] INFO  | etl_billiards | [ODS_RECHARGE_SETTLE] 完成(9/9)，已处理 251.17/251.17 天
[stderr] [2026-03-07 05:18:31] INFO  | etl_billiards | [ODS_RECHARGE_SETTLE] ODS 任务完成: {'fetched': 481, 'inserted': 0, 'updated': 481, 'skipped': 0, 'errors': 0, 'deleted': 0}
[stderr] [2026-03-07 05:18:32] INFO  | etl_billiards | ODS_GOODS_CATEGORY: ODS fetch+load start, dir=C:\NeoZQYY\export\ETL-Connectors\feiqiu\JSON\ODS_GOODS_CATEGORY\ODS_GOODS_CATEGORY-10109-20260307-051832
[stderr] [2026-03-07 05:18:32] INFO  | etl_billiards | 开始执行ODS_GOODS_CATEGORY (ODS)
[stderr] [2026-03-07 05:18:32] INFO  | etl_billiards | ODS_GOODS_CATEGORY: 窗口拆分为 9 段（共 251.17 天）
[stderr] [2026-03-07 05:18:32] INFO  | etl_billiards | ODS_GOODS_CATEGORY: 开始执行(1/9)，窗口[2025-07-01 06:00:00+08:00 ~ 2025-07-31 06:00:00+08:00]
[stderr] [2026-03-07 05:18:34] INFO  | etl_billiards | 管道执行摘要: status=SUCCESS, 总耗时=1.4s [请求=1.3s, 处理=0.0s, 写入=0.1s], 请求=1/1, 获取=9, 写入(inserted=0, updated=9, skipped=0), 失败(request=0, process=0, write=0)
[stderr] [2026-03-07 05:18:34] INFO  | etl_billiards | ODS_GOODS_CATEGORY: 完成(1/9)，已处理 30/251.17 天
[stderr] [2026-03-07 05:18:34] INFO  | etl_billiards | ODS_GOODS_CATEGORY: 开始执行(2/9)，窗口[2025-07-31 06:00:00+08:00 ~ 2025-08-30 06:00:00+08:00]
[stderr] [2026-03-07 05:18:34] INFO  | etl_billiards | 管道执行摘要: status=SUCCESS, 总耗时=0.7s [请求=0.5s, 处理=0.0s, 写入=0.2s], 请求=1/1, 获取=9, 写入(inserted=0, updated=9, skipped=0), 失败(request=0, process=0, write=0)
[stderr] [2026-03-07 05:18:35] INFO  | etl_billiards | ODS_GOODS_CATEGORY: 完成(2/9)，已处理 60/251.17 天
[stderr] [2026-03-07 05:18:35] INFO  | etl_billiards | ODS_GOODS_CATEGORY: 开始执行(3/9)，窗口[2025-08-30 06:00:00+08:00 ~ 2025-09-29 06:00:00+08:00]
[stderr] [2026-03-07 05:18:37] INFO  | etl_billiards | 管道执行摘要: status=SUCCESS, 总耗时=2.3s [请求=2.0s, 处理=0.0s, 写入=0.3s], 请求=1/1, 获取=9, 写入(inserted=0, updated=9, skipped=0), 失败(request=0, process=0, write=0)
[stderr] [2026-03-07 05:18:37] INFO  | etl_billiards | ODS_GOODS_CATEGORY: 完成(3/9)，已处理 90/251.17 天
[stderr] [2026-03-07 05:18:37] INFO  | etl_billiards | ODS_GOODS_CATEGORY: 开始执行(4/9)，窗口[2025-09-29 06:00:00+08:00 ~ 2025-10-29 06:00:00+08:00]
[stderr] [2026-03-07 05:18:38] INFO  | etl_billiards | 管道执行摘要: status=SUCCESS, 总耗时=1.3s [请求=0.8s, 处理=0.0s, 写入=0.3s], 请求=1/1, 获取=9, 写入(inserted=0, updated=9, skipped=0), 失败(request=0, process=0, write=0)
[stderr] [2026-03-07 05:18:38] INFO  | etl_billiards | ODS_GOODS_CATEGORY: 完成(4/9)，已处理 120/251.17 天
[stderr] [2026-03-07 05:18:38] INFO  | etl_billiards | ODS_GOODS_CATEGORY: 开始执行(5/9)，窗口[2025-10-29 06:00:00+08:00 ~ 2025-11-28 06:00:00+08:00]
[stderr] [2026-03-07 05:18:40] INFO  | etl_billiards | 管道执行摘要: status=SUCCESS, 总耗时=1.5s [请求=0.8s, 处理=0.0s, 写入=0.6s], 请求=1/1, 获取=9, 写入(inserted=0, updated=9, skipped=0), 失败(request=0, process=0, write=0)
[stderr] [2026-03-07 05:18:40] INFO  | etl_billiards | ODS_GOODS_CATEGORY: 完成(5/9)，已处理 150/251.17 天
[stderr] [2026-03-07 05:18:40] INFO  | etl_billiards | ODS_GOODS_CATEGORY: 开始执行(6/9)，窗口[2025-11-28 06:00:00+08:00 ~ 2025-12-28 06:00:00+08:00]
[stderr] [2026-03-07 05:18:42] INFO  | etl_billiards | 管道执行摘要: status=SUCCESS, 总耗时=2.5s [请求=2.1s, 处理=0.0s, 写入=0.3s], 请求=1/1, 获取=9, 写入(inserted=0, updated=9, skipped=0), 失败(request=0, process=0, write=0)
[stderr] [2026-03-07 05:18:43] INFO  | etl_billiards | ODS_GOODS_CATEGORY: 完成(6/9)，已处理 180/251.17 天
[stderr] [2026-03-07 05:18:43] INFO  | etl_billiards | ODS_GOODS_CATEGORY: 开始执行(7/9)，窗口[2025-12-28 06:00:00+08:00 ~ 2026-01-27 06:00:00+08:00]
[stderr] [2026-03-07 05:18:44] INFO  | etl_billiards | 管道执行摘要: status=SUCCESS, 总耗时=1.3s [请求=1.0s, 处理=0.0s, 写入=0.2s], 请求=1/1, 获取=9, 写入(inserted=0, updated=9, skipped=0), 失败(request=0, process=0, write=0)
[stderr] [2026-03-07 05:18:44] INFO  | etl_billiards | ODS_GOODS_CATEGORY: 完成(7/9)，已处理 210/251.17 天
[stderr] [2026-03-07 05:18:44] INFO  | etl_billiards | ODS_GOODS_CATEGORY: 开始执行(8/9)，窗口[2026-01-27 06:00:00+08:00 ~ 2026-02-26 06:00:00+08:00]
[stderr] [2026-03-07 05:18:46] INFO  | etl_billiards | 管道执行摘要: status=SUCCESS, 总耗时=1.9s [请求=1.7s, 处理=0.0s, 写入=0.2s], 请求=1/1, 获取=9, 写入(inserted=0, updated=9, skipped=0), 失败(request=0, process=0, write=0)
[stderr] [2026-03-07 05:18:46] INFO  | etl_billiards | ODS_GOODS_CATEGORY: 完成(8/9)，已处理 240/251.17 天
[stderr] [2026-03-07 05:18:46] INFO  | etl_billiards | ODS_GOODS_CATEGORY: 开始执行(9/9)，窗口[2026-02-26 06:00:00+08:00 ~ 2026-03-09 10:00:00+08:00]
[stderr] [2026-03-07 05:18:47] INFO  | etl_billiards | 管道执行摘要: status=SUCCESS, 总耗时=0.9s [请求=0.7s, 处理=0.0s, 写入=0.2s], 请求=1/1, 获取=9, 写入(inserted=0, updated=9, skipped=0), 失败(request=0, process=0, write=0)
[stderr] [2026-03-07 05:18:47] INFO  | etl_billiards | ODS_GOODS_CATEGORY: 完成(9/9)，已处理 251.17/251.17 天
[stderr] [2026-03-07 05:18:47] INFO  | etl_billiards | ODS_GOODS_CATEGORY ODS 任务完成: {'fetched': 81, 'inserted': 0, 'updated': 81, 'skipped': 0, 'errors': 0, 'deleted': 0}
[stderr] [2026-03-07 05:18:47] INFO  | etl_billiards | [ODS_GOODS_CATEGORY] 开始执行ODS_GOODS_CATEGORY (ODS)
[stderr] [2026-03-07 05:18:47] INFO  | etl_billiards | [ODS_GOODS_CATEGORY] 窗口拆分为 9 段（共 251.17 天）
[stderr] [2026-03-07 05:18:47] INFO  | etl_billiards | [ODS_GOODS_CATEGORY] 开始执行(1/9)，窗口[2025-07-01 06:00:00+08:00 ~ 2025-07-31 06:00:00+08:00]
[stderr] [2026-03-07 05:18:47] INFO  | etl_billiards | [ODS_GOODS_CATEGORY] 完成(1/9)，已处理 30/251.17 天
[stderr] [2026-03-07 05:18:47] INFO  | etl_billiards | [ODS_GOODS_CATEGORY] 开始执行(2/9)，窗口[2025-07-31 06:00:00+08:00 ~ 2025-08-30 06:00:00+08:00]
[stderr] [2026-03-07 05:18:47] INFO  | etl_billiards | [ODS_GOODS_CATEGORY] 完成(2/9)，已处理 60/251.17 天
[stderr] [2026-03-07 05:18:47] INFO  | etl_billiards | [ODS_GOODS_CATEGORY] 开始执行(3/9)，窗口[2025-08-30 06:00:00+08:00 ~ 2025-09-29 06:00:00+08:00]
[stderr] [2026-03-07 05:18:47] INFO  | etl_billiards | [ODS_GOODS_CATEGORY] 完成(3/9)，已处理 90/251.17 天
[stderr] [2026-03-07 05:18:47] INFO  | etl_billiards | [ODS_GOODS_CATEGORY] 开始执行(4/9)，窗口[2025-09-29 06:00:00+08:00 ~ 2025-10-29 06:00:00+08:00]
[stderr] [2026-03-07 05:18:47] INFO  | etl_billiards | [ODS_GOODS_CATEGORY] 完成(4/9)，已处理 120/251.17 天
[stderr] [2026-03-07 05:18:47] INFO  | etl_billiards | [ODS_GOODS_CATEGORY] 开始执行(5/9)，窗口[2025-10-29 06:00:00+08:00 ~ 2025-11-28 06:00:00+08:00]
[stderr] [2026-03-07 05:18:47] INFO  | etl_billiards | [ODS_GOODS_CATEGORY] 完成(5/9)，已处理 150/251.17 天
[stderr] [2026-03-07 05:18:47] INFO  | etl_billiards | [ODS_GOODS_CATEGORY] 开始执行(6/9)，窗口[2025-11-28 06:00:00+08:00 ~ 2025-12-28 06:00:00+08:00]
[stderr] [2026-03-07 05:18:47] INFO  | etl_billiards | [ODS_GOODS_CATEGORY] 完成(6/9)，已处理 180/251.17 天
[stderr] [2026-03-07 05:18:47] INFO  | etl_billiards | [ODS_GOODS_CATEGORY] 开始执行(7/9)，窗口[2025-12-28 06:00:00+08:00 ~ 2026-01-27 06:00:00+08:00]
[stderr] [2026-03-07 05:18:47] INFO  | etl_billiards | [ODS_GOODS_CATEGORY] 完成(7/9)，已处理 210/251.17 天
[stderr] [2026-03-07 05:18:47] INFO  | etl_billiards | [ODS_GOODS_CATEGORY] 开始执行(8/9)，窗口[2026-01-27 06:00:00+08:00 ~ 2026-02-26 06:00:00+08:00]
[stderr] [2026-03-07 05:18:47] INFO  | etl_billiards | [ODS_GOODS_CATEGORY] 完成(8/9)，已处理 240/251.17 天
[stderr] [2026-03-07 05:18:47] INFO  | etl_billiards | [ODS_GOODS_CATEGORY] 开始执行(9/9)，窗口[2026-02-26 06:00:00+08:00 ~ 2026-03-09 10:00:00+08:00]
[stderr] [2026-03-07 05:18:47] INFO  | etl_billiards | [ODS_GOODS_CATEGORY] 完成(9/9)，已处理 251.17/251.17 天
[stderr] [2026-03-07 05:18:47] INFO  | etl_billiards | [ODS_GOODS_CATEGORY] ODS 任务完成: {'fetched': 81, 'inserted': 0, 'updated': 81, 'skipped': 0, 'errors': 0, 'deleted': 0}
[stderr] [2026-03-07 05:18:48] INFO  | etl_billiards | ODS_STORE_GOODS: ODS fetch+load start, dir=C:\NeoZQYY\export\ETL-Connectors\feiqiu\JSON\ODS_STORE_GOODS\ODS_STORE_GOODS-10110-20260307-051848
[stderr] [2026-03-07 05:18:48] INFO  | etl_billiards | 开始执行ODS_STORE_GOODS (ODS)
[stderr] [2026-03-07 05:18:48] INFO  | etl_billiards | ODS_STORE_GOODS: 窗口拆分为 9 段（共 251.17 天）
[stderr] [2026-03-07 05:18:48] INFO  | etl_billiards | ODS_STORE_GOODS: 开始执行(1/9)，窗口[2025-07-01 06:00:00+08:00 ~ 2025-07-31 06:00:00+08:00]
[stderr] [2026-03-07 05:18:51] INFO  | etl_billiards | 管道执行摘要: status=SUCCESS, 总耗时=3.0s [请求=2.4s, 处理=0.0s, 写入=0.3s], 请求=1/1, 获取=173, 写入(inserted=0, updated=173, skipped=0), 失败(request=0, process=0, write=0)
[stderr] [2026-03-07 05:18:52] INFO  | etl_billiards | ODS_STORE_GOODS: 完成(1/9)，已处理 30/251.17 天
[stderr] [2026-03-07 05:18:52] INFO  | etl_billiards | ODS_STORE_GOODS: 开始执行(2/9)，窗口[2025-07-31 06:00:00+08:00 ~ 2025-08-30 06:00:00+08:00]
[stderr] [2026-03-07 05:18:53] INFO  | etl_billiards | 管道执行摘要: status=SUCCESS, 总耗时=1.4s [请求=1.2s, 处理=0.0s, 写入=0.2s], 请求=1/1, 获取=173, 写入(inserted=0, updated=173, skipped=0), 失败(request=0, process=0, write=0)
[stderr] [2026-03-07 05:18:53] INFO  | etl_billiards | ODS_STORE_GOODS: 完成(2/9)，已处理 60/251.17 天
[stderr] [2026-03-07 05:18:53] INFO  | etl_billiards | ODS_STORE_GOODS: 开始执行(3/9)，窗口[2025-08-30 06:00:00+08:00 ~ 2025-09-29 06:00:00+08:00]
[stderr] [2026-03-07 05:18:55] INFO  | etl_billiards | 管道执行摘要: status=SUCCESS, 总耗时=1.7s [请求=1.1s, 处理=0.0s, 写入=0.6s], 请求=1/1, 获取=173, 写入(inserted=0, updated=173, skipped=0), 失败(request=0, process=0, write=0)
[stderr] [2026-03-07 05:18:55] INFO  | etl_billiards | ODS_STORE_GOODS: 完成(3/9)，已处理 90/251.17 天
[stderr] [2026-03-07 05:18:55] INFO  | etl_billiards | ODS_STORE_GOODS: 开始执行(4/9)，窗口[2025-09-29 06:00:00+08:00 ~ 2025-10-29 06:00:00+08:00]
[stderr] [2026-03-07 05:18:57] INFO  | etl_billiards | 管道执行摘要: status=SUCCESS, 总耗时=2.3s [请求=1.9s, 处理=0.0s, 写入=0.3s], 请求=1/1, 获取=173, 写入(inserted=0, updated=173, skipped=0), 失败(request=0, process=0, write=0)
[stderr] [2026-03-07 05:18:58] INFO  | etl_billiards | ODS_STORE_GOODS: 完成(4/9)，已处理 120/251.17 天
[stderr] [2026-03-07 05:18:58] INFO  | etl_billiards | ODS_STORE_GOODS: 开始执行(5/9)，窗口[2025-10-29 06:00:00+08:00 ~ 2025-11-28 06:00:00+08:00]
[stderr] [2026-03-07 05:18:59] INFO  | etl_billiards | 管道执行摘要: status=SUCCESS, 总耗时=1.7s [请求=1.5s, 处理=0.0s, 写入=0.2s], 请求=1/1, 获取=173, 写入(inserted=0, updated=173, skipped=0), 失败(request=0, process=0, write=0)
[stderr] [2026-03-07 05:18:59] INFO  | etl_billiards | ODS_STORE_GOODS: 完成(5/9)，已处理 150/251.17 天
[stderr] [2026-03-07 05:18:59] INFO  | etl_billiards | ODS_STORE_GOODS: 开始执行(6/9)，窗口[2025-11-28 06:00:00+08:00 ~ 2025-12-28 06:00:00+08:00]
[stderr] [2026-03-07 05:19:01] INFO  | etl_billiards | 管道执行摘要: status=SUCCESS, 总耗时=1.7s [请求=1.5s, 处理=0.0s, 写入=0.2s], 请求=1/1, 获取=173, 写入(inserted=0, updated=173, skipped=0), 失败(request=0, process=0, write=0)
[stderr] [2026-03-07 05:19:01] INFO  | etl_billiards | ODS_STORE_GOODS: 完成(6/9)，已处理 180/251.17 天
[stderr] [2026-03-07 05:19:01] INFO  | etl_billiards | ODS_STORE_GOODS: 开始执行(7/9)，窗口[2025-12-28 06:00:00+08:00 ~ 2026-01-27 06:00:00+08:00]
[stderr] [2026-03-07 05:19:04] INFO  | etl_billiards | 管道执行摘要: status=SUCCESS, 总耗时=2.5s [请求=2.2s, 处理=0.0s, 写入=0.3s], 请求=1/1, 获取=173, 写入(inserted=0, updated=173, skipped=0), 失败(request=0, process=0, write=0)
[stderr] [2026-03-07 05:19:04] INFO  | etl_billiards | ODS_STORE_GOODS: 完成(7/9)，已处理 210/251.17 天
[stderr] [2026-03-07 05:19:04] INFO  | etl_billiards | ODS_STORE_GOODS: 开始执行(8/9)，窗口[2026-01-27 06:00:00+08:00 ~ 2026-02-26 06:00:00+08:00]
[stderr] [2026-03-07 05:19:07] INFO  | etl_billiards | 管道执行摘要: status=SUCCESS, 总耗时=3.5s [请求=2.2s, 处理=0.0s, 写入=1.3s], 请求=1/1, 获取=173, 写入(inserted=0, updated=173, skipped=0), 失败(request=0, process=0, write=0)
[stderr] [2026-03-07 05:19:08] INFO  | etl_billiards | ODS_STORE_GOODS: 完成(8/9)，已处理 240/251.17 天
[stderr] [2026-03-07 05:19:08] INFO  | etl_billiards | ODS_STORE_GOODS: 开始执行(9/9)，窗口[2026-02-26 06:00:00+08:00 ~ 2026-03-09 10:00:00+08:00]
[stderr] [2026-03-07 05:19:11] INFO  | etl_billiards | 管道执行摘要: status=SUCCESS, 总耗时=2.8s [请求=2.2s, 处理=0.0s, 写入=0.2s], 请求=1/1, 获取=173, 写入(inserted=0, updated=173, skipped=0), 失败(request=0, process=0, write=0)
[stderr] [2026-03-07 05:19:11] INFO  | etl_billiards | ODS_STORE_GOODS: 完成(9/9)，已处理 251.17/251.17 天
[stderr] [2026-03-07 05:19:11] INFO  | etl_billiards | ODS_STORE_GOODS ODS 任务完成: {'fetched': 1557, 'inserted': 0, 'updated': 1557, 'skipped': 0, 'errors': 0, 'deleted': 0}
[stderr] [2026-03-07 05:19:11] INFO  | etl_billiards | [ODS_STORE_GOODS] 开始执行ODS_STORE_GOODS (ODS)
[stderr] [2026-03-07 05:19:11] INFO  | etl_billiards | [ODS_STORE_GOODS] 窗口拆分为 9 段（共 251.17 天）
[stderr] [2026-03-07 05:19:11] INFO  | etl_billiards | [ODS_STORE_GOODS] 开始执行(1/9)，窗口[2025-07-01 06:00:00+08:00 ~ 2025-07-31 06:00:00+08:00]
[stderr] [2026-03-07 05:19:11] INFO  | etl_billiards | [ODS_STORE_GOODS] 完成(1/9)，已处理 30/251.17 天
[stderr] [2026-03-07 05:19:11] INFO  | etl_billiards | [ODS_STORE_GOODS] 开始执行(2/9)，窗口[2025-07-31 06:00:00+08:00 ~ 2025-08-30 06:00:00+08:00]
[stderr] [2026-03-07 05:19:11] INFO  | etl_billiards | [ODS_STORE_GOODS] 完成(2/9)，已处理 60/251.17 天
[stderr] [2026-03-07 05:19:11] INFO  | etl_billiards | [ODS_STORE_GOODS] 开始执行(3/9)，窗口[2025-08-30 06:00:00+08:00 ~ 2025-09-29 06:00:00+08:00]
[stderr] [2026-03-07 05:19:11] INFO  | etl_billiards | [ODS_STORE_GOODS] 完成(3/9)，已处理 90/251.17 天
[stderr] [2026-03-07 05:19:11] INFO  | etl_billiards | [ODS_STORE_GOODS] 开始执行(4/9)，窗口[2025-09-29 06:00:00+08:00 ~ 2025-10-29 06:00:00+08:00]
[stderr] [2026-03-07 05:19:11] INFO  | etl_billiards | [ODS_STORE_GOODS] 完成(4/9)，已处理 120/251.17 天
[stderr] [2026-03-07 05:19:11] INFO  | etl_billiards | [ODS_STORE_GOODS] 开始执行(5/9)，窗口[2025-10-29 06:00:00+08:00 ~ 2025-11-28 06:00:00+08:00]
[stderr] [2026-03-07 05:19:11] INFO  | etl_billiards | [ODS_STORE_GOODS] 完成(5/9)，已处理 150/251.17 天
[stderr] [2026-03-07 05:19:11] INFO  | etl_billiards | [ODS_STORE_GOODS] 开始执行(6/9)，窗口[2025-11-28 06:00:00+08:00 ~ 2025-12-28 06:00:00+08:00]
[stderr] [2026-03-07 05:19:11] INFO  | etl_billiards | [ODS_STORE_GOODS] 完成(6/9)，已处理 180/251.17 天
[stderr] [2026-03-07 05:19:11] INFO  | etl_billiards | [ODS_STORE_GOODS] 开始执行(7/9)，窗口[2025-12-28 06:00:00+08:00 ~ 2026-01-27 06:00:00+08:00]
[stderr] [2026-03-07 05:19:11] INFO  | etl_billiards | [ODS_STORE_GOODS] 完成(7/9)，已处理 210/251.17 天
[stderr] [2026-03-07 05:19:11] INFO  | etl_billiards | [ODS_STORE_GOODS] 开始执行(8/9)，窗口[2026-01-27 06:00:00+08:00 ~ 2026-02-26 06:00:00+08:00]
[stderr] [2026-03-07 05:19:11] INFO  | etl_billiards | [ODS_STORE_GOODS] 完成(8/9)，已处理 240/251.17 天
[stderr] [2026-03-07 05:19:11] INFO  | etl_billiards | [ODS_STORE_GOODS] 开始执行(9/9)，窗口[2026-02-26 06:00:00+08:00 ~ 2026-03-09 10:00:00+08:00]
[stderr] [2026-03-07 05:19:11] INFO  | etl_billiards | [ODS_STORE_GOODS] 完成(9/9)，已处理 251.17/251.17 天
[stderr] [2026-03-07 05:19:11] INFO  | etl_billiards | [ODS_STORE_GOODS] ODS 任务完成: {'fetched': 1557, 'inserted': 0, 'updated': 1557, 'skipped': 0, 'errors': 0, 'deleted': 0}
[stderr] [2026-03-07 05:19:11] INFO  | etl_billiards | ODS_STORE_GOODS_SALES: ODS fetch+load start, dir=C:\NeoZQYY\export\ETL-Connectors\feiqiu\JSON\ODS_STORE_GOODS_SALES\ODS_STORE_GOODS_SALES-10111-20260307-051911
[stderr] [2026-03-07 05:19:11] INFO  | etl_billiards | 开始执行ODS_STORE_GOODS_SALES (ODS)
[stderr] [2026-03-07 05:19:11] INFO  | etl_billiards | ODS_STORE_GOODS_SALES: 窗口拆分为 9 段（共 251.17 天）
[stderr] [2026-03-07 05:19:11] INFO  | etl_billiards | ODS_STORE_GOODS_SALES: 开始执行(1/9)，窗口[2025-07-01 06:00:00+08:00 ~ 2025-07-31 06:00:00+08:00]
[stderr] [2026-03-07 05:19:25] INFO  | etl_billiards | 管道执行摘要: status=SUCCESS, 总耗时=13.2s [请求=12.9s, 处理=0.0s, 写入=0.2s], 请求=8/8, 获取=1491, 写入(inserted=0, updated=1491, skipped=0), 失败(request=0, process=0, write=0)
[stderr] [2026-03-07 05:19:25] INFO  | etl_billiards | ODS_STORE_GOODS_SALES: early-cutoff 保护生效，软删除窗口起点从 2025-07-01 06:00:00+08:00 收窄至 2025-07-21 11:54:44+08:00
[stderr] [2026-03-07 05:19:25] INFO  | etl_billiards | ODS_STORE_GOODS_SALES: late-cutoff 保护生效，软删除窗口终点从 2025-07-31 06:00:00+08:00 收窄至 2025-07-31 03:48:02+08:00
[stderr] [2026-03-07 05:19:25] INFO  | etl_billiards | ODS_STORE_GOODS_SALES: 完成(1/9)，已处理 30/251.17 天
[stderr] [2026-03-07 05:19:25] INFO  | etl_billiards | ODS_STORE_GOODS_SALES: 开始执行(2/9)，窗口[2025-07-31 06:00:00+08:00 ~ 2025-08-30 06:00:00+08:00]
[stderr] [2026-03-07 05:19:51] INFO  | etl_billiards | 管道执行摘要: status=SUCCESS, 总耗时=25.6s [请求=25.5s, 处理=0.0s, 写入=0.2s], 请求=21/21, 获取=4139, 写入(inserted=0, updated=4139, skipped=0), 失败(request=0, process=0, write=0)
[stderr] [2026-03-07 05:19:51] INFO  | etl_billiards | ODS_STORE_GOODS_SALES: early-cutoff 保护生效，软删除窗口起点从 2025-07-31 06:00:00+08:00 收窄至 2025-07-31 15:02:27+08:00
[stderr] [2026-03-07 05:19:51] INFO  | etl_billiards | ODS_STORE_GOODS_SALES: late-cutoff 保护生效，软删除窗口终点从 2025-08-30 06:00:00+08:00 收窄至 2025-08-30 05:32:08+08:00
[stderr] [2026-03-07 05:19:51] INFO  | etl_billiards | ODS_STORE_GOODS_SALES: 完成(2/9)，已处理 60/251.17 天
[stderr] [2026-03-07 05:19:51] INFO  | etl_billiards | ODS_STORE_GOODS_SALES: 开始执行(3/9)，窗口[2025-08-30 06:00:00+08:00 ~ 2025-09-29 06:00:00+08:00]
[stderr] [2026-03-07 05:20:20] INFO  | etl_billiards | 管道执行摘要: status=SUCCESS, 总耗时=29.3s [请求=29.0s, 处理=0.0s, 写入=0.3s], 请求=20/20, 获取=3878, 写入(inserted=0, updated=3878, skipped=0), 失败(request=0, process=0, write=0)
[stderr] [2026-03-07 05:20:20] INFO  | etl_billiards | ODS_STORE_GOODS_SALES: early-cutoff 保护生效，软删除窗口起点从 2025-08-30 06:00:00+08:00 收窄至 2025-08-30 13:22:23+08:00
[stderr] [2026-03-07 05:20:20] INFO  | etl_billiards | ODS_STORE_GOODS_SALES: late-cutoff 保护生效，软删除窗口终点从 2025-09-29 06:00:00+08:00 收窄至 2025-09-29 02:21:06+08:00
[stderr] [2026-03-07 05:20:20] INFO  | etl_billiards | ODS_STORE_GOODS_SALES: 完成(3/9)，已处理 90/251.17 天
[stderr] [2026-03-07 05:20:20] INFO  | etl_billiards | ODS_STORE_GOODS_SALES: 开始执行(4/9)，窗口[2025-09-29 06:00:00+08:00 ~ 2025-10-29 06:00:00+08:00]
[stderr] [2026-03-07 05:20:44] INFO  | etl_billiards | 管道执行摘要: status=SUCCESS, 总耗时=24.1s [请求=23.8s, 处理=0.0s, 写入=0.2s], 请求=15/15, 获取=3203, 写入(inserted=0, updated=3203, skipped=0), 失败(request=0, process=0, write=0)
[stderr] [2026-03-07 05:20:44] INFO  | etl_billiards | ODS_STORE_GOODS_SALES: early-cutoff 保护生效，软删除窗口起点从 2025-09-29 06:00:00+08:00 收窄至 2025-09-29 09:20:01+08:00
[stderr] [2026-03-07 05:20:44] INFO  | etl_billiards | ODS_STORE_GOODS_SALES: late-cutoff 保护生效，软删除窗口终点从 2025-10-29 06:00:00+08:00 收窄至 2025-10-29 02:24:04+08:00
[stderr] [2026-03-07 05:20:45] INFO  | etl_billiards | ODS_STORE_GOODS_SALES: 完成(4/9)，已处理 120/251.17 天
[stderr] [2026-03-07 05:20:45] INFO  | etl_billiards | ODS_STORE_GOODS_SALES: 开始执行(5/9)，窗口[2025-10-29 06:00:00+08:00 ~ 2025-11-28 06:00:00+08:00]
[stderr] [2026-03-07 05:21:22] INFO  | etl_billiards | 管道执行摘要: status=SUCCESS, 总耗时=37.3s [请求=37.0s, 处理=0.0s, 写入=0.3s], 请求=21/21, 获取=4164, 写入(inserted=0, updated=4164, skipped=0), 失败(request=0, process=0, write=0)
[stderr] [2026-03-07 05:21:22] INFO  | etl_billiards | ODS_STORE_GOODS_SALES: early-cutoff 保护生效，软删除窗口起点从 2025-10-29 06:00:00+08:00 收窄至 2025-10-29 06:57:22+08:00
[stderr] [2026-03-07 05:21:22] INFO  | etl_billiards | ODS_STORE_GOODS_SALES: late-cutoff 保护生效，软删除窗口终点从 2025-11-28 06:00:00+08:00 收窄至 2025-11-28 04:07:19+08:00
[stderr] [2026-03-07 05:21:22] INFO  | etl_billiards | ODS_STORE_GOODS_SALES: 完成(5/9)，已处理 150/251.17 天
[stderr] [2026-03-07 05:21:22] INFO  | etl_billiards | ODS_STORE_GOODS_SALES: 开始执行(6/9)，窗口[2025-11-28 06:00:00+08:00 ~ 2025-12-28 06:00:00+08:00]
[stderr] [2026-03-07 05:21:48] INFO  | etl_billiards | 管道执行摘要: status=SUCCESS, 总耗时=26.0s [请求=25.4s, 处理=0.0s, 写入=0.7s], 请求=18/18, 获取=3473, 写入(inserted=0, updated=3473, skipped=0), 失败(request=0, process=0, write=0)
[stderr] [2026-03-07 05:21:48] INFO  | etl_billiards | ODS_STORE_GOODS_SALES: early-cutoff 保护生效，软删除窗口起点从 2025-11-28 06:00:00+08:00 收窄至 2025-11-28 12:13:44+08:00
[stderr] [2026-03-07 05:21:48] INFO  | etl_billiards | ODS_STORE_GOODS_SALES: late-cutoff 保护生效，软删除窗口终点从 2025-12-28 06:00:00+08:00 收窄至 2025-12-28 03:30:15+08:00
[stderr] [2026-03-07 05:21:52] INFO  | etl_billiards | ODS_STORE_GOODS_SALES: 完成(6/9)，已处理 180/251.17 天
[stderr] [2026-03-07 05:21:52] INFO  | etl_billiards | ODS_STORE_GOODS_SALES: 开始执行(7/9)，窗口[2025-12-28 06:00:00+08:00 ~ 2026-01-27 06:00:00+08:00]
[stderr] [2026-03-07 05:22:18] INFO  | etl_billiards | 管道执行摘要: status=SUCCESS, 总耗时=26.1s [请求=25.9s, 处理=0.0s, 写入=0.0s], 请求=19/19, 获取=3600, 写入(inserted=0, updated=3600, skipped=0), 失败(request=0, process=0, write=0)
[stderr] [2026-03-07 05:22:18] INFO  | etl_billiards | ODS_STORE_GOODS_SALES: early-cutoff 保护生效，软删除窗口起点从 2025-12-28 06:00:00+08:00 收窄至 2025-12-28 12:40:01+08:00
[stderr] [2026-03-07 05:22:18] INFO  | etl_billiards | ODS_STORE_GOODS_SALES: late-cutoff 保护生效，软删除窗口终点从 2026-01-27 06:00:00+08:00 收窄至 2026-01-27 03:59:52+08:00
[stderr] [2026-03-07 05:22:19] INFO  | etl_billiards | ODS_STORE_GOODS_SALES: 完成(7/9)，已处理 210/251.17 天
[stderr] [2026-03-07 05:22:19] INFO  | etl_billiards | ODS_STORE_GOODS_SALES: 开始执行(8/9)，窗口[2026-01-27 06:00:00+08:00 ~ 2026-02-26 06:00:00+08:00]
[stderr] [2026-03-07 05:22:37] INFO  | etl_billiards | 管道执行摘要: status=SUCCESS, 总耗时=18.3s [请求=16.5s, 处理=0.0s, 写入=1.5s], 请求=11/11, 获取=2000, 写入(inserted=0, updated=2000, skipped=0), 失败(request=0, process=0, write=0)
[stderr] [2026-03-07 05:22:37] INFO  | etl_billiards | ODS_STORE_GOODS_SALES: early-cutoff 保护生效，软删除窗口起点从 2026-01-27 06:00:00+08:00 收窄至 2026-01-27 06:05:01+08:00
[stderr] [2026-03-07 05:22:37] INFO  | etl_billiards | ODS_STORE_GOODS_SALES: late-cutoff 保护生效，软删除窗口终点从 2026-02-26 06:00:00+08:00 收窄至 2026-02-25 03:14:35+08:00
[stderr] [2026-03-07 05:22:37] INFO  | etl_billiards | ODS_STORE_GOODS_SALES: 完成(8/9)，已处理 240/251.17 天
[stderr] [2026-03-07 05:22:37] INFO  | etl_billiards | ODS_STORE_GOODS_SALES: 开始执行(9/9)，窗口[2026-02-26 06:00:00+08:00 ~ 2026-03-09 10:00:00+08:00]
[stderr] [2026-03-07 05:22:40] INFO  | etl_billiards | 管道执行摘要: status=SUCCESS, 总耗时=3.0s [请求=2.5s, 处理=0.0s, 写入=0.5s], 请求=2/2, 获取=256, 写入(inserted=0, updated=256, skipped=0), 失败(request=0, process=0, write=0)
[stderr] [2026-03-07 05:22:40] INFO  | etl_billiards | ODS_STORE_GOODS_SALES: early-cutoff 保护生效，软删除窗口起点从 2026-02-26 06:00:00+08:00 收窄至 2026-03-02 19:35:25+08:00
[stderr] [2026-03-07 05:22:40] INFO  | etl_billiards | ODS_STORE_GOODS_SALES: late-cutoff 保护生效，软删除窗口终点从 2026-03-09 10:00:00+08:00 收窄至 2026-03-07 03:08:53+08:00
[stderr] [2026-03-07 05:22:41] INFO  | etl_billiards | ODS_STORE_GOODS_SALES: 完成(9/9)，已处理 251.17/251.17 天
[stderr] [2026-03-07 05:22:41] INFO  | etl_billiards | ODS_STORE_GOODS_SALES ODS 任务完成: {'fetched': 26204, 'inserted': 174, 'updated': 26204, 'skipped': 0, 'errors': 0, 'deleted': 174}
[stderr] [2026-03-07 05:22:41] INFO  | etl_billiards | [ODS_STORE_GOODS_SALES] 开始执行ODS_STORE_GOODS_SALES (ODS)
[stderr] [2026-03-07 05:22:41] INFO  | etl_billiards | [ODS_STORE_GOODS_SALES] 窗口拆分为 9 段（共 251.17 天）
[stderr] [2026-03-07 05:22:41] INFO  | etl_billiards | [ODS_STORE_GOODS_SALES] 开始执行(1/9)，窗口[2025-07-01 06:00:00+08:00 ~ 2025-07-31 06:00:00+08:00]
[stderr] [2026-03-07 05:22:41] INFO  | etl_billiards | [ODS_STORE_GOODS_SALES] early-cutoff 保护生效，软删除窗口起点从 2025-07-01 06:00:00+08:00 收窄至 2025-07-21 11:54:44+08:00
[stderr] [2026-03-07 05:22:41] INFO  | etl_billiards | [ODS_STORE_GOODS_SALES] late-cutoff 保护生效，软删除窗口终点从 2025-07-31 06:00:00+08:00 收窄至 2025-07-31 03:48:02+08:00
[stderr] [2026-03-07 05:22:41] INFO  | etl_billiards | [ODS_STORE_GOODS_SALES] 完成(1/9)，已处理 30/251.17 天
[stderr] [2026-03-07 05:22:41] INFO  | etl_billiards | [ODS_STORE_GOODS_SALES] 开始执行(2/9)，窗口[2025-07-31 06:00:00+08:00 ~ 2025-08-30 06:00:00+08:00]
[stderr] [2026-03-07 05:22:41] INFO  | etl_billiards | [ODS_STORE_GOODS_SALES] early-cutoff 保护生效，软删除窗口起点从 2025-07-31 06:00:00+08:00 收窄至 2025-07-31 15:02:27+08:00
[stderr] [2026-03-07 05:22:41] INFO  | etl_billiards | [ODS_STORE_GOODS_SALES] late-cutoff 保护生效，软删除窗口终点从 2025-08-30 06:00:00+08:00 收窄至 2025-08-30 05:32:08+08:00
[stderr] [2026-03-07 05:22:41] INFO  | etl_billiards | [ODS_STORE_GOODS_SALES] 完成(2/9)，已处理 60/251.17 天
[stderr] [2026-03-07 05:22:41] INFO  | etl_billiards | [ODS_STORE_GOODS_SALES] 开始执行(3/9)，窗口[2025-08-30 06:00:00+08:00 ~ 2025-09-29 06:00:00+08:00]
[stderr] [2026-03-07 05:22:41] INFO  | etl_billiards | [ODS_STORE_GOODS_SALES] early-cutoff 保护生效，软删除窗口起点从 2025-08-30 06:00:00+08:00 收窄至 2025-08-30 13:22:23+08:00
[stderr] [2026-03-07 05:22:41] INFO  | etl_billiards | [ODS_STORE_GOODS_SALES] late-cutoff 保护生效，软删除窗口终点从 2025-09-29 06:00:00+08:00 收窄至 2025-09-29 02:21:06+08:00
[stderr] [2026-03-07 05:22:41] INFO  | etl_billiards | [ODS_STORE_GOODS_SALES] 完成(3/9)，已处理 90/251.17 天
[stderr] [2026-03-07 05:22:41] INFO  | etl_billiards | [ODS_STORE_GOODS_SALES] 开始执行(4/9)，窗口[2025-09-29 06:00:00+08:00 ~ 2025-10-29 06:00:00+08:00]
[stderr] [2026-03-07 05:22:41] INFO  | etl_billiards | [ODS_STORE_GOODS_SALES] early-cutoff 保护生效，软删除窗口起点从 2025-09-29 06:00:00+08:00 收窄至 2025-09-29 09:20:01+08:00
[stderr] [2026-03-07 05:22:41] INFO  | etl_billiards | [ODS_STORE_GOODS_SALES] late-cutoff 保护生效，软删除窗口终点从 2025-10-29 06:00:00+08:00 收窄至 2025-10-29 02:24:04+08:00
[stderr] [2026-03-07 05:22:41] INFO  | etl_billiards | [ODS_STORE_GOODS_SALES] 完成(4/9)，已处理 120/251.17 天
[stderr] [2026-03-07 05:22:41] INFO  | etl_billiards | [ODS_STORE_GOODS_SALES] 开始执行(5/9)，窗口[2025-10-29 06:00:00+08:00 ~ 2025-11-28 06:00:00+08:00]
[stderr] [2026-03-07 05:22:41] INFO  | etl_billiards | [ODS_STORE_GOODS_SALES] early-cutoff 保护生效，软删除窗口起点从 2025-10-29 06:00:00+08:00 收窄至 2025-10-29 06:57:22+08:00
[stderr] [2026-03-07 05:22:41] INFO  | etl_billiards | [ODS_STORE_GOODS_SALES] late-cutoff 保护生效，软删除窗口终点从 2025-11-28 06:00:00+08:00 收窄至 2025-11-28 04:07:19+08:00
[stderr] [2026-03-07 05:22:41] INFO  | etl_billiards | [ODS_STORE_GOODS_SALES] 完成(5/9)，已处理 150/251.17 天
[stderr] [2026-03-07 05:22:41] INFO  | etl_billiards | [ODS_STORE_GOODS_SALES] 开始执行(6/9)，窗口[2025-11-28 06:00:00+08:00 ~ 2025-12-28 06:00:00+08:00]
[stderr] [2026-03-07 05:22:41] INFO  | etl_billiards | [ODS_STORE_GOODS_SALES] early-cutoff 保护生效，软删除窗口起点从 2025-11-28 06:00:00+08:00 收窄至 2025-11-28 12:13:44+08:00
[stderr] [2026-03-07 05:22:41] INFO  | etl_billiards | [ODS_STORE_GOODS_SALES] late-cutoff 保护生效，软删除窗口终点从 2025-12-28 06:00:00+08:00 收窄至 2025-12-28 03:30:15+08:00
[stderr] [2026-03-07 05:22:41] INFO  | etl_billiards | [ODS_STORE_GOODS_SALES] 完成(6/9)，已处理 180/251.17 天
[stderr] [2026-03-07 05:22:41] INFO  | etl_billiards | [ODS_STORE_GOODS_SALES] 开始执行(7/9)，窗口[2025-12-28 06:00:00+08:00 ~ 2026-01-27 06:00:00+08:00]
[stderr] [2026-03-07 05:22:41] INFO  | etl_billiards | [ODS_STORE_GOODS_SALES] early-cutoff 保护生效，软删除窗口起点从 2025-12-28 06:00:00+08:00 收窄至 2025-12-28 12:40:01+08:00
[stderr] [2026-03-07 05:22:41] INFO  | etl_billiards | [ODS_STORE_GOODS_SALES] late-cutoff 保护生效，软删除窗口终点从 2026-01-27 06:00:00+08:00 收窄至 2026-01-27 03:59:52+08:00
[stderr] [2026-03-07 05:22:41] INFO  | etl_billiards | [ODS_STORE_GOODS_SALES] 完成(7/9)，已处理 210/251.17 天
[stderr] [2026-03-07 05:22:41] INFO  | etl_billiards | [ODS_STORE_GOODS_SALES] 开始执行(8/9)，窗口[2026-01-27 06:00:00+08:00 ~ 2026-02-26 06:00:00+08:00]
[stderr] [2026-03-07 05:22:41] INFO  | etl_billiards | [ODS_STORE_GOODS_SALES] early-cutoff 保护生效，软删除窗口起点从 2026-01-27 06:00:00+08:00 收窄至 2026-01-27 06:05:01+08:00
[stderr] [2026-03-07 05:22:41] INFO  | etl_billiards | [ODS_STORE_GOODS_SALES] late-cutoff 保护生效，软删除窗口终点从 2026-02-26 06:00:00+08:00 收窄至 2026-02-25 03:14:35+08:00
[stderr] [2026-03-07 05:22:41] INFO  | etl_billiards | [ODS_STORE_GOODS_SALES] 完成(8/9)，已处理 240/251.17 天
[stderr] [2026-03-07 05:22:41] INFO  | etl_billiards | [ODS_STORE_GOODS_SALES] 开始执行(9/9)，窗口[2026-02-26 06:00:00+08:00 ~ 2026-03-09 10:00:00+08:00]
[stderr] [2026-03-07 05:22:41] INFO  | etl_billiards | [ODS_STORE_GOODS_SALES] early-cutoff 保护生效，软删除窗口起点从 2026-02-26 06:00:00+08:00 收窄至 2026-03-02 19:35:25+08:00
[stderr] [2026-03-07 05:22:41] INFO  | etl_billiards | [ODS_STORE_GOODS_SALES] late-cutoff 保护生效，软删除窗口终点从 2026-03-09 10:00:00+08:00 收窄至 2026-03-07 03:08:53+08:00
[stderr] [2026-03-07 05:22:41] INFO  | etl_billiards | [ODS_STORE_GOODS_SALES] 完成(9/9)，已处理 251.17/251.17 天
[stderr] [2026-03-07 05:22:41] INFO  | etl_billiards | [ODS_STORE_GOODS_SALES] ODS 任务完成: {'fetched': 26204, 'inserted': 174, 'updated': 26204, 'skipped': 0, 'errors': 0, 'deleted': 174}
[stderr] [2026-03-07 05:22:42] INFO  | etl_billiards | ODS_TENANT_GOODS: ODS fetch+load start, dir=C:\NeoZQYY\export\ETL-Connectors\feiqiu\JSON\ODS_TENANT_GOODS\ODS_TENANT_GOODS-10112-20260307-052242
[stderr] [2026-03-07 05:22:42] INFO  | etl_billiards | 开始执行ODS_TENANT_GOODS (ODS)
[stderr] [2026-03-07 05:22:42] INFO  | etl_billiards | ODS_TENANT_GOODS: 窗口拆分为 9 段（共 251.17 天）
[stderr] [2026-03-07 05:22:43] INFO  | etl_billiards | ODS_TENANT_GOODS: 开始执行(1/9)，窗口[2025-07-01 06:00:00+08:00 ~ 2025-07-31 06:00:00+08:00]
[stderr] [2026-03-07 05:22:44] INFO  | etl_billiards | 管道执行摘要: status=SUCCESS, 总耗时=1.5s [请求=0.9s, 处理=0.0s, 写入=0.5s], 请求=1/1, 获取=174, 写入(inserted=0, updated=174, skipped=0), 失败(request=0, process=0, write=0)
[stderr] [2026-03-07 05:22:45] INFO  | etl_billiards | ODS_TENANT_GOODS: 完成(1/9)，已处理 30/251.17 天
[stderr] [2026-03-07 05:22:45] INFO  | etl_billiards | ODS_TENANT_GOODS: 开始执行(2/9)，窗口[2025-07-31 06:00:00+08:00 ~ 2025-08-30 06:00:00+08:00]
[stderr] [2026-03-07 05:22:49] INFO  | etl_billiards | 管道执行摘要: status=SUCCESS, 总耗时=4.8s [请求=3.1s, 处理=0.0s, 写入=1.7s], 请求=1/1, 获取=174, 写入(inserted=0, updated=174, skipped=0), 失败(request=0, process=0, write=0)
[stderr] [2026-03-07 05:22:50] INFO  | etl_billiards | ODS_TENANT_GOODS: 完成(2/9)，已处理 60/251.17 天
[stderr] [2026-03-07 05:22:50] INFO  | etl_billiards | ODS_TENANT_GOODS: 开始执行(3/9)，窗口[2025-08-30 06:00:00+08:00 ~ 2025-09-29 06:00:00+08:00]
[stderr] [2026-03-07 05:22:53] INFO  | etl_billiards | 管道执行摘要: status=SUCCESS, 总耗时=3.2s [请求=2.0s, 处理=0.0s, 写入=0.2s], 请求=1/1, 获取=174, 写入(inserted=0, updated=174, skipped=0), 失败(request=0, process=0, write=0)
[stderr] [2026-03-07 05:22:53] INFO  | etl_billiards | ODS_TENANT_GOODS: 完成(3/9)，已处理 90/251.17 天
[stderr] [2026-03-07 05:22:53] INFO  | etl_billiards | ODS_TENANT_GOODS: 开始执行(4/9)，窗口[2025-09-29 06:00:00+08:00 ~ 2025-10-29 06:00:00+08:00]
[stderr] [2026-03-07 05:22:55] INFO  | etl_billiards | 管道执行摘要: status=SUCCESS, 总耗时=1.9s [请求=1.4s, 处理=0.1s, 写入=0.3s], 请求=1/1, 获取=174, 写入(inserted=0, updated=174, skipped=0), 失败(request=0, process=0, write=0)
[stderr] [2026-03-07 05:22:55] INFO  | etl_billiards | ODS_TENANT_GOODS: 完成(4/9)，已处理 120/251.17 天
[stderr] [2026-03-07 05:22:55] INFO  | etl_billiards | ODS_TENANT_GOODS: 开始执行(5/9)，窗口[2025-10-29 06:00:00+08:00 ~ 2025-11-28 06:00:00+08:00]
[stderr] [2026-03-07 05:22:58] INFO  | etl_billiards | 管道执行摘要: status=SUCCESS, 总耗时=2.9s [请求=2.6s, 处理=0.0s, 写入=0.3s], 请求=1/1, 获取=174, 写入(inserted=0, updated=174, skipped=0), 失败(request=0, process=0, write=0)
[stderr] [2026-03-07 05:22:58] INFO  | etl_billiards | ODS_TENANT_GOODS: 完成(5/9)，已处理 150/251.17 天
[stderr] [2026-03-07 05:22:58] INFO  | etl_billiards | ODS_TENANT_GOODS: 开始执行(6/9)，窗口[2025-11-28 06:00:00+08:00 ~ 2025-12-28 06:00:00+08:00]
[stderr] [2026-03-07 05:23:01] INFO  | etl_billiards | 管道执行摘要: status=SUCCESS, 总耗时=2.4s [请求=1.0s, 处理=0.0s, 写入=1.2s], 请求=1/1, 获取=174, 写入(inserted=0, updated=174, skipped=0), 失败(request=0, process=0, write=0)
[stderr] [2026-03-07 05:23:01] INFO  | etl_billiards | ODS_TENANT_GOODS: 完成(6/9)，已处理 180/251.17 天
[stderr] [2026-03-07 05:23:01] INFO  | etl_billiards | ODS_TENANT_GOODS: 开始执行(7/9)，窗口[2025-12-28 06:00:00+08:00 ~ 2026-01-27 06:00:00+08:00]
[stderr] [2026-03-07 05:23:04] INFO  | etl_billiards | 管道执行摘要: status=SUCCESS, 总耗时=2.8s [请求=1.9s, 处理=0.0s, 写入=0.9s], 请求=1/1, 获取=174, 写入(inserted=0, updated=174, skipped=0), 失败(request=0, process=0, write=0)
[stderr] [2026-03-07 05:23:04] INFO  | etl_billiards | ODS_TENANT_GOODS: 完成(7/9)，已处理 210/251.17 天
[stderr] [2026-03-07 05:23:04] INFO  | etl_billiards | ODS_TENANT_GOODS: 开始执行(8/9)，窗口[2026-01-27 06:00:00+08:00 ~ 2026-02-26 06:00:00+08:00]
[stderr] [2026-03-07 05:23:06] INFO  | etl_billiards | 管道执行摘要: status=SUCCESS, 总耗时=1.3s [请求=0.6s, 处理=0.0s, 写入=0.5s], 请求=1/1, 获取=174, 写入(inserted=0, updated=174, skipped=0), 失败(request=0, process=0, write=0)
[stderr] [2026-03-07 05:23:06] INFO  | etl_billiards | ODS_TENANT_GOODS: 完成(8/9)，已处理 240/251.17 天
[stderr] [2026-03-07 05:23:06] INFO  | etl_billiards | ODS_TENANT_GOODS: 开始执行(9/9)，窗口[2026-02-26 06:00:00+08:00 ~ 2026-03-09 10:00:00+08:00]
[stderr] [2026-03-07 05:23:09] INFO  | etl_billiards | 管道执行摘要: status=SUCCESS, 总耗时=2.9s [请求=2.1s, 处理=0.0s, 写入=0.8s], 请求=1/1, 获取=174, 写入(inserted=0, updated=174, skipped=0), 失败(request=0, process=0, write=0)
[stderr] [2026-03-07 05:23:09] INFO  | etl_billiards | ODS_TENANT_GOODS: 完成(9/9)，已处理 251.17/251.17 天
[stderr] [2026-03-07 05:23:09] INFO  | etl_billiards | ODS_TENANT_GOODS ODS 任务完成: {'fetched': 1566, 'inserted': 0, 'updated': 1566, 'skipped': 0, 'errors': 0, 'deleted': 0}
[stderr] [2026-03-07 05:23:09] INFO  | etl_billiards | [ODS_TENANT_GOODS] 开始执行ODS_TENANT_GOODS (ODS)
[stderr] [2026-03-07 05:23:09] INFO  | etl_billiards | [ODS_TENANT_GOODS] 窗口拆分为 9 段（共 251.17 天）
[stderr] [2026-03-07 05:23:09] INFO  | etl_billiards | [ODS_TENANT_GOODS] 开始执行(1/9)，窗口[2025-07-01 06:00:00+08:00 ~ 2025-07-31 06:00:00+08:00]
[stderr] [2026-03-07 05:23:09] INFO  | etl_billiards | [ODS_TENANT_GOODS] 完成(1/9)，已处理 30/251.17 天
[stderr] [2026-03-07 05:23:09] INFO  | etl_billiards | [ODS_TENANT_GOODS] 开始执行(2/9)，窗口[2025-07-31 06:00:00+08:00 ~ 2025-08-30 06:00:00+08:00]
[stderr] [2026-03-07 05:23:09] INFO  | etl_billiards | [ODS_TENANT_GOODS] 完成(2/9)，已处理 60/251.17 天
[stderr] [2026-03-07 05:23:09] INFO  | etl_billiards | [ODS_TENANT_GOODS] 开始执行(3/9)，窗口[2025-08-30 06:00:00+08:00 ~ 2025-09-29 06:00:00+08:00]
[stderr] [2026-03-07 05:23:09] INFO  | etl_billiards | [ODS_TENANT_GOODS] 完成(3/9)，已处理 90/251.17 天
[stderr] [2026-03-07 05:23:09] INFO  | etl_billiards | [ODS_TENANT_GOODS] 开始执行(4/9)，窗口[2025-09-29 06:00:00+08:00 ~ 2025-10-29 06:00:00+08:00]
[stderr] [2026-03-07 05:23:09] INFO  | etl_billiards | [ODS_TENANT_GOODS] 完成(4/9)，已处理 120/251.17 天
[stderr] [2026-03-07 05:23:09] INFO  | etl_billiards | [ODS_TENANT_GOODS] 开始执行(5/9)，窗口[2025-10-29 06:00:00+08:00 ~ 2025-11-28 06:00:00+08:00]
[stderr] [2026-03-07 05:23:09] INFO  | etl_billiards | [ODS_TENANT_GOODS] 完成(5/9)，已处理 150/251.17 天
[stderr] [2026-03-07 05:23:09] INFO  | etl_billiards | [ODS_TENANT_GOODS] 开始执行(6/9)，窗口[2025-11-28 06:00:00+08:00 ~ 2025-12-28 06:00:00+08:00]
[stderr] [2026-03-07 05:23:09] INFO  | etl_billiards | [ODS_TENANT_GOODS] 完成(6/9)，已处理 180/251.17 天
[stderr] [2026-03-07 05:23:09] INFO  | etl_billiards | [ODS_TENANT_GOODS] 开始执行(7/9)，窗口[2025-12-28 06:00:00+08:00 ~ 2026-01-27 06:00:00+08:00]
[stderr] [2026-03-07 05:23:09] INFO  | etl_billiards | [ODS_TENANT_GOODS] 完成(7/9)，已处理 210/251.17 天
[stderr] [2026-03-07 05:23:09] INFO  | etl_billiards | [ODS_TENANT_GOODS] 开始执行(8/9)，窗口[2026-01-27 06:00:00+08:00 ~ 2026-02-26 06:00:00+08:00]
[stderr] [2026-03-07 05:23:09] INFO  | etl_billiards | [ODS_TENANT_GOODS] 完成(8/9)，已处理 240/251.17 天
[stderr] [2026-03-07 05:23:09] INFO  | etl_billiards | [ODS_TENANT_GOODS] 开始执行(9/9)，窗口[2026-02-26 06:00:00+08:00 ~ 2026-03-09 10:00:00+08:00]
[stderr] [2026-03-07 05:23:09] INFO  | etl_billiards | [ODS_TENANT_GOODS] 完成(9/9)，已处理 251.17/251.17 天
[stderr] [2026-03-07 05:23:09] INFO  | etl_billiards | [ODS_TENANT_GOODS] ODS 任务完成: {'fetched': 1566, 'inserted': 0, 'updated': 1566, 'skipped': 0, 'errors': 0, 'deleted': 0}
[stderr] [2026-03-07 05:23:09] INFO  | etl_billiards | ODS_PLATFORM_COUPON: ODS fetch+load start, dir=C:\NeoZQYY\export\ETL-Connectors\feiqiu\JSON\ODS_PLATFORM_COUPON\ODS_PLATFORM_COUPON-10113-20260307-052309
[stderr] [2026-03-07 05:23:09] INFO  | etl_billiards | 开始执行ODS_PLATFORM_COUPON (ODS)
[stderr] [2026-03-07 05:23:09] INFO  | etl_billiards | ODS_PLATFORM_COUPON: 窗口拆分为 9 段（共 251.17 天）
[stderr] [2026-03-07 05:23:10] INFO  | etl_billiards | ODS_PLATFORM_COUPON: 开始执行(1/9)，窗口[2025-07-01 06:00:00+08:00 ~ 2025-07-31 06:00:00+08:00]
[stderr] [2026-03-07 05:26:03] INFO  | etl_billiards | 管道执行摘要: status=SUCCESS, 总耗时=173.7s [请求=173.7s, 处理=0.0s, 写入=0.0s], 请求=94/94, 获取=18667, 写入(inserted=0, updated=18667, skipped=0), 失败(request=0, process=0, write=0)
[stderr] [2026-03-07 05:26:03] INFO  | etl_billiards | ODS_PLATFORM_COUPON: early-cutoff 保护生效，软删除窗口起点从 2025-07-01 06:00:00+08:00 收窄至 2025-07-21 10:15:45+08:00
[stderr] [2026-03-07 05:26:04] INFO  | etl_billiards | ODS_PLATFORM_COUPON: 完成(1/9)，已处理 30/251.17 天
[stderr] [2026-03-07 05:26:04] INFO  | etl_billiards | ODS_PLATFORM_COUPON: 开始执行(2/9)，窗口[2025-07-31 06:00:00+08:00 ~ 2025-08-30 06:00:00+08:00]
[stderr] [2026-03-07 05:28:37] INFO  | etl_billiards | 管道执行摘要: status=SUCCESS, 总耗时=153.7s [请求=153.6s, 处理=0.0s, 写入=0.0s], 请求=94/94, 获取=18667, 写入(inserted=0, updated=18667, skipped=0), 失败(request=0, process=0, write=0)
[stderr] [2026-03-07 05:28:37] INFO  | etl_billiards | ODS_PLATFORM_COUPON: 完成(2/9)，已处理 60/251.17 天
[stderr] [2026-03-07 05:28:37] INFO  | etl_billiards | ODS_PLATFORM_COUPON: 开始执行(3/9)，窗口[2025-08-30 06:00:00+08:00 ~ 2025-09-29 06:00:00+08:00]
[stderr] [2026-03-07 05:31:07] INFO  | etl_billiards | 管道执行摘要: status=SUCCESS, 总耗时=150.1s [请求=149.9s, 处理=0.0s, 写入=0.2s], 请求=94/94, 获取=18667, 写入(inserted=0, updated=18667, skipped=0), 失败(request=0, process=0, write=0)
[stderr] [2026-03-07 05:31:08] INFO  | etl_billiards | ODS_PLATFORM_COUPON: 完成(3/9)，已处理 90/251.17 天
[stderr] [2026-03-07 05:31:08] INFO  | etl_billiards | ODS_PLATFORM_COUPON: 开始执行(4/9)，窗口[2025-09-29 06:00:00+08:00 ~ 2025-10-29 06:00:00+08:00]
[stderr] [2026-03-07 05:33:26] INFO  | etl_billiards | 管道执行摘要: status=SUCCESS, 总耗时=138.5s [请求=138.3s, 处理=0.0s, 写入=0.2s], 请求=94/94, 获取=18667, 写入(inserted=0, updated=18667, skipped=0), 失败(request=0, process=0, write=0)
[stderr] [2026-03-07 05:33:26] INFO  | etl_billiards | ODS_PLATFORM_COUPON: 完成(4/9)，已处理 120/251.17 天
[stderr] [2026-03-07 05:33:26] INFO  | etl_billiards | ODS_PLATFORM_COUPON: 开始执行(5/9)，窗口[2025-10-29 06:00:00+08:00 ~ 2025-11-28 06:00:00+08:00]
[stderr] [2026-03-07 05:36:08] INFO  | etl_billiards | 管道执行摘要: status=SUCCESS, 总耗时=161.3s [请求=161.3s, 处理=0.0s, 写入=0.0s], 请求=94/94, 获取=18667, 写入(inserted=0, updated=18667, skipped=0), 失败(request=0, process=0, write=0)
[stderr] [2026-03-07 05:36:08] INFO  | etl_billiards | ODS_PLATFORM_COUPON: 完成(5/9)，已处理 150/251.17 天
[stderr] [2026-03-07 05:36:08] INFO  | etl_billiards | ODS_PLATFORM_COUPON: 开始执行(6/9)，窗口[2025-11-28 06:00:00+08:00 ~ 2025-12-28 06:00:00+08:00]
[stderr] [2026-03-07 05:38:35] INFO  | etl_billiards | 管道执行摘要: status=SUCCESS, 总耗时=147.2s [请求=146.5s, 处理=0.1s, 写入=0.5s], 请求=94/94, 获取=18667, 写入(inserted=0, updated=18667, skipped=0), 失败(request=0, process=0, write=0)
[stderr] [2026-03-07 05:38:35] INFO  | etl_billiards | ODS_PLATFORM_COUPON: 完成(6/9)，已处理 180/251.17 天
[stderr] [2026-03-07 05:38:35] INFO  | etl_billiards | ODS_PLATFORM_COUPON: 开始执行(7/9)，窗口[2025-12-28 06:00:00+08:00 ~ 2026-01-27 06:00:00+08:00]
[stderr] [2026-03-07 05:41:18] INFO  | etl_billiards | 管道执行摘要: status=SUCCESS, 总耗时=163.1s [请求=162.5s, 处理=0.0s, 写入=0.5s], 请求=94/94, 获取=18667, 写入(inserted=0, updated=18667, skipped=0), 失败(request=0, process=0, write=0)
[stderr] [2026-03-07 05:41:19] INFO  | etl_billiards | ODS_PLATFORM_COUPON: 完成(7/9)，已处理 210/251.17 天
[stderr] [2026-03-07 05:41:19] INFO  | etl_billiards | ODS_PLATFORM_COUPON: 开始执行(8/9)，窗口[2026-01-27 06:00:00+08:00 ~ 2026-02-26 06:00:00+08:00]
[stderr] [2026-03-07 05:44:18] INFO  | etl_billiards | 管道执行摘要: status=SUCCESS, 总耗时=178.8s [请求=178.8s, 处理=0.0s, 写入=0.0s], 请求=94/94, 获取=18667, 写入(inserted=0, updated=18667, skipped=0), 失败(request=0, process=0, write=0)
[stderr] [2026-03-07 05:44:18] INFO  | etl_billiards | ODS_PLATFORM_COUPON: 完成(8/9)，已处理 240/251.17 天
[stderr] [2026-03-07 05:44:18] INFO  | etl_billiards | ODS_PLATFORM_COUPON: 开始执行(9/9)，窗口[2026-02-26 06:00:00+08:00 ~ 2026-03-09 10:00:00+08:00]
[stderr] [2026-03-07 05:46:44] INFO  | etl_billiards | 管道执行摘要: status=SUCCESS, 总耗时=145.5s [请求=145.4s, 处理=0.0s, 写入=0.0s], 请求=94/94, 获取=18667, 写入(inserted=0, updated=18667, skipped=0), 失败(request=0, process=0, write=0)
[stderr] [2026-03-07 05:46:44] INFO  | etl_billiards | ODS_PLATFORM_COUPON: late-cutoff 保护生效，软删除窗口终点从 2026-03-09 10:00:00+08:00 收窄至 2026-03-07 01:05:02+08:00
[stderr] [2026-03-07 05:46:44] INFO  | etl_billiards | ODS_PLATFORM_COUPON: 完成(9/9)，已处理 251.17/251.17 天
[stderr] [2026-03-07 05:46:44] INFO  | etl_billiards | ODS_PLATFORM_COUPON ODS 任务完成: {'fetched': 168003, 'inserted': 0, 'updated': 168003, 'skipped': 0, 'errors': 0, 'deleted': 0}
[stderr] [2026-03-07 05:46:44] INFO  | etl_billiards | [ODS_PLATFORM_COUPON] 开始执行ODS_PLATFORM_COUPON (ODS)
[stderr] [2026-03-07 05:46:44] INFO  | etl_billiards | [ODS_PLATFORM_COUPON] 窗口拆分为 9 段（共 251.17 天）
[stderr] [2026-03-07 05:46:44] INFO  | etl_billiards | [ODS_PLATFORM_COUPON] 开始执行(1/9)，窗口[2025-07-01 06:00:00+08:00 ~ 2025-07-31 06:00:00+08:00]
[stderr] [2026-03-07 05:46:44] INFO  | etl_billiards | [ODS_PLATFORM_COUPON] early-cutoff 保护生效，软删除窗口起点从 2025-07-01 06:00:00+08:00 收窄至 2025-07-21 10:15:45+08:00
[stderr] [2026-03-07 05:46:44] INFO  | etl_billiards | [ODS_PLATFORM_COUPON] 完成(1/9)，已处理 30/251.17 天
[stderr] [2026-03-07 05:46:44] INFO  | etl_billiards | [ODS_PLATFORM_COUPON] 开始执行(2/9)，窗口[2025-07-31 06:00:00+08:00 ~ 2025-08-30 06:00:00+08:00]
[stderr] [2026-03-07 05:46:44] INFO  | etl_billiards | [ODS_PLATFORM_COUPON] 完成(2/9)，已处理 60/251.17 天
[stderr] [2026-03-07 05:46:44] INFO  | etl_billiards | [ODS_PLATFORM_COUPON] 开始执行(3/9)，窗口[2025-08-30 06:00:00+08:00 ~ 2025-09-29 06:00:00+08:00]
[stderr] [2026-03-07 05:46:44] INFO  | etl_billiards | [ODS_PLATFORM_COUPON] 完成(3/9)，已处理 90/251.17 天
[stderr] [2026-03-07 05:46:44] INFO  | etl_billiards | [ODS_PLATFORM_COUPON] 开始执行(4/9)，窗口[2025-09-29 06:00:00+08:00 ~ 2025-10-29 06:00:00+08:00]
[stderr] [2026-03-07 05:46:44] INFO  | etl_billiards | [ODS_PLATFORM_COUPON] 完成(4/9)，已处理 120/251.17 天
[stderr] [2026-03-07 05:46:44] INFO  | etl_billiards | [ODS_PLATFORM_COUPON] 开始执行(5/9)，窗口[2025-10-29 06:00:00+08:00 ~ 2025-11-28 06:00:00+08:00]
[stderr] [2026-03-07 05:46:44] INFO  | etl_billiards | [ODS_PLATFORM_COUPON] 完成(5/9)，已处理 150/251.17 天
[stderr] [2026-03-07 05:46:44] INFO  | etl_billiards | [ODS_PLATFORM_COUPON] 开始执行(6/9)，窗口[2025-11-28 06:00:00+08:00 ~ 2025-12-28 06:00:00+08:00]
[stderr] [2026-03-07 05:46:44] INFO  | etl_billiards | [ODS_PLATFORM_COUPON] 完成(6/9)，已处理 180/251.17 天
[stderr] [2026-03-07 05:46:44] INFO  | etl_billiards | [ODS_PLATFORM_COUPON] 开始执行(7/9)，窗口[2025-12-28 06:00:00+08:00 ~ 2026-01-27 06:00:00+08:00]
[stderr] [2026-03-07 05:46:44] INFO  | etl_billiards | [ODS_PLATFORM_COUPON] 完成(7/9)，已处理 210/251.17 天
[stderr] [2026-03-07 05:46:44] INFO  | etl_billiards | [ODS_PLATFORM_COUPON] 开始执行(8/9)，窗口[2026-01-27 06:00:00+08:00 ~ 2026-02-26 06:00:00+08:00]
[stderr] [2026-03-07 05:46:44] INFO  | etl_billiards | [ODS_PLATFORM_COUPON] 完成(8/9)，已处理 240/251.17 天
[stderr] [2026-03-07 05:46:44] INFO  | etl_billiards | [ODS_PLATFORM_COUPON] 开始执行(9/9)，窗口[2026-02-26 06:00:00+08:00 ~ 2026-03-09 10:00:00+08:00]
[stderr] [2026-03-07 05:46:44] INFO  | etl_billiards | [ODS_PLATFORM_COUPON] late-cutoff 保护生效，软删除窗口终点从 2026-03-09 10:00:00+08:00 收窄至 2026-03-07 01:05:02+08:00
[stderr] [2026-03-07 05:46:44] INFO  | etl_billiards | [ODS_PLATFORM_COUPON] 完成(9/9)，已处理 251.17/251.17 天
[stderr] [2026-03-07 05:46:44] INFO  | etl_billiards | [ODS_PLATFORM_COUPON] ODS 任务完成: {'fetched': 168003, 'inserted': 0, 'updated': 168003, 'skipped': 0, 'errors': 0, 'deleted': 0}
[stderr] [2026-03-07 05:46:45] INFO  | etl_billiards | ODS_GROUP_PACKAGE: ODS fetch+load start, dir=C:\NeoZQYY\export\ETL-Connectors\feiqiu\JSON\ODS_GROUP_PACKAGE\ODS_GROUP_PACKAGE-10114-20260307-054645
[stderr] [2026-03-07 05:46:45] INFO  | etl_billiards | 开始执行ODS_GROUP_PACKAGE (ODS)
[stderr] [2026-03-07 05:46:45] INFO  | etl_billiards | ODS_GROUP_PACKAGE: 窗口拆分为 9 段（共 251.17 天）
[stderr] [2026-03-07 05:46:45] INFO  | etl_billiards | ODS_GROUP_PACKAGE: 开始执行(1/9)，窗口[2025-07-01 06:00:00+08:00 ~ 2025-07-31 06:00:00+08:00]
[stderr] [2026-03-07 05:46:47] INFO  | etl_billiards | 管道执行摘要: status=SUCCESS, 总耗时=1.6s [请求=0.9s, 处理=0.0s, 写入=0.7s], 请求=1/1, 获取=18, 写入(inserted=0, updated=18, skipped=0), 失败(request=0, process=0, write=0)
[stderr] [2026-03-07 05:46:47] INFO  | etl_billiards | ODS_GROUP_PACKAGE: 完成(1/9)，已处理 30/251.17 天
[stderr] [2026-03-07 05:46:47] INFO  | etl_billiards | ODS_GROUP_PACKAGE: 开始执行(2/9)，窗口[2025-07-31 06:00:00+08:00 ~ 2025-08-30 06:00:00+08:00]
[stderr] [2026-03-07 05:46:49] INFO  | etl_billiards | 管道执行摘要: status=SUCCESS, 总耗时=2.2s [请求=2.0s, 处理=0.0s, 写入=0.2s], 请求=1/1, 获取=18, 写入(inserted=0, updated=18, skipped=0), 失败(request=0, process=0, write=0)
[stderr] [2026-03-07 05:46:49] INFO  | etl_billiards | ODS_GROUP_PACKAGE: 完成(2/9)，已处理 60/251.17 天
[stderr] [2026-03-07 05:46:49] INFO  | etl_billiards | ODS_GROUP_PACKAGE: 开始执行(3/9)，窗口[2025-08-30 06:00:00+08:00 ~ 2025-09-29 06:00:00+08:00]
[stderr] [2026-03-07 05:46:51] INFO  | etl_billiards | 管道执行摘要: status=SUCCESS, 总耗时=2.2s [请求=1.9s, 处理=0.0s, 写入=0.3s], 请求=1/1, 获取=18, 写入(inserted=0, updated=18, skipped=0), 失败(request=0, process=0, write=0)
[stderr] [2026-03-07 05:46:52] INFO  | etl_billiards | ODS_GROUP_PACKAGE: 完成(3/9)，已处理 90/251.17 天
[stderr] [2026-03-07 05:46:52] INFO  | etl_billiards | ODS_GROUP_PACKAGE: 开始执行(4/9)，窗口[2025-09-29 06:00:00+08:00 ~ 2025-10-29 06:00:00+08:00]
[stderr] [2026-03-07 05:46:53] INFO  | etl_billiards | 管道执行摘要: status=SUCCESS, 总耗时=1.3s [请求=1.0s, 处理=0.0s, 写入=0.3s], 请求=1/1, 获取=18, 写入(inserted=0, updated=18, skipped=0), 失败(request=0, process=0, write=0)
[stderr] [2026-03-07 05:46:53] INFO  | etl_billiards | ODS_GROUP_PACKAGE: 完成(4/9)，已处理 120/251.17 天
[stderr] [2026-03-07 05:46:53] INFO  | etl_billiards | ODS_GROUP_PACKAGE: 开始执行(5/9)，窗口[2025-10-29 06:00:00+08:00 ~ 2025-11-28 06:00:00+08:00]
[stderr] [2026-03-07 05:46:54] INFO  | etl_billiards | 管道执行摘要: status=SUCCESS, 总耗时=0.9s [请求=0.6s, 处理=0.0s, 写入=0.2s], 请求=1/1, 获取=18, 写入(inserted=0, updated=18, skipped=0), 失败(request=0, process=0, write=0)
[stderr] [2026-03-07 05:46:54] INFO  | etl_billiards | ODS_GROUP_PACKAGE: 完成(5/9)，已处理 150/251.17 天
[stderr] [2026-03-07 05:46:54] INFO  | etl_billiards | ODS_GROUP_PACKAGE: 开始执行(6/9)，窗口[2025-11-28 06:00:00+08:00 ~ 2025-12-28 06:00:00+08:00]
[stderr] [2026-03-07 05:46:56] INFO  | etl_billiards | 管道执行摘要: status=SUCCESS, 总耗时=1.5s [请求=1.2s, 处理=0.0s, 写入=0.2s], 请求=1/1, 获取=18, 写入(inserted=0, updated=18, skipped=0), 失败(request=0, process=0, write=0)
[stderr] [2026-03-07 05:46:56] INFO  | etl_billiards | ODS_GROUP_PACKAGE: 完成(6/9)，已处理 180/251.17 天
[stderr] [2026-03-07 05:46:56] INFO  | etl_billiards | ODS_GROUP_PACKAGE: 开始执行(7/9)，窗口[2025-12-28 06:00:00+08:00 ~ 2026-01-27 06:00:00+08:00]
[stderr] [2026-03-07 05:46:57] INFO  | etl_billiards | 管道执行摘要: status=SUCCESS, 总耗时=1.6s [请求=1.3s, 处理=0.0s, 写入=0.3s], 请求=1/1, 获取=18, 写入(inserted=0, updated=18, skipped=0), 失败(request=0, process=0, write=0)
[stderr] [2026-03-07 05:46:57] INFO  | etl_billiards | ODS_GROUP_PACKAGE: 完成(7/9)，已处理 210/251.17 天
[stderr] [2026-03-07 05:46:57] INFO  | etl_billiards | ODS_GROUP_PACKAGE: 开始执行(8/9)，窗口[2026-01-27 06:00:00+08:00 ~ 2026-02-26 06:00:00+08:00]
[stderr] [2026-03-07 05:46:59] INFO  | etl_billiards | 管道执行摘要: status=SUCCESS, 总耗时=1.7s [请求=1.3s, 处理=0.0s, 写入=0.4s], 请求=1/1, 获取=18, 写入(inserted=0, updated=18, skipped=0), 失败(request=0, process=0, write=0)
[stderr] [2026-03-07 05:46:59] INFO  | etl_billiards | ODS_GROUP_PACKAGE: 完成(8/9)，已处理 240/251.17 天
[stderr] [2026-03-07 05:46:59] INFO  | etl_billiards | ODS_GROUP_PACKAGE: 开始执行(9/9)，窗口[2026-02-26 06:00:00+08:00 ~ 2026-03-09 10:00:00+08:00]
[stderr] [2026-03-07 05:47:00] INFO  | etl_billiards | 管道执行摘要: status=SUCCESS, 总耗时=0.9s [请求=0.7s, 处理=0.0s, 写入=0.2s], 请求=1/1, 获取=18, 写入(inserted=0, updated=18, skipped=0), 失败(request=0, process=0, write=0)
[stderr] [2026-03-07 05:47:00] INFO  | etl_billiards | ODS_GROUP_PACKAGE: 完成(9/9)，已处理 251.17/251.17 天
[stderr] [2026-03-07 05:47:00] INFO  | etl_billiards | ODS_GROUP_PACKAGE: 列表阶段完成，进入详情拉取阶段
[stderr] [2026-03-07 05:47:00] INFO  | etl_billiards | ODS_GROUP_PACKAGE: 开始详情拉取，共 34 个 ID
[stderr] [2026-03-07 05:47:38] INFO  | etl_billiards | 管道执行摘要: status=SUCCESS, 总耗时=37.6s [请求=37.2s, 处理=0.0s, 写入=0.4s], 请求=34/34, 获取=34, 写入(inserted=0, updated=34, skipped=0), 失败(request=0, process=0, write=0)
[stderr] [2026-03-07 05:47:38] INFO  | etl_billiards | ODS_GROUP_PACKAGE: 详情拉取完成, success=34, failure=0, skipped=0
[stderr] [2026-03-07 05:47:38] INFO  | etl_billiards | ODS_GROUP_PACKAGE ODS 任务完成: {'fetched': 162, 'inserted': 0, 'updated': 162, 'skipped': 0, 'errors': 0, 'deleted': 0}
[stderr] [2026-03-07 05:47:38] INFO  | etl_billiards | [ODS_GROUP_PACKAGE] 开始执行ODS_GROUP_PACKAGE (ODS)
[stderr] [2026-03-07 05:47:38] INFO  | etl_billiards | [ODS_GROUP_PACKAGE] 窗口拆分为 9 段（共 251.17 天）
[stderr] [2026-03-07 05:47:38] INFO  | etl_billiards | [ODS_GROUP_PACKAGE] 开始执行(1/9)，窗口[2025-07-01 06:00:00+08:00 ~ 2025-07-31 06:00:00+08:00]
[stderr] [2026-03-07 05:47:38] INFO  | etl_billiards | [ODS_GROUP_PACKAGE] 完成(1/9)，已处理 30/251.17 天
[stderr] [2026-03-07 05:47:38] INFO  | etl_billiards | [ODS_GROUP_PACKAGE] 开始执行(2/9)，窗口[2025-07-31 06:00:00+08:00 ~ 2025-08-30 06:00:00+08:00]
[stderr] [2026-03-07 05:47:38] INFO  | etl_billiards | [ODS_GROUP_PACKAGE] 完成(2/9)，已处理 60/251.17 天
[stderr] [2026-03-07 05:47:38] INFO  | etl_billiards | [ODS_GROUP_PACKAGE] 开始执行(3/9)，窗口[2025-08-30 06:00:00+08:00 ~ 2025-09-29 06:00:00+08:00]
[stderr] [2026-03-07 05:47:38] INFO  | etl_billiards | [ODS_GROUP_PACKAGE] 完成(3/9)，已处理 90/251.17 天
[stderr] [2026-03-07 05:47:38] INFO  | etl_billiards | [ODS_GROUP_PACKAGE] 开始执行(4/9)，窗口[2025-09-29 06:00:00+08:00 ~ 2025-10-29 06:00:00+08:00]
[stderr] [2026-03-07 05:47:38] INFO  | etl_billiards | [ODS_GROUP_PACKAGE] 完成(4/9)，已处理 120/251.17 天
[stderr] [2026-03-07 05:47:38] INFO  | etl_billiards | [ODS_GROUP_PACKAGE] 开始执行(5/9)，窗口[2025-10-29 06:00:00+08:00 ~ 2025-11-28 06:00:00+08:00]
[stderr] [2026-03-07 05:47:38] INFO  | etl_billiards | [ODS_GROUP_PACKAGE] 完成(5/9)，已处理 150/251.17 天
[stderr] [2026-03-07 05:47:38] INFO  | etl_billiards | [ODS_GROUP_PACKAGE] 开始执行(6/9)，窗口[2025-11-28 06:00:00+08:00 ~ 2025-12-28 06:00:00+08:00]
[stderr] [2026-03-07 05:47:38] INFO  | etl_billiards | [ODS_GROUP_PACKAGE] 完成(6/9)，已处理 180/251.17 天
[stderr] [2026-03-07 05:47:38] INFO  | etl_billiards | [ODS_GROUP_PACKAGE] 开始执行(7/9)，窗口[2025-12-28 06:00:00+08:00 ~ 2026-01-27 06:00:00+08:00]
[stderr] [2026-03-07 05:47:38] INFO  | etl_billiards | [ODS_GROUP_PACKAGE] 完成(7/9)，已处理 210/251.17 天
[stderr] [2026-03-07 05:47:38] INFO  | etl_billiards | [ODS_GROUP_PACKAGE] 开始执行(8/9)，窗口[2026-01-27 06:00:00+08:00 ~ 2026-02-26 06:00:00+08:00]
[stderr] [2026-03-07 05:47:38] INFO  | etl_billiards | [ODS_GROUP_PACKAGE] 完成(8/9)，已处理 240/251.17 天
[stderr] [2026-03-07 05:47:38] INFO  | etl_billiards | [ODS_GROUP_PACKAGE] 开始执行(9/9)，窗口[2026-02-26 06:00:00+08:00 ~ 2026-03-09 10:00:00+08:00]
[stderr] [2026-03-07 05:47:38] INFO  | etl_billiards | [ODS_GROUP_PACKAGE] 完成(9/9)，已处理 251.17/251.17 天
[stderr] [2026-03-07 05:47:38] INFO  | etl_billiards | [ODS_GROUP_PACKAGE] 列表阶段完成，进入详情拉取阶段
[stderr] [2026-03-07 05:47:38] INFO  | etl_billiards | [ODS_GROUP_PACKAGE] 详情拉取完成, success=34, failure=0, skipped=0
[stderr] [2026-03-07 05:47:38] INFO  | etl_billiards | [ODS_GROUP_PACKAGE] ODS 任务完成: {'fetched': 162, 'inserted': 0, 'updated': 162, 'skipped': 0, 'errors': 0, 'deleted': 0}
[stderr] [2026-03-07 05:47:39] INFO  | etl_billiards | ODS_GROUP_BUY_REDEMPTION: ODS fetch+load start, dir=C:\NeoZQYY\export\ETL-Connectors\feiqiu\JSON\ODS_GROUP_BUY_REDEMPTION\ODS_GROUP_BUY_REDEMPTION-10115-20260307-054739
[stderr] [2026-03-07 05:47:39] INFO  | etl_billiards | 开始执行ODS_GROUP_BUY_REDEMPTION (ODS)
[stderr] [2026-03-07 05:47:39] INFO  | etl_billiards | ODS_GROUP_BUY_REDEMPTION: 窗口拆分为 9 段（共 251.17 天）
[stderr] [2026-03-07 05:47:40] INFO  | etl_billiards | ODS_GROUP_BUY_REDEMPTION: 开始执行(1/9)，窗口[2025-07-01 06:00:00+08:00 ~ 2025-07-31 06:00:00+08:00]
[stderr] [2026-03-07 05:48:37] INFO  | etl_billiards | 管道执行摘要: status=SUCCESS, 总耗时=56.6s [请求=56.2s, 处理=0.0s, 写入=0.3s], 请求=32/32, 获取=6216, 写入(inserted=0, updated=6216, skipped=0), 失败(request=0, process=0, write=0)
[stderr] [2026-03-07 05:48:37] INFO  | etl_billiards | ODS_GROUP_BUY_REDEMPTION: early-cutoff 保护生效，软删除窗口起点从 2025-07-01 06:00:00+08:00 收窄至 2025-12-06 11:10:37+08:00
[stderr] [2026-03-07 05:48:37] INFO  | etl_billiards | ODS_GROUP_BUY_REDEMPTION: 完成(1/9)，已处理 30/251.17 天
[stderr] [2026-03-07 05:48:37] INFO  | etl_billiards | ODS_GROUP_BUY_REDEMPTION: 开始执行(2/9)，窗口[2025-07-31 06:00:00+08:00 ~ 2025-08-30 06:00:00+08:00]
[stderr] [2026-03-07 05:49:46] INFO  | etl_billiards | 管道执行摘要: status=SUCCESS, 总耗时=69.6s [请求=69.5s, 处理=0.0s, 写入=0.1s], 请求=32/32, 获取=6216, 写入(inserted=0, updated=6216, skipped=0), 失败(request=0, process=0, write=0)
[stderr] [2026-03-07 05:49:46] INFO  | etl_billiards | ODS_GROUP_BUY_REDEMPTION: early-cutoff 保护生效，软删除窗口起点从 2025-07-31 06:00:00+08:00 收窄至 2025-12-06 11:10:37+08:00
[stderr] [2026-03-07 05:49:47] INFO  | etl_billiards | ODS_GROUP_BUY_REDEMPTION: 完成(2/9)，已处理 60/251.17 天
[stderr] [2026-03-07 05:49:47] INFO  | etl_billiards | ODS_GROUP_BUY_REDEMPTION: 开始执行(3/9)，窗口[2025-08-30 06:00:00+08:00 ~ 2025-09-29 06:00:00+08:00]
[stderr] [2026-03-07 05:50:44] INFO  | etl_billiards | 管道执行摘要: status=SUCCESS, 总耗时=57.6s [请求=57.1s, 处理=0.0s, 写入=0.1s], 请求=32/32, 获取=6216, 写入(inserted=0, updated=6216, skipped=0), 失败(request=0, process=0, write=0)
[stderr] [2026-03-07 05:50:44] INFO  | etl_billiards | ODS_GROUP_BUY_REDEMPTION: early-cutoff 保护生效，软删除窗口起点从 2025-08-30 06:00:00+08:00 收窄至 2025-12-06 11:10:37+08:00
[stderr] [2026-03-07 05:50:44] INFO  | etl_billiards | ODS_GROUP_BUY_REDEMPTION: 完成(3/9)，已处理 90/251.17 天
[stderr] [2026-03-07 05:50:44] INFO  | etl_billiards | ODS_GROUP_BUY_REDEMPTION: 开始执行(4/9)，窗口[2025-09-29 06:00:00+08:00 ~ 2025-10-29 06:00:00+08:00]
[stderr] [2026-03-07 05:51:44] INFO  | etl_billiards | 管道执行摘要: status=SUCCESS, 总耗时=59.2s [请求=59.1s, 处理=0.0s, 写入=0.1s], 请求=32/32, 获取=6216, 写入(inserted=0, updated=6216, skipped=0), 失败(request=0, process=0, write=0)
[stderr] [2026-03-07 05:51:44] INFO  | etl_billiards | ODS_GROUP_BUY_REDEMPTION: early-cutoff 保护生效，软删除窗口起点从 2025-09-29 06:00:00+08:00 收窄至 2025-12-06 11:10:37+08:00
[stderr] [2026-03-07 05:51:44] INFO  | etl_billiards | ODS_GROUP_BUY_REDEMPTION: 完成(4/9)，已处理 120/251.17 天
[stderr] [2026-03-07 05:51:44] INFO  | etl_billiards | ODS_GROUP_BUY_REDEMPTION: 开始执行(5/9)，窗口[2025-10-29 06:00:00+08:00 ~ 2025-11-28 06:00:00+08:00]
[stderr] [2026-03-07 05:52:45] INFO  | etl_billiards | 管道执行摘要: status=SUCCESS, 总耗时=61.6s [请求=61.3s, 处理=0.0s, 写入=0.3s], 请求=32/32, 获取=6216, 写入(inserted=0, updated=6216, skipped=0), 失败(request=0, process=0, write=0)
[stderr] [2026-03-07 05:52:45] INFO  | etl_billiards | ODS_GROUP_BUY_REDEMPTION: early-cutoff 保护生效，软删除窗口起点从 2025-10-29 06:00:00+08:00 收窄至 2025-12-06 11:10:37+08:00
[stderr] [2026-03-07 05:52:46] INFO  | etl_billiards | ODS_GROUP_BUY_REDEMPTION: 完成(5/9)，已处理 150/251.17 天
[stderr] [2026-03-07 05:52:46] INFO  | etl_billiards | ODS_GROUP_BUY_REDEMPTION: 开始执行(6/9)，窗口[2025-11-28 06:00:00+08:00 ~ 2025-12-28 06:00:00+08:00]
[stderr] [2026-03-07 05:53:48] INFO  | etl_billiards | 管道执行摘要: status=SUCCESS, 总耗时=62.6s [请求=62.3s, 处理=0.0s, 写入=0.3s], 请求=32/32, 获取=6216, 写入(inserted=0, updated=6216, skipped=0), 失败(request=0, process=0, write=0)
[stderr] [2026-03-07 05:53:48] INFO  | etl_billiards | ODS_GROUP_BUY_REDEMPTION: early-cutoff 保护生效，软删除窗口起点从 2025-11-28 06:00:00+08:00 收窄至 2025-12-06 11:10:37+08:00
[stderr] [2026-03-07 05:53:49] INFO  | etl_billiards | ODS_GROUP_BUY_REDEMPTION: 完成(6/9)，已处理 180/251.17 天
[stderr] [2026-03-07 05:53:49] INFO  | etl_billiards | ODS_GROUP_BUY_REDEMPTION: 开始执行(7/9)，窗口[2025-12-28 06:00:00+08:00 ~ 2026-01-27 06:00:00+08:00]
[stderr] [2026-03-07 05:54:53] INFO  | etl_billiards | 管道执行摘要: status=SUCCESS, 总耗时=63.8s [请求=62.7s, 处理=0.0s, 写入=0.5s], 请求=32/32, 获取=6216, 写入(inserted=0, updated=6216, skipped=0), 失败(request=0, process=0, write=0)
[stderr] [2026-03-07 05:54:53] INFO  | etl_billiards | ODS_GROUP_BUY_REDEMPTION: 完成(7/9)，已处理 210/251.17 天
[stderr] [2026-03-07 05:54:53] INFO  | etl_billiards | ODS_GROUP_BUY_REDEMPTION: 开始执行(8/9)，窗口[2026-01-27 06:00:00+08:00 ~ 2026-02-26 06:00:00+08:00]
[stderr] [2026-03-07 05:55:58] INFO  | etl_billiards | 管道执行摘要: status=SUCCESS, 总耗时=65.6s [请求=65.2s, 处理=0.0s, 写入=0.4s], 请求=32/32, 获取=6216, 写入(inserted=0, updated=6216, skipped=0), 失败(request=0, process=0, write=0)
[stderr] [2026-03-07 05:55:59] INFO  | etl_billiards | ODS_GROUP_BUY_REDEMPTION: 完成(8/9)，已处理 240/251.17 天
[stderr] [2026-03-07 05:55:59] INFO  | etl_billiards | ODS_GROUP_BUY_REDEMPTION: 开始执行(9/9)，窗口[2026-02-26 06:00:00+08:00 ~ 2026-03-09 10:00:00+08:00]
[stderr] [2026-03-07 05:56:56] INFO  | etl_billiards | 管道执行摘要: status=SUCCESS, 总耗时=56.8s [请求=56.6s, 处理=0.0s, 写入=0.1s], 请求=32/32, 获取=6216, 写入(inserted=0, updated=6216, skipped=0), 失败(request=0, process=0, write=0)
[stderr] [2026-03-07 05:56:56] INFO  | etl_billiards | ODS_GROUP_BUY_REDEMPTION: late-cutoff 保护生效，软删除窗口终点从 2026-03-09 10:00:00+08:00 收窄至 2026-03-07 02:32:35+08:00
[stderr] [2026-03-07 05:56:57] INFO  | etl_billiards | ODS_GROUP_BUY_REDEMPTION: 完成(9/9)，已处理 251.17/251.17 天
[stderr] [2026-03-07 05:56:57] INFO  | etl_billiards | ODS_GROUP_BUY_REDEMPTION ODS 任务完成: {'fetched': 55944, 'inserted': 0, 'updated': 55944, 'skipped': 0, 'errors': 0, 'deleted': 0}
[stderr] [2026-03-07 05:56:57] INFO  | etl_billiards | [ODS_GROUP_BUY_REDEMPTION] 开始执行ODS_GROUP_BUY_REDEMPTION (ODS)
[stderr] [2026-03-07 05:56:57] INFO  | etl_billiards | [ODS_GROUP_BUY_REDEMPTION] 窗口拆分为 9 段（共 251.17 天）
[stderr] [2026-03-07 05:56:57] INFO  | etl_billiards | [ODS_GROUP_BUY_REDEMPTION] 开始执行(1/9)，窗口[2025-07-01 06:00:00+08:00 ~ 2025-07-31 06:00:00+08:00]
[stderr] [2026-03-07 05:56:57] INFO  | etl_billiards | [ODS_GROUP_BUY_REDEMPTION] early-cutoff 保护生效，软删除窗口起点从 2025-07-01 06:00:00+08:00 收窄至 2025-12-06 11:10:37+08:00
[stderr] [2026-03-07 05:56:57] INFO  | etl_billiards | [ODS_GROUP_BUY_REDEMPTION] 完成(1/9)，已处理 30/251.17 天
[stderr] [2026-03-07 05:56:57] INFO  | etl_billiards | [ODS_GROUP_BUY_REDEMPTION] 开始执行(2/9)，窗口[2025-07-31 06:00:00+08:00 ~ 2025-08-30 06:00:00+08:00]
[stderr] [2026-03-07 05:56:57] INFO  | etl_billiards | [ODS_GROUP_BUY_REDEMPTION] early-cutoff 保护生效，软删除窗口起点从 2025-07-31 06:00:00+08:00 收窄至 2025-12-06 11:10:37+08:00
[stderr] [2026-03-07 05:56:57] INFO  | etl_billiards | [ODS_GROUP_BUY_REDEMPTION] 完成(2/9)，已处理 60/251.17 天
[stderr] [2026-03-07 05:56:57] INFO  | etl_billiards | [ODS_GROUP_BUY_REDEMPTION] 开始执行(3/9)，窗口[2025-08-30 06:00:00+08:00 ~ 2025-09-29 06:00:00+08:00]
[stderr] [2026-03-07 05:56:57] INFO  | etl_billiards | [ODS_GROUP_BUY_REDEMPTION] early-cutoff 保护生效，软删除窗口起点从 2025-08-30 06:00:00+08:00 收窄至 2025-12-06 11:10:37+08:00
[stderr] [2026-03-07 05:56:57] INFO  | etl_billiards | [ODS_GROUP_BUY_REDEMPTION] 完成(3/9)，已处理 90/251.17 天
[stderr] [2026-03-07 05:56:57] INFO  | etl_billiards | [ODS_GROUP_BUY_REDEMPTION] 开始执行(4/9)，窗口[2025-09-29 06:00:00+08:00 ~ 2025-10-29 06:00:00+08:00]
[stderr] [2026-03-07 05:56:57] INFO  | etl_billiards | [ODS_GROUP_BUY_REDEMPTION] early-cutoff 保护生效，软删除窗口起点从 2025-09-29 06:00:00+08:00 收窄至 2025-12-06 11:10:37+08:00
[stderr] [2026-03-07 05:56:57] INFO  | etl_billiards | [ODS_GROUP_BUY_REDEMPTION] 完成(4/9)，已处理 120/251.17 天
[stderr] [2026-03-07 05:56:57] INFO  | etl_billiards | [ODS_GROUP_BUY_REDEMPTION] 开始执行(5/9)，窗口[2025-10-29 06:00:00+08:00 ~ 2025-11-28 06:00:00+08:00]
[stderr] [2026-03-07 05:56:57] INFO  | etl_billiards | [ODS_GROUP_BUY_REDEMPTION] early-cutoff 保护生效，软删除窗口起点从 2025-10-29 06:00:00+08:00 收窄至 2025-12-06 11:10:37+08:00
[stderr] [2026-03-07 05:56:57] INFO  | etl_billiards | [ODS_GROUP_BUY_REDEMPTION] 完成(5/9)，已处理 150/251.17 天
[stderr] [2026-03-07 05:56:57] INFO  | etl_billiards | [ODS_GROUP_BUY_REDEMPTION] 开始执行(6/9)，窗口[2025-11-28 06:00:00+08:00 ~ 2025-12-28 06:00:00+08:00]
[stderr] [2026-03-07 05:56:57] INFO  | etl_billiards | [ODS_GROUP_BUY_REDEMPTION] early-cutoff 保护生效，软删除窗口起点从 2025-11-28 06:00:00+08:00 收窄至 2025-12-06 11:10:37+08:00
[stderr] [2026-03-07 05:56:57] INFO  | etl_billiards | [ODS_GROUP_BUY_REDEMPTION] 完成(6/9)，已处理 180/251.17 天
[stderr] [2026-03-07 05:56:57] INFO  | etl_billiards | [ODS_GROUP_BUY_REDEMPTION] 开始执行(7/9)，窗口[2025-12-28 06:00:00+08:00 ~ 2026-01-27 06:00:00+08:00]
[stderr] [2026-03-07 05:56:57] INFO  | etl_billiards | [ODS_GROUP_BUY_REDEMPTION] 完成(7/9)，已处理 210/251.17 天
[stderr] [2026-03-07 05:56:57] INFO  | etl_billiards | [ODS_GROUP_BUY_REDEMPTION] 开始执行(8/9)，窗口[2026-01-27 06:00:00+08:00 ~ 2026-02-26 06:00:00+08:00]
[stderr] [2026-03-07 05:56:57] INFO  | etl_billiards | [ODS_GROUP_BUY_REDEMPTION] 完成(8/9)，已处理 240/251.17 天
[stderr] [2026-03-07 05:56:57] INFO  | etl_billiards | [ODS_GROUP_BUY_REDEMPTION] 开始执行(9/9)，窗口[2026-02-26 06:00:00+08:00 ~ 2026-03-09 10:00:00+08:00]
[stderr] [2026-03-07 05:56:57] INFO  | etl_billiards | [ODS_GROUP_BUY_REDEMPTION] late-cutoff 保护生效，软删除窗口终点从 2026-03-09 10:00:00+08:00 收窄至 2026-03-07 02:32:35+08:00
[stderr] [2026-03-07 05:56:57] INFO  | etl_billiards | [ODS_GROUP_BUY_REDEMPTION] 完成(9/9)，已处理 251.17/251.17 天
[stderr] [2026-03-07 05:56:57] INFO  | etl_billiards | [ODS_GROUP_BUY_REDEMPTION] ODS 任务完成: {'fetched': 55944, 'inserted': 0, 'updated': 55944, 'skipped': 0, 'errors': 0, 'deleted': 0}
[stderr] [2026-03-07 05:56:58] INFO  | etl_billiards | ODS_INVENTORY_STOCK: ODS fetch+load start, dir=C:\NeoZQYY\export\ETL-Connectors\feiqiu\JSON\ODS_INVENTORY_STOCK\ODS_INVENTORY_STOCK-10116-20260307-055658
[stderr] [2026-03-07 05:56:58] INFO  | etl_billiards | 开始执行ODS_INVENTORY_STOCK (ODS)
[stderr] [2026-03-07 05:56:58] INFO  | etl_billiards | ODS_INVENTORY_STOCK: 窗口拆分为 9 段（共 251.17 天）
[stderr] [2026-03-07 05:56:58] INFO  | etl_billiards | ODS_INVENTORY_STOCK: 开始执行(1/9)，窗口[2025-07-01 06:00:00+08:00 ~ 2025-07-31 06:00:00+08:00]
[stderr] [2026-03-07 05:57:01] INFO  | etl_billiards | 管道执行摘要: status=SUCCESS, 总耗时=2.8s [请求=2.6s, 处理=0.0s, 写入=0.2s], 请求=1/1, 获取=173, 写入(inserted=71, updated=102, skipped=0), 失败(request=0, process=0, write=0)
[stderr] [2026-03-07 05:57:01] INFO  | etl_billiards | ODS_INVENTORY_STOCK: 完成(1/9)，已处理 30/251.17 天
[stderr] [2026-03-07 05:57:01] INFO  | etl_billiards | ODS_INVENTORY_STOCK: 开始执行(2/9)，窗口[2025-07-31 06:00:00+08:00 ~ 2025-08-30 06:00:00+08:00]
[stderr] [2026-03-07 05:57:04] INFO  | etl_billiards | 管道执行摘要: status=SUCCESS, 总耗时=2.8s [请求=2.0s, 处理=0.0s, 写入=0.1s], 请求=1/1, 获取=173, 写入(inserted=74, updated=99, skipped=0), 失败(request=0, process=0, write=0)
[stderr] [2026-03-07 05:57:04] INFO  | etl_billiards | ODS_INVENTORY_STOCK: 完成(2/9)，已处理 60/251.17 天
[stderr] [2026-03-07 05:57:04] INFO  | etl_billiards | ODS_INVENTORY_STOCK: 开始执行(3/9)，窗口[2025-08-30 06:00:00+08:00 ~ 2025-09-29 06:00:00+08:00]
[stderr] [2026-03-07 05:57:05] INFO  | etl_billiards | 管道执行摘要: status=SUCCESS, 总耗时=0.7s [请求=0.5s, 处理=0.0s, 写入=0.1s], 请求=1/1, 获取=173, 写入(inserted=73, updated=100, skipped=0), 失败(request=0, process=0, write=0)
[stderr] [2026-03-07 05:57:05] INFO  | etl_billiards | ODS_INVENTORY_STOCK: 完成(3/9)，已处理 90/251.17 天
[stderr] [2026-03-07 05:57:05] INFO  | etl_billiards | ODS_INVENTORY_STOCK: 开始执行(4/9)，窗口[2025-09-29 06:00:00+08:00 ~ 2025-10-29 06:00:00+08:00]
[stderr] [2026-03-07 05:57:08] ERROR | etl_billiards | ODS_INVENTORY_STOCK ODS 任务失败
[stderr] Traceback (most recent call last):
[stderr]   File "C:\NeoZQYY\apps\etl\connectors\feiqiu\tasks\ods\ods_tasks.py", line 233, in execute
[stderr]     pipe_result = pipeline.run(requests, process_fn, write_fn)
[stderr]   File "C:\NeoZQYY\apps\etl\connectors\feiqiu\pipeline\unified_pipeline.py", line 134, in run
[stderr]     self._request_loop(requests, processing_queue, result)
[stderr]     ~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[stderr]   File "C:\NeoZQYY\apps\etl\connectors\feiqiu\pipeline\unified_pipeline.py", line 245, in _request_loop
[stderr]     for req in requests:
[stderr]                ^^^^^^^^
[stderr]   File "C:\NeoZQYY\apps\etl\connectors\feiqiu\tasks\ods\ods_tasks.py", line 444, in _build_requests
[stderr]     for page_num, page_records, total, response_payload in self.api.iter_paginated(
[stderr]                                                            ~~~~~~~~~~~~~~~~~~~~~~~^
[stderr]         endpoint=spec.endpoint,
[stderr]         ^^^^^^^^^^^^^^^^^^^^^^^
[stderr]     ...<3 lines>...
[stderr]         list_key=spec.list_key,
[stderr]         ^^^^^^^^^^^^^^^^^^^^^^^
[stderr]     ):
[stderr]     ^
[stderr]   File "C:\NeoZQYY\apps\etl\connectors\feiqiu\api\recording_client.py", line 61, in iter_paginated
[stderr]     for page_no, records, request_params, response in self.base.iter_paginated(
[stderr]                                                       ~~~~~~~~~~~~~~~~~~~~~~~~^
[stderr]         endpoint=endpoint,
[stderr]         ^^^^^^^^^^^^^^^^^^
[stderr]     ...<5 lines>...
[stderr]         list_key=list_key,
[stderr]         ^^^^^^^^^^^^^^^^^^
[stderr]     ):
[stderr]     ^
[stderr]   File "C:\NeoZQYY\apps\etl\connectors\feiqiu\api\client.py", line 215, in iter_paginated
[stderr]     for _, records, request_params, payload in self._iter_paginated_single(
[stderr]                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~^
[stderr]         endpoint=call.endpoint,
[stderr]         ^^^^^^^^^^^^^^^^^^^^^^^
[stderr]     ...<7 lines>...
[stderr]         page_end=page_end,
[stderr]         ^^^^^^^^^^^^^^^^^^
[stderr]     ):
[stderr]     ^
[stderr]   File "C:\NeoZQYY\apps\etl\connectors\feiqiu\api\client.py", line 177, in _iter_paginated_single
[stderr]     payload = self._post_json(endpoint, page_params)
[stderr]   File "C:\NeoZQYY\apps\etl\connectors\feiqiu\api\client.py", line 124, in _post_json
[stderr]     self._ensure_success(data)
[stderr]     ~~~~~~~~~~~~~~~~~~~~^^^^^^
[stderr]   File "C:\NeoZQYY\apps\etl\connectors\feiqiu\api\client.py", line 150, in _ensure_success
[stderr]     raise ValueError(f"API 返回错误 code={code} msg={msg}")
[stderr] ValueError: API 返回错误 code=1999 msg=系统异常
[stderr] [2026-03-07 05:57:09] INFO  | etl_billiards | [ODS_INVENTORY_STOCK] 开始执行ODS_INVENTORY_STOCK (ODS)
[stderr] [2026-03-07 05:57:09] INFO  | etl_billiards | [ODS_INVENTORY_STOCK] 窗口拆分为 9 段（共 251.17 天）
[stderr] [2026-03-07 05:57:09] INFO  | etl_billiards | [ODS_INVENTORY_STOCK] 开始执行(1/9)，窗口[2025-07-01 06:00:00+08:00 ~ 2025-07-31 06:00:00+08:00]
[stderr] [2026-03-07 05:57:09] INFO  | etl_billiards | [ODS_INVENTORY_STOCK] 完成(1/9)，已处理 30/251.17 天
[stderr] [2026-03-07 05:57:09] INFO  | etl_billiards | [ODS_INVENTORY_STOCK] 开始执行(2/9)，窗口[2025-07-31 06:00:00+08:00 ~ 2025-08-30 06:00:00+08:00]
[stderr] [2026-03-07 05:57:09] INFO  | etl_billiards | [ODS_INVENTORY_STOCK] 完成(2/9)，已处理 60/251.17 天
[stderr] [2026-03-07 05:57:09] INFO  | etl_billiards | [ODS_INVENTORY_STOCK] 开始执行(3/9)，窗口[2025-08-30 06:00:00+08:00 ~ 2025-09-29 06:00:00+08:00]
[stderr] [2026-03-07 05:57:09] INFO  | etl_billiards | [ODS_INVENTORY_STOCK] 完成(3/9)，已处理 90/251.17 天
[stderr] [2026-03-07 05:57:09] INFO  | etl_billiards | [ODS_INVENTORY_STOCK] 开始执行(4/9)，窗口[2025-09-29 06:00:00+08:00 ~ 2025-10-29 06:00:00+08:00]
[stderr] [2026-03-07 05:57:09] ERROR | etl_billiards | [ODS_INVENTORY_STOCK] ODS 任务失败
[stderr] [2026-03-07 05:57:09] ERROR | etl_billiards | 任务 ODS_INVENTORY_STOCK 失败: API 返回错误 code=1999 msg=系统异常
[stderr] Traceback (most recent call last):
[stderr]   File "C:\NeoZQYY\apps\etl\connectors\feiqiu\orchestration\task_executor.py", line 97, in run_tasks
[stderr]     task_result = self.run_single_task(
[stderr]         task_code, run_uuid, store_id, data_source=data_source,
[stderr]     )
[stderr]   File "C:\NeoZQYY\apps\etl\connectors\feiqiu\orchestration\task_executor.py", line 191, in run_single_task
[stderr]     result, last_dump = self._execute_ods_record_and_load(
[stderr]                         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
[stderr]         task_code, cursor_data, fetch_dir, run_id,
[stderr]         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[stderr]     )
[stderr]     ^
[stderr]   File "C:\NeoZQYY\apps\etl\connectors\feiqiu\orchestration\task_executor.py", line 340, in _execute_ods_record_and_load
[stderr]     result = task.execute(cursor_data)
[stderr]   File "C:\NeoZQYY\apps\etl\connectors\feiqiu\tasks\ods\ods_tasks.py", line 233, in execute
[stderr]     pipe_result = pipeline.run(requests, process_fn, write_fn)
[stderr]   File "C:\NeoZQYY\apps\etl\connectors\feiqiu\pipeline\unified_pipeline.py", line 134, in run
[stderr]     self._request_loop(requests, processing_queue, result)
[stderr]     ~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[stderr]   File "C:\NeoZQYY\apps\etl\connectors\feiqiu\pipeline\unified_pipeline.py", line 245, in _request_loop
[stderr]     for req in requests:
[stderr]                ^^^^^^^^
[stderr]   File "C:\NeoZQYY\apps\etl\connectors\feiqiu\tasks\ods\ods_tasks.py", line 444, in _build_requests
[stderr]     for page_num, page_records, total, response_payload in self.api.iter_paginated(
[stderr]                                                            ~~~~~~~~~~~~~~~~~~~~~~~^
[stderr]         endpoint=spec.endpoint,
[stderr]         ^^^^^^^^^^^^^^^^^^^^^^^
[stderr]     ...<3 lines>...
[stderr]         list_key=spec.list_key,
[stderr]         ^^^^^^^^^^^^^^^^^^^^^^^
[stderr]     ):
[stderr]     ^
[stderr]   File "C:\NeoZQYY\apps\etl\connectors\feiqiu\api\recording_client.py", line 61, in iter_paginated
[stderr]     for page_no, records, request_params, response in self.base.iter_paginated(
[stderr]                                                       ~~~~~~~~~~~~~~~~~~~~~~~~^
[stderr]         endpoint=endpoint,
[stderr]         ^^^^^^^^^^^^^^^^^^
[stderr]     ...<5 lines>...
[stderr]         list_key=list_key,
[stderr]         ^^^^^^^^^^^^^^^^^^
[stderr]     ):
[stderr]     ^
[stderr]   File "C:\NeoZQYY\apps\etl\connectors\feiqiu\api\client.py", line 215, in iter_paginated
[stderr]     for _, records, request_params, payload in self._iter_paginated_single(
[stderr]                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~^
[stderr]         endpoint=call.endpoint,
[stderr]         ^^^^^^^^^^^^^^^^^^^^^^^
[stderr]     ...<7 lines>...
[stderr]         page_end=page_end,
[stderr]         ^^^^^^^^^^^^^^^^^^
[stderr]     ):
[stderr]     ^
[stderr]   File "C:\NeoZQYY\apps\etl\connectors\feiqiu\api\client.py", line 177, in _iter_paginated_single
[stderr]     payload = self._post_json(endpoint, page_params)
[stderr]   File "C:\NeoZQYY\apps\etl\connectors\feiqiu\api\client.py", line 124, in _post_json
[stderr]     self._ensure_success(data)
[stderr]     ~~~~~~~~~~~~~~~~~~~~^^^^^^
[stderr]   File "C:\NeoZQYY\apps\etl\connectors\feiqiu\api\client.py", line 150, in _ensure_success
[stderr]     raise ValueError(f"API 返回错误 code={code} msg={msg}")
[stderr] ValueError: API 返回错误 code=1999 msg=系统异常
[stderr] [2026-03-07 05:57:09] ERROR | etl_billiards | [ODS_INVENTORY_STOCK] 任务失败: API 返回错误 code=1999 msg=系统异常
[stderr] [2026-03-07 05:57:09] INFO  | etl_billiards | ODS_INVENTORY_CHANGE: ODS fetch+load start, dir=C:\NeoZQYY\export\ETL-Connectors\feiqiu\JSON\ODS_INVENTORY_CHANGE\ODS_INVENTORY_CHANGE-10117-20260307-055709
[stderr] [2026-03-07 05:57:09] INFO  | etl_billiards | 开始执行ODS_INVENTORY_CHANGE (ODS)
[stderr] [2026-03-07 05:57:09] INFO  | etl_billiards | ODS_INVENTORY_CHANGE: 窗口拆分为 9 段（共 251.17 天）
[stderr] [2026-03-07 05:57:09] INFO  | etl_billiards | ODS_INVENTORY_CHANGE: 开始执行(1/9)，窗口[2025-07-01 06:00:00+08:00 ~ 2025-07-31 06:00:00+08:00]
[stderr] [2026-03-07 05:57:31] INFO  | etl_billiards | 管道执行摘要: status=SUCCESS, 总耗时=21.4s [请求=20.9s, 处理=0.0s, 写入=0.1s], 请求=13/13, 获取=2406, 写入(inserted=0, updated=2406, skipped=0), 失败(request=0, process=0, write=0)
[stderr] [2026-03-07 05:57:31] INFO  | etl_billiards | ODS_INVENTORY_CHANGE: 完成(1/9)，已处理 30/251.17 天
[stderr] [2026-03-07 05:57:31] INFO  | etl_billiards | ODS_INVENTORY_CHANGE: 开始执行(2/9)，窗口[2025-07-31 06:00:00+08:00 ~ 2025-08-30 06:00:00+08:00]
[stderr] [2026-03-07 05:58:03] INFO  | etl_billiards | 管道执行摘要: status=SUCCESS, 总耗时=31.9s [请求=31.8s, 处理=0.0s, 写入=0.1s], 请求=26/26, 获取=5044, 写入(inserted=0, updated=5044, skipped=0), 失败(request=0, process=0, write=0)
[stderr] [2026-03-07 05:58:03] INFO  | etl_billiards | ODS_INVENTORY_CHANGE: 完成(2/9)，已处理 60/251.17 天
[stderr] [2026-03-07 05:58:03] INFO  | etl_billiards | ODS_INVENTORY_CHANGE: 开始执行(3/9)，窗口[2025-08-30 06:00:00+08:00 ~ 2025-09-29 06:00:00+08:00]
[stderr] [2026-03-07 05:58:41] INFO  | etl_billiards | 管道执行摘要: status=SUCCESS, 总耗时=38.2s [请求=37.6s, 处理=0.0s, 写入=0.6s], 请求=25/25, 获取=4929, 写入(inserted=0, updated=4929, skipped=0), 失败(request=0, process=0, write=0)
[stderr] [2026-03-07 05:58:41] INFO  | etl_billiards | ODS_INVENTORY_CHANGE: 完成(3/9)，已处理 90/251.17 天
[stderr] [2026-03-07 05:58:41] INFO  | etl_billiards | ODS_INVENTORY_CHANGE: 开始执行(4/9)，窗口[2025-09-29 06:00:00+08:00 ~ 2025-10-29 06:00:00+08:00]
[stderr] [2026-03-07 05:59:10] INFO  | etl_billiards | 管道执行摘要: status=SUCCESS, 总耗时=28.4s [请求=28.2s, 处理=0.0s, 写入=0.1s], 请求=19/19, 获取=4021, 写入(inserted=0, updated=4021, skipped=0), 失败(request=0, process=0, write=0)
[stderr] [2026-03-07 05:59:10] INFO  | etl_billiards | ODS_INVENTORY_CHANGE: 完成(4/9)，已处理 120/251.17 天
[stderr] [2026-03-07 05:59:10] INFO  | etl_billiards | ODS_INVENTORY_CHANGE: 开始执行(5/9)，窗口[2025-10-29 06:00:00+08:00 ~ 2025-11-28 06:00:00+08:00]
[stderr] [2026-03-07 05:59:50] INFO  | etl_billiards | 管道执行摘要: status=SUCCESS, 总耗时=39.9s [请求=39.5s, 处理=0.0s, 写入=0.4s], 请求=28/28, 获取=5581, 写入(inserted=0, updated=5581, skipped=0), 失败(request=0, process=0, write=0)
[stderr] [2026-03-07 05:59:50] INFO  | etl_billiards | ODS_INVENTORY_CHANGE: 完成(5/9)，已处理 150/251.17 天
[stderr] [2026-03-07 05:59:50] INFO  | etl_billiards | ODS_INVENTORY_CHANGE: 开始执行(6/9)，窗口[2025-11-28 06:00:00+08:00 ~ 2025-12-28 06:00:00+08:00]
[stderr] [2026-03-07 06:00:29] INFO  | etl_billiards | 管道执行摘要: status=SUCCESS, 总耗时=38.8s [请求=38.5s, 处理=0.0s, 写入=0.3s], 请求=23/23, 获取=4337, 写入(inserted=0, updated=4337, skipped=0), 失败(request=0, process=0, write=0)
[stderr] [2026-03-07 06:00:29] INFO  | etl_billiards | ODS_INVENTORY_CHANGE: 完成(6/9)，已处理 180/251.17 天
[stderr] [2026-03-07 06:00:29] INFO  | etl_billiards | ODS_INVENTORY_CHANGE: 开始执行(7/9)，窗口[2025-12-28 06:00:00+08:00 ~ 2026-01-27 06:00:00+08:00]
[stderr] [2026-03-07 06:01:08] INFO  | etl_billiards | 管道执行摘要: status=SUCCESS, 总耗时=39.2s [请求=38.7s, 处理=0.0s, 写入=0.1s], 请求=25/25, 获取=4899, 写入(inserted=0, updated=4899, skipped=0), 失败(request=0, process=0, write=0)
[stderr] [2026-03-07 06:01:08] INFO  | etl_billiards | ODS_INVENTORY_CHANGE: 完成(7/9)，已处理 210/251.17 天
[stderr] [2026-03-07 06:01:08] INFO  | etl_billiards | ODS_INVENTORY_CHANGE: 开始执行(8/9)，窗口[2026-01-27 06:00:00+08:00 ~ 2026-02-26 06:00:00+08:00]
[stderr] [2026-03-07 06:01:37] INFO  | etl_billiards | 管道执行摘要: status=SUCCESS, 总耗时=28.3s [请求=27.7s, 处理=0.0s, 写入=0.5s], 请求=15/15, 获取=2852, 写入(inserted=0, updated=2852, skipped=0), 失败(request=0, process=0, write=0)
[stderr] [2026-03-07 06:01:37] INFO  | etl_billiards | ODS_INVENTORY_CHANGE: 完成(8/9)，已处理 240/251.17 天
[stderr] [2026-03-07 06:01:37] INFO  | etl_billiards | ODS_INVENTORY_CHANGE: 开始执行(9/9)，窗口[2026-02-26 06:00:00+08:00 ~ 2026-03-09 10:00:00+08:00]
[stderr] [2026-03-07 06:01:41] INFO  | etl_billiards | 管道执行摘要: status=SUCCESS, 总耗时=4.4s [请求=4.1s, 处理=0.0s, 写入=0.2s], 请求=3/3, 获取=548, 写入(inserted=0, updated=548, skipped=0), 失败(request=0, process=0, write=0)
[stderr] [2026-03-07 06:01:41] INFO  | etl_billiards | ODS_INVENTORY_CHANGE: 完成(9/9)，已处理 251.17/251.17 天
[stderr] [2026-03-07 06:01:41] INFO  | etl_billiards | ODS_INVENTORY_CHANGE ODS 任务完成: {'fetched': 34617, 'inserted': 0, 'updated': 34617, 'skipped': 0, 'errors': 0, 'deleted': 0}
[stderr] [2026-03-07 06:01:41] INFO  | etl_billiards | [ODS_INVENTORY_CHANGE] 开始执行ODS_INVENTORY_CHANGE (ODS)
[stderr] [2026-03-07 06:01:41] INFO  | etl_billiards | [ODS_INVENTORY_CHANGE] 窗口拆分为 9 段（共 251.17 天）
[stderr] [2026-03-07 06:01:41] INFO  | etl_billiards | [ODS_INVENTORY_CHANGE] 开始执行(1/9)，窗口[2025-07-01 06:00:00+08:00 ~ 2025-07-31 06:00:00+08:00]
[stderr] [2026-03-07 06:01:41] INFO  | etl_billiards | [ODS_INVENTORY_CHANGE] 完成(1/9)，已处理 30/251.17 天
[stderr] [2026-03-07 06:01:41] INFO  | etl_billiards | [ODS_INVENTORY_CHANGE] 开始执行(2/9)，窗口[2025-07-31 06:00:00+08:00 ~ 2025-08-30 06:00:00+08:00]
[stderr] [2026-03-07 06:01:41] INFO  | etl_billiards | [ODS_INVENTORY_CHANGE] 完成(2/9)，已处理 60/251.17 天
[stderr] [2026-03-07 06:01:41] INFO  | etl_billiards | [ODS_INVENTORY_CHANGE] 开始执行(3/9)，窗口[2025-08-30 06:00:00+08:00 ~ 2025-09-29 06:00:00+08:00]
[stderr] [2026-03-07 06:01:41] INFO  | etl_billiards | [ODS_INVENTORY_CHANGE] 完成(3/9)，已处理 90/251.17 天
[stderr] [2026-03-07 06:01:41] INFO  | etl_billiards | [ODS_INVENTORY_CHANGE] 开始执行(4/9)，窗口[2025-09-29 06:00:00+08:00 ~ 2025-10-29 06:00:00+08:00]
[stderr] [2026-03-07 06:01:41] INFO  | etl_billiards | [ODS_INVENTORY_CHANGE] 完成(4/9)，已处理 120/251.17 天
[stderr] [2026-03-07 06:01:41] INFO  | etl_billiards | [ODS_INVENTORY_CHANGE] 开始执行(5/9)，窗口[2025-10-29 06:00:00+08:00 ~ 2025-11-28 06:00:00+08:00]
[stderr] [2026-03-07 06:01:41] INFO  | etl_billiards | [ODS_INVENTORY_CHANGE] 完成(5/9)，已处理 150/251.17 天
[stderr] [2026-03-07 06:01:41] INFO  | etl_billiards | [ODS_INVENTORY_CHANGE] 开始执行(6/9)，窗口[2025-11-28 06:00:00+08:00 ~ 2025-12-28 06:00:00+08:00]
[stderr] [2026-03-07 06:01:41] INFO  | etl_billiards | [ODS_INVENTORY_CHANGE] 完成(6/9)，已处理 180/251.17 天
[stderr] [2026-03-07 06:01:41] INFO  | etl_billiards | [ODS_INVENTORY_CHANGE] 开始执行(7/9)，窗口[2025-12-28 06:00:00+08:00 ~ 2026-01-27 06:00:00+08:00]
[stderr] [2026-03-07 06:01:41] INFO  | etl_billiards | [ODS_INVENTORY_CHANGE] 完成(7/9)，已处理 210/251.17 天
[stderr] [2026-03-07 06:01:41] INFO  | etl_billiards | [ODS_INVENTORY_CHANGE] 开始执行(8/9)，窗口[2026-01-27 06:00:00+08:00 ~ 2026-02-26 06:00:00+08:00]
[stderr] [2026-03-07 06:01:41] INFO  | etl_billiards | [ODS_INVENTORY_CHANGE] 完成(8/9)，已处理 240/251.17 天
[stderr] [2026-03-07 06:01:41] INFO  | etl_billiards | [ODS_INVENTORY_CHANGE] 开始执行(9/9)，窗口[2026-02-26 06:00:00+08:00 ~ 2026-03-09 10:00:00+08:00]
[stderr] [2026-03-07 06:01:41] INFO  | etl_billiards | [ODS_INVENTORY_CHANGE] 完成(9/9)，已处理 251.17/251.17 天
[stderr] [2026-03-07 06:01:41] INFO  | etl_billiards | [ODS_INVENTORY_CHANGE] ODS 任务完成: {'fetched': 34617, 'inserted': 0, 'updated': 34617, 'skipped': 0, 'errors': 0, 'deleted': 0}
[stderr] [2026-03-07 06:01:42] INFO  | etl_billiards | DWD_LOAD_FROM_ODS: 抓取阶段开始，目录=C:\NeoZQYY\export\ETL-Connectors\feiqiu\JSON\DWD_LOAD_FROM_ODS\DWD_LOAD_FROM_ODS-10118-20260307-060142
[stderr] [2026-03-07 06:01:42] INFO  | etl_billiards | DWD_LOAD_FROM_ODS: 抓取完成，文件=None，记录数=0
[stderr] [2026-03-07 06:01:42] INFO  | etl_billiards | DWD_LOAD_FROM_ODS: 本地清洗入库开始，源目录=C:\NeoZQYY\export\ETL-Connectors\feiqiu\JSON\DWD_LOAD_FROM_ODS\DWD_LOAD_FROM_ODS-10118-20260307-060142
[stderr] [2026-03-07 06:01:42] INFO  | etl_billiards | DWD_LOAD_FROM_ODS: 窗口拆分为 9 段（共 251.17 天）
[stderr] [2026-03-07 06:01:42] INFO  | etl_billiards | DWD_LOAD_FROM_ODS: 开始执行(1/9)，窗口[2025-07-01 06:00:00+08:00 ~ 2025-07-31 06:00:00+08:00]
[stderr] [2026-03-07 06:01:42] INFO  | etl_billiards | DWD 装载开始：dwd.dim_site <= ods.table_fee_transactions
[stderr] [2026-03-07 06:01:42] INFO  | etl_billiards | DWD 装载开始：dwd.dim_site_ex <= ods.table_fee_transactions
[stderr] [2026-03-07 06:01:42] INFO  | etl_billiards | DWD 装载开始：dwd.dim_table <= ods.site_tables_master
[stderr] [2026-03-07 06:01:42] INFO  | etl_billiards | DWD 装载开始：dwd.dim_table_ex <= ods.site_tables_master
[stderr] [2026-03-07 06:01:44] INFO  | etl_billiards | DWD 装载完成：dwd.dim_table，用时 2.08s
[stderr] [2026-03-07 06:01:44] INFO  | etl_billiards | DWD 装载开始：dwd.dim_assistant <= ods.assistant_accounts_master
[stderr] [2026-03-07 06:01:45] INFO  | etl_billiards | DWD 装载完成：dwd.dim_table_ex，用时 2.10s
[stderr] [2026-03-07 06:01:45] INFO  | etl_billiards | DWD 装载开始：dwd.dim_assistant_ex <= ods.assistant_accounts_master
[stderr] [2026-03-07 06:01:45] INFO  | etl_billiards | DWD 装载完成：dwd.dim_site，用时 2.36s
[stderr] [2026-03-07 06:01:45] INFO  | etl_billiards | DWD 装载开始：dwd.dim_member <= ods.member_profiles
[stderr] [2026-03-07 06:01:45] INFO  | etl_billiards | DWD 装载完成：dwd.dim_site_ex，用时 2.61s
[stderr] [2026-03-07 06:01:45] INFO  | etl_billiards | DWD 装载开始：dwd.dim_member_ex <= ods.member_profiles
[stderr] [2026-03-07 06:01:46] INFO  | etl_billiards | DWD 装载完成：dwd.dim_assistant，用时 1.68s
[stderr] [2026-03-07 06:01:46] INFO  | etl_billiards | DWD 装载开始：dwd.dim_member_card_account <= ods.member_stored_value_cards
[stderr] [2026-03-07 06:01:47] INFO  | etl_billiards | DWD 装载完成：dwd.dim_assistant_ex，用时 2.26s
[stderr] [2026-03-07 06:01:47] INFO  | etl_billiards | DWD 装载开始：dwd.dim_member_card_account_ex <= ods.member_stored_value_cards
[stderr] [2026-03-07 06:01:48] INFO  | etl_billiards | DWD 装载完成：dwd.dim_member，用时 2.92s
[stderr] [2026-03-07 06:01:48] INFO  | etl_billiards | DWD 装载开始：dwd.dim_tenant_goods <= ods.tenant_goods_master
[stderr] [2026-03-07 06:01:48] INFO  | etl_billiards | DWD 装载完成：dwd.dim_member_ex，用时 2.78s
[stderr] [2026-03-07 06:01:48] INFO  | etl_billiards | DWD 装载开始：dwd.dim_tenant_goods_ex <= ods.tenant_goods_master
[stderr] [2026-03-07 06:01:49] INFO  | etl_billiards | DWD 装载完成：dwd.dim_member_card_account，用时 3.12s
[stderr] [2026-03-07 06:01:49] INFO  | etl_billiards | DWD 装载开始：dwd.dim_store_goods <= ods.store_goods_master
[stderr] [2026-03-07 06:01:49] INFO  | etl_billiards | DWD 装载完成：dwd.dim_tenant_goods，用时 1.73s
[stderr] [2026-03-07 06:01:49] INFO  | etl_billiards | DWD 装载开始：dwd.dim_store_goods_ex <= ods.store_goods_master
[stderr] [2026-03-07 06:01:49] ERROR | etl_billiards | DWD 装载失败：dwd.dim_tenant_goods_ex，用时 1.64s，err=错误:  有缺陷的数组常量:"["10000028"]"
[stderr] LINE 1: ...rsion", "tenant_goods_id") VALUES (1,2,'10000028','["1000002...
[stderr]                                                              ^
[stderr] DETAIL:  "["必须引入显式指定的数组规模。
[stderr] Traceback (most recent call last):
[stderr]   File "C:\NeoZQYY\apps\etl\connectors\feiqiu\tasks\dwd\dwd_load_task.py", line 760, in _process_single_table
[stderr]     dim_counts = self._merge_dim(cur, dwd_table, ods_table, dwd_cols, ods_cols, now)
[stderr]   File "C:\NeoZQYY\apps\etl\connectors\feiqiu\tasks\dwd\dwd_load_task.py", line 920, in _merge_dim
[stderr]     return self._merge_dim_scd2(cur, dwd_table, ods_table, dwd_cols, ods_cols, now)
[stderr]            ~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[stderr]   File "C:\NeoZQYY\apps\etl\connectors\feiqiu\tasks\dwd\dwd_load_task.py", line 1111, in _merge_dim_scd2
[stderr]     self._insert_dim_rows_bulk(cur, dwd_table, dwd_cols, to_insert, now)
[stderr]     ~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[stderr]   File "C:\NeoZQYY\apps\etl\connectors\feiqiu\tasks\dwd\dwd_load_task.py", line 1182, in _insert_dim_rows_bulk
[stderr]     execute_values(cur, insert_sql, values_rows, page_size=500)
[stderr]     ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[stderr]   File "C:\NeoZQYY\.venv\Lib\site-packages\psycopg2\extras.py", line 1299, in execute_values
[stderr]     cur.execute(b''.join(parts))
[stderr]     ~~~~~~~~~~~^^^^^^^^^^^^^^^^^
[stderr]   File "C:\NeoZQYY\.venv\Lib\site-packages\psycopg2\extras.py", line 236, in execute
[stderr]     return super().execute(query, vars)
[stderr]            ~~~~~~~~~~~~~~~^^^^^^^^^^^^^
[stderr] psycopg2.errors.InvalidTextRepresentation: 错误:  有缺陷的数组常量:"["10000028"]"
[stderr] LINE 1: ...rsion", "tenant_goods_id") VALUES (1,2,'10000028','["1000002...
[stderr]                                                              ^
[stderr] DETAIL:  "["必须引入显式指定的数组规模。
[stderr] 
[stderr] [2026-03-07 06:01:49] INFO  | etl_billiards | DWD 装载开始：dwd.dim_goods_category <= ods.stock_goods_category_tree
[stderr] [2026-03-07 06:01:49] ERROR | etl_billiards | DWD 并行装载失败：dwd.dim_tenant_goods_ex，err=错误:  有缺陷的数组常量:"["10000028"]"
[stderr] LINE 1: ...rsion", "tenant_goods_id") VALUES (1,2,'10000028','["1000002...
[stderr]                                                              ^
[stderr] DETAIL:  "["必须引入显式指定的数组规模。
[stderr] 
[stderr] [2026-03-07 06:01:50] INFO  | etl_billiards | DWD 装载完成：dwd.dim_member_card_account_ex，用时 2.88s
[stderr] [2026-03-07 06:01:50] INFO  | etl_billiards | DWD 装载开始：dwd.dim_groupbuy_package <= ods.group_buy_packages
[stderr] [2026-03-07 06:01:51] INFO  | etl_billiards | DWD 装载完成：dwd.dim_goods_category，用时 1.37s
[stderr] [2026-03-07 06:01:51] INFO  | etl_billiards | DWD 装载开始：dwd.dim_groupbuy_package_ex <= ods.group_buy_packages
[stderr] [2026-03-07 06:01:51] INFO  | etl_billiards | DWD 装载完成：dwd.dim_store_goods_ex，用时 1.40s
[stderr] [2026-03-07 06:01:51] INFO  | etl_billiards | DWD 装载开始：dwd.dwd_settlement_head <= ods.settlement_records
[stderr] [2026-03-07 06:01:51] INFO  | etl_billiards | DWD 装载完成：dwd.dim_store_goods，用时 1.55s
[stderr] [2026-03-07 06:01:51] INFO  | etl_billiards | DWD 装载开始：dwd.dwd_settlement_head_ex <= ods.settlement_records
[stderr] [2026-03-07 06:01:51] INFO  | etl_billiards | DWD 装载完成：dwd.dim_groupbuy_package，用时 1.21s
[stderr] [2026-03-07 06:01:51] INFO  | etl_billiards | DWD 装载开始：dwd.dwd_table_fee_log <= ods.table_fee_transactions
[stderr] [2026-03-07 06:01:52] INFO  | etl_billiards | DWD 装载完成：dwd.dwd_settlement_head，用时 1.05s
[stderr] [2026-03-07 06:01:52] INFO  | etl_billiards | DWD 装载开始：dwd.dwd_table_fee_log_ex <= ods.table_fee_transactions
[stderr] [2026-03-07 06:01:52] INFO  | etl_billiards | DWD 装载完成：dwd.dwd_settlement_head_ex，用时 1.04s
[stderr] [2026-03-07 06:01:52] INFO  | etl_billiards | DWD 装载开始：dwd.dwd_table_fee_adjust <= ods.table_fee_discount_records
[stderr] [2026-03-07 06:01:52] INFO  | etl_billiards | DWD 装载完成：dwd.dim_groupbuy_package_ex，用时 1.21s
[stderr] [2026-03-07 06:01:52] INFO  | etl_billiards | DWD 装载开始：dwd.dwd_table_fee_adjust_ex <= ods.table_fee_discount_records
[stderr] [2026-03-07 06:01:52] INFO  | etl_billiards | DWD 装载完成：dwd.dwd_table_fee_log，用时 1.13s
[stderr] [2026-03-07 06:01:52] INFO  | etl_billiards | DWD 装载开始：dwd.dwd_store_goods_sale <= ods.store_goods_sales_records
[stderr] [2026-03-07 06:01:53] INFO  | etl_billiards | DWD 装载完成：dwd.dwd_table_fee_log_ex，用时 1.03s
[stderr] [2026-03-07 06:01:53] INFO  | etl_billiards | DWD 装载开始：dwd.dwd_store_goods_sale_ex <= ods.store_goods_sales_records
[stderr] [2026-03-07 06:01:53] INFO  | etl_billiards | DWD 装载完成：dwd.dwd_table_fee_adjust，用时 1.04s
[stderr] [2026-03-07 06:01:53] INFO  | etl_billiards | DWD 装载开始：dwd.dwd_assistant_service_log <= ods.assistant_service_records
[stderr] [2026-03-07 06:01:53] INFO  | etl_billiards | DWD 装载完成：dwd.dwd_table_fee_adjust_ex，用时 1.03s
[stderr] [2026-03-07 06:01:53] INFO  | etl_billiards | DWD 装载开始：dwd.dwd_assistant_service_log_ex <= ods.assistant_service_records
[stderr] [2026-03-07 06:01:53] INFO  | etl_billiards | DWD 装载完成：dwd.dwd_store_goods_sale，用时 1.16s
[stderr] [2026-03-07 06:01:53] INFO  | etl_billiards | DWD 装载开始：dwd.dwd_member_balance_change <= ods.member_balance_changes
[stderr] [2026-03-07 06:01:54] INFO  | etl_billiards | DWD 装载完成：dwd.dwd_store_goods_sale_ex，用时 1.08s
[stderr] [2026-03-07 06:01:54] INFO  | etl_billiards | DWD 装载开始：dwd.dwd_member_balance_change_ex <= ods.member_balance_changes
[stderr] [2026-03-07 06:01:54] INFO  | etl_billiards | DWD 装载完成：dwd.dwd_assistant_service_log，用时 1.08s
[stderr] [2026-03-07 06:01:54] INFO  | etl_billiards | DWD 装载开始：dwd.dwd_groupbuy_redemption <= ods.group_buy_redemption_records
[stderr] [2026-03-07 06:01:54] INFO  | etl_billiards | DWD 装载完成：dwd.dwd_assistant_service_log_ex，用时 1.07s
[stderr] [2026-03-07 06:01:54] INFO  | etl_billiards | DWD 装载开始：dwd.dwd_groupbuy_redemption_ex <= ods.group_buy_redemption_records
[stderr] [2026-03-07 06:01:54] INFO  | etl_billiards | DWD 装载完成：dwd.dwd_member_balance_change，用时 1.04s
[stderr] [2026-03-07 06:01:54] INFO  | etl_billiards | DWD 装载开始：dwd.dwd_platform_coupon_redemption <= ods.platform_coupon_redemption_records
[stderr] [2026-03-07 06:01:55] INFO  | etl_billiards | DWD 装载完成：dwd.dwd_member_balance_change_ex，用时 1.01s
[stderr] [2026-03-07 06:01:55] INFO  | etl_billiards | DWD 装载开始：dwd.dwd_platform_coupon_redemption_ex <= ods.platform_coupon_redemption_records
[stderr] [2026-03-07 06:01:55] INFO  | etl_billiards | DWD 装载完成：dwd.dwd_groupbuy_redemption，用时 1.02s
[stderr] [2026-03-07 06:01:55] INFO  | etl_billiards | DWD 装载开始：dwd.dwd_recharge_order <= ods.recharge_settlements
[stderr] [2026-03-07 06:01:55] INFO  | etl_billiards | DWD 装载完成：dwd.dwd_groupbuy_redemption_ex，用时 1.02s
[stderr] [2026-03-07 06:01:55] INFO  | etl_billiards | DWD 装载开始：dwd.dwd_recharge_order_ex <= ods.recharge_settlements
[stderr] [2026-03-07 06:01:55] INFO  | etl_billiards | DWD 装载完成：dwd.dwd_platform_coupon_redemption，用时 1.10s
[stderr] [2026-03-07 06:01:55] INFO  | etl_billiards | DWD 装载开始：dwd.dwd_payment <= ods.payment_transactions
[stderr] [2026-03-07 06:01:56] INFO  | etl_billiards | DWD 装载完成：dwd.dwd_platform_coupon_redemption_ex，用时 1.06s
[stderr] [2026-03-07 06:01:56] INFO  | etl_billiards | DWD 装载开始：dwd.dwd_refund <= ods.refund_transactions
[stderr] [2026-03-07 06:01:56] INFO  | etl_billiards | DWD 装载完成：dwd.dwd_recharge_order，用时 1.07s
[stderr] [2026-03-07 06:01:56] INFO  | etl_billiards | DWD 装载开始：dwd.dwd_refund_ex <= ods.refund_transactions
[stderr] [2026-03-07 06:01:56] INFO  | etl_billiards | DWD 装载完成：dwd.dwd_recharge_order_ex，用时 1.08s
[stderr] [2026-03-07 06:01:56] INFO  | etl_billiards | DWD 装载开始：dwd.dwd_goods_stock_summary <= ods.goods_stock_summary
[stderr] [2026-03-07 06:01:56] INFO  | etl_billiards | DWD 装载完成：dwd.dwd_payment，用时 1.15s
[stderr] [2026-03-07 06:01:56] INFO  | etl_billiards | DWD 装载开始：dwd.dwd_goods_stock_movement <= ods.goods_stock_movements
[stderr] [2026-03-07 06:01:57] INFO  | etl_billiards | DWD 装载完成：dwd.dwd_refund，用时 1.09s
[stderr] [2026-03-07 06:01:57] INFO  | etl_billiards | DWD 装载完成：dwd.dwd_refund_ex，用时 1.07s
[stderr] [2026-03-07 06:01:57] INFO  | etl_billiards | DWD 装载完成：dwd.dwd_goods_stock_summary，用时 1.08s
[stderr] [2026-03-07 06:01:58] INFO  | etl_billiards | DWD 装载完成：dwd.dwd_goods_stock_movement，用时 1.12s
[stderr] [2026-03-07 06:01:58] INFO  | etl_billiards | DWD_LOAD_FROM_ODS: 完成(1/9)，已处理 30/251.17 天
[stderr] [2026-03-07 06:01:58] INFO  | etl_billiards | DWD_LOAD_FROM_ODS: 开始执行(2/9)，窗口[2025-07-31 06:00:00+08:00 ~ 2025-08-30 06:00:00+08:00]
[stderr] [2026-03-07 06:01:58] INFO  | etl_billiards | DWD 装载开始：dwd.dim_site <= ods.table_fee_transactions
[stderr] [2026-03-07 06:01:58] INFO  | etl_billiards | DWD 装载开始：dwd.dim_site_ex <= ods.table_fee_transactions
[stderr] [2026-03-07 06:01:58] INFO  | etl_billiards | DWD 装载开始：dwd.dim_table <= ods.site_tables_master
[stderr] [2026-03-07 06:01:58] INFO  | etl_billiards | DWD 装载开始：dwd.dim_table_ex <= ods.site_tables_master
[stderr] [2026-03-07 06:01:59] INFO  | etl_billiards | DWD 装载完成：dwd.dim_table，用时 1.24s
[stderr] [2026-03-07 06:01:59] INFO  | etl_billiards | DWD 装载开始：dwd.dim_assistant <= ods.assistant_accounts_master
[stderr] [2026-03-07 06:01:59] INFO  | etl_billiards | DWD 装载完成：dwd.dim_table_ex，用时 1.35s
[stderr] [2026-03-07 06:01:59] INFO  | etl_billiards | DWD 装载开始：dwd.dim_assistant_ex <= ods.assistant_accounts_master
[stderr] [2026-03-07 06:01:59] INFO  | etl_billiards | DWD 装载完成：dwd.dim_site，用时 1.57s
[stderr] [2026-03-07 06:01:59] INFO  | etl_billiards | DWD 装载开始：dwd.dim_member <= ods.member_profiles
[stderr] [2026-03-07 06:01:59] INFO  | etl_billiards | DWD 装载完成：dwd.dim_site_ex，用时 1.68s
[stderr] [2026-03-07 06:01:59] INFO  | etl_billiards | DWD 装载开始：dwd.dim_member_ex <= ods.member_profiles
[stderr] [2026-03-07 06:02:00] INFO  | etl_billiards | DWD 装载完成：dwd.dim_assistant，用时 1.40s
[stderr] [2026-03-07 06:02:00] INFO  | etl_billiards | DWD 装载开始：dwd.dim_member_card_account <= ods.member_stored_value_cards
[stderr] [2026-03-07 06:02:00] INFO  | etl_billiards | DWD 装载完成：dwd.dim_assistant_ex，用时 1.36s
[stderr] [2026-03-07 06:02:00] INFO  | etl_billiards | DWD 装载开始：dwd.dim_member_card_account_ex <= ods.member_stored_value_cards
[stderr] [2026-03-07 06:02:01] INFO  | etl_billiards | DWD 装载完成：dwd.dim_member_ex，用时 1.84s
[stderr] [2026-03-07 06:02:01] INFO  | etl_billiards | DWD 装载开始：dwd.dim_tenant_goods <= ods.tenant_goods_master
[stderr] [2026-03-07 06:02:01] INFO  | etl_billiards | DWD 装载完成：dwd.dim_member，用时 1.95s
[stderr] [2026-03-07 06:02:01] INFO  | etl_billiards | DWD 装载开始：dwd.dim_tenant_goods_ex <= ods.tenant_goods_master
[stderr] [2026-03-07 06:02:03] INFO  | etl_billiards | DWD 装载完成：dwd.dim_member_card_account，用时 2.60s
[stderr] [2026-03-07 06:02:03] INFO  | etl_billiards | DWD 装载开始：dwd.dim_store_goods <= ods.store_goods_master
[stderr] [2026-03-07 06:02:03] ERROR | etl_billiards | DWD 装载失败：dwd.dim_tenant_goods_ex，用时 1.80s，err=错误:  有缺陷的数组常量:"["10000028"]"
[stderr] LINE 1: ...rsion", "tenant_goods_id") VALUES (1,2,'10000028','["1000002...
[stderr]                                                              ^
[stderr] DETAIL:  "["必须引入显式指定的数组规模。
[stderr] Traceback (most recent call last):
[stderr]   File "C:\NeoZQYY\apps\etl\connectors\feiqiu\tasks\dwd\dwd_load_task.py", line 760, in _process_single_table
[stderr]     dim_counts = self._merge_dim(cur, dwd_table, ods_table, dwd_cols, ods_cols, now)
[stderr]   File "C:\NeoZQYY\apps\etl\connectors\feiqiu\tasks\dwd\dwd_load_task.py", line 920, in _merge_dim
[stderr]     return self._merge_dim_scd2(cur, dwd_table, ods_table, dwd_cols, ods_cols, now)
[stderr]            ~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[stderr]   File "C:\NeoZQYY\apps\etl\connectors\feiqiu\tasks\dwd\dwd_load_task.py", line 1111, in _merge_dim_scd2
[stderr]     self._insert_dim_rows_bulk(cur, dwd_table, dwd_cols, to_insert, now)
[stderr]     ~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[stderr]   File "C:\NeoZQYY\apps\etl\connectors\feiqiu\tasks\dwd\dwd_load_task.py", line 1182, in _insert_dim_rows_bulk
[stderr]     execute_values(cur, insert_sql, values_rows, page_size=500)
[stderr]     ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[stderr]   File "C:\NeoZQYY\.venv\Lib\site-packages\psycopg2\extras.py", line 1299, in execute_values
[stderr]     cur.execute(b''.join(parts))
[stderr]     ~~~~~~~~~~~^^^^^^^^^^^^^^^^^
[stderr]   File "C:\NeoZQYY\.venv\Lib\site-packages\psycopg2\extras.py", line 236, in execute
[stderr]     return super().execute(query, vars)
[stderr]            ~~~~~~~~~~~~~~~^^^^^^^^^^^^^
[stderr] psycopg2.errors.InvalidTextRepresentation: 错误:  有缺陷的数组常量:"["10000028"]"
[stderr] LINE 1: ...rsion", "tenant_goods_id") VALUES (1,2,'10000028','["1000002...
[stderr]                                                              ^
[stderr] DETAIL:  "["必须引入显式指定的数组规模。
[stderr] 
[stderr] [2026-03-07 06:02:03] INFO  | etl_billiards | DWD 装载开始：dwd.dim_store_goods_ex <= ods.store_goods_master
[stderr] [2026-03-07 06:02:03] ERROR | etl_billiards | DWD 并行装载失败：dwd.dim_tenant_goods_ex，err=错误:  有缺陷的数组常量:"["10000028"]"
[stderr] LINE 1: ...rsion", "tenant_goods_id") VALUES (1,2,'10000028','["1000002...
[stderr]                                                              ^
[stderr] DETAIL:  "["必须引入显式指定的数组规模。
[stderr] 
[stderr] [2026-03-07 06:02:03] INFO  | etl_billiards | DWD 装载完成：dwd.dim_tenant_goods，用时 1.88s
[stderr] [2026-03-07 06:02:03] INFO  | etl_billiards | DWD 装载开始：dwd.dim_goods_category <= ods.stock_goods_category_tree
[stderr] [2026-03-07 06:02:04] INFO  | etl_billiards | DWD 装载完成：dwd.dim_member_card_account_ex，用时 3.21s
[stderr] [2026-03-07 06:02:04] INFO  | etl_billiards | DWD 装载开始：dwd.dim_groupbuy_package <= ods.group_buy_packages
[stderr] [2026-03-07 06:02:04] INFO  | etl_billiards | DWD 装载完成：dwd.dim_goods_category，用时 1.29s
[stderr] [2026-03-07 06:02:04] INFO  | etl_billiards | DWD 装载开始：dwd.dim_groupbuy_package_ex <= ods.group_buy_packages
[stderr] [2026-03-07 06:02:04] INFO  | etl_billiards | DWD 装载完成：dwd.dim_store_goods，用时 1.52s
[stderr] [2026-03-07 06:02:04] INFO  | etl_billiards | DWD 装载开始：dwd.dwd_settlement_head <= ods.settlement_records
[stderr] [2026-03-07 06:02:04] INFO  | etl_billiards | DWD 装载完成：dwd.dim_store_goods_ex，用时 1.48s
[stderr] [2026-03-07 06:02:04] INFO  | etl_billiards | DWD 装载开始：dwd.dwd_settlement_head_ex <= ods.settlement_records
[stderr] [2026-03-07 06:02:05] INFO  | etl_billiards | DWD 装载完成：dwd.dim_groupbuy_package，用时 1.36s
[stderr] [2026-03-07 06:02:05] INFO  | etl_billiards | DWD 装载开始：dwd.dwd_table_fee_log <= ods.table_fee_transactions
[stderr] [2026-03-07 06:02:05] INFO  | etl_billiards | DWD 装载完成：dwd.dwd_settlement_head，用时 1.06s
[stderr] [2026-03-07 06:02:05] INFO  | etl_billiards | DWD 装载开始：dwd.dwd_table_fee_log_ex <= ods.table_fee_transactions
[stderr] [2026-03-07 06:02:05] INFO  | etl_billiards | DWD 装载完成：dwd.dwd_settlement_head_ex，用时 1.04s
[stderr] [2026-03-07 06:02:05] INFO  | etl_billiards | DWD 装载开始：dwd.dwd_table_fee_adjust <= ods.table_fee_discount_records
[stderr] [2026-03-07 06:02:06] INFO  | etl_billiards | DWD 装载完成：dwd.dim_groupbuy_package_ex，用时 1.24s
[stderr] [2026-03-07 06:02:06] INFO  | etl_billiards | DWD 装载开始：dwd.dwd_table_fee_adjust_ex <= ods.table_fee_discount_records
[stderr] [2026-03-07 06:02:06] INFO  | etl_billiards | DWD 装载完成：dwd.dwd_table_fee_log，用时 1.08s
[stderr] [2026-03-07 06:02:06] INFO  | etl_billiards | DWD 装载开始：dwd.dwd_store_goods_sale <= ods.store_goods_sales_records
[stderr] [2026-03-07 06:02:06] INFO  | etl_billiards | DWD 装载完成：dwd.dwd_table_fee_adjust，用时 1.03s
[stderr] [2026-03-07 06:02:06] INFO  | etl_billiards | DWD 装载完成：dwd.dwd_table_fee_log_ex，用时 1.06s
[stderr] [2026-03-07 06:02:06] INFO  | etl_billiards | DWD 装载开始：dwd.dwd_store_goods_sale_ex <= ods.store_goods_sales_records
[stderr] [2026-03-07 06:02:06] INFO  | etl_billiards | DWD 装载开始：dwd.dwd_assistant_service_log <= ods.assistant_service_records
[stderr] [2026-03-07 06:02:07] INFO  | etl_billiards | DWD 装载完成：dwd.dwd_table_fee_adjust_ex，用时 1.04s
[stderr] [2026-03-07 06:02:07] INFO  | etl_billiards | DWD 装载开始：dwd.dwd_assistant_service_log_ex <= ods.assistant_service_records
[stderr] [2026-03-07 06:02:07] INFO  | etl_billiards | DWD 装载完成：dwd.dwd_store_goods_sale，用时 1.06s
[stderr] [2026-03-07 06:02:07] INFO  | etl_billiards | DWD 装载开始：dwd.dwd_member_balance_change <= ods.member_balance_changes
[stderr] [2026-03-07 06:02:08] INFO  | etl_billiards | DWD 装载完成：dwd.dwd_store_goods_sale_ex，用时 1.08s
[stderr] [2026-03-07 06:02:08] INFO  | etl_billiards | DWD 装载开始：dwd.dwd_member_balance_change_ex <= ods.member_balance_changes
[stderr] [2026-03-07 06:02:08] INFO  | etl_billiards | DWD 装载完成：dwd.dwd_assistant_service_log，用时 1.08s
[stderr] [2026-03-07 06:02:08] INFO  | etl_billiards | DWD 装载开始：dwd.dwd_groupbuy_redemption <= ods.group_buy_redemption_records
[stderr] [2026-03-07 06:02:08] INFO  | etl_billiards | DWD 装载完成：dwd.dwd_assistant_service_log_ex，用时 1.04s
[stderr] [2026-03-07 06:02:08] INFO  | etl_billiards | DWD 装载开始：dwd.dwd_groupbuy_redemption_ex <= ods.group_buy_redemption_records
[stderr] [2026-03-07 06:02:08] INFO  | etl_billiards | DWD 装载完成：dwd.dwd_member_balance_change，用时 1.03s
[stderr] [2026-03-07 06:02:08] INFO  | etl_billiards | DWD 装载开始：dwd.dwd_platform_coupon_redemption <= ods.platform_coupon_redemption_records
[stderr] [2026-03-07 06:02:09] INFO  | etl_billiards | DWD 装载完成：dwd.dwd_groupbuy_redemption_ex，用时 1.03s
[stderr] [2026-03-07 06:02:09] INFO  | etl_billiards | DWD 装载开始：dwd.dwd_platform_coupon_redemption_ex <= ods.platform_coupon_redemption_records
[stderr] [2026-03-07 06:02:09] INFO  | etl_billiards | DWD 装载完成：dwd.dwd_groupbuy_redemption，用时 1.13s
[stderr] [2026-03-07 06:02:09] INFO  | etl_billiards | DWD 装载完成：dwd.dwd_member_balance_change_ex，用时 1.14s
[stderr] [2026-03-07 06:02:09] INFO  | etl_billiards | DWD 装载开始：dwd.dwd_recharge_order <= ods.recharge_settlements
[stderr] [2026-03-07 06:02:09] INFO  | etl_billiards | DWD 装载开始：dwd.dwd_recharge_order_ex <= ods.recharge_settlements
[stderr] [2026-03-07 06:02:09] INFO  | etl_billiards | DWD 装载完成：dwd.dwd_platform_coupon_redemption，用时 1.09s
[stderr] [2026-03-07 06:02:09] INFO  | etl_billiards | DWD 装载开始：dwd.dwd_payment <= ods.payment_transactions
[stderr] [2026-03-07 06:02:10] INFO  | etl_billiards | DWD 装载完成：dwd.dwd_platform_coupon_redemption_ex，用时 1.05s
[stderr] [2026-03-07 06:02:10] INFO  | etl_billiards | DWD 装载开始：dwd.dwd_refund <= ods.refund_transactions
[stderr] [2026-03-07 06:02:10] INFO  | etl_billiards | DWD 装载完成：dwd.dwd_recharge_order，用时 1.05s
[stderr] [2026-03-07 06:02:10] INFO  | etl_billiards | DWD 装载完成：dwd.dwd_recharge_order_ex，用时 1.05s
[stderr] [2026-03-07 06:02:10] INFO  | etl_billiards | DWD 装载开始：dwd.dwd_refund_ex <= ods.refund_transactions
[stderr] [2026-03-07 06:02:10] INFO  | etl_billiards | DWD 装载开始：dwd.dwd_goods_stock_summary <= ods.goods_stock_summary
[stderr] [2026-03-07 06:02:10] INFO  | etl_billiards | DWD 装载完成：dwd.dwd_payment，用时 1.20s
[stderr] [2026-03-07 06:02:10] INFO  | etl_billiards | DWD 装载开始：dwd.dwd_goods_stock_movement <= ods.goods_stock_movements
[stderr] [2026-03-07 06:02:11] INFO  | etl_billiards | DWD 装载完成：dwd.dwd_refund，用时 1.20s
[stderr] [2026-03-07 06:02:11] INFO  | etl_billiards | DWD 装载完成：dwd.dwd_goods_stock_summary，用时 1.15s
[stderr] [2026-03-07 06:02:11] INFO  | etl_billiards | DWD 装载完成：dwd.dwd_refund_ex，用时 1.20s
[stderr] [2026-03-07 06:02:11] INFO  | etl_billiards | DWD 装载完成：dwd.dwd_goods_stock_movement，用时 1.04s
[stderr] [2026-03-07 06:02:11] INFO  | etl_billiards | DWD_LOAD_FROM_ODS: 完成(2/9)，已处理 60/251.17 天
[stderr] [2026-03-07 06:02:11] INFO  | etl_billiards | DWD_LOAD_FROM_ODS: 开始执行(3/9)，窗口[2025-08-30 06:00:00+08:00 ~ 2025-09-29 06:00:00+08:00]
[stderr] [2026-03-07 06:02:11] INFO  | etl_billiards | DWD 装载开始：dwd.dim_site <= ods.table_fee_transactions
[stderr] [2026-03-07 06:02:11] INFO  | etl_billiards | DWD 装载开始：dwd.dim_site_ex <= ods.table_fee_transactions
[stderr] [2026-03-07 06:02:11] INFO  | etl_billiards | DWD 装载开始：dwd.dim_table <= ods.site_tables_master
[stderr] [2026-03-07 06:02:11] INFO  | etl_billiards | DWD 装载开始：dwd.dim_table_ex <= ods.site_tables_master
[stderr] [2026-03-07 06:02:13] INFO  | etl_billiards | DWD 装载完成：dwd.dim_table，用时 1.22s
[stderr] [2026-03-07 06:02:13] INFO  | etl_billiards | DWD 装载开始：dwd.dim_assistant <= ods.assistant_accounts_master
[stderr] [2026-03-07 06:02:13] INFO  | etl_billiards | DWD 装载完成：dwd.dim_table_ex，用时 1.32s
[stderr] [2026-03-07 06:02:13] INFO  | etl_billiards | DWD 装载开始：dwd.dim_assistant_ex <= ods.assistant_accounts_master
[stderr] [2026-03-07 06:02:13] INFO  | etl_billiards | DWD 装载完成：dwd.dim_site，用时 1.58s
[stderr] [2026-03-07 06:02:13] INFO  | etl_billiards | DWD 装载开始：dwd.dim_member <= ods.member_profiles
[stderr] [2026-03-07 06:02:13] INFO  | etl_billiards | DWD 装载完成：dwd.dim_site_ex，用时 1.68s
[stderr] [2026-03-07 06:02:13] INFO  | etl_billiards | DWD 装载开始：dwd.dim_member_ex <= ods.member_profiles
[stderr] [2026-03-07 06:02:14] INFO  | etl_billiards | DWD 装载完成：dwd.dim_assistant，用时 1.28s
[stderr] [2026-03-07 06:02:14] INFO  | etl_billiards | DWD 装载开始：dwd.dim_member_card_account <= ods.member_stored_value_cards
[stderr] [2026-03-07 06:02:14] INFO  | etl_billiards | DWD 装载完成：dwd.dim_assistant_ex，用时 1.36s
[stderr] [2026-03-07 06:02:14] INFO  | etl_billiards | DWD 装载开始：dwd.dim_member_card_account_ex <= ods.member_stored_value_cards
[stderr] [2026-03-07 06:02:15] INFO  | etl_billiards | DWD 装载完成：dwd.dim_member_ex，用时 1.58s
[stderr] [2026-03-07 06:02:15] INFO  | etl_billiards | DWD 装载开始：dwd.dim_tenant_goods <= ods.tenant_goods_master
[stderr] [2026-03-07 06:02:15] INFO  | etl_billiards | DWD 装载完成：dwd.dim_member，用时 1.72s
[stderr] [2026-03-07 06:02:15] INFO  | etl_billiards | DWD 装载开始：dwd.dim_tenant_goods_ex <= ods.tenant_goods_master
[stderr] [2026-03-07 06:02:16] INFO  | etl_billiards | DWD 装载完成：dwd.dim_member_card_account，用时 2.53s
[stderr] [2026-03-07 06:02:16] INFO  | etl_billiards | DWD 装载开始：dwd.dim_store_goods <= ods.store_goods_master
[stderr] [2026-03-07 06:02:17] ERROR | etl_billiards | DWD 装载失败：dwd.dim_tenant_goods_ex，用时 1.97s，err=错误:  有缺陷的数组常量:"["10000028"]"
[stderr] LINE 1: ...rsion", "tenant_goods_id") VALUES (1,2,'10000028','["1000002...
[stderr]                                                              ^
[stderr] DETAIL:  "["必须引入显式指定的数组规模。
[stderr] Traceback (most recent call last):
[stderr]   File "C:\NeoZQYY\apps\etl\connectors\feiqiu\tasks\dwd\dwd_load_task.py", line 760, in _process_single_table
[stderr]     dim_counts = self._merge_dim(cur, dwd_table, ods_table, dwd_cols, ods_cols, now)
[stderr]   File "C:\NeoZQYY\apps\etl\connectors\feiqiu\tasks\dwd\dwd_load_task.py", line 920, in _merge_dim
[stderr]     return self._merge_dim_scd2(cur, dwd_table, ods_table, dwd_cols, ods_cols, now)
[stderr]            ~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[stderr]   File "C:\NeoZQYY\apps\etl\connectors\feiqiu\tasks\dwd\dwd_load_task.py", line 1111, in _merge_dim_scd2
[stderr]     self._insert_dim_rows_bulk(cur, dwd_table, dwd_cols, to_insert, now)
[stderr]     ~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[stderr]   File "C:\NeoZQYY\apps\etl\connectors\feiqiu\tasks\dwd\dwd_load_task.py", line 1182, in _insert_dim_rows_bulk
[stderr]     execute_values(cur, insert_sql, values_rows, page_size=500)
[stderr]     ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[stderr]   File "C:\NeoZQYY\.venv\Lib\site-packages\psycopg2\extras.py", line 1299, in execute_values
[stderr]     cur.execute(b''.join(parts))
[stderr]     ~~~~~~~~~~~^^^^^^^^^^^^^^^^^
[stderr]   File "C:\NeoZQYY\.venv\Lib\site-packages\psycopg2\extras.py", line 236, in execute
[stderr]     return super().execute(query, vars)
[stderr]            ~~~~~~~~~~~~~~~^^^^^^^^^^^^^
[stderr] psycopg2.errors.InvalidTextRepresentation: 错误:  有缺陷的数组常量:"["10000028"]"
[stderr] LINE 1: ...rsion", "tenant_goods_id") VALUES (1,2,'10000028','["1000002...
[stderr]                                                              ^
[stderr] DETAIL:  "["必须引入显式指定的数组规模。
[stderr] 
[stderr] [2026-03-07 06:02:17] INFO  | etl_billiards | DWD 装载开始：dwd.dim_store_goods_ex <= ods.store_goods_master
[stderr] [2026-03-07 06:02:17] ERROR | etl_billiards | DWD 并行装载失败：dwd.dim_tenant_goods_ex，err=错误:  有缺陷的数组常量:"["10000028"]"
[stderr] LINE 1: ...rsion", "tenant_goods_id") VALUES (1,2,'10000028','["1000002...
[stderr]                                                              ^
[stderr] DETAIL:  "["必须引入显式指定的数组规模。
[stderr] 
[stderr] [2026-03-07 06:02:17] INFO  | etl_billiards | DWD 装载完成：dwd.dim_member_card_account_ex，用时 3.12s
[stderr] [2026-03-07 06:02:17] INFO  | etl_billiards | DWD 装载开始：dwd.dim_goods_category <= ods.stock_goods_category_tree
[stderr] [2026-03-07 06:02:18] INFO  | etl_billiards | DWD 装载完成：dwd.dim_tenant_goods，用时 2.87s
[stderr] [2026-03-07 06:02:18] INFO  | etl_billiards | DWD 装载开始：dwd.dim_groupbuy_package <= ods.group_buy_packages
[stderr] [2026-03-07 06:02:18] INFO  | etl_billiards | DWD 装载完成：dwd.dim_store_goods，用时 1.52s
[stderr] [2026-03-07 06:02:18] INFO  | etl_billiards | DWD 装载开始：dwd.dim_groupbuy_package_ex <= ods.group_buy_packages
[stderr] [2026-03-07 06:02:18] INFO  | etl_billiards | DWD 装载完成：dwd.dim_store_goods_ex，用时 1.36s
[stderr] [2026-03-07 06:02:18] INFO  | etl_billiards | DWD 装载开始：dwd.dwd_settlement_head <= ods.settlement_records
[stderr] [2026-03-07 06:02:18] INFO  | etl_billiards | DWD 装载完成：dwd.dim_goods_category，用时 1.24s
[stderr] [2026-03-07 06:02:18] INFO  | etl_billiards | DWD 装载开始：dwd.dwd_settlement_head_ex <= ods.settlement_records
[stderr] [2026-03-07 06:02:19] INFO  | etl_billiards | DWD 装载完成：dwd.dim_groupbuy_package，用时 1.27s
[stderr] [2026-03-07 06:02:19] INFO  | etl_billiards | DWD 装载开始：dwd.dwd_table_fee_log <= ods.table_fee_transactions
[stderr] [2026-03-07 06:02:19] INFO  | etl_billiards | DWD 装载完成：dwd.dwd_settlement_head，用时 1.05s
[stderr] [2026-03-07 06:02:19] INFO  | etl_billiards | DWD 装载开始：dwd.dwd_table_fee_log_ex <= ods.table_fee_transactions
[stderr] [2026-03-07 06:02:20] INFO  | etl_billiards | DWD 装载完成：dwd.dim_groupbuy_package_ex，用时 1.63s
[stderr] [2026-03-07 06:02:20] INFO  | etl_billiards | DWD 装载开始：dwd.dwd_table_fee_adjust <= ods.table_fee_discount_records
[stderr] [2026-03-07 06:02:21] INFO  | etl_billiards | DWD 装载完成：dwd.dwd_settlement_head_ex，用时 2.31s
[stderr] [2026-03-07 06:02:21] INFO  | etl_billiards | DWD 装载开始：dwd.dwd_table_fee_adjust_ex <= ods.table_fee_discount_records
[stderr] [2026-03-07 06:02:21] INFO  | etl_billiards | DWD 装载完成：dwd.dwd_table_fee_log，用时 2.20s
[stderr] [2026-03-07 06:02:21] INFO  | etl_billiards | DWD 装载开始：dwd.dwd_store_goods_sale <= ods.store_goods_sales_records
[stderr] [2026-03-07 06:02:21] INFO  | etl_billiards | DWD 装载完成：dwd.dwd_table_fee_log_ex，用时 2.23s
[stderr] [2026-03-07 06:02:21] INFO  | etl_billiards | DWD 装载开始：dwd.dwd_store_goods_sale_ex <= ods.store_goods_sales_records
[stderr] [2026-03-07 06:02:21] INFO  | etl_billiards | DWD 装载完成：dwd.dwd_table_fee_adjust，用时 1.81s
[stderr] [2026-03-07 06:02:21] INFO  | etl_billiards | DWD 装载开始：dwd.dwd_assistant_service_log <= ods.assistant_service_records
[stderr] [2026-03-07 06:02:22] INFO  | etl_billiards | DWD 装载完成：dwd.dwd_table_fee_adjust_ex，用时 1.06s
[stderr] [2026-03-07 06:02:22] INFO  | etl_billiards | DWD 装载开始：dwd.dwd_assistant_service_log_ex <= ods.assistant_service_records
[stderr] [2026-03-07 06:02:22] INFO  | etl_billiards | DWD 装载完成：dwd.dwd_store_goods_sale，用时 1.14s
[stderr] [2026-03-07 06:02:22] INFO  | etl_billiards | DWD 装载开始：dwd.dwd_member_balance_change <= ods.member_balance_changes
[stderr] [2026-03-07 06:02:22] INFO  | etl_billiards | DWD 装载完成：dwd.dwd_store_goods_sale_ex，用时 1.11s
[stderr] [2026-03-07 06:02:22] INFO  | etl_billiards | DWD 装载开始：dwd.dwd_member_balance_change_ex <= ods.member_balance_changes
[stderr] [2026-03-07 06:02:23] INFO  | etl_billiards | DWD 装载完成：dwd.dwd_assistant_service_log，用时 1.13s
[stderr] [2026-03-07 06:02:23] INFO  | etl_billiards | DWD 装载开始：dwd.dwd_groupbuy_redemption <= ods.group_buy_redemption_records
[stderr] [2026-03-07 06:02:23] INFO  | etl_billiards | DWD 装载完成：dwd.dwd_assistant_service_log_ex，用时 1.02s
[stderr] [2026-03-07 06:02:23] INFO  | etl_billiards | DWD 装载开始：dwd.dwd_groupbuy_redemption_ex <= ods.group_buy_redemption_records
[stderr] [2026-03-07 06:02:23] INFO  | etl_billiards | DWD 装载完成：dwd.dwd_member_balance_change，用时 1.03s
[stderr] [2026-03-07 06:02:23] INFO  | etl_billiards | DWD 装载开始：dwd.dwd_platform_coupon_redemption <= ods.platform_coupon_redemption_records
[stderr] [2026-03-07 06:02:23] INFO  | etl_billiards | DWD 装载完成：dwd.dwd_member_balance_change_ex，用时 1.03s
[stderr] [2026-03-07 06:02:23] INFO  | etl_billiards | DWD 装载开始：dwd.dwd_platform_coupon_redemption_ex <= ods.platform_coupon_redemption_records
[stderr] [2026-03-07 06:02:24] INFO  | etl_billiards | DWD 装载完成：dwd.dwd_groupbuy_redemption，用时 1.04s
[stderr] [2026-03-07 06:02:24] INFO  | etl_billiards | DWD 装载开始：dwd.dwd_recharge_order <= ods.recharge_settlements
[stderr] [2026-03-07 06:02:24] INFO  | etl_billiards | DWD 装载完成：dwd.dwd_groupbuy_redemption_ex，用时 1.09s
[stderr] [2026-03-07 06:02:24] INFO  | etl_billiards | DWD 装载开始：dwd.dwd_recharge_order_ex <= ods.recharge_settlements
[stderr] [2026-03-07 06:02:25] INFO  | etl_billiards | DWD 装载完成：dwd.dwd_platform_coupon_redemption，用时 1.74s
[stderr] [2026-03-07 06:02:25] INFO  | etl_billiards | DWD 装载开始：dwd.dwd_payment <= ods.payment_transactions
[stderr] [2026-03-07 06:02:25] INFO  | etl_billiards | DWD 装载完成：dwd.dwd_recharge_order，用时 1.67s
[stderr] [2026-03-07 06:02:25] INFO  | etl_billiards | DWD 装载完成：dwd.dwd_platform_coupon_redemption_ex，用时 1.79s
[stderr] [2026-03-07 06:02:25] INFO  | etl_billiards | DWD 装载开始：dwd.dwd_refund <= ods.refund_transactions
[stderr] [2026-03-07 06:02:25] INFO  | etl_billiards | DWD 装载开始：dwd.dwd_refund_ex <= ods.refund_transactions
[stderr] [2026-03-07 06:02:26] INFO  | etl_billiards | DWD 装载完成：dwd.dwd_recharge_order_ex，用时 1.61s
[stderr] [2026-03-07 06:02:26] INFO  | etl_billiards | DWD 装载开始：dwd.dwd_goods_stock_summary <= ods.goods_stock_summary
[stderr] [2026-03-07 06:02:26] INFO  | etl_billiards | DWD 装载完成：dwd.dwd_payment，用时 1.01s
[stderr] [2026-03-07 06:02:26] INFO  | etl_billiards | DWD 装载开始：dwd.dwd_goods_stock_movement <= ods.goods_stock_movements
[stderr] [2026-03-07 06:02:26] INFO  | etl_billiards | DWD 装载完成：dwd.dwd_refund，用时 1.03s
[stderr] [2026-03-07 06:02:26] INFO  | etl_billiards | DWD 装载完成：dwd.dwd_refund_ex，用时 1.03s
[stderr] [2026-03-07 06:02:27] INFO  | etl_billiards | DWD 装载完成：dwd.dwd_goods_stock_summary，用时 1.02s
[stderr] [2026-03-07 06:02:27] INFO  | etl_billiards | DWD 装载完成：dwd.dwd_goods_stock_movement，用时 1.02s
[stderr] [2026-03-07 06:02:27] INFO  | etl_billiards | DWD_LOAD_FROM_ODS: 完成(3/9)，已处理 90/251.17 天
[stderr] [2026-03-07 06:02:27] INFO  | etl_billiards | DWD_LOAD_FROM_ODS: 开始执行(4/9)，窗口[2025-09-29 06:00:00+08:00 ~ 2025-10-29 06:00:00+08:00]
[stderr] [2026-03-07 06:02:27] INFO  | etl_billiards | DWD 装载开始：dwd.dim_site <= ods.table_fee_transactions
[stderr] [2026-03-07 06:02:27] INFO  | etl_billiards | DWD 装载开始：dwd.dim_site_ex <= ods.table_fee_transactions
[stderr] [2026-03-07 06:02:27] INFO  | etl_billiards | DWD 装载开始：dwd.dim_table <= ods.site_tables_master
[stderr] [2026-03-07 06:02:27] INFO  | etl_billiards | DWD 装载开始：dwd.dim_table_ex <= ods.site_tables_master
[stderr] [2026-03-07 06:02:28] INFO  | etl_billiards | DWD 装载完成：dwd.dim_table，用时 1.23s
[stderr] [2026-03-07 06:02:28] INFO  | etl_billiards | DWD 装载开始：dwd.dim_assistant <= ods.assistant_accounts_master
[stderr] [2026-03-07 06:02:28] INFO  | etl_billiards | DWD 装载完成：dwd.dim_table_ex，用时 1.33s
[stderr] [2026-03-07 06:02:28] INFO  | etl_billiards | DWD 装载开始：dwd.dim_assistant_ex <= ods.assistant_accounts_master
[stderr] [2026-03-07 06:02:29] INFO  | etl_billiards | DWD 装载完成：dwd.dim_site，用时 1.56s
[stderr] [2026-03-07 06:02:29] INFO  | etl_billiards | DWD 装载开始：dwd.dim_member <= ods.member_profiles
[stderr] [2026-03-07 06:02:29] INFO  | etl_billiards | DWD 装载完成：dwd.dim_site_ex，用时 1.72s
[stderr] [2026-03-07 06:02:29] INFO  | etl_billiards | DWD 装载开始：dwd.dim_member_ex <= ods.member_profiles
[stderr] [2026-03-07 06:02:29] INFO  | etl_billiards | DWD 装载完成：dwd.dim_assistant，用时 1.25s
[stderr] [2026-03-07 06:02:29] INFO  | etl_billiards | DWD 装载开始：dwd.dim_member_card_account <= ods.member_stored_value_cards
[stderr] [2026-03-07 06:02:30] INFO  | etl_billiards | DWD 装载完成：dwd.dim_assistant_ex，用时 1.33s
[stderr] [2026-03-07 06:02:30] INFO  | etl_billiards | DWD 装载开始：dwd.dim_member_card_account_ex <= ods.member_stored_value_cards
[stderr] [2026-03-07 06:02:30] INFO  | etl_billiards | DWD 装载完成：dwd.dim_member_ex，用时 1.55s
[stderr] [2026-03-07 06:02:30] INFO  | etl_billiards | DWD 装载开始：dwd.dim_tenant_goods <= ods.tenant_goods_master
[stderr] [2026-03-07 06:02:30] INFO  | etl_billiards | DWD 装载完成：dwd.dim_member，用时 1.77s
[stderr] [2026-03-07 06:02:30] INFO  | etl_billiards | DWD 装载开始：dwd.dim_tenant_goods_ex <= ods.tenant_goods_master
[stderr] [2026-03-07 06:02:31] INFO  | etl_billiards | DWD 装载完成：dwd.dim_member_card_account，用时 2.05s
[stderr] [2026-03-07 06:02:31] INFO  | etl_billiards | DWD 装载开始：dwd.dim_store_goods <= ods.store_goods_master
[stderr] [2026-03-07 06:02:32] INFO  | etl_billiards | DWD 装载完成：dwd.dim_tenant_goods，用时 1.49s
[stderr] [2026-03-07 06:02:32] INFO  | etl_billiards | DWD 装载开始：dwd.dim_store_goods_ex <= ods.store_goods_master
[stderr] [2026-03-07 06:02:32] ERROR | etl_billiards | DWD 装载失败：dwd.dim_tenant_goods_ex，用时 1.50s，err=错误:  有缺陷的数组常量:"["10000028"]"
[stderr] LINE 1: ...rsion", "tenant_goods_id") VALUES (1,2,'10000028','["1000002...
[stderr]                                                              ^
[stderr] DETAIL:  "["必须引入显式指定的数组规模。
[stderr] Traceback (most recent call last):
[stderr]   File "C:\NeoZQYY\apps\etl\connectors\feiqiu\tasks\dwd\dwd_load_task.py", line 760, in _process_single_table
[stderr]     dim_counts = self._merge_dim(cur, dwd_table, ods_table, dwd_cols, ods_cols, now)
[stderr]   File "C:\NeoZQYY\apps\etl\connectors\feiqiu\tasks\dwd\dwd_load_task.py", line 920, in _merge_dim
[stderr]     return self._merge_dim_scd2(cur, dwd_table, ods_table, dwd_cols, ods_cols, now)
[stderr]            ~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[stderr]   File "C:\NeoZQYY\apps\etl\connectors\feiqiu\tasks\dwd\dwd_load_task.py", line 1111, in _merge_dim_scd2
[stderr]     self._insert_dim_rows_bulk(cur, dwd_table, dwd_cols, to_insert, now)
[stderr]     ~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[stderr]   File "C:\NeoZQYY\apps\etl\connectors\feiqiu\tasks\dwd\dwd_load_task.py", line 1182, in _insert_dim_rows_bulk
[stderr]     execute_values(cur, insert_sql, values_rows, page_size=500)
[stderr]     ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[stderr]   File "C:\NeoZQYY\.venv\Lib\site-packages\psycopg2\extras.py", line 1299, in execute_values
[stderr]     cur.execute(b''.join(parts))
[stderr]     ~~~~~~~~~~~^^^^^^^^^^^^^^^^^
[stderr]   File "C:\NeoZQYY\.venv\Lib\site-packages\psycopg2\extras.py", line 236, in execute
[stderr]     return super().execute(query, vars)
[stderr]            ~~~~~~~~~~~~~~~^^^^^^^^^^^^^
[stderr] psycopg2.errors.InvalidTextRepresentation: 错误:  有缺陷的数组常量:"["10000028"]"
[stderr] LINE 1: ...rsion", "tenant_goods_id") VALUES (1,2,'10000028','["1000002...
[stderr]                                                              ^
[stderr] DETAIL:  "["必须引入显式指定的数组规模。
[stderr] 
[stderr] [2026-03-07 06:02:32] INFO  | etl_billiards | DWD 装载开始：dwd.dim_goods_category <= ods.stock_goods_category_tree
[stderr] [2026-03-07 06:02:32] ERROR | etl_billiards | DWD 并行装载失败：dwd.dim_tenant_goods_ex，err=错误:  有缺陷的数组常量:"["10000028"]"
[stderr] LINE 1: ...rsion", "tenant_goods_id") VALUES (1,2,'10000028','["1000002...
[stderr]                                                              ^
[stderr] DETAIL:  "["必须引入显式指定的数组规模。
[stderr] 
[stderr] [2026-03-07 06:02:32] INFO  | etl_billiards | DWD 装载完成：dwd.dim_member_card_account_ex，用时 2.39s
[stderr] [2026-03-07 06:02:32] INFO  | etl_billiards | DWD 装载开始：dwd.dim_groupbuy_package <= ods.group_buy_packages
[stderr] [2026-03-07 06:02:33] INFO  | etl_billiards | DWD 装载完成：dwd.dim_store_goods，用时 1.45s
[stderr] [2026-03-07 06:02:33] INFO  | etl_billiards | DWD 装载开始：dwd.dim_groupbuy_package_ex <= ods.group_buy_packages
[stderr] [2026-03-07 06:02:33] INFO  | etl_billiards | DWD 装载完成：dwd.dim_goods_category，用时 1.21s
[stderr] [2026-03-07 06:02:33] INFO  | etl_billiards | DWD 装载开始：dwd.dwd_settlement_head <= ods.settlement_records
[stderr] [2026-03-07 06:02:33] INFO  | etl_billiards | DWD 装载完成：dwd.dim_store_goods_ex，用时 1.45s
[stderr] [2026-03-07 06:02:33] INFO  | etl_billiards | DWD 装载开始：dwd.dwd_settlement_head_ex <= ods.settlement_records
[stderr] [2026-03-07 06:02:33] INFO  | etl_billiards | DWD 装载完成：dwd.dim_groupbuy_package，用时 1.20s
[stderr] [2026-03-07 06:02:33] INFO  | etl_billiards | DWD 装载开始：dwd.dwd_table_fee_log <= ods.table_fee_transactions
[stderr] [2026-03-07 06:02:34] INFO  | etl_billiards | DWD 装载完成：dwd.dwd_settlement_head，用时 1.04s
[stderr] [2026-03-07 06:02:34] INFO  | etl_billiards | DWD 装载开始：dwd.dwd_table_fee_log_ex <= ods.table_fee_transactions
[stderr] [2026-03-07 06:02:34] INFO  | etl_billiards | DWD 装载完成：dwd.dim_groupbuy_package_ex，用时 1.25s
[stderr] [2026-03-07 06:02:34] INFO  | etl_billiards | DWD 装载开始：dwd.dwd_table_fee_adjust <= ods.table_fee_discount_records
[stderr] [2026-03-07 06:02:34] INFO  | etl_billiards | DWD 装载完成：dwd.dwd_settlement_head_ex，用时 1.06s
[stderr] [2026-03-07 06:02:34] INFO  | etl_billiards | DWD 装载开始：dwd.dwd_table_fee_adjust_ex <= ods.table_fee_discount_records
[stderr] [2026-03-07 06:02:34] INFO  | etl_billiards | DWD 装载完成：dwd.dwd_table_fee_log，用时 1.03s
[stderr] [2026-03-07 06:02:34] INFO  | etl_billiards | DWD 装载开始：dwd.dwd_store_goods_sale <= ods.store_goods_sales_records
[stderr] [2026-03-07 06:02:35] INFO  | etl_billiards | DWD 装载完成：dwd.dwd_table_fee_log_ex，用时 1.12s
[stderr] [2026-03-07 06:02:35] INFO  | etl_billiards | DWD 装载开始：dwd.dwd_store_goods_sale_ex <= ods.store_goods_sales_records
[stderr] [2026-03-07 06:02:35] INFO  | etl_billiards | DWD 装载完成：dwd.dwd_table_fee_adjust，用时 1.02s
[stderr] [2026-03-07 06:02:35] INFO  | etl_billiards | DWD 装载开始：dwd.dwd_assistant_service_log <= ods.assistant_service_records
[stderr] [2026-03-07 06:02:35] INFO  | etl_billiards | DWD 装载完成：dwd.dwd_table_fee_adjust_ex，用时 1.03s
[stderr] [2026-03-07 06:02:35] INFO  | etl_billiards | DWD 装载完成：dwd.dwd_store_goods_sale，用时 1.02s
[stderr] [2026-03-07 06:02:35] INFO  | etl_billiards | DWD 装载开始：dwd.dwd_assistant_service_log_ex <= ods.assistant_service_records
[stderr] [2026-03-07 06:02:35] INFO  | etl_billiards | DWD 装载开始：dwd.dwd_member_balance_change <= ods.member_balance_changes
[stderr] [2026-03-07 06:02:36] INFO  | etl_billiards | DWD 装载完成：dwd.dwd_store_goods_sale_ex，用时 1.03s
[stderr] [2026-03-07 06:02:36] INFO  | etl_billiards | DWD 装载开始：dwd.dwd_member_balance_change_ex <= ods.member_balance_changes
[stderr] [2026-03-07 06:02:36] INFO  | etl_billiards | DWD 装载完成：dwd.dwd_assistant_service_log，用时 1.03s
[stderr] [2026-03-07 06:02:36] INFO  | etl_billiards | DWD 装载开始：dwd.dwd_groupbuy_redemption <= ods.group_buy_redemption_records
[stderr] [2026-03-07 06:02:36] INFO  | etl_billiards | DWD 装载完成：dwd.dwd_assistant_service_log_ex，用时 1.02s
[stderr] [2026-03-07 06:02:36] INFO  | etl_billiards | DWD 装载开始：dwd.dwd_groupbuy_redemption_ex <= ods.group_buy_redemption_records
[stderr] [2026-03-07 06:02:36] INFO  | etl_billiards | DWD 装载完成：dwd.dwd_member_balance_change，用时 1.12s
[stderr] [2026-03-07 06:02:36] INFO  | etl_billiards | DWD 装载开始：dwd.dwd_platform_coupon_redemption <= ods.platform_coupon_redemption_records
[stderr] [2026-03-07 06:02:37] INFO  | etl_billiards | DWD 装载完成：dwd.dwd_member_balance_change_ex，用时 1.12s
[stderr] [2026-03-07 06:02:37] INFO  | etl_billiards | DWD 装载完成：dwd.dwd_groupbuy_redemption_ex，用时 1.02s
[stderr] [2026-03-07 06:02:37] INFO  | etl_billiards | DWD 装载开始：dwd.dwd_platform_coupon_redemption_ex <= ods.platform_coupon_redemption_records
[stderr] [2026-03-07 06:02:37] INFO  | etl_billiards | DWD 装载开始：dwd.dwd_recharge_order <= ods.recharge_settlements
[stderr] [2026-03-07 06:02:37] INFO  | etl_billiards | DWD 装载完成：dwd.dwd_groupbuy_redemption，用时 1.12s
[stderr] [2026-03-07 06:02:37] INFO  | etl_billiards | DWD 装载开始：dwd.dwd_recharge_order_ex <= ods.recharge_settlements
[stderr] [2026-03-07 06:02:37] INFO  | etl_billiards | DWD 装载完成：dwd.dwd_platform_coupon_redemption，用时 1.03s
[stderr] [2026-03-07 06:02:37] INFO  | etl_billiards | DWD 装载开始：dwd.dwd_payment <= ods.payment_transactions
[stderr] [2026-03-07 06:02:38] INFO  | etl_billiards | DWD 装载完成：dwd.dwd_recharge_order，用时 1.02s
[stderr] [2026-03-07 06:02:38] INFO  | etl_billiards | DWD 装载开始：dwd.dwd_refund <= ods.refund_transactions
[stderr] [2026-03-07 06:02:38] INFO  | etl_billiards | DWD 装载完成：dwd.dwd_recharge_order_ex，用时 1.02s
[stderr] [2026-03-07 06:02:38] INFO  | etl_billiards | DWD 装载开始：dwd.dwd_refund_ex <= ods.refund_transactions
[stderr] [2026-03-07 06:02:38] INFO  | etl_billiards | DWD 装载完成：dwd.dwd_platform_coupon_redemption_ex，用时 1.13s
[stderr] [2026-03-07 06:02:38] INFO  | etl_billiards | DWD 装载开始：dwd.dwd_goods_stock_summary <= ods.goods_stock_summary
[stderr] [2026-03-07 06:02:38] INFO  | etl_billiards | DWD 装载完成：dwd.dwd_payment，用时 1.03s
[stderr] [2026-03-07 06:02:38] INFO  | etl_billiards | DWD 装载开始：dwd.dwd_goods_stock_movement <= ods.goods_stock_movements
[stderr] [2026-03-07 06:02:39] INFO  | etl_billiards | DWD 装载完成：dwd.dwd_refund，用时 1.02s
[stderr] [2026-03-07 06:02:39] INFO  | etl_billiards | DWD 装载完成：dwd.dwd_refund_ex，用时 1.02s
[stderr] [2026-03-07 06:02:39] INFO  | etl_billiards | DWD 装载完成：dwd.dwd_goods_stock_summary，用时 1.02s
[stderr] [2026-03-07 06:02:39] INFO  | etl_billiards | DWD 装载完成：dwd.dwd_goods_stock_movement，用时 1.02s
[stderr] [2026-03-07 06:02:39] INFO  | etl_billiards | DWD_LOAD_FROM_ODS: 完成(4/9)，已处理 120/251.17 天
[stderr] [2026-03-07 06:02:39] INFO  | etl_billiards | DWD_LOAD_FROM_ODS: 开始执行(5/9)，窗口[2025-10-29 06:00:00+08:00 ~ 2025-11-28 06:00:00+08:00]
[stderr] [2026-03-07 06:02:39] INFO  | etl_billiards | DWD 装载开始：dwd.dim_site <= ods.table_fee_transactions
[stderr] [2026-03-07 06:02:39] INFO  | etl_billiards | DWD 装载开始：dwd.dim_site_ex <= ods.table_fee_transactions
[stderr] [2026-03-07 06:02:39] INFO  | etl_billiards | DWD 装载开始：dwd.dim_table <= ods.site_tables_master
[stderr] [2026-03-07 06:02:39] INFO  | etl_billiards | DWD 装载开始：dwd.dim_table_ex <= ods.site_tables_master
[stderr] [2026-03-07 06:02:41] INFO  | etl_billiards | DWD 装载完成：dwd.dim_table，用时 1.25s
[stderr] [2026-03-07 06:02:41] INFO  | etl_billiards | DWD 装载开始：dwd.dim_assistant <= ods.assistant_accounts_master
[stderr] [2026-03-07 06:02:41] INFO  | etl_billiards | DWD 装载完成：dwd.dim_table_ex，用时 1.41s
[stderr] [2026-03-07 06:02:41] INFO  | etl_billiards | DWD 装载开始：dwd.dim_assistant_ex <= ods.assistant_accounts_master
[stderr] [2026-03-07 06:02:41] INFO  | etl_billiards | DWD 装载完成：dwd.dim_site，用时 1.57s
[stderr] [2026-03-07 06:02:41] INFO  | etl_billiards | DWD 装载开始：dwd.dim_member <= ods.member_profiles
[stderr] [2026-03-07 06:02:41] INFO  | etl_billiards | DWD 装载完成：dwd.dim_site_ex，用时 1.68s
[stderr] [2026-03-07 06:02:41] INFO  | etl_billiards | DWD 装载开始：dwd.dim_member_ex <= ods.member_profiles
[stderr] [2026-03-07 06:02:42] INFO  | etl_billiards | DWD 装载完成：dwd.dim_assistant，用时 1.35s
[stderr] [2026-03-07 06:02:42] INFO  | etl_billiards | DWD 装载开始：dwd.dim_member_card_account <= ods.member_stored_value_cards
[stderr] [2026-03-07 06:02:42] INFO  | etl_billiards | DWD 装载完成：dwd.dim_assistant_ex，用时 1.43s
[stderr] [2026-03-07 06:02:42] INFO  | etl_billiards | DWD 装载开始：dwd.dim_member_card_account_ex <= ods.member_stored_value_cards
[stderr] [2026-03-07 06:02:43] INFO  | etl_billiards | DWD 装载完成：dwd.dim_member_ex，用时 1.53s
[stderr] [2026-03-07 06:02:43] INFO  | etl_billiards | DWD 装载开始：dwd.dim_tenant_goods <= ods.tenant_goods_master
[stderr] [2026-03-07 06:02:43] INFO  | etl_billiards | DWD 装载完成：dwd.dim_member，用时 1.66s
[stderr] [2026-03-07 06:02:43] INFO  | etl_billiards | DWD 装载开始：dwd.dim_tenant_goods_ex <= ods.tenant_goods_master
[stderr] [2026-03-07 06:02:44] INFO  | etl_billiards | DWD 装载完成：dwd.dim_tenant_goods，用时 1.48s
[stderr] [2026-03-07 06:02:44] INFO  | etl_billiards | DWD 装载开始：dwd.dim_store_goods <= ods.store_goods_master
[stderr] [2026-03-07 06:02:44] INFO  | etl_billiards | DWD 装载完成：dwd.dim_member_card_account，用时 2.11s
[stderr] [2026-03-07 06:02:44] INFO  | etl_billiards | DWD 装载开始：dwd.dim_store_goods_ex <= ods.store_goods_master
[stderr] [2026-03-07 06:02:44] ERROR | etl_billiards | DWD 装载失败：dwd.dim_tenant_goods_ex，用时 1.55s，err=错误:  有缺陷的数组常量:"["10000028"]"
[stderr] LINE 1: ...rsion", "tenant_goods_id") VALUES (1,2,'10000028','["1000002...
[stderr]                                                              ^
[stderr] DETAIL:  "["必须引入显式指定的数组规模。
[stderr] Traceback (most recent call last):
[stderr]   File "C:\NeoZQYY\apps\etl\connectors\feiqiu\tasks\dwd\dwd_load_task.py", line 760, in _process_single_table
[stderr]     dim_counts = self._merge_dim(cur, dwd_table, ods_table, dwd_cols, ods_cols, now)
[stderr]   File "C:\NeoZQYY\apps\etl\connectors\feiqiu\tasks\dwd\dwd_load_task.py", line 920, in _merge_dim
[stderr]     return self._merge_dim_scd2(cur, dwd_table, ods_table, dwd_cols, ods_cols, now)
[stderr]            ~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[stderr]   File "C:\NeoZQYY\apps\etl\connectors\feiqiu\tasks\dwd\dwd_load_task.py", line 1111, in _merge_dim_scd2
[stderr]     self._insert_dim_rows_bulk(cur, dwd_table, dwd_cols, to_insert, now)
[stderr]     ~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[stderr]   File "C:\NeoZQYY\apps\etl\connectors\feiqiu\tasks\dwd\dwd_load_task.py", line 1182, in _insert_dim_rows_bulk
[stderr]     execute_values(cur, insert_sql, values_rows, page_size=500)
[stderr]     ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[stderr]   File "C:\NeoZQYY\.venv\Lib\site-packages\psycopg2\extras.py", line 1299, in execute_values
[stderr]     cur.execute(b''.join(parts))
[stderr]     ~~~~~~~~~~~^^^^^^^^^^^^^^^^^
[stderr]   File "C:\NeoZQYY\.venv\Lib\site-packages\psycopg2\extras.py", line 236, in execute
[stderr]     return super().execute(query, vars)
[stderr]            ~~~~~~~~~~~~~~~^^^^^^^^^^^^^
[stderr] psycopg2.errors.InvalidTextRepresentation: 错误:  有缺陷的数组常量:"["10000028"]"
[stderr] LINE 1: ...rsion", "tenant_goods_id") VALUES (1,2,'10000028','["1000002...
[stderr]                                                              ^
[stderr] DETAIL:  "["必须引入显式指定的数组规模。
[stderr] 
[stderr] [2026-03-07 06:02:44] INFO  | etl_billiards | DWD 装载开始：dwd.dim_goods_category <= ods.stock_goods_category_tree
[stderr] [2026-03-07 06:02:44] ERROR | etl_billiards | DWD 并行装载失败：dwd.dim_tenant_goods_ex，err=错误:  有缺陷的数组常量:"["10000028"]"
[stderr] LINE 1: ...rsion", "tenant_goods_id") VALUES (1,2,'10000028','["1000002...
[stderr]                                                              ^
[stderr] DETAIL:  "["必须引入显式指定的数组规模。
[stderr] 
[stderr] [2026-03-07 06:02:45] INFO  | etl_billiards | DWD 装载完成：dwd.dim_member_card_account_ex，用时 2.33s
[stderr] [2026-03-07 06:02:45] INFO  | etl_billiards | DWD 装载开始：dwd.dim_groupbuy_package <= ods.group_buy_packages
[stderr] [2026-03-07 06:02:45] INFO  | etl_billiards | DWD 装载完成：dwd.dim_goods_category，用时 1.22s
[stderr] [2026-03-07 06:02:45] INFO  | etl_billiards | DWD 装载开始：dwd.dim_groupbuy_package_ex <= ods.group_buy_packages
[stderr] [2026-03-07 06:02:46] INFO  | etl_billiards | DWD 装载完成：dwd.dim_store_goods_ex，用时 1.37s
[stderr] [2026-03-07 06:02:46] INFO  | etl_billiards | DWD 装载开始：dwd.dwd_settlement_head <= ods.settlement_records
[stderr] [2026-03-07 06:02:46] INFO  | etl_billiards | DWD 装载完成：dwd.dim_store_goods，用时 1.45s
[stderr] [2026-03-07 06:02:46] INFO  | etl_billiards | DWD 装载开始：dwd.dwd_settlement_head_ex <= ods.settlement_records
[stderr] [2026-03-07 06:02:46] INFO  | etl_billiards | DWD 装载完成：dwd.dim_groupbuy_package，用时 1.19s
[stderr] [2026-03-07 06:02:46] INFO  | etl_billiards | DWD 装载开始：dwd.dwd_table_fee_log <= ods.table_fee_transactions
[stderr] [2026-03-07 06:02:47] INFO  | etl_billiards | DWD 装载完成：dwd.dwd_settlement_head，用时 1.01s
[stderr] [2026-03-07 06:02:47] INFO  | etl_billiards | DWD 装载开始：dwd.dwd_table_fee_log_ex <= ods.table_fee_transactions
[stderr] [2026-03-07 06:02:47] INFO  | etl_billiards | DWD 装载完成：dwd.dwd_settlement_head_ex，用时 1.03s
[stderr] [2026-03-07 06:02:47] INFO  | etl_billiards | DWD 装载开始：dwd.dwd_table_fee_adjust <= ods.table_fee_discount_records
[stderr] [2026-03-07 06:02:47] INFO  | etl_billiards | DWD 装载完成：dwd.dim_groupbuy_package_ex，用时 1.19s
[stderr] [2026-03-07 06:02:47] INFO  | etl_billiards | DWD 装载开始：dwd.dwd_table_fee_adjust_ex <= ods.table_fee_discount_records
[stderr] [2026-03-07 06:02:47] INFO  | etl_billiards | DWD 装载完成：dwd.dwd_table_fee_log，用时 1.03s
[stderr] [2026-03-07 06:02:47] INFO  | etl_billiards | DWD 装载开始：dwd.dwd_store_goods_sale <= ods.store_goods_sales_records
[stderr] [2026-03-07 06:02:48] INFO  | etl_billiards | DWD 装载完成：dwd.dwd_table_fee_log_ex，用时 1.02s
[stderr] [2026-03-07 06:02:48] INFO  | etl_billiards | DWD 装载开始：dwd.dwd_store_goods_sale_ex <= ods.store_goods_sales_records
[stderr] [2026-03-07 06:02:48] INFO  | etl_billiards | DWD 装载完成：dwd.dwd_table_fee_adjust，用时 1.02s
[stderr] [2026-03-07 06:02:48] INFO  | etl_billiards | DWD 装载开始：dwd.dwd_assistant_service_log <= ods.assistant_service_records
[stderr] [2026-03-07 06:02:48] INFO  | etl_billiards | DWD 装载完成：dwd.dwd_table_fee_adjust_ex，用时 1.01s
[stderr] [2026-03-07 06:02:48] INFO  | etl_billiards | DWD 装载开始：dwd.dwd_assistant_service_log_ex <= ods.assistant_service_records
[stderr] [2026-03-07 06:02:48] INFO  | etl_billiards | DWD 装载完成：dwd.dwd_store_goods_sale，用时 1.01s
[stderr] [2026-03-07 06:02:48] INFO  | etl_billiards | DWD 装载开始：dwd.dwd_member_balance_change <= ods.member_balance_changes
[stderr] [2026-03-07 06:02:49] INFO  | etl_billiards | DWD 装载完成：dwd.dwd_store_goods_sale_ex，用时 1.01s
[stderr] [2026-03-07 06:02:49] INFO  | etl_billiards | DWD 装载开始：dwd.dwd_member_balance_change_ex <= ods.member_balance_changes
[stderr] [2026-03-07 06:02:49] INFO  | etl_billiards | DWD 装载完成：dwd.dwd_assistant_service_log，用时 1.03s
[stderr] [2026-03-07 06:02:49] INFO  | etl_billiards | DWD 装载完成：dwd.dwd_assistant_service_log_ex，用时 1.02s
[stderr] [2026-03-07 06:02:49] INFO  | etl_billiards | DWD 装载开始：dwd.dwd_groupbuy_redemption <= ods.group_buy_redemption_records
[stderr] [2026-03-07 06:02:49] INFO  | etl_billiards | DWD 装载开始：dwd.dwd_groupbuy_redemption_ex <= ods.group_buy_redemption_records
[stderr] [2026-03-07 06:02:49] INFO  | etl_billiards | DWD 装载完成：dwd.dwd_member_balance_change，用时 1.12s
[stderr] [2026-03-07 06:02:49] INFO  | etl_billiards | DWD 装载开始：dwd.dwd_platform_coupon_redemption <= ods.platform_coupon_redemption_records
[stderr] [2026-03-07 06:02:50] INFO  | etl_billiards | DWD 装载完成：dwd.dwd_member_balance_change_ex，用时 1.19s
[stderr] [2026-03-07 06:02:50] INFO  | etl_billiards | DWD 装载开始：dwd.dwd_platform_coupon_redemption_ex <= ods.platform_coupon_redemption_records
[stderr] [2026-03-07 06:02:50] INFO  | etl_billiards | DWD 装载完成：dwd.dwd_groupbuy_redemption_ex，用时 1.11s
[stderr] [2026-03-07 06:02:50] INFO  | etl_billiards | DWD 装载完成：dwd.dwd_groupbuy_redemption，用时 1.11s
[stderr] [2026-03-07 06:02:50] INFO  | etl_billiards | DWD 装载开始：dwd.dwd_recharge_order <= ods.recharge_settlements
[stderr] [2026-03-07 06:02:50] INFO  | etl_billiards | DWD 装载开始：dwd.dwd_recharge_order_ex <= ods.recharge_settlements
[stderr] [2026-03-07 06:02:50] INFO  | etl_billiards | DWD 装载完成：dwd.dwd_platform_coupon_redemption，用时 1.12s
[stderr] [2026-03-07 06:02:50] INFO  | etl_billiards | DWD 装载开始：dwd.dwd_payment <= ods.payment_transactions
[stderr] [2026-03-07 06:02:51] INFO  | etl_billiards | DWD 装载完成：dwd.dwd_recharge_order_ex，用时 1.04s
[stderr] [2026-03-07 06:02:51] INFO  | etl_billiards | DWD 装载完成：dwd.dwd_recharge_order，用时 1.04s
[stderr] [2026-03-07 06:02:51] INFO  | etl_billiards | DWD 装载完成：dwd.dwd_platform_coupon_redemption_ex，用时 1.04s
[stderr] [2026-03-07 06:02:51] INFO  | etl_billiards | DWD 装载开始：dwd.dwd_refund <= ods.refund_transactions
[stderr] [2026-03-07 06:02:51] INFO  | etl_billiards | DWD 装载开始：dwd.dwd_refund_ex <= ods.refund_transactions
[stderr] [2026-03-07 06:02:51] INFO  | etl_billiards | DWD 装载开始：dwd.dwd_goods_stock_summary <= ods.goods_stock_summary
[stderr] [2026-03-07 06:02:51] INFO  | etl_billiards | DWD 装载完成：dwd.dwd_payment，用时 1.02s
[stderr] [2026-03-07 06:02:51] INFO  | etl_billiards | DWD 装载开始：dwd.dwd_goods_stock_movement <= ods.goods_stock_movements
[stderr] [2026-03-07 06:02:52] INFO  | etl_billiards | DWD 装载完成：dwd.dwd_refund，用时 1.06s
[stderr] [2026-03-07 06:02:52] INFO  | etl_billiards | DWD 装载完成：dwd.dwd_refund_ex，用时 1.06s
[stderr] [2026-03-07 06:02:52] INFO  | etl_billiards | DWD 装载完成：dwd.dwd_goods_stock_summary，用时 1.14s
[stderr] [2026-03-07 06:02:52] INFO  | etl_billiards | DWD 装载完成：dwd.dwd_goods_stock_movement，用时 1.12s
[stderr] [2026-03-07 06:02:52] INFO  | etl_billiards | DWD_LOAD_FROM_ODS: 完成(5/9)，已处理 150/251.17 天
[stderr] [2026-03-07 06:02:52] INFO  | etl_billiards | DWD_LOAD_FROM_ODS: 开始执行(6/9)，窗口[2025-11-28 06:00:00+08:00 ~ 2025-12-28 06:00:00+08:00]
[stderr] [2026-03-07 06:02:52] INFO  | etl_billiards | DWD 装载开始：dwd.dim_site <= ods.table_fee_transactions
[stderr] [2026-03-07 06:02:52] INFO  | etl_billiards | DWD 装载开始：dwd.dim_site_ex <= ods.table_fee_transactions
[stderr] [2026-03-07 06:02:52] INFO  | etl_billiards | DWD 装载开始：dwd.dim_table <= ods.site_tables_master
[stderr] [2026-03-07 06:02:52] INFO  | etl_billiards | DWD 装载开始：dwd.dim_table_ex <= ods.site_tables_master
[stderr] [2026-03-07 06:02:53] INFO  | etl_billiards | DWD 装载完成：dwd.dim_table，用时 1.24s
[stderr] [2026-03-07 06:02:53] INFO  | etl_billiards | DWD 装载开始：dwd.dim_assistant <= ods.assistant_accounts_master
[stderr] [2026-03-07 06:02:54] INFO  | etl_billiards | DWD 装载完成：dwd.dim_table_ex，用时 1.32s
[stderr] [2026-03-07 06:02:54] INFO  | etl_billiards | DWD 装载开始：dwd.dim_assistant_ex <= ods.assistant_accounts_master
[stderr] [2026-03-07 06:02:54] INFO  | etl_billiards | DWD 装载完成：dwd.dim_site，用时 1.53s
[stderr] [2026-03-07 06:02:54] INFO  | etl_billiards | DWD 装载开始：dwd.dim_member <= ods.member_profiles
[stderr] [2026-03-07 06:02:54] INFO  | etl_billiards | DWD 装载完成：dwd.dim_site_ex，用时 1.68s
[stderr] [2026-03-07 06:02:54] INFO  | etl_billiards | DWD 装载开始：dwd.dim_member_ex <= ods.member_profiles
[stderr] [2026-03-07 06:02:55] INFO  | etl_billiards | DWD 装载完成：dwd.dim_assistant，用时 1.25s
[stderr] [2026-03-07 06:02:55] INFO  | etl_billiards | DWD 装载开始：dwd.dim_member_card_account <= ods.member_stored_value_cards
[stderr] [2026-03-07 06:02:55] INFO  | etl_billiards | DWD 装载完成：dwd.dim_assistant_ex，用时 1.46s
[stderr] [2026-03-07 06:02:55] INFO  | etl_billiards | DWD 装载开始：dwd.dim_member_card_account_ex <= ods.member_stored_value_cards
[stderr] [2026-03-07 06:02:55] INFO  | etl_billiards | DWD 装载完成：dwd.dim_member，用时 1.69s
[stderr] [2026-03-07 06:02:55] INFO  | etl_billiards | DWD 装载开始：dwd.dim_tenant_goods <= ods.tenant_goods_master
[stderr] [2026-03-07 06:02:55] INFO  | etl_billiards | DWD 装载完成：dwd.dim_member_ex，用时 1.54s
[stderr] [2026-03-07 06:02:55] INFO  | etl_billiards | DWD 装载开始：dwd.dim_tenant_goods_ex <= ods.tenant_goods_master
[stderr] [2026-03-07 06:02:57] INFO  | etl_billiards | DWD 装载完成：dwd.dim_member_card_account，用时 2.29s
[stderr] [2026-03-07 06:02:57] INFO  | etl_billiards | DWD 装载开始：dwd.dim_store_goods <= ods.store_goods_master
[stderr] [2026-03-07 06:02:57] INFO  | etl_billiards | DWD 装载完成：dwd.dim_tenant_goods，用时 1.59s
[stderr] [2026-03-07 06:02:57] INFO  | etl_billiards | DWD 装载开始：dwd.dim_store_goods_ex <= ods.store_goods_master
[stderr] [2026-03-07 06:02:57] ERROR | etl_billiards | DWD 装载失败：dwd.dim_tenant_goods_ex，用时 1.60s，err=错误:  有缺陷的数组常量:"["10000028"]"
[stderr] LINE 1: ...rsion", "tenant_goods_id") VALUES (1,2,'10000028','["1000002...
[stderr]                                                              ^
[stderr] DETAIL:  "["必须引入显式指定的数组规模。
[stderr] Traceback (most recent call last):
[stderr]   File "C:\NeoZQYY\apps\etl\connectors\feiqiu\tasks\dwd\dwd_load_task.py", line 760, in _process_single_table
[stderr]     dim_counts = self._merge_dim(cur, dwd_table, ods_table, dwd_cols, ods_cols, now)
[stderr]   File "C:\NeoZQYY\apps\etl\connectors\feiqiu\tasks\dwd\dwd_load_task.py", line 920, in _merge_dim
[stderr]     return self._merge_dim_scd2(cur, dwd_table, ods_table, dwd_cols, ods_cols, now)
[stderr]            ~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[stderr]   File "C:\NeoZQYY\apps\etl\connectors\feiqiu\tasks\dwd\dwd_load_task.py", line 1111, in _merge_dim_scd2
[stderr]     self._insert_dim_rows_bulk(cur, dwd_table, dwd_cols, to_insert, now)
[stderr]     ~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[stderr]   File "C:\NeoZQYY\apps\etl\connectors\feiqiu\tasks\dwd\dwd_load_task.py", line 1182, in _insert_dim_rows_bulk
[stderr]     execute_values(cur, insert_sql, values_rows, page_size=500)
[stderr]     ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[stderr]   File "C:\NeoZQYY\.venv\Lib\site-packages\psycopg2\extras.py", line 1299, in execute_values
[stderr]     cur.execute(b''.join(parts))
[stderr]     ~~~~~~~~~~~^^^^^^^^^^^^^^^^^
[stderr]   File "C:\NeoZQYY\.venv\Lib\site-packages\psycopg2\extras.py", line 236, in execute
[stderr]     return super().execute(query, vars)
[stderr]            ~~~~~~~~~~~~~~~^^^^^^^^^^^^^
[stderr] psycopg2.errors.InvalidTextRepresentation: 错误:  有缺陷的数组常量:"["10000028"]"
[stderr] LINE 1: ...rsion", "tenant_goods_id") VALUES (1,2,'10000028','["1000002...
[stderr]                                                              ^
[stderr] DETAIL:  "["必须引入显式指定的数组规模。
[stderr] 
[stderr] [2026-03-07 06:02:57] INFO  | etl_billiards | DWD 装载开始：dwd.dim_goods_category <= ods.stock_goods_category_tree
[stderr] [2026-03-07 06:02:57] ERROR | etl_billiards | DWD 并行装载失败：dwd.dim_tenant_goods_ex，err=错误:  有缺陷的数组常量:"["10000028"]"
[stderr] LINE 1: ...rsion", "tenant_goods_id") VALUES (1,2,'10000028','["1000002...
[stderr]                                                              ^
[stderr] DETAIL:  "["必须引入显式指定的数组规模。
[stderr] 
[stderr] [2026-03-07 06:02:57] INFO  | etl_billiards | DWD 装载完成：dwd.dim_member_card_account_ex，用时 2.45s
[stderr] [2026-03-07 06:02:57] INFO  | etl_billiards | DWD 装载开始：dwd.dim_groupbuy_package <= ods.group_buy_packages
[stderr] [2026-03-07 06:02:58] INFO  | etl_billiards | DWD 装载完成：dwd.dim_goods_category，用时 1.22s
[stderr] [2026-03-07 06:02:58] INFO  | etl_billiards | DWD 装载开始：dwd.dim_groupbuy_package_ex <= ods.group_buy_packages
[stderr] [2026-03-07 06:02:58] INFO  | etl_billiards | DWD 装载完成：dwd.dim_store_goods_ex，用时 1.34s
[stderr] [2026-03-07 06:02:58] INFO  | etl_billiards | DWD 装载开始：dwd.dwd_settlement_head <= ods.settlement_records
[stderr] [2026-03-07 06:02:58] INFO  | etl_billiards | DWD 装载完成：dwd.dim_store_goods，用时 1.43s
[stderr] [2026-03-07 06:02:58] INFO  | etl_billiards | DWD 装载开始：dwd.dwd_settlement_head_ex <= ods.settlement_records
[stderr] [2026-03-07 06:02:59] INFO  | etl_billiards | DWD 装载完成：dwd.dim_groupbuy_package，用时 1.22s
[stderr] [2026-03-07 06:02:59] INFO  | etl_billiards | DWD 装载开始：dwd.dwd_table_fee_log <= ods.table_fee_transactions
[stderr] [2026-03-07 06:02:59] INFO  | etl_billiards | DWD 装载完成：dwd.dwd_settlement_head，用时 1.08s
[stderr] [2026-03-07 06:02:59] INFO  | etl_billiards | DWD 装载开始：dwd.dwd_table_fee_log_ex <= ods.table_fee_transactions
[stderr] [2026-03-07 06:03:00] INFO  | etl_billiards | DWD 装载完成：dwd.dim_groupbuy_package_ex，用时 1.32s
[stderr] [2026-03-07 06:03:00] INFO  | etl_billiards | DWD 装载开始：dwd.dwd_table_fee_adjust <= ods.table_fee_discount_records
[stderr] [2026-03-07 06:03:00] INFO  | etl_billiards | DWD 装载完成：dwd.dwd_settlement_head_ex，用时 1.15s
[stderr] [2026-03-07 06:03:00] INFO  | etl_billiards | DWD 装载开始：dwd.dwd_table_fee_adjust_ex <= ods.table_fee_discount_records
[stderr] [2026-03-07 06:03:01] INFO  | etl_billiards | DWD 装载完成：dwd.dwd_table_fee_adjust_ex，用时 1.32s
[stderr] [2026-03-07 06:03:01] INFO  | etl_billiards | DWD 装载开始：dwd.dwd_store_goods_sale <= ods.store_goods_sales_records
[stderr] [2026-03-07 06:03:01] INFO  | etl_billiards | DWD 装载完成：dwd.dwd_table_fee_adjust，用时 1.37s
[stderr] [2026-03-07 06:03:01] INFO  | etl_billiards | DWD 装载开始：dwd.dwd_store_goods_sale_ex <= ods.store_goods_sales_records
[stderr] [2026-03-07 06:03:01] INFO  | etl_billiards | DWD 装载完成：dwd.dwd_table_fee_log，用时 2.43s
[stderr] [2026-03-07 06:03:01] INFO  | etl_billiards | DWD 装载开始：dwd.dwd_assistant_service_log <= ods.assistant_service_records
[stderr] [2026-03-07 06:03:01] INFO  | etl_billiards | DWD 装载完成：dwd.dwd_table_fee_log_ex，用时 1.77s
[stderr] [2026-03-07 06:03:01] INFO  | etl_billiards | DWD 装载开始：dwd.dwd_assistant_service_log_ex <= ods.assistant_service_records
[stderr] [2026-03-07 06:03:03] INFO  | etl_billiards | DWD 装载完成：dwd.dwd_assistant_service_log_ex，用时 1.81s
[stderr] [2026-03-07 06:03:03] INFO  | etl_billiards | DWD 装载开始：dwd.dwd_member_balance_change <= ods.member_balance_changes
[stderr] [2026-03-07 06:03:03] INFO  | etl_billiards | DWD 装载完成：dwd.dwd_assistant_service_log，用时 2.07s
[stderr] [2026-03-07 06:03:03] INFO  | etl_billiards | DWD 装载开始：dwd.dwd_member_balance_change_ex <= ods.member_balance_changes
[stderr] [2026-03-07 06:03:03] INFO  | etl_billiards | DWD 装载完成：dwd.dwd_store_goods_sale_ex，用时 2.51s
[stderr] [2026-03-07 06:03:03] INFO  | etl_billiards | DWD 装载开始：dwd.dwd_groupbuy_redemption <= ods.group_buy_redemption_records
[stderr] [2026-03-07 06:03:04] INFO  | etl_billiards | DWD 装载完成：dwd.dwd_store_goods_sale，用时 2.59s
[stderr] [2026-03-07 06:03:04] INFO  | etl_billiards | DWD 装载开始：dwd.dwd_groupbuy_redemption_ex <= ods.group_buy_redemption_records
[stderr] [2026-03-07 06:03:04] INFO  | etl_billiards | DWD 装载完成：dwd.dwd_member_balance_change，用时 1.28s
[stderr] [2026-03-07 06:03:04] INFO  | etl_billiards | DWD 装载开始：dwd.dwd_platform_coupon_redemption <= ods.platform_coupon_redemption_records
[stderr] [2026-03-07 06:03:04] INFO  | etl_billiards | DWD 装载完成：dwd.dwd_member_balance_change_ex，用时 1.21s
[stderr] [2026-03-07 06:03:04] INFO  | etl_billiards | DWD 装载开始：dwd.dwd_platform_coupon_redemption_ex <= ods.platform_coupon_redemption_records
[stderr] [2026-03-07 06:03:05] INFO  | etl_billiards | DWD 装载完成：dwd.dwd_groupbuy_redemption，用时 1.70s
[stderr] [2026-03-07 06:03:05] INFO  | etl_billiards | DWD 装载开始：dwd.dwd_recharge_order <= ods.recharge_settlements
[stderr] [2026-03-07 06:03:05] INFO  | etl_billiards | DWD 装载完成：dwd.dwd_groupbuy_redemption_ex，用时 1.69s
[stderr] [2026-03-07 06:03:05] INFO  | etl_billiards | DWD 装载开始：dwd.dwd_recharge_order_ex <= ods.recharge_settlements
[stderr] [2026-03-07 06:03:06] INFO  | etl_billiards | DWD 装载完成：dwd.dwd_recharge_order，用时 1.17s
[stderr] [2026-03-07 06:03:06] INFO  | etl_billiards | DWD 装载开始：dwd.dwd_payment <= ods.payment_transactions
[stderr] [2026-03-07 06:03:06] INFO  | etl_billiards | DWD 装载完成：dwd.dwd_recharge_order_ex，用时 1.18s
[stderr] [2026-03-07 06:03:06] INFO  | etl_billiards | DWD 装载开始：dwd.dwd_refund <= ods.refund_transactions
[stderr] [2026-03-07 06:03:06] INFO  | etl_billiards | DWD 装载完成：dwd.dwd_platform_coupon_redemption_ex，用时 2.04s
[stderr] [2026-03-07 06:03:06] INFO  | etl_billiards | DWD 装载开始：dwd.dwd_refund_ex <= ods.refund_transactions
[stderr] [2026-03-07 06:03:07] INFO  | etl_billiards | DWD 装载完成：dwd.dwd_platform_coupon_redemption，用时 2.20s
[stderr] [2026-03-07 06:03:07] INFO  | etl_billiards | DWD 装载开始：dwd.dwd_goods_stock_summary <= ods.goods_stock_summary
[stderr] [2026-03-07 06:03:07] INFO  | etl_billiards | DWD 装载完成：dwd.dwd_refund_ex，用时 1.04s
[stderr] [2026-03-07 06:03:07] INFO  | etl_billiards | DWD 装载开始：dwd.dwd_goods_stock_movement <= ods.goods_stock_movements
[stderr] [2026-03-07 06:03:08] INFO  | etl_billiards | DWD 装载完成：dwd.dwd_refund，用时 1.16s
[stderr] [2026-03-07 06:03:08] INFO  | etl_billiards | DWD 装载完成：dwd.dwd_goods_stock_summary，用时 1.22s
[stderr] [2026-03-07 06:03:08] INFO  | etl_billiards | DWD 装载完成：dwd.dwd_payment，用时 1.71s
[stderr] [2026-03-07 06:03:10] INFO  | etl_billiards | DWD 装载完成：dwd.dwd_goods_stock_movement，用时 2.23s
[stderr] [2026-03-07 06:03:10] INFO  | etl_billiards | DWD_LOAD_FROM_ODS: 完成(6/9)，已处理 180/251.17 天
[stderr] [2026-03-07 06:03:10] INFO  | etl_billiards | DWD_LOAD_FROM_ODS: 开始执行(7/9)，窗口[2025-12-28 06:00:00+08:00 ~ 2026-01-27 06:00:00+08:00]
[stderr] [2026-03-07 06:03:10] INFO  | etl_billiards | DWD 装载开始：dwd.dim_site <= ods.table_fee_transactions
[stderr] [2026-03-07 06:03:10] INFO  | etl_billiards | DWD 装载开始：dwd.dim_site_ex <= ods.table_fee_transactions
[stderr] [2026-03-07 06:03:10] INFO  | etl_billiards | DWD 装载开始：dwd.dim_table <= ods.site_tables_master
[stderr] [2026-03-07 06:03:10] INFO  | etl_billiards | DWD 装载开始：dwd.dim_table_ex <= ods.site_tables_master
[stderr] [2026-03-07 06:03:11] INFO  | etl_billiards | DWD 装载完成：dwd.dim_table，用时 1.25s
[stderr] [2026-03-07 06:03:11] INFO  | etl_billiards | DWD 装载开始：dwd.dim_assistant <= ods.assistant_accounts_master
[stderr] [2026-03-07 06:03:11] INFO  | etl_billiards | DWD 装载完成：dwd.dim_table_ex，用时 1.42s
[stderr] [2026-03-07 06:03:11] INFO  | etl_billiards | DWD 装载开始：dwd.dim_assistant_ex <= ods.assistant_accounts_master
[stderr] [2026-03-07 06:03:11] INFO  | etl_billiards | DWD 装载完成：dwd.dim_site，用时 1.62s
[stderr] [2026-03-07 06:03:11] INFO  | etl_billiards | DWD 装载开始：dwd.dim_member <= ods.member_profiles
[stderr] [2026-03-07 06:03:11] INFO  | etl_billiards | DWD 装载完成：dwd.dim_site_ex，用时 1.68s
[stderr] [2026-03-07 06:03:11] INFO  | etl_billiards | DWD 装载开始：dwd.dim_member_ex <= ods.member_profiles
[stderr] [2026-03-07 06:03:12] INFO  | etl_billiards | DWD 装载完成：dwd.dim_assistant，用时 1.26s
[stderr] [2026-03-07 06:03:12] INFO  | etl_billiards | DWD 装载开始：dwd.dim_member_card_account <= ods.member_stored_value_cards
[stderr] [2026-03-07 06:03:13] INFO  | etl_billiards | DWD 装载完成：dwd.dim_assistant_ex，用时 1.43s
[stderr] [2026-03-07 06:03:13] INFO  | etl_billiards | DWD 装载开始：dwd.dim_member_card_account_ex <= ods.member_stored_value_cards
[stderr] [2026-03-07 06:03:13] INFO  | etl_billiards | DWD 装载完成：dwd.dim_member_ex，用时 1.56s
[stderr] [2026-03-07 06:03:13] INFO  | etl_billiards | DWD 装载开始：dwd.dim_tenant_goods <= ods.tenant_goods_master
[stderr] [2026-03-07 06:03:13] INFO  | etl_billiards | DWD 装载完成：dwd.dim_member，用时 1.67s
[stderr] [2026-03-07 06:03:13] INFO  | etl_billiards | DWD 装载开始：dwd.dim_tenant_goods_ex <= ods.tenant_goods_master
[stderr] [2026-03-07 06:03:14] INFO  | etl_billiards | DWD 装载完成：dwd.dim_member_card_account，用时 2.17s
[stderr] [2026-03-07 06:03:14] INFO  | etl_billiards | DWD 装载开始：dwd.dim_store_goods <= ods.store_goods_master
[stderr] [2026-03-07 06:03:15] INFO  | etl_billiards | DWD 装载完成：dwd.dim_tenant_goods，用时 1.56s
[stderr] [2026-03-07 06:03:15] INFO  | etl_billiards | DWD 装载开始：dwd.dim_store_goods_ex <= ods.store_goods_master
[stderr] [2026-03-07 06:03:15] ERROR | etl_billiards | DWD 装载失败：dwd.dim_tenant_goods_ex，用时 1.52s，err=错误:  有缺陷的数组常量:"["10000028"]"
[stderr] LINE 1: ...rsion", "tenant_goods_id") VALUES (1,2,'10000028','["1000002...
[stderr]                                                              ^
[stderr] DETAIL:  "["必须引入显式指定的数组规模。
[stderr] Traceback (most recent call last):
[stderr]   File "C:\NeoZQYY\apps\etl\connectors\feiqiu\tasks\dwd\dwd_load_task.py", line 760, in _process_single_table
[stderr]     dim_counts = self._merge_dim(cur, dwd_table, ods_table, dwd_cols, ods_cols, now)
[stderr]   File "C:\NeoZQYY\apps\etl\connectors\feiqiu\tasks\dwd\dwd_load_task.py", line 920, in _merge_dim
[stderr]     return self._merge_dim_scd2(cur, dwd_table, ods_table, dwd_cols, ods_cols, now)
[stderr]            ~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[stderr]   File "C:\NeoZQYY\apps\etl\connectors\feiqiu\tasks\dwd\dwd_load_task.py", line 1111, in _merge_dim_scd2
[stderr]     self._insert_dim_rows_bulk(cur, dwd_table, dwd_cols, to_insert, now)
[stderr]     ~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[stderr]   File "C:\NeoZQYY\apps\etl\connectors\feiqiu\tasks\dwd\dwd_load_task.py", line 1182, in _insert_dim_rows_bulk
[stderr]     execute_values(cur, insert_sql, values_rows, page_size=500)
[stderr]     ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[stderr]   File "C:\NeoZQYY\.venv\Lib\site-packages\psycopg2\extras.py", line 1299, in execute_values
[stderr]     cur.execute(b''.join(parts))
[stderr]     ~~~~~~~~~~~^^^^^^^^^^^^^^^^^
[stderr]   File "C:\NeoZQYY\.venv\Lib\site-packages\psycopg2\extras.py", line 236, in execute
[stderr]     return super().execute(query, vars)
[stderr]            ~~~~~~~~~~~~~~~^^^^^^^^^^^^^
[stderr] psycopg2.errors.InvalidTextRepresentation: 错误:  有缺陷的数组常量:"["10000028"]"
[stderr] LINE 1: ...rsion", "tenant_goods_id") VALUES (1,2,'10000028','["1000002...
[stderr]                                                              ^
[stderr] DETAIL:  "["必须引入显式指定的数组规模。
[stderr] 
[stderr] [2026-03-07 06:03:15] INFO  | etl_billiards | DWD 装载开始：dwd.dim_goods_category <= ods.stock_goods_category_tree
[stderr] [2026-03-07 06:03:15] ERROR | etl_billiards | DWD 并行装载失败：dwd.dim_tenant_goods_ex，err=错误:  有缺陷的数组常量:"["10000028"]"
[stderr] LINE 1: ...rsion", "tenant_goods_id") VALUES (1,2,'10000028','["1000002...
[stderr]                                                              ^
[stderr] DETAIL:  "["必须引入显式指定的数组规模。
[stderr] 
[stderr] [2026-03-07 06:03:15] INFO  | etl_billiards | DWD 装载完成：dwd.dim_member_card_account_ex，用时 2.28s
[stderr] [2026-03-07 06:03:15] INFO  | etl_billiards | DWD 装载开始：dwd.dim_groupbuy_package <= ods.group_buy_packages
[stderr] [2026-03-07 06:03:16] INFO  | etl_billiards | DWD 装载完成：dwd.dim_goods_category，用时 1.21s
[stderr] [2026-03-07 06:03:16] INFO  | etl_billiards | DWD 装载开始：dwd.dim_groupbuy_package_ex <= ods.group_buy_packages
[stderr] [2026-03-07 06:03:16] INFO  | etl_billiards | DWD 装载完成：dwd.dim_store_goods，用时 1.48s
[stderr] [2026-03-07 06:03:16] INFO  | etl_billiards | DWD 装载开始：dwd.dwd_settlement_head <= ods.settlement_records
[stderr] [2026-03-07 06:03:16] INFO  | etl_billiards | DWD 装载完成：dwd.dim_store_goods_ex，用时 1.40s
[stderr] [2026-03-07 06:03:16] INFO  | etl_billiards | DWD 装载开始：dwd.dwd_settlement_head_ex <= ods.settlement_records
[stderr] [2026-03-07 06:03:16] INFO  | etl_billiards | DWD 装载完成：dwd.dim_groupbuy_package，用时 1.23s
[stderr] [2026-03-07 06:03:16] INFO  | etl_billiards | DWD 装载开始：dwd.dwd_table_fee_log <= ods.table_fee_transactions
[stderr] [2026-03-07 06:03:17] INFO  | etl_billiards | DWD 装载完成：dwd.dim_groupbuy_package_ex，用时 1.19s
[stderr] [2026-03-07 06:03:17] INFO  | etl_billiards | DWD 装载开始：dwd.dwd_table_fee_log_ex <= ods.table_fee_transactions
[stderr] [2026-03-07 06:03:18] INFO  | etl_billiards | DWD 装载完成：dwd.dwd_table_fee_log，用时 1.75s
[stderr] [2026-03-07 06:03:18] INFO  | etl_billiards | DWD 装载开始：dwd.dwd_table_fee_adjust <= ods.table_fee_discount_records
[stderr] [2026-03-07 06:03:18] INFO  | etl_billiards | DWD 装载完成：dwd.dwd_settlement_head_ex，用时 2.19s
[stderr] [2026-03-07 06:03:18] INFO  | etl_billiards | DWD 装载开始：dwd.dwd_table_fee_adjust_ex <= ods.table_fee_discount_records
[stderr] [2026-03-07 06:03:18] INFO  | etl_billiards | DWD 装载完成：dwd.dwd_table_fee_log_ex，用时 1.19s
[stderr] [2026-03-07 06:03:18] INFO  | etl_billiards | DWD 装载开始：dwd.dwd_store_goods_sale <= ods.store_goods_sales_records
[stderr] [2026-03-07 06:03:18] INFO  | etl_billiards | DWD 装载完成：dwd.dwd_settlement_head，用时 2.38s
[stderr] [2026-03-07 06:03:18] INFO  | etl_billiards | DWD 装载开始：dwd.dwd_store_goods_sale_ex <= ods.store_goods_sales_records
[stderr] [2026-03-07 06:03:19] INFO  | etl_billiards | DWD 装载完成：dwd.dwd_table_fee_adjust，用时 1.05s
[stderr] [2026-03-07 06:03:19] INFO  | etl_billiards | DWD 装载开始：dwd.dwd_assistant_service_log <= ods.assistant_service_records
[stderr] [2026-03-07 06:03:19] INFO  | etl_billiards | DWD 装载完成：dwd.dwd_store_goods_sale，用时 1.03s
[stderr] [2026-03-07 06:03:19] INFO  | etl_billiards | DWD 装载开始：dwd.dwd_assistant_service_log_ex <= ods.assistant_service_records
[stderr] [2026-03-07 06:03:19] INFO  | etl_billiards | DWD 装载完成：dwd.dwd_table_fee_adjust_ex，用时 1.05s
[stderr] [2026-03-07 06:03:19] INFO  | etl_billiards | DWD 装载开始：dwd.dwd_member_balance_change <= ods.member_balance_changes
[stderr] [2026-03-07 06:03:19] INFO  | etl_billiards | DWD 装载完成：dwd.dwd_store_goods_sale_ex，用时 1.04s
[stderr] [2026-03-07 06:03:19] INFO  | etl_billiards | DWD 装载开始：dwd.dwd_member_balance_change_ex <= ods.member_balance_changes
[stderr] [2026-03-07 06:03:20] INFO  | etl_billiards | DWD 装载完成：dwd.dwd_assistant_service_log，用时 1.16s
[stderr] [2026-03-07 06:03:20] INFO  | etl_billiards | DWD 装载开始：dwd.dwd_groupbuy_redemption <= ods.group_buy_redemption_records
[stderr] [2026-03-07 06:03:20] INFO  | etl_billiards | DWD 装载完成：dwd.dwd_member_balance_change，用时 1.04s
[stderr] [2026-03-07 06:03:20] INFO  | etl_billiards | DWD 装载开始：dwd.dwd_groupbuy_redemption_ex <= ods.group_buy_redemption_records
[stderr] [2026-03-07 06:03:20] INFO  | etl_billiards | DWD 装载完成：dwd.dwd_assistant_service_log_ex，用时 1.07s
[stderr] [2026-03-07 06:03:20] INFO  | etl_billiards | DWD 装载开始：dwd.dwd_platform_coupon_redemption <= ods.platform_coupon_redemption_records
[stderr] [2026-03-07 06:03:20] INFO  | etl_billiards | DWD 装载完成：dwd.dwd_member_balance_change_ex，用时 1.13s
[stderr] [2026-03-07 06:03:20] INFO  | etl_billiards | DWD 装载开始：dwd.dwd_platform_coupon_redemption_ex <= ods.platform_coupon_redemption_records
[stderr] [2026-03-07 06:03:21] INFO  | etl_billiards | DWD 装载完成：dwd.dwd_groupbuy_redemption，用时 1.13s
[stderr] [2026-03-07 06:03:21] INFO  | etl_billiards | DWD 装载开始：dwd.dwd_recharge_order <= ods.recharge_settlements
[stderr] [2026-03-07 06:03:21] INFO  | etl_billiards | DWD 装载完成：dwd.dwd_platform_coupon_redemption，用时 1.12s
[stderr] [2026-03-07 06:03:21] INFO  | etl_billiards | DWD 装载开始：dwd.dwd_recharge_order_ex <= ods.recharge_settlements
[stderr] [2026-03-07 06:03:21] INFO  | etl_billiards | DWD 装载完成：dwd.dwd_groupbuy_redemption_ex，用时 1.20s
[stderr] [2026-03-07 06:03:21] INFO  | etl_billiards | DWD 装载开始：dwd.dwd_payment <= ods.payment_transactions
[stderr] [2026-03-07 06:03:22] INFO  | etl_billiards | DWD 装载完成：dwd.dwd_platform_coupon_redemption_ex，用时 1.21s
[stderr] [2026-03-07 06:03:22] INFO  | etl_billiards | DWD 装载开始：dwd.dwd_refund <= ods.refund_transactions
[stderr] [2026-03-07 06:03:22] INFO  | etl_billiards | DWD 装载完成：dwd.dwd_recharge_order，用时 1.05s
[stderr] [2026-03-07 06:03:22] INFO  | etl_billiards | DWD 装载开始：dwd.dwd_refund_ex <= ods.refund_transactions
[stderr] [2026-03-07 06:03:22] INFO  | etl_billiards | DWD 装载完成：dwd.dwd_recharge_order_ex，用时 1.05s
[stderr] [2026-03-07 06:03:22] INFO  | etl_billiards | DWD 装载开始：dwd.dwd_goods_stock_summary <= ods.goods_stock_summary
[stderr] [2026-03-07 06:03:23] INFO  | etl_billiards | DWD 装载完成：dwd.dwd_payment，用时 1.20s
[stderr] [2026-03-07 06:03:23] INFO  | etl_billiards | DWD 装载开始：dwd.dwd_goods_stock_movement <= ods.goods_stock_movements
[stderr] [2026-03-07 06:03:23] INFO  | etl_billiards | DWD 装载完成：dwd.dwd_refund，用时 1.03s
[stderr] [2026-03-07 06:03:23] INFO  | etl_billiards | DWD 装载完成：dwd.dwd_refund_ex，用时 1.11s
[stderr] [2026-03-07 06:03:23] INFO  | etl_billiards | DWD 装载完成：dwd.dwd_goods_stock_summary，用时 1.04s
[stderr] [2026-03-07 06:03:24] INFO  | etl_billiards | DWD 装载完成：dwd.dwd_goods_stock_movement，用时 1.34s
[stderr] [2026-03-07 06:03:24] INFO  | etl_billiards | DWD_LOAD_FROM_ODS: 完成(7/9)，已处理 210/251.17 天
[stderr] [2026-03-07 06:03:24] INFO  | etl_billiards | DWD_LOAD_FROM_ODS: 开始执行(8/9)，窗口[2026-01-27 06:00:00+08:00 ~ 2026-02-26 06:00:00+08:00]
[stderr] [2026-03-07 06:03:24] INFO  | etl_billiards | DWD 装载开始：dwd.dim_site <= ods.table_fee_transactions
[stderr] [2026-03-07 06:03:24] INFO  | etl_billiards | DWD 装载开始：dwd.dim_site_ex <= ods.table_fee_transactions
[stderr] [2026-03-07 06:03:24] INFO  | etl_billiards | DWD 装载开始：dwd.dim_table <= ods.site_tables_master
[stderr] [2026-03-07 06:03:24] INFO  | etl_billiards | DWD 装载开始：dwd.dim_table_ex <= ods.site_tables_master
[stderr] [2026-03-07 06:03:25] INFO  | etl_billiards | DWD 装载完成：dwd.dim_table，用时 1.30s
[stderr] [2026-03-07 06:03:25] INFO  | etl_billiards | DWD 装载开始：dwd.dim_assistant <= ods.assistant_accounts_master
[stderr] [2026-03-07 06:03:25] INFO  | etl_billiards | DWD 装载完成：dwd.dim_table_ex，用时 1.41s
[stderr] [2026-03-07 06:03:25] INFO  | etl_billiards | DWD 装载开始：dwd.dim_assistant_ex <= ods.assistant_accounts_master
[stderr] [2026-03-07 06:03:26] INFO  | etl_billiards | DWD 装载完成：dwd.dim_site，用时 1.57s
[stderr] [2026-03-07 06:03:26] INFO  | etl_billiards | DWD 装载开始：dwd.dim_member <= ods.member_profiles
[stderr] [2026-03-07 06:03:26] INFO  | etl_billiards | DWD 装载完成：dwd.dim_site_ex，用时 1.65s
[stderr] [2026-03-07 06:03:26] INFO  | etl_billiards | DWD 装载开始：dwd.dim_member_ex <= ods.member_profiles
[stderr] [2026-03-07 06:03:27] INFO  | etl_billiards | DWD 装载完成：dwd.dim_assistant，用时 1.24s
[stderr] [2026-03-07 06:03:27] INFO  | etl_billiards | DWD 装载开始：dwd.dim_member_card_account <= ods.member_stored_value_cards
[stderr] [2026-03-07 06:03:27] INFO  | etl_billiards | DWD 装载完成：dwd.dim_assistant_ex，用时 1.59s
[stderr] [2026-03-07 06:03:27] INFO  | etl_billiards | DWD 装载开始：dwd.dim_member_card_account_ex <= ods.member_stored_value_cards
[stderr] [2026-03-07 06:03:27] INFO  | etl_billiards | DWD 装载完成：dwd.dim_member_ex，用时 1.72s
[stderr] [2026-03-07 06:03:27] INFO  | etl_billiards | DWD 装载开始：dwd.dim_tenant_goods <= ods.tenant_goods_master
[stderr] [2026-03-07 06:03:27] INFO  | etl_billiards | DWD 装载完成：dwd.dim_member，用时 1.87s
[stderr] [2026-03-07 06:03:27] INFO  | etl_billiards | DWD 装载开始：dwd.dim_tenant_goods_ex <= ods.tenant_goods_master
[stderr] [2026-03-07 06:03:29] INFO  | etl_billiards | DWD 装载完成：dwd.dim_tenant_goods，用时 1.48s
[stderr] [2026-03-07 06:03:29] INFO  | etl_billiards | DWD 装载完成：dwd.dim_member_card_account，用时 2.31s
[stderr] [2026-03-07 06:03:29] INFO  | etl_billiards | DWD 装载开始：dwd.dim_store_goods <= ods.store_goods_master
[stderr] [2026-03-07 06:03:29] INFO  | etl_billiards | DWD 装载开始：dwd.dim_store_goods_ex <= ods.store_goods_master
[stderr] [2026-03-07 06:03:29] ERROR | etl_billiards | DWD 装载失败：dwd.dim_tenant_goods_ex，用时 1.46s，err=错误:  有缺陷的数组常量:"["10000028"]"
[stderr] LINE 1: ...rsion", "tenant_goods_id") VALUES (1,2,'10000028','["1000002...
[stderr]                                                              ^
[stderr] DETAIL:  "["必须引入显式指定的数组规模。
[stderr] Traceback (most recent call last):
[stderr]   File "C:\NeoZQYY\apps\etl\connectors\feiqiu\tasks\dwd\dwd_load_task.py", line 760, in _process_single_table
[stderr]     dim_counts = self._merge_dim(cur, dwd_table, ods_table, dwd_cols, ods_cols, now)
[stderr]   File "C:\NeoZQYY\apps\etl\connectors\feiqiu\tasks\dwd\dwd_load_task.py", line 920, in _merge_dim
[stderr]     return self._merge_dim_scd2(cur, dwd_table, ods_table, dwd_cols, ods_cols, now)
[stderr]            ~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[stderr]   File "C:\NeoZQYY\apps\etl\connectors\feiqiu\tasks\dwd\dwd_load_task.py", line 1111, in _merge_dim_scd2
[stderr]     self._insert_dim_rows_bulk(cur, dwd_table, dwd_cols, to_insert, now)
[stderr]     ~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[stderr]   File "C:\NeoZQYY\apps\etl\connectors\feiqiu\tasks\dwd\dwd_load_task.py", line 1182, in _insert_dim_rows_bulk
[stderr]     execute_values(cur, insert_sql, values_rows, page_size=500)
[stderr]     ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[stderr]   File "C:\NeoZQYY\.venv\Lib\site-packages\psycopg2\extras.py", line 1299, in execute_values
[stderr]     cur.execute(b''.join(parts))
[stderr]     ~~~~~~~~~~~^^^^^^^^^^^^^^^^^
[stderr]   File "C:\NeoZQYY\.venv\Lib\site-packages\psycopg2\extras.py", line 236, in execute
[stderr]     return super().execute(query, vars)
[stderr]            ~~~~~~~~~~~~~~~^^^^^^^^^^^^^
[stderr] psycopg2.errors.InvalidTextRepresentation: 错误:  有缺陷的数组常量:"["10000028"]"
[stderr] LINE 1: ...rsion", "tenant_goods_id") VALUES (1,2,'10000028','["1000002...
[stderr]                                                              ^
[stderr] DETAIL:  "["必须引入显式指定的数组规模。
[stderr] 
[stderr] [2026-03-07 06:03:29] INFO  | etl_billiards | DWD 装载开始：dwd.dim_goods_category <= ods.stock_goods_category_tree
[stderr] [2026-03-07 06:03:29] ERROR | etl_billiards | DWD 并行装载失败：dwd.dim_tenant_goods_ex，err=错误:  有缺陷的数组常量:"["10000028"]"
[stderr] LINE 1: ...rsion", "tenant_goods_id") VALUES (1,2,'10000028','["1000002...
[stderr]                                                              ^
[stderr] DETAIL:  "["必须引入显式指定的数组规模。
[stderr] 
[stderr] [2026-03-07 06:03:29] INFO  | etl_billiards | DWD 装载完成：dwd.dim_member_card_account_ex，用时 2.45s
[stderr] [2026-03-07 06:03:29] INFO  | etl_billiards | DWD 装载开始：dwd.dim_groupbuy_package <= ods.group_buy_packages
[stderr] [2026-03-07 06:03:30] INFO  | etl_billiards | DWD 装载完成：dwd.dim_goods_category，用时 1.20s
[stderr] [2026-03-07 06:03:30] INFO  | etl_billiards | DWD 装载开始：dwd.dim_groupbuy_package_ex <= ods.group_buy_packages
[stderr] [2026-03-07 06:03:30] INFO  | etl_billiards | DWD 装载完成：dwd.dim_store_goods_ex，用时 1.39s
[stderr] [2026-03-07 06:03:30] INFO  | etl_billiards | DWD 装载开始：dwd.dwd_settlement_head <= ods.settlement_records
[stderr] [2026-03-07 06:03:30] INFO  | etl_billiards | DWD 装载完成：dwd.dim_store_goods，用时 1.46s
[stderr] [2026-03-07 06:03:30] INFO  | etl_billiards | DWD 装载开始：dwd.dwd_settlement_head_ex <= ods.settlement_records
[stderr] [2026-03-07 06:03:31] INFO  | etl_billiards | DWD 装载完成：dwd.dim_groupbuy_package，用时 1.20s
[stderr] [2026-03-07 06:03:31] INFO  | etl_billiards | DWD 装载开始：dwd.dwd_table_fee_log <= ods.table_fee_transactions
[stderr] [2026-03-07 06:03:31] INFO  | etl_billiards | DWD 装载完成：dwd.dim_groupbuy_package_ex，用时 1.23s
[stderr] [2026-03-07 06:03:31] INFO  | etl_billiards | DWD 装载开始：dwd.dwd_table_fee_log_ex <= ods.table_fee_transactions
[stderr] [2026-03-07 06:03:33] INFO  | etl_billiards | DWD 装载完成：dwd.dwd_table_fee_log_ex，用时 2.01s
[stderr] [2026-03-07 06:03:33] INFO  | etl_billiards | DWD 装载开始：dwd.dwd_table_fee_adjust <= ods.table_fee_discount_records
[stderr] [2026-03-07 06:03:34] INFO  | etl_billiards | DWD 装载完成：dwd.dwd_table_fee_log，用时 2.97s
[stderr] [2026-03-07 06:03:34] INFO  | etl_billiards | DWD 装载开始：dwd.dwd_table_fee_adjust_ex <= ods.table_fee_discount_records
[stderr] [2026-03-07 06:03:34] INFO  | etl_billiards | DWD 装载完成：dwd.dwd_settlement_head_ex，用时 3.82s
[stderr] [2026-03-07 06:03:34] INFO  | etl_billiards | DWD 装载开始：dwd.dwd_store_goods_sale <= ods.store_goods_sales_records
[stderr] [2026-03-07 06:03:34] INFO  | etl_billiards | DWD 装载完成：dwd.dwd_table_fee_adjust，用时 1.14s
[stderr] [2026-03-07 06:03:34] INFO  | etl_billiards | DWD 装载开始：dwd.dwd_store_goods_sale_ex <= ods.store_goods_sales_records
[stderr] [2026-03-07 06:03:34] INFO  | etl_billiards | DWD 装载完成：dwd.dwd_settlement_head，用时 4.25s
[stderr] [2026-03-07 06:03:34] INFO  | etl_billiards | DWD 装载开始：dwd.dwd_assistant_service_log <= ods.assistant_service_records
[stderr] [2026-03-07 06:03:35] INFO  | etl_billiards | DWD 装载完成：dwd.dwd_table_fee_adjust_ex，用时 1.12s
[stderr] [2026-03-07 06:03:35] INFO  | etl_billiards | DWD 装载开始：dwd.dwd_assistant_service_log_ex <= ods.assistant_service_records
[stderr] [2026-03-07 06:03:35] INFO  | etl_billiards | DWD 装载完成：dwd.dwd_store_goods_sale，用时 1.06s
[stderr] [2026-03-07 06:03:35] INFO  | etl_billiards | DWD 装载开始：dwd.dwd_member_balance_change <= ods.member_balance_changes
[stderr] [2026-03-07 06:03:35] INFO  | etl_billiards | DWD 装载完成：dwd.dwd_store_goods_sale_ex，用时 1.02s
[stderr] [2026-03-07 06:03:35] INFO  | etl_billiards | DWD 装载开始：dwd.dwd_member_balance_change_ex <= ods.member_balance_changes
[stderr] [2026-03-07 06:03:36] INFO  | etl_billiards | DWD 装载完成：dwd.dwd_assistant_service_log，用时 1.36s
[stderr] [2026-03-07 06:03:36] INFO  | etl_billiards | DWD 装载开始：dwd.dwd_groupbuy_redemption <= ods.group_buy_redemption_records
[stderr] [2026-03-07 06:03:36] INFO  | etl_billiards | DWD 装载完成：dwd.dwd_assistant_service_log_ex，用时 1.23s
[stderr] [2026-03-07 06:03:36] INFO  | etl_billiards | DWD 装载开始：dwd.dwd_groupbuy_redemption_ex <= ods.group_buy_redemption_records
[stderr] [2026-03-07 06:03:36] INFO  | etl_billiards | DWD 装载完成：dwd.dwd_member_balance_change，用时 1.17s
[stderr] [2026-03-07 06:03:36] INFO  | etl_billiards | DWD 装载开始：dwd.dwd_platform_coupon_redemption <= ods.platform_coupon_redemption_records
[stderr] [2026-03-07 06:03:37] INFO  | etl_billiards | DWD 装载完成：dwd.dwd_member_balance_change_ex，用时 1.14s
[stderr] [2026-03-07 06:03:37] INFO  | etl_billiards | DWD 装载开始：dwd.dwd_platform_coupon_redemption_ex <= ods.platform_coupon_redemption_records
[stderr] [2026-03-07 06:03:37] INFO  | etl_billiards | DWD 装载完成：dwd.dwd_groupbuy_redemption，用时 1.31s
[stderr] [2026-03-07 06:03:37] INFO  | etl_billiards | DWD 装载开始：dwd.dwd_recharge_order <= ods.recharge_settlements
[stderr] [2026-03-07 06:03:37] INFO  | etl_billiards | DWD 装载完成：dwd.dwd_groupbuy_redemption_ex，用时 1.44s
[stderr] [2026-03-07 06:03:37] INFO  | etl_billiards | DWD 装载开始：dwd.dwd_recharge_order_ex <= ods.recharge_settlements
[stderr] [2026-03-07 06:03:37] INFO  | etl_billiards | DWD 装载完成：dwd.dwd_platform_coupon_redemption，用时 1.17s
[stderr] [2026-03-07 06:03:37] INFO  | etl_billiards | DWD 装载开始：dwd.dwd_payment <= ods.payment_transactions
[stderr] [2026-03-07 06:03:38] INFO  | etl_billiards | DWD 装载完成：dwd.dwd_platform_coupon_redemption_ex，用时 1.10s
[stderr] [2026-03-07 06:03:38] INFO  | etl_billiards | DWD 装载开始：dwd.dwd_refund <= ods.refund_transactions
[stderr] [2026-03-07 06:03:38] INFO  | etl_billiards | DWD 装载完成：dwd.dwd_recharge_order，用时 1.15s
[stderr] [2026-03-07 06:03:38] INFO  | etl_billiards | DWD 装载开始：dwd.dwd_refund_ex <= ods.refund_transactions
[stderr] [2026-03-07 06:03:38] INFO  | etl_billiards | DWD 装载完成：dwd.dwd_recharge_order_ex，用时 1.03s
[stderr] [2026-03-07 06:03:38] INFO  | etl_billiards | DWD 装载开始：dwd.dwd_goods_stock_summary <= ods.goods_stock_summary
[stderr] [2026-03-07 06:03:39] INFO  | etl_billiards | DWD 装载完成：dwd.dwd_refund，用时 1.03s
[stderr] [2026-03-07 06:03:39] INFO  | etl_billiards | DWD 装载开始：dwd.dwd_goods_stock_movement <= ods.goods_stock_movements
[stderr] [2026-03-07 06:03:39] INFO  | etl_billiards | DWD 装载完成：dwd.dwd_payment，用时 1.27s
[stderr] [2026-03-07 06:03:39] INFO  | etl_billiards | DWD 装载完成：dwd.dwd_refund_ex，用时 1.13s
[stderr] [2026-03-07 06:03:40] INFO  | etl_billiards | DWD 装载完成：dwd.dwd_goods_stock_summary，用时 1.10s
[stderr] [2026-03-07 06:03:40] INFO  | etl_billiards | DWD 装载完成：dwd.dwd_goods_stock_movement，用时 1.15s
[stderr] [2026-03-07 06:03:40] INFO  | etl_billiards | DWD_LOAD_FROM_ODS: 完成(8/9)，已处理 240/251.17 天
[stderr] [2026-03-07 06:03:40] INFO  | etl_billiards | DWD_LOAD_FROM_ODS: 开始执行(9/9)，窗口[2026-02-26 06:00:00+08:00 ~ 2026-03-09 10:00:00+08:00]
[stderr] [2026-03-07 06:03:40] INFO  | etl_billiards | DWD 装载开始：dwd.dim_site <= ods.table_fee_transactions
[stderr] [2026-03-07 06:03:40] INFO  | etl_billiards | DWD 装载开始：dwd.dim_site_ex <= ods.table_fee_transactions
[stderr] [2026-03-07 06:03:40] INFO  | etl_billiards | DWD 装载开始：dwd.dim_table <= ods.site_tables_master
[stderr] [2026-03-07 06:03:40] INFO  | etl_billiards | DWD 装载开始：dwd.dim_table_ex <= ods.site_tables_master
[stderr] [2026-03-07 06:03:41] INFO  | etl_billiards | DWD 装载完成：dwd.dim_table，用时 1.26s
[stderr] [2026-03-07 06:03:41] INFO  | etl_billiards | DWD 装载开始：dwd.dim_assistant <= ods.assistant_accounts_master
[stderr] [2026-03-07 06:03:41] INFO  | etl_billiards | DWD 装载完成：dwd.dim_table_ex，用时 1.44s
[stderr] [2026-03-07 06:03:41] INFO  | etl_billiards | DWD 装载开始：dwd.dim_assistant_ex <= ods.assistant_accounts_master
[stderr] [2026-03-07 06:03:41] INFO  | etl_billiards | DWD 装载完成：dwd.dim_site，用时 1.60s
[stderr] [2026-03-07 06:03:41] INFO  | etl_billiards | DWD 装载开始：dwd.dim_member <= ods.member_profiles
[stderr] [2026-03-07 06:03:42] INFO  | etl_billiards | DWD 装载完成：dwd.dim_site_ex，用时 1.72s
[stderr] [2026-03-07 06:03:42] INFO  | etl_billiards | DWD 装载开始：dwd.dim_member_ex <= ods.member_profiles
[stderr] [2026-03-07 06:03:42] INFO  | etl_billiards | DWD 装载完成：dwd.dim_assistant，用时 1.30s
[stderr] [2026-03-07 06:03:42] INFO  | etl_billiards | DWD 装载开始：dwd.dim_member_card_account <= ods.member_stored_value_cards
[stderr] [2026-03-07 06:03:43] INFO  | etl_billiards | DWD 装载完成：dwd.dim_assistant_ex，用时 1.35s
[stderr] [2026-03-07 06:03:43] INFO  | etl_billiards | DWD 装载开始：dwd.dim_member_card_account_ex <= ods.member_stored_value_cards
[stderr] [2026-03-07 06:03:43] INFO  | etl_billiards | DWD 装载完成：dwd.dim_member_ex，用时 1.55s
[stderr] [2026-03-07 06:03:43] INFO  | etl_billiards | DWD 装载开始：dwd.dim_tenant_goods <= ods.tenant_goods_master
[stderr] [2026-03-07 06:03:43] INFO  | etl_billiards | DWD 装载完成：dwd.dim_member，用时 1.68s
[stderr] [2026-03-07 06:03:43] INFO  | etl_billiards | DWD 装载开始：dwd.dim_tenant_goods_ex <= ods.tenant_goods_master
[stderr] [2026-03-07 06:03:45] INFO  | etl_billiards | DWD 装载完成：dwd.dim_member_card_account，用时 2.13s
[stderr] [2026-03-07 06:03:45] INFO  | etl_billiards | DWD 装载开始：dwd.dim_store_goods <= ods.store_goods_master
[stderr] [2026-03-07 06:03:45] INFO  | etl_billiards | DWD 装载完成：dwd.dim_tenant_goods，用时 1.54s
[stderr] [2026-03-07 06:03:45] INFO  | etl_billiards | DWD 装载开始：dwd.dim_store_goods_ex <= ods.store_goods_master
[stderr] [2026-03-07 06:03:45] ERROR | etl_billiards | DWD 装载失败：dwd.dim_tenant_goods_ex，用时 1.54s，err=错误:  有缺陷的数组常量:"["10000028"]"
[stderr] LINE 1: ...rsion", "tenant_goods_id") VALUES (1,2,'10000028','["1000002...
[stderr]                                                              ^
[stderr] DETAIL:  "["必须引入显式指定的数组规模。
[stderr] Traceback (most recent call last):
[stderr]   File "C:\NeoZQYY\apps\etl\connectors\feiqiu\tasks\dwd\dwd_load_task.py", line 760, in _process_single_table
[stderr]     dim_counts = self._merge_dim(cur, dwd_table, ods_table, dwd_cols, ods_cols, now)
[stderr]   File "C:\NeoZQYY\apps\etl\connectors\feiqiu\tasks\dwd\dwd_load_task.py", line 920, in _merge_dim
[stderr]     return self._merge_dim_scd2(cur, dwd_table, ods_table, dwd_cols, ods_cols, now)
[stderr]            ~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[stderr]   File "C:\NeoZQYY\apps\etl\connectors\feiqiu\tasks\dwd\dwd_load_task.py", line 1111, in _merge_dim_scd2
[stderr]     self._insert_dim_rows_bulk(cur, dwd_table, dwd_cols, to_insert, now)
[stderr]     ~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[stderr]   File "C:\NeoZQYY\apps\etl\connectors\feiqiu\tasks\dwd\dwd_load_task.py", line 1182, in _insert_dim_rows_bulk
[stderr]     execute_values(cur, insert_sql, values_rows, page_size=500)
[stderr]     ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[stderr]   File "C:\NeoZQYY\.venv\Lib\site-packages\psycopg2\extras.py", line 1299, in execute_values
[stderr]     cur.execute(b''.join(parts))
[stderr]     ~~~~~~~~~~~^^^^^^^^^^^^^^^^^
[stderr]   File "C:\NeoZQYY\.venv\Lib\site-packages\psycopg2\extras.py", line 236, in execute
[stderr]     return super().execute(query, vars)
[stderr]            ~~~~~~~~~~~~~~~^^^^^^^^^^^^^
[stderr] psycopg2.errors.InvalidTextRepresentation: 错误:  有缺陷的数组常量:"["10000028"]"
[stderr] LINE 1: ...rsion", "tenant_goods_id") VALUES (1,2,'10000028','["1000002...
[stderr]                                                              ^
[stderr] DETAIL:  "["必须引入显式指定的数组规模。
[stderr] 
[stderr] [2026-03-07 06:03:45] INFO  | etl_billiards | DWD 装载开始：dwd.dim_goods_category <= ods.stock_goods_category_tree
[stderr] [2026-03-07 06:03:45] ERROR | etl_billiards | DWD 并行装载失败：dwd.dim_tenant_goods_ex，err=错误:  有缺陷的数组常量:"["10000028"]"
[stderr] LINE 1: ...rsion", "tenant_goods_id") VALUES (1,2,'10000028','["1000002...
[stderr]                                                              ^
[stderr] DETAIL:  "["必须引入显式指定的数组规模。
[stderr] 
[stderr] [2026-03-07 06:03:45] INFO  | etl_billiards | DWD 装载完成：dwd.dim_member_card_account_ex，用时 2.42s
[stderr] [2026-03-07 06:03:45] INFO  | etl_billiards | DWD 装载开始：dwd.dim_groupbuy_package <= ods.group_buy_packages
[stderr] [2026-03-07 06:03:46] INFO  | etl_billiards | DWD 装载完成：dwd.dim_goods_category，用时 1.20s
[stderr] [2026-03-07 06:03:46] INFO  | etl_billiards | DWD 装载开始：dwd.dim_groupbuy_package_ex <= ods.group_buy_packages
[stderr] [2026-03-07 06:03:46] INFO  | etl_billiards | DWD 装载完成：dwd.dim_store_goods，用时 1.55s
[stderr] [2026-03-07 06:03:46] INFO  | etl_billiards | DWD 装载开始：dwd.dwd_settlement_head <= ods.settlement_records
[stderr] [2026-03-07 06:03:46] INFO  | etl_billiards | DWD 装载完成：dwd.dim_store_goods_ex，用时 1.45s
[stderr] [2026-03-07 06:03:46] INFO  | etl_billiards | DWD 装载开始：dwd.dwd_settlement_head_ex <= ods.settlement_records
[stderr] [2026-03-07 06:03:46] INFO  | etl_billiards | DWD 装载完成：dwd.dim_groupbuy_package，用时 1.19s
[stderr] [2026-03-07 06:03:46] INFO  | etl_billiards | DWD 装载开始：dwd.dwd_table_fee_log <= ods.table_fee_transactions
[stderr] [2026-03-07 06:03:47] INFO  | etl_billiards | DWD 装载完成：dwd.dim_groupbuy_package_ex，用时 1.19s
[stderr] [2026-03-07 06:03:47] INFO  | etl_billiards | DWD 装载开始：dwd.dwd_table_fee_log_ex <= ods.table_fee_transactions
[stderr] [2026-03-07 06:03:48] INFO  | etl_billiards | DWD 装载完成：dwd.dwd_table_fee_log，用时 2.10s
[stderr] [2026-03-07 06:03:48] INFO  | etl_billiards | DWD 装载开始：dwd.dwd_table_fee_adjust <= ods.table_fee_discount_records
[stderr] [2026-03-07 06:03:49] INFO  | etl_billiards | DWD 装载完成：dwd.dwd_table_fee_log_ex，用时 1.61s
[stderr] [2026-03-07 06:03:49] INFO  | etl_billiards | DWD 装载开始：dwd.dwd_table_fee_adjust_ex <= ods.table_fee_discount_records
[stderr] [2026-03-07 06:03:49] INFO  | etl_billiards | DWD 装载完成：dwd.dwd_settlement_head_ex，用时 2.78s
[stderr] [2026-03-07 06:03:49] INFO  | etl_billiards | DWD 装载开始：dwd.dwd_store_goods_sale <= ods.store_goods_sales_records
[stderr] [2026-03-07 06:03:49] INFO  | etl_billiards | DWD 装载完成：dwd.dwd_settlement_head，用时 2.82s
[stderr] [2026-03-07 06:03:49] INFO  | etl_billiards | DWD 装载开始：dwd.dwd_store_goods_sale_ex <= ods.store_goods_sales_records
[stderr] [2026-03-07 06:03:50] INFO  | etl_billiards | DWD 装载完成：dwd.dwd_table_fee_adjust，用时 1.23s
[stderr] [2026-03-07 06:03:50] INFO  | etl_billiards | DWD 装载开始：dwd.dwd_assistant_service_log <= ods.assistant_service_records
[stderr] [2026-03-07 06:03:50] INFO  | etl_billiards | DWD 装载完成：dwd.dwd_table_fee_adjust_ex，用时 1.26s
[stderr] [2026-03-07 06:03:50] INFO  | etl_billiards | DWD 装载开始：dwd.dwd_assistant_service_log_ex <= ods.assistant_service_records
[stderr] [2026-03-07 06:03:51] INFO  | etl_billiards | DWD 装载完成：dwd.dwd_store_goods_sale_ex，用时 2.16s
[stderr] [2026-03-07 06:03:51] INFO  | etl_billiards | DWD 装载开始：dwd.dwd_member_balance_change <= ods.member_balance_changes
[stderr] [2026-03-07 06:03:51] INFO  | etl_billiards | DWD 装载完成：dwd.dwd_assistant_service_log，用时 1.68s
[stderr] [2026-03-07 06:03:51] INFO  | etl_billiards | DWD 装载开始：dwd.dwd_member_balance_change_ex <= ods.member_balance_changes
[stderr] [2026-03-07 06:03:51] INFO  | etl_billiards | DWD 装载完成：dwd.dwd_assistant_service_log_ex，用时 1.40s
[stderr] [2026-03-07 06:03:51] INFO  | etl_billiards | DWD 装载开始：dwd.dwd_groupbuy_redemption <= ods.group_buy_redemption_records
[stderr] [2026-03-07 06:03:52] INFO  | etl_billiards | DWD 装载完成：dwd.dwd_store_goods_sale，用时 2.72s
[stderr] [2026-03-07 06:03:52] INFO  | etl_billiards | DWD 装载开始：dwd.dwd_groupbuy_redemption_ex <= ods.group_buy_redemption_records
[stderr] [2026-03-07 06:03:52] INFO  | etl_billiards | DWD 装载完成：dwd.dwd_member_balance_change，用时 1.15s
[stderr] [2026-03-07 06:03:52] INFO  | etl_billiards | DWD 装载开始：dwd.dwd_platform_coupon_redemption <= ods.platform_coupon_redemption_records
[stderr] [2026-03-07 06:03:52] INFO  | etl_billiards | DWD 装载完成：dwd.dwd_member_balance_change_ex，用时 1.12s
[stderr] [2026-03-07 06:03:52] INFO  | etl_billiards | DWD 装载开始：dwd.dwd_platform_coupon_redemption_ex <= ods.platform_coupon_redemption_records
[stderr] [2026-03-07 06:03:53] INFO  | etl_billiards | DWD 装载完成：dwd.dwd_groupbuy_redemption，用时 1.34s
[stderr] [2026-03-07 06:03:53] INFO  | etl_billiards | DWD 装载开始：dwd.dwd_recharge_order <= ods.recharge_settlements
[stderr] [2026-03-07 06:03:53] INFO  | etl_billiards | DWD 装载完成：dwd.dwd_groupbuy_redemption_ex，用时 1.34s
[stderr] [2026-03-07 06:03:53] INFO  | etl_billiards | DWD 装载开始：dwd.dwd_recharge_order_ex <= ods.recharge_settlements
[stderr] [2026-03-07 06:03:54] INFO  | etl_billiards | DWD 装载完成：dwd.dwd_recharge_order，用时 1.26s
[stderr] [2026-03-07 06:03:54] INFO  | etl_billiards | DWD 装载开始：dwd.dwd_payment <= ods.payment_transactions
[stderr] [2026-03-07 06:03:54] INFO  | etl_billiards | DWD 装载完成：dwd.dwd_recharge_order_ex，用时 1.07s
[stderr] [2026-03-07 06:03:54] INFO  | etl_billiards | DWD 装载开始：dwd.dwd_refund <= ods.refund_transactions
[stderr] [2026-03-07 06:03:54] INFO  | etl_billiards | DWD 装载完成：dwd.dwd_platform_coupon_redemption，用时 1.91s
[stderr] [2026-03-07 06:03:54] INFO  | etl_billiards | DWD 装载开始：dwd.dwd_refund_ex <= ods.refund_transactions
[stderr] [2026-03-07 06:03:54] INFO  | etl_billiards | DWD 装载完成：dwd.dwd_platform_coupon_redemption_ex，用时 1.87s
[stderr] [2026-03-07 06:03:54] INFO  | etl_billiards | DWD 装载开始：dwd.dwd_goods_stock_summary <= ods.goods_stock_summary
[stderr] [2026-03-07 06:03:55] INFO  | etl_billiards | DWD 装载完成：dwd.dwd_refund，用时 1.04s
[stderr] [2026-03-07 06:03:55] INFO  | etl_billiards | DWD 装载开始：dwd.dwd_goods_stock_movement <= ods.goods_stock_movements
[stderr] [2026-03-07 06:03:55] INFO  | etl_billiards | DWD 装载完成：dwd.dwd_refund_ex，用时 1.04s
[stderr] [2026-03-07 06:03:56] INFO  | etl_billiards | DWD 装载完成：dwd.dwd_payment，用时 1.53s
[stderr] [2026-03-07 06:03:56] INFO  | etl_billiards | DWD 装载完成：dwd.dwd_goods_stock_summary，用时 1.23s
[stderr] [2026-03-07 06:03:58] INFO  | etl_billiards | DWD 装载完成：dwd.dwd_goods_stock_movement，用时 2.66s
[stderr] [2026-03-07 06:03:58] INFO  | etl_billiards | DWD_LOAD_FROM_ODS: 完成(9/9)，已处理 251.17/251.17 天
[stderr] [2026-03-07 06:03:58] INFO  | etl_billiards | DWD_LOAD_FROM_ODS: 完成，统计={'tables': 351, 'errors': 9, 'error_details': 9}
[stderr] [2026-03-07 06:03:58] INFO  | etl_billiards | DWS_GOODS_STOCK_DAILY: 抓取阶段开始，目录=C:\NeoZQYY\export\ETL-Connectors\feiqiu\JSON\DWS_GOODS_STOCK_DAILY\DWS_GOODS_STOCK_DAILY-10119-20260307-060358
[stderr] [2026-03-07 06:03:58] INFO  | etl_billiards | DWS_GOODS_STOCK_DAILY: 提取数据，门店=2790685415443269，日期范围 2025-07-01 ~ 2026-03-09
[stderr] [2026-03-07 06:04:00] INFO  | etl_billiards | DWS_GOODS_STOCK_DAILY: 提取到 6050 条 DWD 记录
[stderr] [2026-03-07 06:04:00] INFO  | etl_billiards | DWS_GOODS_STOCK_DAILY: 抓取完成，文件=None，记录数=0
[stderr] [2026-03-07 06:04:00] INFO  | etl_billiards | DWS_GOODS_STOCK_DAILY: 本地清洗入库开始，源目录=C:\NeoZQYY\export\ETL-Connectors\feiqiu\JSON\DWS_GOODS_STOCK_DAILY\DWS_GOODS_STOCK_DAILY-10119-20260307-060358
[stderr] [2026-03-07 06:04:00] INFO  | etl_billiards | DWS_GOODS_STOCK_DAILY: 窗口拆分为 9 段（共 251.17 天）
[stderr] [2026-03-07 06:04:00] INFO  | etl_billiards | DWS_GOODS_STOCK_DAILY: 开始执行(1/9)，窗口[2025-07-01 06:00:00+08:00 ~ 2025-07-31 06:00:00+08:00]
[stderr] [2026-03-07 06:04:00] INFO  | etl_billiards | DWS_GOODS_STOCK_DAILY: 提取数据，门店=2790685415443269，日期范围 2025-07-01 ~ 2025-07-31
[stderr] [2026-03-07 06:04:00] INFO  | etl_billiards | DWS_GOODS_STOCK_DAILY: 提取到 0 条 DWD 记录
[stderr] [2026-03-07 06:04:00] INFO  | etl_billiards | DWS_GOODS_STOCK_DAILY: 无数据需要汇总
[stderr] [2026-03-07 06:04:00] INFO  | etl_billiards | DWS_GOODS_STOCK_DAILY: 完成(1/9)，已处理 30/251.17 天
[stderr] [2026-03-07 06:04:00] INFO  | etl_billiards | DWS_GOODS_STOCK_DAILY: 开始执行(2/9)，窗口[2025-07-31 06:00:00+08:00 ~ 2025-08-30 06:00:00+08:00]
[stderr] [2026-03-07 06:04:00] INFO  | etl_billiards | DWS_GOODS_STOCK_DAILY: 提取数据，门店=2790685415443269，日期范围 2025-07-31 ~ 2025-08-30
[stderr] [2026-03-07 06:04:01] INFO  | etl_billiards | DWS_GOODS_STOCK_DAILY: 提取到 0 条 DWD 记录
[stderr] [2026-03-07 06:04:01] INFO  | etl_billiards | DWS_GOODS_STOCK_DAILY: 无数据需要汇总
[stderr] [2026-03-07 06:04:01] INFO  | etl_billiards | DWS_GOODS_STOCK_DAILY: 完成(2/9)，已处理 60/251.17 天
[stderr] [2026-03-07 06:04:01] INFO  | etl_billiards | DWS_GOODS_STOCK_DAILY: 开始执行(3/9)，窗口[2025-08-30 06:00:00+08:00 ~ 2025-09-29 06:00:00+08:00]
[stderr] [2026-03-07 06:04:01] INFO  | etl_billiards | DWS_GOODS_STOCK_DAILY: 提取数据，门店=2790685415443269，日期范围 2025-08-30 ~ 2025-09-29
[stderr] [2026-03-07 06:04:01] INFO  | etl_billiards | DWS_GOODS_STOCK_DAILY: 提取到 0 条 DWD 记录
[stderr] [2026-03-07 06:04:01] INFO  | etl_billiards | DWS_GOODS_STOCK_DAILY: 无数据需要汇总
[stderr] [2026-03-07 06:04:01] INFO  | etl_billiards | DWS_GOODS_STOCK_DAILY: 完成(3/9)，已处理 90/251.17 天
[stderr] [2026-03-07 06:04:01] INFO  | etl_billiards | DWS_GOODS_STOCK_DAILY: 开始执行(4/9)，窗口[2025-09-29 06:00:00+08:00 ~ 2025-10-29 06:00:00+08:00]
[stderr] [2026-03-07 06:04:01] INFO  | etl_billiards | DWS_GOODS_STOCK_DAILY: 提取数据，门店=2790685415443269，日期范围 2025-09-29 ~ 2025-10-29
[stderr] [2026-03-07 06:04:01] INFO  | etl_billiards | DWS_GOODS_STOCK_DAILY: 提取到 0 条 DWD 记录
[stderr] [2026-03-07 06:04:01] INFO  | etl_billiards | DWS_GOODS_STOCK_DAILY: 无数据需要汇总
[stderr] [2026-03-07 06:04:01] INFO  | etl_billiards | DWS_GOODS_STOCK_DAILY: 完成(4/9)，已处理 120/251.17 天
[stderr] [2026-03-07 06:04:01] INFO  | etl_billiards | DWS_GOODS_STOCK_DAILY: 开始执行(5/9)，窗口[2025-10-29 06:00:00+08:00 ~ 2025-11-28 06:00:00+08:00]
[stderr] [2026-03-07 06:04:01] INFO  | etl_billiards | DWS_GOODS_STOCK_DAILY: 提取数据，门店=2790685415443269，日期范围 2025-10-29 ~ 2025-11-28
[stderr] [2026-03-07 06:04:01] INFO  | etl_billiards | DWS_GOODS_STOCK_DAILY: 提取到 0 条 DWD 记录
[stderr] [2026-03-07 06:04:01] INFO  | etl_billiards | DWS_GOODS_STOCK_DAILY: 无数据需要汇总
[stderr] [2026-03-07 06:04:01] INFO  | etl_billiards | DWS_GOODS_STOCK_DAILY: 完成(5/9)，已处理 150/251.17 天
[stderr] [2026-03-07 06:04:01] INFO  | etl_billiards | DWS_GOODS_STOCK_DAILY: 开始执行(6/9)，窗口[2025-11-28 06:00:00+08:00 ~ 2025-12-28 06:00:00+08:00]
[stderr] [2026-03-07 06:04:01] INFO  | etl_billiards | DWS_GOODS_STOCK_DAILY: 提取数据，门店=2790685415443269，日期范围 2025-11-28 ~ 2025-12-28
[stderr] [2026-03-07 06:04:01] INFO  | etl_billiards | DWS_GOODS_STOCK_DAILY: 提取到 167 条 DWD 记录
[stderr] [2026-03-07 06:04:01] INFO  | etl_billiards | DWS_GOODS_STOCK_DAILY: 汇总完成，生成 167 条日度记录
[stderr] [2026-03-07 06:04:10] INFO  | etl_billiards | DWS_GOODS_STOCK_DAILY: 写入完成，inserted=167
[stderr] [2026-03-07 06:04:10] INFO  | etl_billiards | DWS_GOODS_STOCK_DAILY: 完成(6/9)，已处理 180/251.17 天
[stderr] [2026-03-07 06:04:10] INFO  | etl_billiards | DWS_GOODS_STOCK_DAILY: 开始执行(7/9)，窗口[2025-12-28 06:00:00+08:00 ~ 2026-01-27 06:00:00+08:00]
[stderr] [2026-03-07 06:04:10] INFO  | etl_billiards | DWS_GOODS_STOCK_DAILY: 提取数据，门店=2790685415443269，日期范围 2025-12-28 ~ 2026-01-27
[stderr] [2026-03-07 06:04:10] INFO  | etl_billiards | DWS_GOODS_STOCK_DAILY: 提取到 4 条 DWD 记录
[stderr] [2026-03-07 06:04:10] INFO  | etl_billiards | DWS_GOODS_STOCK_DAILY: 汇总完成，生成 4 条日度记录
[stderr] [2026-03-07 06:04:11] INFO  | etl_billiards | DWS_GOODS_STOCK_DAILY: 写入完成，inserted=4
[stderr] [2026-03-07 06:04:11] INFO  | etl_billiards | DWS_GOODS_STOCK_DAILY: 完成(7/9)，已处理 210/251.17 天
[stderr] [2026-03-07 06:04:11] INFO  | etl_billiards | DWS_GOODS_STOCK_DAILY: 开始执行(8/9)，窗口[2026-01-27 06:00:00+08:00 ~ 2026-02-26 06:00:00+08:00]
[stderr] [2026-03-07 06:04:11] INFO  | etl_billiards | DWS_GOODS_STOCK_DAILY: 提取数据，门店=2790685415443269，日期范围 2026-01-27 ~ 2026-02-26
[stderr] [2026-03-07 06:04:11] INFO  | etl_billiards | DWS_GOODS_STOCK_DAILY: 提取到 2214 条 DWD 记录
[stderr] [2026-03-07 06:04:11] INFO  | etl_billiards | DWS_GOODS_STOCK_DAILY: 汇总完成，生成 954 条日度记录
[stderr] [2026-03-07 06:04:59] INFO  | etl_billiards | DWS_GOODS_STOCK_DAILY: 写入完成，inserted=954
[stderr] [2026-03-07 06:04:59] INFO  | etl_billiards | DWS_GOODS_STOCK_DAILY: 完成(8/9)，已处理 240/251.17 天
[stderr] [2026-03-07 06:04:59] INFO  | etl_billiards | DWS_GOODS_STOCK_DAILY: 开始执行(9/9)，窗口[2026-02-26 06:00:00+08:00 ~ 2026-03-09 10:00:00+08:00]
[stderr] [2026-03-07 06:04:59] INFO  | etl_billiards | DWS_GOODS_STOCK_DAILY: 提取数据，门店=2790685415443269，日期范围 2026-02-26 ~ 2026-03-09
[stderr] [2026-03-07 06:05:00] INFO  | etl_billiards | DWS_GOODS_STOCK_DAILY: 提取到 3856 条 DWD 记录
[stderr] [2026-03-07 06:05:00] INFO  | etl_billiards | DWS_GOODS_STOCK_DAILY: 汇总完成，生成 965 条日度记录
[stderr] [2026-03-07 06:05:50] INFO  | etl_billiards | DWS_GOODS_STOCK_DAILY: 写入完成，inserted=965
[stderr] [2026-03-07 06:05:50] INFO  | etl_billiards | DWS_GOODS_STOCK_DAILY: 完成(9/9)，已处理 251.17/251.17 天
[stderr] [2026-03-07 06:05:50] INFO  | etl_billiards | DWS_GOODS_STOCK_DAILY: 完成，统计={'counts': {'fetched': 0, 'inserted': 0, 'updated': 0, 'skipped': 0, 'errors': 0}}
[stderr] [2026-03-07 06:05:51] INFO  | etl_billiards | DWS_GOODS_STOCK_WEEKLY: 抓取阶段开始，目录=C:\NeoZQYY\export\ETL-Connectors\feiqiu\JSON\DWS_GOODS_STOCK_WEEKLY\DWS_GOODS_STOCK_WEEKLY-10120-20260307-060551
[stderr] [2026-03-07 06:05:51] INFO  | etl_billiards | DWS_GOODS_STOCK_WEEKLY: 提取数据，门店=2790685415443269，日期范围 2025-07-01 ~ 2026-03-09
[stderr] [2026-03-07 06:05:52] INFO  | etl_billiards | DWS_GOODS_STOCK_WEEKLY: 提取到 6050 条 DWD 记录
[stderr] [2026-03-07 06:05:52] INFO  | etl_billiards | DWS_GOODS_STOCK_WEEKLY: 抓取完成，文件=None，记录数=0
[stderr] [2026-03-07 06:05:52] INFO  | etl_billiards | DWS_GOODS_STOCK_WEEKLY: 本地清洗入库开始，源目录=C:\NeoZQYY\export\ETL-Connectors\feiqiu\JSON\DWS_GOODS_STOCK_WEEKLY\DWS_GOODS_STOCK_WEEKLY-10120-20260307-060551
[stderr] [2026-03-07 06:05:52] INFO  | etl_billiards | DWS_GOODS_STOCK_WEEKLY: 窗口拆分为 9 段（共 251.17 天）
[stderr] [2026-03-07 06:05:52] INFO  | etl_billiards | DWS_GOODS_STOCK_WEEKLY: 开始执行(1/9)，窗口[2025-07-01 06:00:00+08:00 ~ 2025-07-31 06:00:00+08:00]
[stderr] [2026-03-07 06:05:52] INFO  | etl_billiards | DWS_GOODS_STOCK_WEEKLY: 提取数据，门店=2790685415443269，日期范围 2025-07-01 ~ 2025-07-31
[stderr] [2026-03-07 06:05:52] INFO  | etl_billiards | DWS_GOODS_STOCK_WEEKLY: 提取到 0 条 DWD 记录
[stderr] [2026-03-07 06:05:52] INFO  | etl_billiards | DWS_GOODS_STOCK_WEEKLY: 无数据需要汇总
[stderr] [2026-03-07 06:05:52] INFO  | etl_billiards | DWS_GOODS_STOCK_WEEKLY: 完成(1/9)，已处理 30/251.17 天
[stderr] [2026-03-07 06:05:52] INFO  | etl_billiards | DWS_GOODS_STOCK_WEEKLY: 开始执行(2/9)，窗口[2025-07-31 06:00:00+08:00 ~ 2025-08-30 06:00:00+08:00]
[stderr] [2026-03-07 06:05:52] INFO  | etl_billiards | DWS_GOODS_STOCK_WEEKLY: 提取数据，门店=2790685415443269，日期范围 2025-07-31 ~ 2025-08-30
[stderr] [2026-03-07 06:05:52] INFO  | etl_billiards | DWS_GOODS_STOCK_WEEKLY: 提取到 0 条 DWD 记录
[stderr] [2026-03-07 06:05:52] INFO  | etl_billiards | DWS_GOODS_STOCK_WEEKLY: 无数据需要汇总
[stderr] [2026-03-07 06:05:52] INFO  | etl_billiards | DWS_GOODS_STOCK_WEEKLY: 完成(2/9)，已处理 60/251.17 天
[stderr] [2026-03-07 06:05:52] INFO  | etl_billiards | DWS_GOODS_STOCK_WEEKLY: 开始执行(3/9)，窗口[2025-08-30 06:00:00+08:00 ~ 2025-09-29 06:00:00+08:00]
[stderr] [2026-03-07 06:05:52] INFO  | etl_billiards | DWS_GOODS_STOCK_WEEKLY: 提取数据，门店=2790685415443269，日期范围 2025-08-30 ~ 2025-09-29
[stderr] [2026-03-07 06:05:52] INFO  | etl_billiards | DWS_GOODS_STOCK_WEEKLY: 提取到 0 条 DWD 记录
[stderr] [2026-03-07 06:05:52] INFO  | etl_billiards | DWS_GOODS_STOCK_WEEKLY: 无数据需要汇总
[stderr] [2026-03-07 06:05:52] INFO  | etl_billiards | DWS_GOODS_STOCK_WEEKLY: 完成(3/9)，已处理 90/251.17 天
[stderr] [2026-03-07 06:05:52] INFO  | etl_billiards | DWS_GOODS_STOCK_WEEKLY: 开始执行(4/9)，窗口[2025-09-29 06:00:00+08:00 ~ 2025-10-29 06:00:00+08:00]
[stderr] [2026-03-07 06:05:52] INFO  | etl_billiards | DWS_GOODS_STOCK_WEEKLY: 提取数据，门店=2790685415443269，日期范围 2025-09-29 ~ 2025-10-29
[stderr] [2026-03-07 06:05:52] INFO  | etl_billiards | DWS_GOODS_STOCK_WEEKLY: 提取到 0 条 DWD 记录
[stderr] [2026-03-07 06:05:52] INFO  | etl_billiards | DWS_GOODS_STOCK_WEEKLY: 无数据需要汇总
[stderr] [2026-03-07 06:05:53] INFO  | etl_billiards | DWS_GOODS_STOCK_WEEKLY: 完成(4/9)，已处理 120/251.17 天
[stderr] [2026-03-07 06:05:53] INFO  | etl_billiards | DWS_GOODS_STOCK_WEEKLY: 开始执行(5/9)，窗口[2025-10-29 06:00:00+08:00 ~ 2025-11-28 06:00:00+08:00]
[stderr] [2026-03-07 06:05:53] INFO  | etl_billiards | DWS_GOODS_STOCK_WEEKLY: 提取数据，门店=2790685415443269，日期范围 2025-10-29 ~ 2025-11-28
[stderr] [2026-03-07 06:05:53] INFO  | etl_billiards | DWS_GOODS_STOCK_WEEKLY: 提取到 0 条 DWD 记录
[stderr] [2026-03-07 06:05:53] INFO  | etl_billiards | DWS_GOODS_STOCK_WEEKLY: 无数据需要汇总
[stderr] [2026-03-07 06:05:53] INFO  | etl_billiards | DWS_GOODS_STOCK_WEEKLY: 完成(5/9)，已处理 150/251.17 天
[stderr] [2026-03-07 06:05:53] INFO  | etl_billiards | DWS_GOODS_STOCK_WEEKLY: 开始执行(6/9)，窗口[2025-11-28 06:00:00+08:00 ~ 2025-12-28 06:00:00+08:00]
[stderr] [2026-03-07 06:05:53] INFO  | etl_billiards | DWS_GOODS_STOCK_WEEKLY: 提取数据，门店=2790685415443269，日期范围 2025-11-28 ~ 2025-12-28
[stderr] [2026-03-07 06:05:53] INFO  | etl_billiards | DWS_GOODS_STOCK_WEEKLY: 提取到 167 条 DWD 记录
[stderr] [2026-03-07 06:05:53] INFO  | etl_billiards | DWS_GOODS_STOCK_WEEKLY: 汇总完成，生成 167 条周度记录
[stderr] [2026-03-07 06:06:01] INFO  | etl_billiards | DWS_GOODS_STOCK_WEEKLY: 写入完成，inserted=167
[stderr] [2026-03-07 06:06:01] INFO  | etl_billiards | DWS_GOODS_STOCK_WEEKLY: 完成(6/9)，已处理 180/251.17 天
[stderr] [2026-03-07 06:06:01] INFO  | etl_billiards | DWS_GOODS_STOCK_WEEKLY: 开始执行(7/9)，窗口[2025-12-28 06:00:00+08:00 ~ 2026-01-27 06:00:00+08:00]
[stderr] [2026-03-07 06:06:01] INFO  | etl_billiards | DWS_GOODS_STOCK_WEEKLY: 提取数据，门店=2790685415443269，日期范围 2025-12-28 ~ 2026-01-27
[stderr] [2026-03-07 06:06:02] INFO  | etl_billiards | DWS_GOODS_STOCK_WEEKLY: 提取到 4 条 DWD 记录
[stderr] [2026-03-07 06:06:02] INFO  | etl_billiards | DWS_GOODS_STOCK_WEEKLY: 汇总完成，生成 4 条周度记录
[stderr] [2026-03-07 06:06:02] INFO  | etl_billiards | DWS_GOODS_STOCK_WEEKLY: 写入完成，inserted=4
[stderr] [2026-03-07 06:06:02] INFO  | etl_billiards | DWS_GOODS_STOCK_WEEKLY: 完成(7/9)，已处理 210/251.17 天
[stderr] [2026-03-07 06:06:02] INFO  | etl_billiards | DWS_GOODS_STOCK_WEEKLY: 开始执行(8/9)，窗口[2026-01-27 06:00:00+08:00 ~ 2026-02-26 06:00:00+08:00]
[stderr] [2026-03-07 06:06:02] INFO  | etl_billiards | DWS_GOODS_STOCK_WEEKLY: 提取数据，门店=2790685415443269，日期范围 2026-01-27 ~ 2026-02-26
[stderr] [2026-03-07 06:06:02] INFO  | etl_billiards | DWS_GOODS_STOCK_WEEKLY: 提取到 2214 条 DWD 记录
[stderr] [2026-03-07 06:06:02] INFO  | etl_billiards | DWS_GOODS_STOCK_WEEKLY: 汇总完成，生成 492 条周度记录
[stderr] [2026-03-07 06:06:33] INFO  | etl_billiards | DWS_GOODS_STOCK_WEEKLY: 写入完成，inserted=492
[stderr] [2026-03-07 06:06:33] INFO  | etl_billiards | DWS_GOODS_STOCK_WEEKLY: 完成(8/9)，已处理 240/251.17 天
[stderr] [2026-03-07 06:06:33] INFO  | etl_billiards | DWS_GOODS_STOCK_WEEKLY: 开始执行(9/9)，窗口[2026-02-26 06:00:00+08:00 ~ 2026-03-09 10:00:00+08:00]
[stderr] [2026-03-07 06:06:33] INFO  | etl_billiards | DWS_GOODS_STOCK_WEEKLY: 提取数据，门店=2790685415443269，日期范围 2026-02-26 ~ 2026-03-09
[stderr] [2026-03-07 06:06:35] INFO  | etl_billiards | DWS_GOODS_STOCK_WEEKLY: 提取到 3856 条 DWD 记录
[stderr] [2026-03-07 06:06:35] INFO  | etl_billiards | DWS_GOODS_STOCK_WEEKLY: 汇总完成，生成 346 条周度记录
[stderr] [2026-03-07 06:07:01] INFO  | etl_billiards | DWS_GOODS_STOCK_WEEKLY: 写入完成，inserted=346
[stderr] [2026-03-07 06:07:01] INFO  | etl_billiards | DWS_GOODS_STOCK_WEEKLY: 完成(9/9)，已处理 251.17/251.17 天
[stderr] [2026-03-07 06:07:01] INFO  | etl_billiards | DWS_GOODS_STOCK_WEEKLY: 完成，统计={'counts': {'fetched': 0, 'inserted': 0, 'updated': 0, 'skipped': 0, 'errors': 0}}
[stderr] [2026-03-07 06:07:02] INFO  | etl_billiards | DWS_GOODS_STOCK_MONTHLY: 抓取阶段开始，目录=C:\NeoZQYY\export\ETL-Connectors\feiqiu\JSON\DWS_GOODS_STOCK_MONTHLY\DWS_GOODS_STOCK_MONTHLY-10121-20260307-060702
[stderr] [2026-03-07 06:07:02] INFO  | etl_billiards | DWS_GOODS_STOCK_MONTHLY: 提取数据，门店=2790685415443269，日期范围 2025-07-01 ~ 2026-03-09
[stderr] [2026-03-07 06:07:02] INFO  | etl_billiards | DWS_GOODS_STOCK_MONTHLY: 提取到 6050 条 DWD 记录
[stderr] [2026-03-07 06:07:02] INFO  | etl_billiards | DWS_GOODS_STOCK_MONTHLY: 抓取完成，文件=None，记录数=0
[stderr] [2026-03-07 06:07:02] INFO  | etl_billiards | DWS_GOODS_STOCK_MONTHLY: 本地清洗入库开始，源目录=C:\NeoZQYY\export\ETL-Connectors\feiqiu\JSON\DWS_GOODS_STOCK_MONTHLY\DWS_GOODS_STOCK_MONTHLY-10121-20260307-060702
[stderr] [2026-03-07 06:07:02] INFO  | etl_billiards | DWS_GOODS_STOCK_MONTHLY: 窗口拆分为 9 段（共 251.17 天）
[stderr] [2026-03-07 06:07:02] INFO  | etl_billiards | DWS_GOODS_STOCK_MONTHLY: 开始执行(1/9)，窗口[2025-07-01 06:00:00+08:00 ~ 2025-07-31 06:00:00+08:00]
[stderr] [2026-03-07 06:07:02] INFO  | etl_billiards | DWS_GOODS_STOCK_MONTHLY: 提取数据，门店=2790685415443269，日期范围 2025-07-01 ~ 2025-07-31
[stderr] [2026-03-07 06:07:03] INFO  | etl_billiards | DWS_GOODS_STOCK_MONTHLY: 提取到 0 条 DWD 记录
[stderr] [2026-03-07 06:07:03] INFO  | etl_billiards | DWS_GOODS_STOCK_MONTHLY: 无数据需要汇总
[stderr] [2026-03-07 06:07:03] INFO  | etl_billiards | DWS_GOODS_STOCK_MONTHLY: 完成(1/9)，已处理 30/251.17 天
[stderr] [2026-03-07 06:07:03] INFO  | etl_billiards | DWS_GOODS_STOCK_MONTHLY: 开始执行(2/9)，窗口[2025-07-31 06:00:00+08:00 ~ 2025-08-30 06:00:00+08:00]
[stderr] [2026-03-07 06:07:03] INFO  | etl_billiards | DWS_GOODS_STOCK_MONTHLY: 提取数据，门店=2790685415443269，日期范围 2025-07-31 ~ 2025-08-30
[stderr] [2026-03-07 06:07:03] INFO  | etl_billiards | DWS_GOODS_STOCK_MONTHLY: 提取到 0 条 DWD 记录
[stderr] [2026-03-07 06:07:03] INFO  | etl_billiards | DWS_GOODS_STOCK_MONTHLY: 无数据需要汇总
[stderr] [2026-03-07 06:07:03] INFO  | etl_billiards | DWS_GOODS_STOCK_MONTHLY: 完成(2/9)，已处理 60/251.17 天
[stderr] [2026-03-07 06:07:03] INFO  | etl_billiards | DWS_GOODS_STOCK_MONTHLY: 开始执行(3/9)，窗口[2025-08-30 06:00:00+08:00 ~ 2025-09-29 06:00:00+08:00]
[stderr] [2026-03-07 06:07:03] INFO  | etl_billiards | DWS_GOODS_STOCK_MONTHLY: 提取数据，门店=2790685415443269，日期范围 2025-08-30 ~ 2025-09-29
[stderr] [2026-03-07 06:07:03] INFO  | etl_billiards | DWS_GOODS_STOCK_MONTHLY: 提取到 0 条 DWD 记录
[stderr] [2026-03-07 06:07:03] INFO  | etl_billiards | DWS_GOODS_STOCK_MONTHLY: 无数据需要汇总
[stderr] [2026-03-07 06:07:03] INFO  | etl_billiards | DWS_GOODS_STOCK_MONTHLY: 完成(3/9)，已处理 90/251.17 天
[stderr] [2026-03-07 06:07:03] INFO  | etl_billiards | DWS_GOODS_STOCK_MONTHLY: 开始执行(4/9)，窗口[2025-09-29 06:00:00+08:00 ~ 2025-10-29 06:00:00+08:00]
[stderr] [2026-03-07 06:07:03] INFO  | etl_billiards | DWS_GOODS_STOCK_MONTHLY: 提取数据，门店=2790685415443269，日期范围 2025-09-29 ~ 2025-10-29
[stderr] [2026-03-07 06:07:03] INFO  | etl_billiards | DWS_GOODS_STOCK_MONTHLY: 提取到 0 条 DWD 记录
[stderr] [2026-03-07 06:07:03] INFO  | etl_billiards | DWS_GOODS_STOCK_MONTHLY: 无数据需要汇总
[stderr] [2026-03-07 06:07:03] INFO  | etl_billiards | DWS_GOODS_STOCK_MONTHLY: 完成(4/9)，已处理 120/251.17 天
[stderr] [2026-03-07 06:07:03] INFO  | etl_billiards | DWS_GOODS_STOCK_MONTHLY: 开始执行(5/9)，窗口[2025-10-29 06:00:00+08:00 ~ 2025-11-28 06:00:00+08:00]
[stderr] [2026-03-07 06:07:03] INFO  | etl_billiards | DWS_GOODS_STOCK_MONTHLY: 提取数据，门店=2790685415443269，日期范围 2025-10-29 ~ 2025-11-28
[stderr] [2026-03-07 06:07:03] INFO  | etl_billiards | DWS_GOODS_STOCK_MONTHLY: 提取到 0 条 DWD 记录
[stderr] [2026-03-07 06:07:03] INFO  | etl_billiards | DWS_GOODS_STOCK_MONTHLY: 无数据需要汇总
[stderr] [2026-03-07 06:07:04] INFO  | etl_billiards | DWS_GOODS_STOCK_MONTHLY: 完成(5/9)，已处理 150/251.17 天
[stderr] [2026-03-07 06:07:04] INFO  | etl_billiards | DWS_GOODS_STOCK_MONTHLY: 开始执行(6/9)，窗口[2025-11-28 06:00:00+08:00 ~ 2025-12-28 06:00:00+08:00]
[stderr] [2026-03-07 06:07:04] INFO  | etl_billiards | DWS_GOODS_STOCK_MONTHLY: 提取数据，门店=2790685415443269，日期范围 2025-11-28 ~ 2025-12-28
[stderr] [2026-03-07 06:07:04] INFO  | etl_billiards | DWS_GOODS_STOCK_MONTHLY: 提取到 167 条 DWD 记录
[stderr] [2026-03-07 06:07:04] INFO  | etl_billiards | DWS_GOODS_STOCK_MONTHLY: 汇总完成，生成 167 条月度记录
[stderr] [2026-03-07 06:07:13] INFO  | etl_billiards | DWS_GOODS_STOCK_MONTHLY: 写入完成，inserted=167
[stderr] [2026-03-07 06:07:13] INFO  | etl_billiards | DWS_GOODS_STOCK_MONTHLY: 完成(6/9)，已处理 180/251.17 天
[stderr] [2026-03-07 06:07:13] INFO  | etl_billiards | DWS_GOODS_STOCK_MONTHLY: 开始执行(7/9)，窗口[2025-12-28 06:00:00+08:00 ~ 2026-01-27 06:00:00+08:00]
[stderr] [2026-03-07 06:07:13] INFO  | etl_billiards | DWS_GOODS_STOCK_MONTHLY: 提取数据，门店=2790685415443269，日期范围 2025-12-28 ~ 2026-01-27
[stderr] [2026-03-07 06:07:14] INFO  | etl_billiards | DWS_GOODS_STOCK_MONTHLY: 提取到 4 条 DWD 记录
[stderr] [2026-03-07 06:07:14] INFO  | etl_billiards | DWS_GOODS_STOCK_MONTHLY: 汇总完成，生成 4 条月度记录
[stderr] [2026-03-07 06:07:14] INFO  | etl_billiards | DWS_GOODS_STOCK_MONTHLY: 写入完成，inserted=4
[stderr] [2026-03-07 06:07:14] INFO  | etl_billiards | DWS_GOODS_STOCK_MONTHLY: 完成(7/9)，已处理 210/251.17 天
[stderr] [2026-03-07 06:07:14] INFO  | etl_billiards | DWS_GOODS_STOCK_MONTHLY: 开始执行(8/9)，窗口[2026-01-27 06:00:00+08:00 ~ 2026-02-26 06:00:00+08:00]
[stderr] [2026-03-07 06:07:14] INFO  | etl_billiards | DWS_GOODS_STOCK_MONTHLY: 提取数据，门店=2790685415443269，日期范围 2026-01-27 ~ 2026-02-26
[stderr] [2026-03-07 06:07:14] INFO  | etl_billiards | DWS_GOODS_STOCK_MONTHLY: 提取到 2214 条 DWD 记录
[stderr] [2026-03-07 06:07:14] INFO  | etl_billiards | DWS_GOODS_STOCK_MONTHLY: 汇总完成，生成 248 条月度记录
[stderr] [2026-03-07 06:07:41] INFO  | etl_billiards | DWS_GOODS_STOCK_MONTHLY: 写入完成，inserted=248
[stderr] [2026-03-07 06:07:41] INFO  | etl_billiards | DWS_GOODS_STOCK_MONTHLY: 完成(8/9)，已处理 240/251.17 天
[stderr] [2026-03-07 06:07:41] INFO  | etl_billiards | DWS_GOODS_STOCK_MONTHLY: 开始执行(9/9)，窗口[2026-02-26 06:00:00+08:00 ~ 2026-03-09 10:00:00+08:00]
[stderr] [2026-03-07 06:07:41] INFO  | etl_billiards | DWS_GOODS_STOCK_MONTHLY: 提取数据，门店=2790685415443269，日期范围 2026-02-26 ~ 2026-03-09
[stderr] [2026-03-07 06:07:46] INFO  | etl_billiards | DWS_GOODS_STOCK_MONTHLY: 提取到 3856 条 DWD 记录
[stderr] [2026-03-07 06:07:46] INFO  | etl_billiards | DWS_GOODS_STOCK_MONTHLY: 汇总完成，生成 346 条月度记录
[stderr] [2026-03-07 06:08:57] INFO  | etl_billiards | DWS_GOODS_STOCK_MONTHLY: 写入完成，inserted=346
[stderr] [2026-03-07 06:08:57] INFO  | etl_billiards | DWS_GOODS_STOCK_MONTHLY: 完成(9/9)，已处理 251.17/251.17 天
[stderr] [2026-03-07 06:08:57] INFO  | etl_billiards | DWS_GOODS_STOCK_MONTHLY: 完成，统计={'counts': {'fetched': 0, 'inserted': 0, 'updated': 0, 'skipped': 0, 'errors': 0}}
[stderr] [2026-03-07 06:08:58] INFO  | etl_billiards | DWS_ASSISTANT_DAILY: 抓取阶段开始，目录=C:\NeoZQYY\export\ETL-Connectors\feiqiu\JSON\DWS_ASSISTANT_DAILY\DWS_ASSISTANT_DAILY-10122-20260307-060858
[stderr] [2026-03-07 06:08:58] INFO  | etl_billiards | DWS_ASSISTANT_DAILY: 提取数据，日期范围 2025-07-01 ~ 2026-03-09
[stderr] [2026-03-07 06:09:08] INFO  | etl_billiards | DWS_ASSISTANT_DAILY: 抓取完成，文件=None，记录数=0
[stderr] [2026-03-07 06:09:08] INFO  | etl_billiards | DWS_ASSISTANT_DAILY: 本地清洗入库开始，源目录=C:\NeoZQYY\export\ETL-Connectors\feiqiu\JSON\DWS_ASSISTANT_DAILY\DWS_ASSISTANT_DAILY-10122-20260307-060858
[stderr] [2026-03-07 06:09:08] INFO  | etl_billiards | DWS_ASSISTANT_DAILY: 窗口拆分为 9 段（共 251.17 天）
[stderr] [2026-03-07 06:09:08] INFO  | etl_billiards | DWS_ASSISTANT_DAILY: 开始执行(1/9)，窗口[2025-07-01 06:00:00+08:00 ~ 2025-07-31 06:00:00+08:00]
[stderr] [2026-03-07 06:09:08] INFO  | etl_billiards | DWS_ASSISTANT_DAILY: 提取数据，日期范围 2025-07-01 ~ 2025-07-31
[stderr] [2026-03-07 06:09:09] INFO  | etl_billiards | DWS_ASSISTANT_DAILY: 转换数据，服务记录 362 条
[stderr] [2026-03-07 06:09:52] INFO  | etl_billiards | DWS_ASSISTANT_DAILY: 完成(1/9)，已处理 30/251.17 天
[stderr] [2026-03-07 06:09:52] INFO  | etl_billiards | DWS_ASSISTANT_DAILY: 开始执行(2/9)，窗口[2025-07-31 06:00:00+08:00 ~ 2025-08-30 06:00:00+08:00]
[stderr] [2026-03-07 06:09:52] INFO  | etl_billiards | DWS_ASSISTANT_DAILY: 提取数据，日期范围 2025-07-31 ~ 2025-08-30
[stderr] [2026-03-07 06:09:54] INFO  | etl_billiards | DWS_ASSISTANT_DAILY: 转换数据，服务记录 863 条
[stderr] [2026-03-07 06:11:23] INFO  | etl_billiards | DWS_ASSISTANT_DAILY: 完成(2/9)，已处理 60/251.17 天
[stderr] [2026-03-07 06:11:23] INFO  | etl_billiards | DWS_ASSISTANT_DAILY: 开始执行(3/9)，窗口[2025-08-30 06:00:00+08:00 ~ 2025-09-29 06:00:00+08:00]
[stderr] [2026-03-07 06:11:23] INFO  | etl_billiards | DWS_ASSISTANT_DAILY: 提取数据，日期范围 2025-08-30 ~ 2025-09-29
[stderr] [2026-03-07 06:11:24] INFO  | etl_billiards | DWS_ASSISTANT_DAILY: 转换数据，服务记录 688 条
[stderr] [2026-03-07 06:12:35] INFO  | etl_billiards | DWS_ASSISTANT_DAILY: 完成(3/9)，已处理 90/251.17 天
[stderr] [2026-03-07 06:12:35] INFO  | etl_billiards | DWS_ASSISTANT_DAILY: 开始执行(4/9)，窗口[2025-09-29 06:00:00+08:00 ~ 2025-10-29 06:00:00+08:00]
[stderr] [2026-03-07 06:12:35] INFO  | etl_billiards | DWS_ASSISTANT_DAILY: 提取数据，日期范围 2025-09-29 ~ 2025-10-29
[stderr] [2026-03-07 06:12:35] INFO  | etl_billiards | DWS_ASSISTANT_DAILY: 转换数据，服务记录 557 条
[stderr] [2026-03-07 06:13:45] INFO  | etl_billiards | DWS_ASSISTANT_DAILY: 完成(4/9)，已处理 120/251.17 天
[stderr] [2026-03-07 06:13:45] INFO  | etl_billiards | DWS_ASSISTANT_DAILY: 开始执行(5/9)，窗口[2025-10-29 06:00:00+08:00 ~ 2025-11-28 06:00:00+08:00]
[stderr] [2026-03-07 06:13:45] INFO  | etl_billiards | DWS_ASSISTANT_DAILY: 提取数据，日期范围 2025-10-29 ~ 2025-11-28
[stderr] [2026-03-07 06:13:45] INFO  | etl_billiards | DWS_ASSISTANT_DAILY: 转换数据，服务记录 907 条
[stderr] [2026-03-07 06:14:50] INFO  | etl_billiards | DWS_ASSISTANT_DAILY: 完成(5/9)，已处理 150/251.17 天
[stderr] [2026-03-07 06:14:50] INFO  | etl_billiards | DWS_ASSISTANT_DAILY: 开始执行(6/9)，窗口[2025-11-28 06:00:00+08:00 ~ 2025-12-28 06:00:00+08:00]
[stderr] [2026-03-07 06:14:50] INFO  | etl_billiards | DWS_ASSISTANT_DAILY: 提取数据，日期范围 2025-11-28 ~ 2025-12-28
[stderr] [2026-03-07 06:14:51] INFO  | etl_billiards | DWS_ASSISTANT_DAILY: 转换数据，服务记录 805 条
[stderr] [2026-03-07 06:16:04] INFO  | etl_billiards | DWS_ASSISTANT_DAILY: 完成(6/9)，已处理 180/251.17 天
[stderr] [2026-03-07 06:16:04] INFO  | etl_billiards | DWS_ASSISTANT_DAILY: 开始执行(7/9)，窗口[2025-12-28 06:00:00+08:00 ~ 2026-01-27 06:00:00+08:00]
[stderr] [2026-03-07 06:16:04] INFO  | etl_billiards | DWS_ASSISTANT_DAILY: 提取数据，日期范围 2025-12-28 ~ 2026-01-27
[stderr] [2026-03-07 06:16:04] INFO  | etl_billiards | DWS_ASSISTANT_DAILY: 转换数据，服务记录 871 条
[stderr] [2026-03-07 06:16:54] INFO  | etl_billiards | DWS_ASSISTANT_DAILY: 完成(7/9)，已处理 210/251.17 天
[stderr] [2026-03-07 06:16:54] INFO  | etl_billiards | DWS_ASSISTANT_DAILY: 开始执行(8/9)，窗口[2026-01-27 06:00:00+08:00 ~ 2026-02-26 06:00:00+08:00]
[stderr] [2026-03-07 06:16:54] INFO  | etl_billiards | DWS_ASSISTANT_DAILY: 提取数据，日期范围 2026-01-27 ~ 2026-02-26
[stderr] [2026-03-07 06:16:54] INFO  | etl_billiards | DWS_ASSISTANT_DAILY: 转换数据，服务记录 254 条
[stderr] [2026-03-07 06:17:05] INFO  | etl_billiards | DWS_ASSISTANT_DAILY: 完成(8/9)，已处理 240/251.17 天
[stderr] [2026-03-07 06:17:05] INFO  | etl_billiards | DWS_ASSISTANT_DAILY: 开始执行(9/9)，窗口[2026-02-26 06:00:00+08:00 ~ 2026-03-09 10:00:00+08:00]
[stderr] [2026-03-07 06:17:05] INFO  | etl_billiards | DWS_ASSISTANT_DAILY: 提取数据，日期范围 2026-02-26 ~ 2026-03-09
[stderr] [2026-03-07 06:17:06] INFO  | etl_billiards | DWS_ASSISTANT_DAILY: 转换数据，服务记录 39 条
[stderr] [2026-03-07 06:17:08] INFO  | etl_billiards | DWS_ASSISTANT_DAILY: 完成(9/9)，已处理 251.17/251.17 天
[stderr] [2026-03-07 06:17:08] INFO  | etl_billiards | DWS_ASSISTANT_DAILY: 完成，统计={'counts': {'fetched': 172, 'inserted': 172, 'updated': 0, 'skipped': 0, 'errors': 0}, 'extra': {'deleted': 172}}
[stderr] [2026-03-07 06:17:08] INFO  | etl_billiards | DWS_ASSISTANT_CUSTOMER: 抓取阶段开始，目录=C:\NeoZQYY\export\ETL-Connectors\feiqiu\JSON\DWS_ASSISTANT_CUSTOMER\DWS_ASSISTANT_CUSTOMER-10123-20260307-061708
[stderr] [2026-03-07 06:17:08] INFO  | etl_billiards | DWS_ASSISTANT_CUSTOMER: 提取数据，统计日期 2026-03-09
[stderr] [2026-03-07 06:17:09] INFO  | etl_billiards | DWS_ASSISTANT_CUSTOMER: 抓取完成，文件=None，记录数=0
[stderr] [2026-03-07 06:17:09] INFO  | etl_billiards | DWS_ASSISTANT_CUSTOMER: 本地清洗入库开始，源目录=C:\NeoZQYY\export\ETL-Connectors\feiqiu\JSON\DWS_ASSISTANT_CUSTOMER\DWS_ASSISTANT_CUSTOMER-10123-20260307-061708
[stderr] [2026-03-07 06:17:09] INFO  | etl_billiards | DWS_ASSISTANT_CUSTOMER: 窗口拆分为 9 段（共 251.17 天）
[stderr] [2026-03-07 06:17:09] INFO  | etl_billiards | DWS_ASSISTANT_CUSTOMER: 开始执行(1/9)，窗口[2025-07-01 06:00:00+08:00 ~ 2025-07-31 06:00:00+08:00]
[stderr] [2026-03-07 06:17:09] INFO  | etl_billiards | DWS_ASSISTANT_CUSTOMER: 提取数据，统计日期 2025-07-31
[stderr] [2026-03-07 06:17:09] INFO  | etl_billiards | DWS_ASSISTANT_CUSTOMER: 转换数据，572 条服务关系记录
[stderr] [2026-03-07 06:17:53] INFO  | etl_billiards | DWS_ASSISTANT_CUSTOMER: 完成(1/9)，已处理 30/251.17 天
[stderr] [2026-03-07 06:17:53] INFO  | etl_billiards | DWS_ASSISTANT_CUSTOMER: 开始执行(2/9)，窗口[2025-07-31 06:00:00+08:00 ~ 2025-08-30 06:00:00+08:00]
[stderr] [2026-03-07 06:17:53] INFO  | etl_billiards | DWS_ASSISTANT_CUSTOMER: 提取数据，统计日期 2025-08-30
[stderr] [2026-03-07 06:17:54] INFO  | etl_billiards | DWS_ASSISTANT_CUSTOMER: 转换数据，572 条服务关系记录
[stderr] [2026-03-07 06:18:47] INFO  | etl_billiards | DWS_ASSISTANT_CUSTOMER: 完成(2/9)，已处理 60/251.17 天
[stderr] [2026-03-07 06:18:47] INFO  | etl_billiards | DWS_ASSISTANT_CUSTOMER: 开始执行(3/9)，窗口[2025-08-30 06:00:00+08:00 ~ 2025-09-29 06:00:00+08:00]
[stderr] [2026-03-07 06:18:47] INFO  | etl_billiards | DWS_ASSISTANT_CUSTOMER: 提取数据，统计日期 2025-09-29
[stderr] [2026-03-07 06:18:49] INFO  | etl_billiards | DWS_ASSISTANT_CUSTOMER: 转换数据，572 条服务关系记录
[stderr] [2026-03-07 06:19:58] INFO  | etl_billiards | DWS_ASSISTANT_CUSTOMER: 完成(3/9)，已处理 90/251.17 天
[stderr] [2026-03-07 06:19:58] INFO  | etl_billiards | DWS_ASSISTANT_CUSTOMER: 开始执行(4/9)，窗口[2025-09-29 06:00:00+08:00 ~ 2025-10-29 06:00:00+08:00]
[stderr] [2026-03-07 06:19:58] INFO  | etl_billiards | DWS_ASSISTANT_CUSTOMER: 提取数据，统计日期 2025-10-29
[stderr] [2026-03-07 06:20:00] INFO  | etl_billiards | DWS_ASSISTANT_CUSTOMER: 转换数据，572 条服务关系记录
[stderr] [2026-03-07 06:20:42] INFO  | etl_billiards | DWS_ASSISTANT_CUSTOMER: 完成(4/9)，已处理 120/251.17 天
[stderr] [2026-03-07 06:20:42] INFO  | etl_billiards | DWS_ASSISTANT_CUSTOMER: 开始执行(5/9)，窗口[2025-10-29 06:00:00+08:00 ~ 2025-11-28 06:00:00+08:00]
[stderr] [2026-03-07 06:20:42] INFO  | etl_billiards | DWS_ASSISTANT_CUSTOMER: 提取数据，统计日期 2025-11-28
[stderr] [2026-03-07 06:20:43] INFO  | etl_billiards | DWS_ASSISTANT_CUSTOMER: 转换数据，523 条服务关系记录
[stderr] [2026-03-07 06:21:29] INFO  | etl_billiards | DWS_ASSISTANT_CUSTOMER: 完成(5/9)，已处理 150/251.17 天
[stderr] [2026-03-07 06:21:29] INFO  | etl_billiards | DWS_ASSISTANT_CUSTOMER: 开始执行(6/9)，窗口[2025-11-28 06:00:00+08:00 ~ 2025-12-28 06:00:00+08:00]
[stderr] [2026-03-07 06:21:29] INFO  | etl_billiards | DWS_ASSISTANT_CUSTOMER: 提取数据，统计日期 2025-12-28
[stderr] [2026-03-07 06:21:29] INFO  | etl_billiards | DWS_ASSISTANT_CUSTOMER: 转换数据，446 条服务关系记录
[stderr] [2026-03-07 06:22:04] INFO  | etl_billiards | DWS_ASSISTANT_CUSTOMER: 完成(6/9)，已处理 180/251.17 天
[stderr] [2026-03-07 06:22:04] INFO  | etl_billiards | DWS_ASSISTANT_CUSTOMER: 开始执行(7/9)，窗口[2025-12-28 06:00:00+08:00 ~ 2026-01-27 06:00:00+08:00]
[stderr] [2026-03-07 06:22:04] INFO  | etl_billiards | DWS_ASSISTANT_CUSTOMER: 提取数据，统计日期 2026-01-27
[stderr] [2026-03-07 06:22:06] INFO  | etl_billiards | DWS_ASSISTANT_CUSTOMER: 转换数据，372 条服务关系记录
[stderr] [2026-03-07 06:22:38] INFO  | etl_billiards | DWS_ASSISTANT_CUSTOMER: 完成(7/9)，已处理 210/251.17 天
[stderr] [2026-03-07 06:22:38] INFO  | etl_billiards | DWS_ASSISTANT_CUSTOMER: 开始执行(8/9)，窗口[2026-01-27 06:00:00+08:00 ~ 2026-02-26 06:00:00+08:00]
[stderr] [2026-03-07 06:22:38] INFO  | etl_billiards | DWS_ASSISTANT_CUSTOMER: 提取数据，统计日期 2026-02-26
[stderr] [2026-03-07 06:22:39] INFO  | etl_billiards | DWS_ASSISTANT_CUSTOMER: 转换数据，252 条服务关系记录
[stderr] [2026-03-07 06:23:02] INFO  | etl_billiards | DWS_ASSISTANT_CUSTOMER: 完成(8/9)，已处理 240/251.17 天
[stderr] [2026-03-07 06:23:02] INFO  | etl_billiards | DWS_ASSISTANT_CUSTOMER: 开始执行(9/9)，窗口[2026-02-26 06:00:00+08:00 ~ 2026-03-09 10:00:00+08:00]
[stderr] [2026-03-07 06:23:02] INFO  | etl_billiards | DWS_ASSISTANT_CUSTOMER: 提取数据，统计日期 2026-03-09
[stderr] [2026-03-07 06:23:04] INFO  | etl_billiards | DWS_ASSISTANT_CUSTOMER: 转换数据，223 条服务关系记录
[stderr] [2026-03-07 06:23:18] INFO  | etl_billiards | DWS_ASSISTANT_CUSTOMER: 完成(9/9)，已处理 251.17/251.17 天
[stderr] [2026-03-07 06:23:18] INFO  | etl_billiards | DWS_ASSISTANT_CUSTOMER: 完成，统计={'counts': {'fetched': 572, 'inserted': 572, 'updated': 0, 'skipped': 0, 'errors': 0}, 'extra': {'deleted': 0}}
[stderr] [2026-03-07 06:23:19] INFO  | etl_billiards | DWS_ASSISTANT_SALARY: 抓取阶段开始，目录=C:\NeoZQYY\export\ETL-Connectors\feiqiu\JSON\DWS_ASSISTANT_SALARY\DWS_ASSISTANT_SALARY-10124-20260307-062319
[stderr] [2026-03-07 06:23:19] INFO  | etl_billiards | DWS_ASSISTANT_SALARY: 非工资结算期，跳过
[stderr] [2026-03-07 06:23:19] INFO  | etl_billiards | DWS_ASSISTANT_SALARY: 抓取完成，文件=None，记录数=0
[stderr] [2026-03-07 06:23:19] INFO  | etl_billiards | DWS_ASSISTANT_SALARY: 本地清洗入库开始，源目录=C:\NeoZQYY\export\ETL-Connectors\feiqiu\JSON\DWS_ASSISTANT_SALARY\DWS_ASSISTANT_SALARY-10124-20260307-062319
[stderr] [2026-03-07 06:23:19] INFO  | etl_billiards | DWS_ASSISTANT_SALARY: 窗口拆分为 9 段（共 251.17 天）
[stderr] [2026-03-07 06:23:19] INFO  | etl_billiards | DWS_ASSISTANT_SALARY: 开始执行(1/9)，窗口[2025-07-01 06:00:00+08:00 ~ 2025-07-31 06:00:00+08:00]
[stderr] [2026-03-07 06:23:19] INFO  | etl_billiards | DWS_ASSISTANT_SALARY: 非工资结算期，跳过
[stderr] [2026-03-07 06:23:19] INFO  | etl_billiards | DWS_ASSISTANT_SALARY: 无数据需要写入
[stderr] [2026-03-07 06:23:19] INFO  | etl_billiards | DWS_ASSISTANT_SALARY: 完成(1/9)，已处理 30/251.17 天
[stderr] [2026-03-07 06:23:19] INFO  | etl_billiards | DWS_ASSISTANT_SALARY: 开始执行(2/9)，窗口[2025-07-31 06:00:00+08:00 ~ 2025-08-30 06:00:00+08:00]
[stderr] [2026-03-07 06:23:19] INFO  | etl_billiards | DWS_ASSISTANT_SALARY: 非工资结算期，跳过
[stderr] [2026-03-07 06:23:19] INFO  | etl_billiards | DWS_ASSISTANT_SALARY: 无数据需要写入
[stderr] [2026-03-07 06:23:19] INFO  | etl_billiards | DWS_ASSISTANT_SALARY: 完成(2/9)，已处理 60/251.17 天
[stderr] [2026-03-07 06:23:19] INFO  | etl_billiards | DWS_ASSISTANT_SALARY: 开始执行(3/9)，窗口[2025-08-30 06:00:00+08:00 ~ 2025-09-29 06:00:00+08:00]
[stderr] [2026-03-07 06:23:19] INFO  | etl_billiards | DWS_ASSISTANT_SALARY: 非工资结算期，跳过
[stderr] [2026-03-07 06:23:19] INFO  | etl_billiards | DWS_ASSISTANT_SALARY: 无数据需要写入
[stderr] [2026-03-07 06:23:19] INFO  | etl_billiards | DWS_ASSISTANT_SALARY: 完成(3/9)，已处理 90/251.17 天
[stderr] [2026-03-07 06:23:19] INFO  | etl_billiards | DWS_ASSISTANT_SALARY: 开始执行(4/9)，窗口[2025-09-29 06:00:00+08:00 ~ 2025-10-29 06:00:00+08:00]
[stderr] [2026-03-07 06:23:19] INFO  | etl_billiards | DWS_ASSISTANT_SALARY: 非工资结算期，跳过
[stderr] [2026-03-07 06:23:19] INFO  | etl_billiards | DWS_ASSISTANT_SALARY: 无数据需要写入
[stderr] [2026-03-07 06:23:19] INFO  | etl_billiards | DWS_ASSISTANT_SALARY: 完成(4/9)，已处理 120/251.17 天
[stderr] [2026-03-07 06:23:19] INFO  | etl_billiards | DWS_ASSISTANT_SALARY: 开始执行(5/9)，窗口[2025-10-29 06:00:00+08:00 ~ 2025-11-28 06:00:00+08:00]
[stderr] [2026-03-07 06:23:19] INFO  | etl_billiards | DWS_ASSISTANT_SALARY: 非工资结算期，跳过
[stderr] [2026-03-07 06:23:19] INFO  | etl_billiards | DWS_ASSISTANT_SALARY: 无数据需要写入
[stderr] [2026-03-07 06:23:19] INFO  | etl_billiards | DWS_ASSISTANT_SALARY: 完成(5/9)，已处理 150/251.17 天
[stderr] [2026-03-07 06:23:19] INFO  | etl_billiards | DWS_ASSISTANT_SALARY: 开始执行(6/9)，窗口[2025-11-28 06:00:00+08:00 ~ 2025-12-28 06:00:00+08:00]
[stderr] [2026-03-07 06:23:19] INFO  | etl_billiards | DWS_ASSISTANT_SALARY: 非工资结算期，跳过
[stderr] [2026-03-07 06:23:19] INFO  | etl_billiards | DWS_ASSISTANT_SALARY: 无数据需要写入
[stderr] [2026-03-07 06:23:19] INFO  | etl_billiards | DWS_ASSISTANT_SALARY: 完成(6/9)，已处理 180/251.17 天
[stderr] [2026-03-07 06:23:19] INFO  | etl_billiards | DWS_ASSISTANT_SALARY: 开始执行(7/9)，窗口[2025-12-28 06:00:00+08:00 ~ 2026-01-27 06:00:00+08:00]
[stderr] [2026-03-07 06:23:19] INFO  | etl_billiards | DWS_ASSISTANT_SALARY: 非工资结算期，跳过
[stderr] [2026-03-07 06:23:19] INFO  | etl_billiards | DWS_ASSISTANT_SALARY: 无数据需要写入
[stderr] [2026-03-07 06:23:19] INFO  | etl_billiards | DWS_ASSISTANT_SALARY: 完成(7/9)，已处理 210/251.17 天
[stderr] [2026-03-07 06:23:19] INFO  | etl_billiards | DWS_ASSISTANT_SALARY: 开始执行(8/9)，窗口[2026-01-27 06:00:00+08:00 ~ 2026-02-26 06:00:00+08:00]
[stderr] [2026-03-07 06:23:19] INFO  | etl_billiards | DWS_ASSISTANT_SALARY: 非工资结算期，跳过
[stderr] [2026-03-07 06:23:19] INFO  | etl_billiards | DWS_ASSISTANT_SALARY: 无数据需要写入
[stderr] [2026-03-07 06:23:19] INFO  | etl_billiards | DWS_ASSISTANT_SALARY: 完成(8/9)，已处理 240/251.17 天
[stderr] [2026-03-07 06:23:19] INFO  | etl_billiards | DWS_ASSISTANT_SALARY: 开始执行(9/9)，窗口[2026-02-26 06:00:00+08:00 ~ 2026-03-09 10:00:00+08:00]
[stderr] [2026-03-07 06:23:19] INFO  | etl_billiards | DWS_ASSISTANT_SALARY: 非工资结算期，跳过
[stderr] [2026-03-07 06:23:19] INFO  | etl_billiards | DWS_ASSISTANT_SALARY: 无数据需要写入
[stderr] [2026-03-07 06:23:19] INFO  | etl_billiards | DWS_ASSISTANT_SALARY: 完成(9/9)，已处理 251.17/251.17 天
[stderr] [2026-03-07 06:23:19] INFO  | etl_billiards | DWS_ASSISTANT_SALARY: 完成，统计={'counts': {'fetched': 0, 'inserted': 0, 'updated': 0, 'skipped': 0, 'errors': 0}}
[stderr] [2026-03-07 06:23:19] INFO  | etl_billiards | DWS_BUILD_ORDER_SUMMARY: 开始执行工具类任务
[stderr] [2026-03-07 06:23:19] INFO  | etl_billiards | DWS_BUILD_ORDER_SUMMARY: 分段执行 共9段
[stderr] [2026-03-07 06:23:19] INFO  | etl_billiards | DWS_BUILD_ORDER_SUMMARY: 开始执行(1/9), 窗口[2025-07-01 06:00:00+08:00 ~ 2025-07-31 06:00:00+08:00]
[stderr] [2026-03-07 06:23:19] INFO  | etl_billiards | DWS订单汇总: 删除=1776 语句=DELETE FROM dws.dws_order_summary WHERE 1=1 AND site_id = %s AND order_date >= %s AND order_date <= %s
[stderr] [2026-03-07 06:23:20] INFO  | etl_billiards | DWS_BUILD_ORDER_SUMMARY: 开始执行(2/9), 窗口[2025-07-31 06:00:00+08:00 ~ 2025-08-30 06:00:00+08:00]
[stderr] [2026-03-07 06:23:20] INFO  | etl_billiards | DWS订单汇总: 删除=4615 语句=DELETE FROM dws.dws_order_summary WHERE 1=1 AND site_id = %s AND order_date >= %s AND order_date <= %s
[stderr] [2026-03-07 06:23:20] INFO  | etl_billiards | DWS_BUILD_ORDER_SUMMARY: 开始执行(3/9), 窗口[2025-08-30 06:00:00+08:00 ~ 2025-09-29 06:00:00+08:00]
[stderr] [2026-03-07 06:23:20] INFO  | etl_billiards | DWS订单汇总: 删除=3909 语句=DELETE FROM dws.dws_order_summary WHERE 1=1 AND site_id = %s AND order_date >= %s AND order_date <= %s
[stderr] [2026-03-07 06:23:20] INFO  | etl_billiards | DWS_BUILD_ORDER_SUMMARY: 开始执行(4/9), 窗口[2025-09-29 06:00:00+08:00 ~ 2025-10-29 06:00:00+08:00]
[stderr] [2026-03-07 06:23:21] INFO  | etl_billiards | DWS订单汇总: 删除=3548 语句=DELETE FROM dws.dws_order_summary WHERE 1=1 AND site_id = %s AND order_date >= %s AND order_date <= %s
[stderr] [2026-03-07 06:23:21] INFO  | etl_billiards | DWS_BUILD_ORDER_SUMMARY: 开始执行(5/9), 窗口[2025-10-29 06:00:00+08:00 ~ 2025-11-28 06:00:00+08:00]
[stderr] [2026-03-07 06:23:22] INFO  | etl_billiards | DWS订单汇总: 删除=3923 语句=DELETE FROM dws.dws_order_summary WHERE 1=1 AND site_id = %s AND order_date >= %s AND order_date <= %s
[stderr] [2026-03-07 06:23:22] INFO  | etl_billiards | DWS_BUILD_ORDER_SUMMARY: 开始执行(6/9), 窗口[2025-11-28 06:00:00+08:00 ~ 2025-12-28 06:00:00+08:00]
[stderr] [2026-03-07 06:23:22] INFO  | etl_billiards | DWS订单汇总: 删除=4063 语句=DELETE FROM dws.dws_order_summary WHERE 1=1 AND site_id = %s AND order_date >= %s AND order_date <= %s
[stderr] [2026-03-07 06:23:22] INFO  | etl_billiards | DWS_BUILD_ORDER_SUMMARY: 开始执行(7/9), 窗口[2025-12-28 06:00:00+08:00 ~ 2026-01-27 06:00:00+08:00]
[stderr] [2026-03-07 06:23:22] INFO  | etl_billiards | DWS订单汇总: 删除=3709 语句=DELETE FROM dws.dws_order_summary WHERE 1=1 AND site_id = %s AND order_date >= %s AND order_date <= %s
[stderr] [2026-03-07 06:23:23] INFO  | etl_billiards | DWS_BUILD_ORDER_SUMMARY: 开始执行(8/9), 窗口[2026-01-27 06:00:00+08:00 ~ 2026-02-26 06:00:00+08:00]
[stderr] [2026-03-07 06:23:23] INFO  | etl_billiards | DWS订单汇总: 删除=1946 语句=DELETE FROM dws.dws_order_summary WHERE 1=1 AND site_id = %s AND order_date >= %s AND order_date <= %s
[stderr] [2026-03-07 06:23:23] INFO  | etl_billiards | DWS_BUILD_ORDER_SUMMARY: 开始执行(9/9), 窗口[2026-02-26 06:00:00+08:00 ~ 2026-03-09 10:00:00+08:00]
[stderr] [2026-03-07 06:23:23] INFO  | etl_billiards | DWS订单汇总: 删除=374 语句=DELETE FROM dws.dws_order_summary WHERE 1=1 AND site_id = %s AND order_date >= %s AND order_date <= %s
[stderr] [2026-03-07 06:23:24] INFO  | etl_billiards | DWS_BUILD_ORDER_SUMMARY: 完成, 统计={'fetched': 0, 'inserted': 27863, 'updated': 0, 'skipped': 0, 'errors': 0}
[stderr] [2026-03-07 06:23:24] INFO  | etl_billiards | DWS_BUILD_ORDER_SUMMARY: 工具类任务执行成功
[stderr] [2026-03-07 06:23:24] INFO  | etl_billiards | DWS_BUILD_ORDER_SUMMARY: 结果统计: {'fetched': 0, 'inserted': 27863, 'updated': 0, 'skipped': 0, 'errors': 0}
[stderr] [2026-03-07 06:23:24] INFO  | etl_billiards | DWS_MEMBER_CONSUMPTION: 抓取阶段开始，目录=C:\NeoZQYY\export\ETL-Connectors\feiqiu\JSON\DWS_MEMBER_CONSUMPTION\DWS_MEMBER_CONSUMPTION-10125-20260307-062324
[stderr] [2026-03-07 06:23:24] INFO  | etl_billiards | DWS_MEMBER_CONSUMPTION: 提取数据，统计日期 2026-03-09
[stderr] [2026-03-07 06:23:24] ERROR | etl_billiards | 任务 DWS_MEMBER_CONSUMPTION 失败: 错误:  当前事务被终止, 事务块结束之前的查询被忽略
[stderr] Traceback (most recent call last):
[stderr]   File "C:\NeoZQYY\apps\etl\connectors\feiqiu\orchestration\task_executor.py", line 227, in run_single_task
[stderr]     fetch_stats = self._execute_fetch(task_code, cursor_data, fetch_dir, run_id)
[stderr]   File "C:\NeoZQYY\apps\etl\connectors\feiqiu\orchestration\task_executor.py", line 301, in _execute_fetch
[stderr]     extracted = task.extract(context)
[stderr]   File "C:\NeoZQYY\apps\etl\connectors\feiqiu\tasks\dws\member_consumption_task.py", line 82, in extract
[stderr]     # 1. 获取会员消费统计（含滚动窗口）
[stderr]   File "C:\NeoZQYY\apps\etl\connectors\feiqiu\tasks\dws\member_consumption_task.py", line 262, in _extract_consumption_stats
[stderr]     GROUP BY member_id
[stderr]        ^^^^^^^^^^^^^^^
[stderr]   File "C:\NeoZQYY\apps\etl\connectors\feiqiu\database\operations.py", line 120, in query
[stderr]     return self._connection.query(sql, args)
[stderr]            ~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^
[stderr]   File "C:\NeoZQYY\apps\etl\connectors\feiqiu\database\connection.py", line 58, in query
[stderr]     c.execute(sql, args)
[stderr]     ~~~~~~~~~^^^^^^^^^^^
[stderr]   File "C:\NeoZQYY\.venv\Lib\site-packages\psycopg2\extras.py", line 236, in execute
[stderr]     return super().execute(query, vars)
[stderr]            ~~~~~~~~~~~~~~~^^^^^^^^^^^^^
[stderr] psycopg2.errors.UndefinedColumn: 错误:  字段 "is_delete" 不存在
[stderr] LINE 18:                   AND is_delete = 0
[stderr]                                ^
[stderr] 
[stderr] 
[stderr] During handling of the above exception, another exception occurred:
[stderr] 
[stderr] Traceback (most recent call last):
[stderr]   File "C:\NeoZQYY\apps\etl\connectors\feiqiu\orchestration\task_executor.py", line 97, in run_tasks
[stderr]     task_result = self.run_single_task(
[stderr]         task_code, run_uuid, store_id, data_source=data_source,
[stderr]     )
[stderr]   File "C:\NeoZQYY\apps\etl\connectors\feiqiu\orchestration\task_executor.py", line 267, in run_single_task
[stderr]     self.run_tracker.update_run(
[stderr]     ~~~~~~~~~~~~~~~~~~~~~~~~~~~^
[stderr]         run_id=run_id,
[stderr]         ^^^^^^^^^^^^^^
[stderr]     ...<3 lines>...
[stderr]         error_message=str(exc),
[stderr]         ^^^^^^^^^^^^^^^^^^^^^^^
[stderr]     )
[stderr]     ^
[stderr]   File "C:\NeoZQYY\apps\etl\connectors\feiqiu\orchestration\run_tracker.py", line 105, in update_run
[stderr]     self.db.execute(
[stderr]     ~~~~~~~~~~~~~~~^
[stderr]         sql,
[stderr]         ^^^^
[stderr]     ...<18 lines>...
[stderr]         ),
[stderr]         ^^
[stderr]     )
[stderr]     ^
[stderr]   File "C:\NeoZQYY\apps\etl\connectors\feiqiu\database\connection.py", line 64, in execute
[stderr]     c.execute(sql, args)
[stderr]     ~~~~~~~~~^^^^^^^^^^^
[stderr] psycopg2.errors.InFailedSqlTransaction: 错误:  当前事务被终止, 事务块结束之前的查询被忽略
[stderr] 
[stderr] [2026-03-07 06:23:24] ERROR | etl_billiards | [DWS_MEMBER_CONSUMPTION] 任务失败: 错误:  当前事务被终止, 事务块结束之前的查询被忽略
[stderr] 
[stderr] [2026-03-07 06:23:24] ERROR | etl_billiards | 任务 DWS_MEMBER_VISIT 失败: 错误:  当前事务被终止, 事务块结束之前的查询被忽略
[stderr] Traceback (most recent call last):
[stderr]   File "C:\NeoZQYY\apps\etl\connectors\feiqiu\orchestration\task_executor.py", line 97, in run_tasks
[stderr]     task_result = self.run_single_task(
[stderr]         task_code, run_uuid, store_id, data_source=data_source,
[stderr]     )
[stderr]   File "C:\NeoZQYY\apps\etl\connectors\feiqiu\orchestration\task_executor.py", line 164, in run_single_task
[stderr]     task_cfg = self._load_task_config(task_code, store_id)
[stderr]   File "C:\NeoZQYY\apps\etl\connectors\feiqiu\orchestration\task_executor.py", line 441, in _load_task_config
[stderr]     rows = self.db_ops.query(sql, (store_id, task_code))
[stderr]   File "C:\NeoZQYY\apps\etl\connectors\feiqiu\database\operations.py", line 120, in query
[stderr]     return self._connection.query(sql, args)
[stderr]            ~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^
[stderr]   File "C:\NeoZQYY\apps\etl\connectors\feiqiu\database\connection.py", line 58, in query
[stderr]     c.execute(sql, args)
[stderr]     ~~~~~~~~~^^^^^^^^^^^
[stderr]   File "C:\NeoZQYY\.venv\Lib\site-packages\psycopg2\extras.py", line 236, in execute
[stderr]     return super().execute(query, vars)
[stderr]            ~~~~~~~~~~~~~~~^^^^^^^^^^^^^
[stderr] psycopg2.errors.InFailedSqlTransaction: 错误:  当前事务被终止, 事务块结束之前的查询被忽略
[stderr] 
[stderr] [2026-03-07 06:23:24] ERROR | etl_billiards | [DWS_MEMBER_VISIT] 任务失败: 错误:  当前事务被终止, 事务块结束之前的查询被忽略
[stderr] 
[stderr] [2026-03-07 06:23:24] ERROR | etl_billiards | 任务 DWS_FINANCE_DAILY 失败: 错误:  当前事务被终止, 事务块结束之前的查询被忽略
[stderr] Traceback (most recent call last):
[stderr]   File "C:\NeoZQYY\apps\etl\connectors\feiqiu\orchestration\task_executor.py", line 97, in run_tasks
[stderr]     task_result = self.run_single_task(
[stderr]         task_code, run_uuid, store_id, data_source=data_source,
[stderr]     )
[stderr]   File "C:\NeoZQYY\apps\etl\connectors\feiqiu\orchestration\task_executor.py", line 164, in run_single_task
[stderr]     task_cfg = self._load_task_config(task_code, store_id)
[stderr]   File "C:\NeoZQYY\apps\etl\connectors\feiqiu\orchestration\task_executor.py", line 441, in _load_task_config
[stderr]     rows = self.db_ops.query(sql, (store_id, task_code))
[stderr]   File "C:\NeoZQYY\apps\etl\connectors\feiqiu\database\operations.py", line 120, in query
[stderr]     return self._connection.query(sql, args)
[stderr]            ~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^
[stderr]   File "C:\NeoZQYY\apps\etl\connectors\feiqiu\database\connection.py", line 58, in query
[stderr]     c.execute(sql, args)
[stderr]     ~~~~~~~~~^^^^^^^^^^^
[stderr]   File "C:\NeoZQYY\.venv\Lib\site-packages\psycopg2\extras.py", line 236, in execute
[stderr]     return super().execute(query, vars)
[stderr]            ~~~~~~~~~~~~~~~^^^^^^^^^^^^^
[stderr] psycopg2.errors.InFailedSqlTransaction: 错误:  当前事务被终止, 事务块结束之前的查询被忽略
[stderr] 
[stderr] [2026-03-07 06:23:24] ERROR | etl_billiards | [DWS_FINANCE_DAILY] 任务失败: 错误:  当前事务被终止, 事务块结束之前的查询被忽略
[stderr] 
[stderr] [2026-03-07 06:23:24] ERROR | etl_billiards | 任务 DWS_FINANCE_RECHARGE 失败: 错误:  当前事务被终止, 事务块结束之前的查询被忽略
[stderr] Traceback (most recent call last):
[stderr]   File "C:\NeoZQYY\apps\etl\connectors\feiqiu\orchestration\task_executor.py", line 97, in run_tasks
[stderr]     task_result = self.run_single_task(
[stderr]         task_code, run_uuid, store_id, data_source=data_source,
[stderr]     )
[stderr]   File "C:\NeoZQYY\apps\etl\connectors\feiqiu\orchestration\task_executor.py", line 164, in run_single_task
[stderr]     task_cfg = self._load_task_config(task_code, store_id)
[stderr]   File "C:\NeoZQYY\apps\etl\connectors\feiqiu\orchestration\task_executor.py", line 441, in _load_task_config
[stderr]     rows = self.db_ops.query(sql, (store_id, task_code))
[stderr]   File "C:\NeoZQYY\apps\etl\connectors\feiqiu\database\operations.py", line 120, in query
[stderr]     return self._connection.query(sql, args)
[stderr]            ~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^
[stderr]   File "C:\NeoZQYY\apps\etl\connectors\feiqiu\database\connection.py", line 58, in query
[stderr]     c.execute(sql, args)
[stderr]     ~~~~~~~~~^^^^^^^^^^^
[stderr]   File "C:\NeoZQYY\.venv\Lib\site-packages\psycopg2\extras.py", line 236, in execute
[stderr]     return super().execute(query, vars)
[stderr]            ~~~~~~~~~~~~~~~^^^^^^^^^^^^^
[stderr] psycopg2.errors.InFailedSqlTransaction: 错误:  当前事务被终止, 事务块结束之前的查询被忽略
[stderr] 
[stderr] [2026-03-07 06:23:24] ERROR | etl_billiards | [DWS_FINANCE_RECHARGE] 任务失败: 错误:  当前事务被终止, 事务块结束之前的查询被忽略
[stderr] 
[stderr] [2026-03-07 06:23:25] ERROR | etl_billiards | 任务 DWS_FINANCE_INCOME_STRUCTURE 失败: 错误:  当前事务被终止, 事务块结束之前的查询被忽略
[stderr] Traceback (most recent call last):
[stderr]   File "C:\NeoZQYY\apps\etl\connectors\feiqiu\orchestration\task_executor.py", line 97, in run_tasks
[stderr]     task_result = self.run_single_task(
[stderr]         task_code, run_uuid, store_id, data_source=data_source,
[stderr]     )
[stderr]   File "C:\NeoZQYY\apps\etl\connectors\feiqiu\orchestration\task_executor.py", line 164, in run_single_task
[stderr]     task_cfg = self._load_task_config(task_code, store_id)
[stderr]   File "C:\NeoZQYY\apps\etl\connectors\feiqiu\orchestration\task_executor.py", line 441, in _load_task_config
[stderr]     rows = self.db_ops.query(sql, (store_id, task_code))
[stderr]   File "C:\NeoZQYY\apps\etl\connectors\feiqiu\database\operations.py", line 120, in query
[stderr]     return self._connection.query(sql, args)
[stderr]            ~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^
[stderr]   File "C:\NeoZQYY\apps\etl\connectors\feiqiu\database\connection.py", line 58, in query
[stderr]     c.execute(sql, args)
[stderr]     ~~~~~~~~~^^^^^^^^^^^
[stderr]   File "C:\NeoZQYY\.venv\Lib\site-packages\psycopg2\extras.py", line 236, in execute
[stderr]     return super().execute(query, vars)
[stderr]            ~~~~~~~~~~~~~~~^^^^^^^^^^^^^
[stderr] psycopg2.errors.InFailedSqlTransaction: 错误:  当前事务被终止, 事务块结束之前的查询被忽略
[stderr] 
[stderr] [2026-03-07 06:23:25] ERROR | etl_billiards | [DWS_FINANCE_INCOME_STRUCTURE] 任务失败: 错误:  当前事务被终止, 事务块结束之前的查询被忽略
[stderr] 
[stderr] [2026-03-07 06:23:25] ERROR | etl_billiards | 任务 DWS_FINANCE_DISCOUNT_DETAIL 失败: 错误:  当前事务被终止, 事务块结束之前的查询被忽略
[stderr] Traceback (most recent call last):
[stderr]   File "C:\NeoZQYY\apps\etl\connectors\feiqiu\orchestration\task_executor.py", line 97, in run_tasks
[stderr]     task_result = self.run_single_task(
[stderr]         task_code, run_uuid, store_id, data_source=data_source,
[stderr]     )
[stderr]   File "C:\NeoZQYY\apps\etl\connectors\feiqiu\orchestration\task_executor.py", line 164, in run_single_task
[stderr]     task_cfg = self._load_task_config(task_code, store_id)
[stderr]   File "C:\NeoZQYY\apps\etl\connectors\feiqiu\orchestration\task_executor.py", line 441, in _load_task_config
[stderr]     rows = self.db_ops.query(sql, (store_id, task_code))
[stderr]   File "C:\NeoZQYY\apps\etl\connectors\feiqiu\database\operations.py", line 120, in query
[stderr]     return self._connection.query(sql, args)
[stderr]            ~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^
[stderr]   File "C:\NeoZQYY\apps\etl\connectors\feiqiu\database\connection.py", line 58, in query
[stderr]     c.execute(sql, args)
[stderr]     ~~~~~~~~~^^^^^^^^^^^
[stderr]   File "C:\NeoZQYY\.venv\Lib\site-packages\psycopg2\extras.py", line 236, in execute
[stderr]     return super().execute(query, vars)
[stderr]            ~~~~~~~~~~~~~~~^^^^^^^^^^^^^
[stderr] psycopg2.errors.InFailedSqlTransaction: 错误:  当前事务被终止, 事务块结束之前的查询被忽略
[stderr] 
[stderr] [2026-03-07 06:23:25] ERROR | etl_billiards | [DWS_FINANCE_DISCOUNT_DETAIL] 任务失败: 错误:  当前事务被终止, 事务块结束之前的查询被忽略
[stderr] 
[stderr] [2026-03-07 06:23:25] ERROR | etl_billiards | 任务 DWS_ASSISTANT_MONTHLY 失败: 错误:  当前事务被终止, 事务块结束之前的查询被忽略
[stderr] Traceback (most recent call last):
[stderr]   File "C:\NeoZQYY\apps\etl\connectors\feiqiu\orchestration\task_executor.py", line 97, in run_tasks
[stderr]     task_result = self.run_single_task(
[stderr]         task_code, run_uuid, store_id, data_source=data_source,
[stderr]     )
[stderr]   File "C:\NeoZQYY\apps\etl\connectors\feiqiu\orchestration\task_executor.py", line 164, in run_single_task
[stderr]     task_cfg = self._load_task_config(task_code, store_id)
[stderr]   File "C:\NeoZQYY\apps\etl\connectors\feiqiu\orchestration\task_executor.py", line 441, in _load_task_config
[stderr]     rows = self.db_ops.query(sql, (store_id, task_code))
[stderr]   File "C:\NeoZQYY\apps\etl\connectors\feiqiu\database\operations.py", line 120, in query
[stderr]     return self._connection.query(sql, args)
[stderr]            ~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^
[stderr]   File "C:\NeoZQYY\apps\etl\connectors\feiqiu\database\connection.py", line 58, in query
[stderr]     c.execute(sql, args)
[stderr]     ~~~~~~~~~^^^^^^^^^^^
[stderr]   File "C:\NeoZQYY\.venv\Lib\site-packages\psycopg2\extras.py", line 236, in execute
[stderr]     return super().execute(query, vars)
[stderr]            ~~~~~~~~~~~~~~~^^^^^^^^^^^^^
[stderr] psycopg2.errors.InFailedSqlTransaction: 错误:  当前事务被终止, 事务块结束之前的查询被忽略
[stderr] 
[stderr] [2026-03-07 06:23:25] ERROR | etl_billiards | [DWS_ASSISTANT_MONTHLY] 任务失败: 错误:  当前事务被终止, 事务块结束之前的查询被忽略
[stderr] 
[stderr] [2026-03-07 06:23:25] ERROR | etl_billiards | 任务 DWS_ASSISTANT_FINANCE 失败: 错误:  当前事务被终止, 事务块结束之前的查询被忽略
[stderr] Traceback (most recent call last):
[stderr]   File "C:\NeoZQYY\apps\etl\connectors\feiqiu\orchestration\task_executor.py", line 97, in run_tasks
[stderr]     task_result = self.run_single_task(
[stderr]         task_code, run_uuid, store_id, data_source=data_source,
[stderr]     )
[stderr]   File "C:\NeoZQYY\apps\etl\connectors\feiqiu\orchestration\task_executor.py", line 164, in run_single_task
[stderr]     task_cfg = self._load_task_config(task_code, store_id)
[stderr]   File "C:\NeoZQYY\apps\etl\connectors\feiqiu\orchestration\task_executor.py", line 441, in _load_task_config
[stderr]     rows = self.db_ops.query(sql, (store_id, task_code))
[stderr]   File "C:\NeoZQYY\apps\etl\connectors\feiqiu\database\operations.py", line 120, in query
[stderr]     return self._connection.query(sql, args)
[stderr]            ~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^
[stderr]   File "C:\NeoZQYY\apps\etl\connectors\feiqiu\database\connection.py", line 58, in query
[stderr]     c.execute(sql, args)
[stderr]     ~~~~~~~~~^^^^^^^^^^^
[stderr]   File "C:\NeoZQYY\.venv\Lib\site-packages\psycopg2\extras.py", line 236, in execute
[stderr]     return super().execute(query, vars)
[stderr]            ~~~~~~~~~~~~~~~^^^^^^^^^^^^^
[stderr] psycopg2.errors.InFailedSqlTransaction: 错误:  当前事务被终止, 事务块结束之前的查询被忽略
[stderr] 
[stderr] [2026-03-07 06:23:25] ERROR | etl_billiards | [DWS_ASSISTANT_FINANCE] 任务失败: 错误:  当前事务被终止, 事务块结束之前的查询被忽略
[stderr] 
[stderr] [2026-03-07 06:23:25] INFO  | etl_billiards | DWS_WINBACK_INDEX: 开始执行工具类任务
[stderr] [2026-03-07 06:23:25] INFO  | etl_billiards | 开始计算 DWS_WINBACK_INDEX
[stderr] [2026-03-07 06:23:25] ERROR | etl_billiards | DWS_WINBACK_INDEX: 工具类任务执行失败: 错误:  当前事务被终止, 事务块结束之前的查询被忽略
[stderr] Traceback (most recent call last):
[stderr]   File "C:\NeoZQYY\apps\etl\connectors\feiqiu\orchestration\task_executor.py", line 415, in _run_utility_task
[stderr]     result = task.execute(None)
[stderr]   File "C:\NeoZQYY\apps\etl\connectors\feiqiu\tasks\dws\index\member_index_base.py", line 86, in execute
[stderr]     tenant_id = self._get_tenant_id()
[stderr]   File "C:\NeoZQYY\apps\etl\connectors\feiqiu\tasks\dws\index\member_index_base.py", line 171, in _get_tenant_id
[stderr]     rows = self.db.query(sql)
[stderr]   File "C:\NeoZQYY\apps\etl\connectors\feiqiu\database\operations.py", line 120, in query
[stderr]     return self._connection.query(sql, args)
[stderr]            ~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^
[stderr]   File "C:\NeoZQYY\apps\etl\connectors\feiqiu\database\connection.py", line 58, in query
[stderr]     c.execute(sql, args)
[stderr]     ~~~~~~~~~^^^^^^^^^^^
[stderr]   File "C:\NeoZQYY\.venv\Lib\site-packages\psycopg2\extras.py", line 236, in execute
[stderr]     return super().execute(query, vars)
[stderr]            ~~~~~~~~~~~~~~~^^^^^^^^^^^^^
[stderr] psycopg2.errors.InFailedSqlTransaction: 错误:  当前事务被终止, 事务块结束之前的查询被忽略
[stderr] 
[stderr] [2026-03-07 06:23:25] ERROR | etl_billiards | 任务 DWS_WINBACK_INDEX 失败: 错误:  当前事务被终止, 事务块结束之前的查询被忽略
[stderr] Traceback (most recent call last):
[stderr]   File "C:\NeoZQYY\apps\etl\connectors\feiqiu\orchestration\task_executor.py", line 97, in run_tasks
[stderr]     task_result = self.run_single_task(
[stderr]         task_code, run_uuid, store_id, data_source=data_source,
[stderr]     )
[stderr]   File "C:\NeoZQYY\apps\etl\connectors\feiqiu\orchestration\task_executor.py", line 162, in run_single_task
[stderr]     return self._run_utility_task(task_code_upper, store_id)
[stderr]            ~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^
[stderr]   File "C:\NeoZQYY\apps\etl\connectors\feiqiu\orchestration\task_executor.py", line 415, in _run_utility_task
[stderr]     result = task.execute(None)
[stderr]   File "C:\NeoZQYY\apps\etl\connectors\feiqiu\tasks\dws\index\member_index_base.py", line 86, in execute
[stderr]     tenant_id = self._get_tenant_id()
[stderr]   File "C:\NeoZQYY\apps\etl\connectors\feiqiu\tasks\dws\index\member_index_base.py", line 171, in _get_tenant_id
[stderr]     rows = self.db.query(sql)
[stderr]   File "C:\NeoZQYY\apps\etl\connectors\feiqiu\database\operations.py", line 120, in query
[stderr]     return self._connection.query(sql, args)
[stderr]            ~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^
[stderr]   File "C:\NeoZQYY\apps\etl\connectors\feiqiu\database\connection.py", line 58, in query
[stderr]     c.execute(sql, args)
[stderr]     ~~~~~~~~~^^^^^^^^^^^
[stderr]   File "C:\NeoZQYY\.venv\Lib\site-packages\psycopg2\extras.py", line 236, in execute
[stderr]     return super().execute(query, vars)
[stderr]            ~~~~~~~~~~~~~~~^^^^^^^^^^^^^
[stderr] psycopg2.errors.InFailedSqlTransaction: 错误:  当前事务被终止, 事务块结束之前的查询被忽略
[stderr] 
[stderr] [2026-03-07 06:23:25] ERROR | etl_billiards | [DWS_WINBACK_INDEX] 任务失败: 错误:  当前事务被终止, 事务块结束之前的查询被忽略
[stderr] 
[stderr] [2026-03-07 06:23:25] INFO  | etl_billiards | DWS_NEWCONV_INDEX: 开始执行工具类任务
[stderr] [2026-03-07 06:23:25] INFO  | etl_billiards | 开始计算 DWS_NEWCONV_INDEX
[stderr] [2026-03-07 06:23:25] ERROR | etl_billiards | DWS_NEWCONV_INDEX: 工具类任务执行失败: 错误:  当前事务被终止, 事务块结束之前的查询被忽略
[stderr] Traceback (most recent call last):
[stderr]   File "C:\NeoZQYY\apps\etl\connectors\feiqiu\orchestration\task_executor.py", line 415, in _run_utility_task
[stderr]     result = task.execute(None)
[stderr]   File "C:\NeoZQYY\apps\etl\connectors\feiqiu\tasks\dws\index\member_index_base.py", line 86, in execute
[stderr]     tenant_id = self._get_tenant_id()
[stderr]   File "C:\NeoZQYY\apps\etl\connectors\feiqiu\tasks\dws\index\member_index_base.py", line 171, in _get_tenant_id
[stderr]     rows = self.db.query(sql)
[stderr]   File "C:\NeoZQYY\apps\etl\connectors\feiqiu\database\operations.py", line 120, in query
[stderr]     return self._connection.query(sql, args)
[stderr]            ~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^
[stderr]   File "C:\NeoZQYY\apps\etl\connectors\feiqiu\database\connection.py", line 58, in query
[stderr]     c.execute(sql, args)
[stderr]     ~~~~~~~~~^^^^^^^^^^^
[stderr]   File "C:\NeoZQYY\.venv\Lib\site-packages\psycopg2\extras.py", line 236, in execute
[stderr]     return super().execute(query, vars)
[stderr]            ~~~~~~~~~~~~~~~^^^^^^^^^^^^^
[stderr] psycopg2.errors.InFailedSqlTransaction: 错误:  当前事务被终止, 事务块结束之前的查询被忽略
[stderr] 
[stderr] [2026-03-07 06:23:25] ERROR | etl_billiards | 任务 DWS_NEWCONV_INDEX 失败: 错误:  当前事务被终止, 事务块结束之前的查询被忽略
[stderr] Traceback (most recent call last):
[stderr]   File "C:\NeoZQYY\apps\etl\connectors\feiqiu\orchestration\task_executor.py", line 97, in run_tasks
[stderr]     task_result = self.run_single_task(
[stderr]         task_code, run_uuid, store_id, data_source=data_source,
[stderr]     )
[stderr]   File "C:\NeoZQYY\apps\etl\connectors\feiqiu\orchestration\task_executor.py", line 162, in run_single_task
[stderr]     return self._run_utility_task(task_code_upper, store_id)
[stderr]            ~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^
[stderr]   File "C:\NeoZQYY\apps\etl\connectors\feiqiu\orchestration\task_executor.py", line 415, in _run_utility_task
[stderr]     result = task.execute(None)
[stderr]   File "C:\NeoZQYY\apps\etl\connectors\feiqiu\tasks\dws\index\member_index_base.py", line 86, in execute
[stderr]     tenant_id = self._get_tenant_id()
[stderr]   File "C:\NeoZQYY\apps\etl\connectors\feiqiu\tasks\dws\index\member_index_base.py", line 171, in _get_tenant_id
[stderr]     rows = self.db.query(sql)
[stderr]   File "C:\NeoZQYY\apps\etl\connectors\feiqiu\database\operations.py", line 120, in query
[stderr]     return self._connection.query(sql, args)
[stderr]            ~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^
[stderr]   File "C:\NeoZQYY\apps\etl\connectors\feiqiu\database\connection.py", line 58, in query
[stderr]     c.execute(sql, args)
[stderr]     ~~~~~~~~~^^^^^^^^^^^
[stderr]   File "C:\NeoZQYY\.venv\Lib\site-packages\psycopg2\extras.py", line 236, in execute
[stderr]     return super().execute(query, vars)
[stderr]            ~~~~~~~~~~~~~~~^^^^^^^^^^^^^
[stderr] psycopg2.errors.InFailedSqlTransaction: 错误:  当前事务被终止, 事务块结束之前的查询被忽略
[stderr] 
[stderr] [2026-03-07 06:23:25] ERROR | etl_billiards | [DWS_NEWCONV_INDEX] 任务失败: 错误:  当前事务被终止, 事务块结束之前的查询被忽略
[stderr] 
[stderr] [2026-03-07 06:23:25] INFO  | etl_billiards | DWS_RELATION_INDEX: 开始执行工具类任务
[stderr] [2026-03-07 06:23:25] INFO  | etl_billiards | 开始计算关系指数（RS/OS/MS/ML）
[stderr] [2026-03-07 06:23:25] ERROR | etl_billiards | DWS_RELATION_INDEX: 工具类任务执行失败: 错误:  当前事务被终止, 事务块结束之前的查询被忽略
[stderr] Traceback (most recent call last):
[stderr]   File "C:\NeoZQYY\apps\etl\connectors\feiqiu\orchestration\task_executor.py", line 415, in _run_utility_task
[stderr]     result = task.execute(None)
[stderr]   File "C:\NeoZQYY\apps\etl\connectors\feiqiu\tasks\dws\index\relation_index_task.py", line 145, in execute
[stderr]     tenant_id = self._get_tenant_id()
[stderr]   File "C:\NeoZQYY\apps\etl\connectors\feiqiu\tasks\dws\index\relation_index_task.py", line 688, in _get_tenant_id
[stderr]     rows = self.db.query(sql)
[stderr]   File "C:\NeoZQYY\apps\etl\connectors\feiqiu\database\operations.py", line 120, in query
[stderr]     return self._connection.query(sql, args)
[stderr]            ~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^
[stderr]   File "C:\NeoZQYY\apps\etl\connectors\feiqiu\database\connection.py", line 58, in query
[stderr]     c.execute(sql, args)
[stderr]     ~~~~~~~~~^^^^^^^^^^^
[stderr]   File "C:\NeoZQYY\.venv\Lib\site-packages\psycopg2\extras.py", line 236, in execute
[stderr]     return super().execute(query, vars)
[stderr]            ~~~~~~~~~~~~~~~^^^^^^^^^^^^^
[stderr] psycopg2.errors.InFailedSqlTransaction: 错误:  当前事务被终止, 事务块结束之前的查询被忽略
[stderr] 
[stderr] [2026-03-07 06:23:25] ERROR | etl_billiards | 任务 DWS_RELATION_INDEX 失败: 错误:  当前事务被终止, 事务块结束之前的查询被忽略
[stderr] Traceback (most recent call last):
[stderr]   File "C:\NeoZQYY\apps\etl\connectors\feiqiu\orchestration\task_executor.py", line 97, in run_tasks
[stderr]     task_result = self.run_single_task(
[stderr]         task_code, run_uuid, store_id, data_source=data_source,
[stderr]     )
[stderr]   File "C:\NeoZQYY\apps\etl\connectors\feiqiu\orchestration\task_executor.py", line 162, in run_single_task
[stderr]     return self._run_utility_task(task_code_upper, store_id)
[stderr]            ~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^
[stderr]   File "C:\NeoZQYY\apps\etl\connectors\feiqiu\orchestration\task_executor.py", line 415, in _run_utility_task
[stderr]     result = task.execute(None)
[stderr]   File "C:\NeoZQYY\apps\etl\connectors\feiqiu\tasks\dws\index\relation_index_task.py", line 145, in execute
[stderr]     tenant_id = self._get_tenant_id()
[stderr]   File "C:\NeoZQYY\apps\etl\connectors\feiqiu\tasks\dws\index\relation_index_task.py", line 688, in _get_tenant_id
[stderr]     rows = self.db.query(sql)
[stderr]   File "C:\NeoZQYY\apps\etl\connectors\feiqiu\database\operations.py", line 120, in query
[stderr]     return self._connection.query(sql, args)
[stderr]            ~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^
[stderr]   File "C:\NeoZQYY\apps\etl\connectors\feiqiu\database\connection.py", line 58, in query
[stderr]     c.execute(sql, args)
[stderr]     ~~~~~~~~~^^^^^^^^^^^
[stderr]   File "C:\NeoZQYY\.venv\Lib\site-packages\psycopg2\extras.py", line 236, in execute
[stderr]     return super().execute(query, vars)
[stderr]            ~~~~~~~~~~~~~~~^^^^^^^^^^^^^
[stderr] psycopg2.errors.InFailedSqlTransaction: 错误:  当前事务被终止, 事务块结束之前的查询被忽略
[stderr] 
[stderr] [2026-03-07 06:23:25] ERROR | etl_billiards | [DWS_RELATION_INDEX] 任务失败: 错误:  当前事务被终止, 事务块结束之前的查询被忽略
[stderr] 
[stderr] [2026-03-07 06:23:25] INFO  | etl_billiards | DWS_SPENDING_POWER_INDEX: 开始执行工具类任务
[stderr] [2026-03-07 06:23:25] INFO  | etl_billiards | 开始计算 SPI 消费力指数
[stderr] [2026-03-07 06:23:25] ERROR | etl_billiards | DWS_SPENDING_POWER_INDEX: 工具类任务执行失败: 错误:  当前事务被终止, 事务块结束之前的查询被忽略
[stderr] Traceback (most recent call last):
[stderr]   File "C:\NeoZQYY\apps\etl\connectors\feiqiu\orchestration\task_executor.py", line 415, in _run_utility_task
[stderr]     result = task.execute(None)
[stderr]   File "C:\NeoZQYY\apps\etl\connectors\feiqiu\tasks\dws\index\spending_power_index_task.py", line 177, in execute
[stderr]     db_params = self.load_index_parameters('SPI')
[stderr]   File "C:\NeoZQYY\apps\etl\connectors\feiqiu\tasks\dws\index\base_index_task.py", line 344, in load_index_parameters
[stderr]     rows = self.db.query(sql, (index_type,))
[stderr]   File "C:\NeoZQYY\apps\etl\connectors\feiqiu\database\operations.py", line 120, in query
[stderr]     return self._connection.query(sql, args)
[stderr]            ~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^
[stderr]   File "C:\NeoZQYY\apps\etl\connectors\feiqiu\database\connection.py", line 58, in query
[stderr]     c.execute(sql, args)
[stderr]     ~~~~~~~~~^^^^^^^^^^^
[stderr]   File "C:\NeoZQYY\.venv\Lib\site-packages\psycopg2\extras.py", line 236, in execute
[stderr]     return super().execute(query, vars)
[stderr]            ~~~~~~~~~~~~~~~^^^^^^^^^^^^^
[stderr] psycopg2.errors.InFailedSqlTransaction: 错误:  当前事务被终止, 事务块结束之前的查询被忽略
[stderr] 
[stderr] [2026-03-07 06:23:25] ERROR | etl_billiards | 任务 DWS_SPENDING_POWER_INDEX 失败: 错误:  当前事务被终止, 事务块结束之前的查询被忽略
[stderr] Traceback (most recent call last):
[stderr]   File "C:\NeoZQYY\apps\etl\connectors\feiqiu\orchestration\task_executor.py", line 97, in run_tasks
[stderr]     task_result = self.run_single_task(
[stderr]         task_code, run_uuid, store_id, data_source=data_source,
[stderr]     )
[stderr]   File "C:\NeoZQYY\apps\etl\connectors\feiqiu\orchestration\task_executor.py", line 162, in run_single_task
[stderr]     return self._run_utility_task(task_code_upper, store_id)
[stderr]            ~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^
[stderr]   File "C:\NeoZQYY\apps\etl\connectors\feiqiu\orchestration\task_executor.py", line 415, in _run_utility_task
[stderr]     result = task.execute(None)
[stderr]   File "C:\NeoZQYY\apps\etl\connectors\feiqiu\tasks\dws\index\spending_power_index_task.py", line 177, in execute
[stderr]     db_params = self.load_index_parameters('SPI')
[stderr]   File "C:\NeoZQYY\apps\etl\connectors\feiqiu\tasks\dws\index\base_index_task.py", line 344, in load_index_parameters
[stderr]     rows = self.db.query(sql, (index_type,))
[stderr]   File "C:\NeoZQYY\apps\etl\connectors\feiqiu\database\operations.py", line 120, in query
[stderr]     return self._connection.query(sql, args)
[stderr]            ~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^
[stderr]   File "C:\NeoZQYY\apps\etl\connectors\feiqiu\database\connection.py", line 58, in query
[stderr]     c.execute(sql, args)
[stderr]     ~~~~~~~~~^^^^^^^^^^^
[stderr]   File "C:\NeoZQYY\.venv\Lib\site-packages\psycopg2\extras.py", line 236, in execute
[stderr]     return super().execute(query, vars)
[stderr]            ~~~~~~~~~~~~~~~^^^^^^^^^^^^^
[stderr] psycopg2.errors.InFailedSqlTransaction: 错误:  当前事务被终止, 事务块结束之前的查询被忽略
[stderr] 
[stderr] [2026-03-07 06:23:25] ERROR | etl_billiards | [DWS_SPENDING_POWER_INDEX] 任务失败: 错误:  当前事务被终止, 事务块结束之前的查询被忽略
[stderr] 
[stderr] [2026-03-07 06:23:25] INFO  | etl_billiards | 所有任务执行完成
[stderr] [2026-03-07 06:23:26] WARNING | etl_billiards | 一致性检查失败（不阻断主流程）: 错误:  当前事务被终止, 事务块结束之前的查询被忽略
[stderr] Traceback (most recent call last):
[stderr]   File "C:\NeoZQYY\apps\etl\connectors\feiqiu\orchestration\flow_runner.py", line 271, in _run_post_consistency_check
[stderr]     report = run_consistency_check(
[stderr]         self.db_conn,
[stderr]     ...<4 lines>...
[stderr]         tz=self.tz,
[stderr]     )
[stderr]   File "C:\NeoZQYY\apps\etl\connectors\feiqiu\quality\consistency_checker.py", line 658, in run_consistency_check
[stderr]     ods_columns = _fetch_table_columns(cur, "ods", ods_table)
[stderr]   File "C:\NeoZQYY\apps\etl\connectors\feiqiu\quality\consistency_checker.py", line 417, in _fetch_table_columns
[stderr]     cur.execute(
[stderr]     ~~~~~~~~~~~^
[stderr]         """
[stderr]         ^^^
[stderr]     ...<5 lines>...
[stderr]         (schema, table),
[stderr]         ^^^^^^^^^^^^^^^^
[stderr]     )
[stderr]     ^
[stderr] psycopg2.errors.InFailedSqlTransaction: 错误:  当前事务被终止, 事务块结束之前的查询被忽略
[stderr] 
[stderr] [2026-03-07 06:23:26] INFO  | etl_billiards | 计时报告已生成
[stderr] [2026-03-07 06:23:26] INFO  | etl_billiards | 
[stderr] ╔══════════════════════════════════════════════════════════════╗
[stderr] ║                     任务执行总结                              ║
[stderr] ╠══════════════════════════════════════════════════════════════╣
[stderr] ║ 任务代码: FLOW_API_FULL                                      ║
[stderr] ║ 执行状态: 成功                                                 ║
[stderr] ║ 执行时间: 2026-03-07 04:40:51 ~ 06:23:26 (1时42分)             ║
[stderr] ╠══════════════════════════════════════════════════════════════╣
[stderr] ║ 数据统计                                                      ║
[stderr] ║   - 获取记录:    513,584                                  ║
[stderr] ║   - 新增记录:     28,236                                  ║
[stderr] ║   - 更新记录:    513,449                                  ║
[stderr] ║   - 跳过记录:          0                                  ║
[stderr] ║   - 错误记录:          9                                  ║
[stderr] ╚══════════════════════════════════════════════════════════════╝
[stderr] [2026-03-07 06:23:26] INFO  | etl_billiards | 
[stderr] ╔══════════════════════════════════════════════════════════════╗
[stderr] ║                     任务执行总结                              ║
[stderr] ╠══════════════════════════════════════════════════════════════╣
[stderr] ║ 任务代码: FLOW_API_FULL                                      ║
[stderr] ║ 执行状态: 成功                                                 ║
[stderr] ║ 执行时间: 2026-03-07 04:40:51 ~ 06:23:26 (1时42分)             ║
[stderr] ╠══════════════════════════════════════════════════════════════╣
[stderr] ║ 数据统计                                                      ║
[stderr] ║   - 获取记录:    513,584                                  ║
[stderr] ║   - 新增记录:     28,236                                  ║
[stderr] ║   - 更新记录:    513,449                                  ║
[stderr] ║   - 跳过记录:          0                                  ║
[stderr] ║   - 错误记录:          9                                  ║
[stderr] ╚══════════════════════════════════════════════════════════════╝
[stderr] [2026-03-07 06:23:26] INFO  | etl_billiards | Flow 执行完成: SUCCESS
[stderr] [2026-03-07 06:23:26] INFO  | etl_billiards | ETL运行完成