Files
Neo-ZQYY/export/SYSTEM/LOGS/2026-02-21__etl_run_raw_v4.json

5 lines
64 KiB
JSON
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
{
"execution_id": "efd4f421-ee10-4244-833f-7b2d68c3c05b",
"output_log": "",
"error_log": "[2026-02-21 19:57:01] INFO | etl_billiards | 配置加载完成\n[2026-02-21 19:57:01] INFO | etl_billiards | 门店ID: 2790685415443269\n[2026-02-21 19:57:02] INFO | etl_billiards | 执行模式: Flow 模式\n[2026-02-21 19:57:02] INFO | etl_billiards | Flow 类型: api_full\n[2026-02-21 19:57:02] INFO | etl_billiards | 处理模式: full_window\n[2026-02-21 19:57:02] INFO | etl_billiards | FLOW_API_FULL | 开始执行 Flow: api_full | 开始时间: 2026-02-21 19:57:02\n[2026-02-21 19:57:02] INFO | etl_billiards | Flow api_full: 执行增量 ETL层=['ODS', 'DWD', 'DWS', 'INDEX']\n[2026-02-21 19:57:02] INFO | etl_billiards | 开始运行任务: ['DWS_ASSISTANT_DAILY', 'DWS_ASSISTANT_MONTHLY', 'DWS_ASSISTANT_CUSTOMER', 'DWS_ASSISTANT_SALARY', 'DWS_ASSISTANT_FINANCE', 'ODS_SETTLEMENT_RECORDS', 'ODS_PAYMENT', 'ODS_REFUND', 'DWS_BUILD_ORDER_SUMMARY', 'DWS_MEMBER_CONSUMPTION', 'DWS_MEMBER_VISIT', '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', 'DWS_GOODS_STOCK_DAILY', 'DWS_GOODS_STOCK_WEEKLY', 'DWS_GOODS_STOCK_MONTHLY', 'DWS_FINANCE_DAILY', 'DWS_FINANCE_RECHARGE', 'DWS_FINANCE_INCOME_STRUCTURE', 'DWS_FINANCE_DISCOUNT_DETAIL', 'DWS_WINBACK_INDEX', 'DWS_NEWCONV_INDEX', 'DWS_RELATION_INDEX', 'DWD_LOAD_FROM_ODS'], run_uuid=5ef44b7f7bf147a28f929019f5d9c81f\n[2026-02-21 19:57:02] INFO | etl_billiards | DWS_ASSISTANT_DAILY: 抓取阶段开始,目录=C:\\NeoZQYY\\export\\ETL-Connectors\\feiqiu\\JSON\\DWS_ASSISTANT_DAILY\\DWS_ASSISTANT_DAILY-8846-20260221-195702\n[2026-02-21 19:57:02] INFO | etl_billiards | DWS_ASSISTANT_DAILY: 提取数据,日期范围 2025-11-01 ~ 2026-02-20\n[2026-02-21 19:57:03] INFO | etl_billiards | DWS_ASSISTANT_DAILY: 抓取完成,文件=None记录数=0\n[2026-02-21 19:57:03] INFO | etl_billiards | DWS_ASSISTANT_DAILY: 本地清洗入库开始,源目录=C:\\NeoZQYY\\export\\ETL-Connectors\\feiqiu\\JSON\\DWS_ASSISTANT_DAILY\\DWS_ASSISTANT_DAILY-8846-20260221-195702\n[2026-02-21 19:57:03] INFO | etl_billiards | DWS_ASSISTANT_DAILY: 窗口拆分为 4 段(共 111.17 天)\n[2026-02-21 19:57:03] INFO | etl_billiards | DWS_ASSISTANT_DAILY: 开始执行(1/4),窗口[2025-10-31 22:00:00+08:00 ~ 2025-11-30 22:00:00+08:00]\n[2026-02-21 19:57:03] INFO | etl_billiards | DWS_ASSISTANT_DAILY: 提取数据,日期范围 2025-10-31 ~ 2025-11-30\n[2026-02-21 19:57:03] INFO | etl_billiards | DWS_ASSISTANT_DAILY: 转换数据,服务记录 715 条,废除记录 12 条\n[2026-02-21 19:57:44] INFO | etl_billiards | DWS_ASSISTANT_DAILY: 完成(1/4),已处理 30/111.17 天\n[2026-02-21 19:57:44] INFO | etl_billiards | DWS_ASSISTANT_DAILY: 开始执行(2/4),窗口[2025-11-30 22:00:00+08:00 ~ 2025-12-30 22:00:00+08:00]\n[2026-02-21 19:57:44] INFO | etl_billiards | DWS_ASSISTANT_DAILY: 提取数据,日期范围 2025-11-30 ~ 2025-12-30\n[2026-02-21 19:57:44] INFO | etl_billiards | DWS_ASSISTANT_DAILY: 转换数据,服务记录 959 条,废除记录 30 条\n[2026-02-21 19:58:40] INFO | etl_billiards | DWS_ASSISTANT_DAILY: 完成(2/4),已处理 60/111.17 天\n[2026-02-21 19:58:40] INFO | etl_billiards | DWS_ASSISTANT_DAILY: 开始执行(3/4),窗口[2025-12-30 22:00:00+08:00 ~ 2026-01-29 22:00:00+08:00]\n[2026-02-21 19:58:40] INFO | etl_billiards | DWS_ASSISTANT_DAILY: 提取数据,日期范围 2025-12-30 ~ 2026-01-29\n[2026-02-21 19:58:40] INFO | etl_billiards | DWS_ASSISTANT_DAILY: 转换数据,服务记录 838 条,废除记录 46 条\n[2026-02-21 19:59:20] INFO | etl_billiards | DWS_ASSISTANT_DAILY: 完成(3/4),已处理 90/111.17 天\n[2026-02-21 19:59:20] INFO | etl_billiards | DWS_ASSISTANT_DAILY: 开始执行(4/4),窗口[2026-01-29 22:00:00+08:00 ~ 2026-02-20 02:00:00+08:00]\n[2026-02-21 19:59:20] INFO | etl_billiards | DWS_ASSISTANT_DAILY: 提取数据,日期范围 2026-01-29 ~ 2026-02-20\n[2026-02-21 19:59:20] INFO | etl_billiards | DWS_ASSISTANT_DAILY: 转换数据,服务记录 216 条,废除记录 1 条\n[2026-02-21 19:59:30] INFO | etl_billiards | DWS_ASSISTANT_DAILY: 完成(4/4),已处理 111.17/111.17 天\n[2026-02-21 19:59:30] INFO | etl_billiards | DWS_ASSISTANT_DAILY: 完成,统计={'counts': {'fetched': 367, 'inserted': 367, 'updated': 0, 'skipped': 0, 'errors': 0}, 'extra': {'deleted': 367}}\n[2026-02-21 19:59:30] INFO | etl_billiards | DWS_ASSISTANT_MONTHLY: 抓取阶段开始,目录=C:\\NeoZQYY\\export\\ETL-Connectors\\feiqiu\\JSON\\DWS_ASSISTANT_MONTHLY\\DWS_ASSISTANT_MONTHLY-8847-20260221-195930\n[2026-02-21 19:59:30] INFO | etl_billiards | DWS_ASSISTANT_MONTHLY: 跳过历史月份 ['2025-11-01', '2025-12-01', '2026-01-01']\n[2026-02-21 19:59:30] INFO | etl_billiards | DWS_ASSISTANT_MONTHLY: 提取数据,月份范围 ['2026-02-01']\n[2026-02-21 19:59:31] INFO | etl_billiards | DWS_ASSISTANT_MONTHLY: 抓取完成,文件=None记录数=0\n[2026-02-21 19:59:31] INFO | etl_billiards | DWS_ASSISTANT_MONTHLY: 本地清洗入库开始,源目录=C:\\NeoZQYY\\export\\ETL-Connectors\\feiqiu\\JSON\\DWS_ASSISTANT_MONTHLY\\DWS_ASSISTANT_MONTHLY-8847-20260221-195930\n[2026-02-21 19:59:31] INFO | etl_billiards | DWS_ASSISTANT_MONTHLY: 窗口拆分为 4 段(共 111.17 天)\n[2026-02-21 19:59:31] INFO | etl_billiards | DWS_ASSISTANT_MONTHLY: 开始执行(1/4),窗口[2025-10-31 22:00:00+08:00 ~ 2025-11-30 22:00:00+08:00]\n[2026-02-21 19:59:31] INFO | etl_billiards | DWS_ASSISTANT_MONTHLY: 跳过历史月份 ['2025-10-01']\n[2026-02-21 19:59:31] INFO | etl_billiards | DWS_ASSISTANT_MONTHLY: 提取数据,月份范围 ['2025-11-01']\n[2026-02-21 19:59:31] INFO | etl_billiards | DWS_ASSISTANT_MONTHLY: 转换数据1 个月份25 条聚合记录\n[2026-02-21 19:59:34] INFO | etl_billiards | DWS_ASSISTANT_MONTHLY: 加载完成,删除 25 行,插入 25 行\n[2026-02-21 19:59:34] INFO | etl_billiards | DWS_ASSISTANT_MONTHLY: 完成(1/4),已处理 30/111.17 天\n[2026-02-21 19:59:34] INFO | etl_billiards | DWS_ASSISTANT_MONTHLY: 开始执行(2/4),窗口[2025-11-30 22:00:00+08:00 ~ 2025-12-30 22:00:00+08:00]\n[2026-02-21 19:59:34] INFO | etl_billiards | DWS_ASSISTANT_MONTHLY: 跳过历史月份 ['2025-11-01']\n[2026-02-21 19:59:34] INFO | etl_billiards | DWS_ASSISTANT_MONTHLY: 提取数据,月份范围 ['2025-12-01']\n[2026-02-21 19:59:34] INFO | etl_billiards | DWS_ASSISTANT_MONTHLY: 转换数据1 个月份29 条聚合记录\n[2026-02-21 19:59:37] INFO | etl_billiards | DWS_ASSISTANT_MONTHLY: 加载完成,删除 29 行,插入 29 行\n[2026-02-21 19:59:37] INFO | etl_billiards | DWS_ASSISTANT_MONTHLY: 完成(2/4),已处理 60/111.17 天\n[2026-02-21 19:59:37] INFO | etl_billiards | DWS_ASSISTANT_MONTHLY: 开始执行(3/4),窗口[2025-12-30 22:00:00+08:00 ~ 2026-01-29 22:00:00+08:00]\n[2026-02-21 19:59:37] INFO | etl_billiards | DWS_ASSISTANT_MONTHLY: 跳过历史月份 ['2025-12-01']\n[2026-02-21 19:59:37] INFO | etl_billiards | DWS_ASSISTANT_MONTHLY: 提取数据,月份范围 ['2026-01-01']\n[2026-02-21 19:59:38] INFO | etl_billiards | DWS_ASSISTANT_MONTHLY: 转换数据1 个月份22 条聚合记录\n[2026-02-21 19:59:40] INFO | etl_billiards | DWS_ASSISTANT_MONTHLY: 加载完成,删除 22 行,插入 22 行\n[2026-02-21 19:59:40] INFO | etl_billiards | DWS_ASSISTANT_MONTHLY: 完成(3/4),已处理 90/111.17 天\n[2026-02-21 19:59:40] INFO | etl_billiards | DWS_ASSISTANT_MONTHLY: 开始执行(4/4),窗口[2026-01-29 22:00:00+08:00 ~ 2026-02-20 02:00:00+08:00]\n[2026-02-21 19:59:40] INFO | etl_billiards | DWS_ASSISTANT_MONTHLY: 跳过历史月份 ['2026-01-01']\n[2026-02-21 19:59:40] INFO | etl_billiards | DWS_ASSISTANT_MONTHLY: 提取数据,月份范围 ['2026-02-01']\n[2026-02-21 19:59:41] INFO | etl_billiards | DWS_ASSISTANT_MONTHLY: 转换数据1 个月份9 条聚合记录\n[2026-02-21 19:59:42] INFO | etl_billiards | DWS_ASSISTANT_MONTHLY: 加载完成,删除 9 行,插入 9 行\n[2026-02-21 19:59:42] INFO | etl_billiards | DWS_ASSISTANT_MONTHLY: 完成(4/4),已处理 111.17/111.17 天\n[2026-02-21 19:59:42] INFO | etl_billiards | DWS_ASSISTANT_MONTHLY: 完成,统计={'counts': {'fetched': 25, 'inserted': 25, 'updated': 0, 'skipped': 0, 'errors': 0}, 'extra': {'deleted': 25}}\n[2026-02-21 19:59:42] INFO | etl_billiards | DWS_ASSISTANT_CUSTOMER: 抓取阶段开始,目录=C:\\NeoZQYY\\export\\ETL-Connectors\\feiqiu\\JSON\\DWS_ASSISTANT_CUSTOMER\\DWS_ASSISTANT_CUSTOMER-8848-20260221-195942\n[2026-02-21 19:59:42] INFO | etl_billiards | DWS_ASSISTANT_CUSTOMER: 提取数据,统计日期 2026-02-20\n[2026-02-21 19:59:42] INFO | etl_billiards | DWS_ASSISTANT_CUSTOMER: 抓取完成,文件=None记录数=0\n[2026-02-21 19:59:42] INFO | etl_billiards | DWS_ASSISTANT_CUSTOMER: 本地清洗入库开始,源目录=C:\\NeoZQYY\\export\\ETL-Connectors\\feiqiu\\JSON\\DWS_ASSISTANT_CUSTOMER\\DWS_ASSISTANT_CUSTOMER-8848-20260221-195942\n[2026-02-21 19:59:43] INFO | etl_billiards | DWS_ASSISTANT_CUSTOMER: 窗口拆分为 4 段(共 111.17 天)\n[2026-02-21 19:59:43] INFO | etl_billiards | DWS_ASSISTANT_CUSTOMER: 开始执行(1/4),窗口[2025-10-31 22:00:00+08:00 ~ 2025-11-30 22:00:00+08:00]\n[2026-02-21 19:59:43] INFO | etl_billiards | DWS_ASSISTANT_CUSTOMER: 提取数据,统计日期 2025-11-30\n[2026-02-21 19:59:43] INFO | etl_billiards | DWS_ASSISTANT_CUSTOMER: 转换数据486 条服务关系记录\n[2026-02-21 20:00:09] INFO | etl_billiards | DWS_ASSISTANT_CUSTOMER: 完成(1/4),已处理 30/111.17 天\n[2026-02-21 20:00:09] INFO | etl_billiards | DWS_ASSISTANT_CUSTOMER: 开始执行(2/4),窗口[2025-11-30 22:00:00+08:00 ~ 2025-12-30 22:00:00+08:00]\n[2026-02-21 20:00:09] INFO | etl_billiards | DWS_ASSISTANT_CUSTOMER: 提取数据,统计日期 2025-12-30\n[2026-02-21 20:00:09] INFO | etl_billiards | DWS_ASSISTANT_CUSTOMER: 转换数据410 条服务关系记录\n[2026-02-21 20:00:30] INFO | etl_billiards | DWS_ASSISTANT_CUSTOMER: 完成(2/4),已处理 60/111.17 天\n[2026-02-21 20:00:30] INFO | etl_billiards | DWS_ASSISTANT_CUSTOMER: 开始执行(3/4),窗口[2025-12-30 22:00:00+08:00 ~ 2026-01-29 22:00:00+08:00]\n[2026-02-21 20:00:30] INFO | etl_billiards | DWS_ASSISTANT_CUSTOMER: 提取数据,统计日期 2026-01-29\n[2026-02-21 20:00:31] INFO | etl_billiards | DWS_ASSISTANT_CUSTOMER: 转换数据334 条服务关系记录\n[2026-02-21 20:00:48] INFO | etl_billiards | DWS_ASSISTANT_CUSTOMER: 完成(3/4),已处理 90/111.17 天\n[2026-02-21 20:00:48] INFO | etl_billiards | DWS_ASSISTANT_CUSTOMER: 开始执行(4/4),窗口[2026-01-29 22:00:00+08:00 ~ 2026-02-20 02:00:00+08:00]\n[2026-02-21 20:00:48] INFO | etl_billiards | DWS_ASSISTANT_CUSTOMER: 提取数据,统计日期 2026-02-20\n[2026-02-21 20:00:49] INFO | etl_billiards | DWS_ASSISTANT_CUSTOMER: 转换数据289 条服务关系记录\n[2026-02-21 20:01:04] INFO | etl_billiards | DWS_ASSISTANT_CUSTOMER: 完成(4/4),已处理 111.17/111.17 天\n[2026-02-21 20:01:04] INFO | etl_billiards | DWS_ASSISTANT_CUSTOMER: 完成,统计={'counts': {'fetched': 486, 'inserted': 486, 'updated': 0, 'skipped': 0, 'errors': 0}, 'extra': {'deleted': 0}}\n[2026-02-21 20:01:05] INFO | etl_billiards | DWS_ASSISTANT_SALARY: 抓取阶段开始,目录=C:\\NeoZQYY\\export\\ETL-Connectors\\feiqiu\\JSON\\DWS_ASSISTANT_SALARY\\DWS_ASSISTANT_SALARY-8849-20260221-200105\n[2026-02-21 20:01:05] INFO | etl_billiards | DWS_ASSISTANT_SALARY: 非工资结算期,跳过\n[2026-02-21 20:01:05] INFO | etl_billiards | DWS_ASSISTANT_SALARY: 抓取完成,文件=None记录数=0\n[2026-02-21 20:01:05] INFO | etl_billiards | DWS_ASSISTANT_SALARY: 本地清洗入库开始,源目录=C:\\NeoZQYY\\export\\ETL-Connectors\\feiqiu\\JSON\\DWS_ASSISTANT_SALARY\\DWS_ASSISTANT_SALARY-8849-20260221-200105\n[2026-02-21 20:01:05] INFO | etl_billiards | DWS_ASSISTANT_SALARY: 窗口拆分为 4 段(共 111.17 天)\n[2026-02-21 20:01:05] INFO | etl_billiards | DWS_ASSISTANT_SALARY: 开始执行(1/4),窗口[2025-10-31 22:00:00+08:00 ~ 2025-11-30 22:00:00+08:00]\n[2026-02-21 20:01:05] INFO | etl_billiards | DWS_ASSISTANT_SALARY: 非工资结算期,跳过\n[2026-02-21 20:01:05] INFO | etl_billiards | DWS_ASSISTANT_SALARY: 无数据需要写入\n[2026-02-21 20:01:05] INFO | etl_billiards | DWS_ASSISTANT_SALARY: 完成(1/4),已处理 30/111.17 天\n[2026-02-21 20:01:05] INFO | etl_billiards | DWS_ASSISTANT_SALARY: 开始执行(2/4),窗口[2025-11-30 22:00:00+08:00 ~ 2025-12-30 22:00:00+08:00]\n[2026-02-21 20:01:05] INFO | etl_billiards | DWS_ASSISTANT_SALARY: 非工资结算期,跳过\n[2026-02-21 20:01:05] INFO | etl_billiards | DWS_ASSISTANT_SALARY: 无数据需要写入\n[2026-02-21 20:01:05] INFO | etl_billiards | DWS_ASSISTANT_SALARY: 完成(2/4),已处理 60/111.17 天\n[2026-02-21 20:01:05] INFO | etl_billiards | DWS_ASSISTANT_SALARY: 开始执行(3/4),窗口[2025-12-30 22:00:00+08:00 ~ 2026-01-29 22:00:00+08:00]\n[2026-02-21 20:01:05] INFO | etl_billiards | DWS_ASSISTANT_SALARY: 非工资结算期,跳过\n[2026-02-21 20:01:05] INFO | etl_billiards | DWS_ASSISTANT_SALARY: 无数据需要写入\n[2026-02-21 20:01:05] INFO | etl_billiards | DWS_ASSISTANT_SALARY: 完成(3/4),已处理 90/111.17 天\n[2026-02-21 20:01:05] INFO | etl_billiards | DWS_ASSISTANT_SALARY: 开始执行(4/4),窗口[2026-01-29 22:00:00+08:00 ~ 2026-02-20 02:00:00+08:00]\n[2026-02-21 20:01:05] INFO | etl_billiards | DWS_ASSISTANT_SALARY: 非工资结算期,跳过\n[2026-02-21 20:01:05] INFO | etl_billiards | DWS_ASSISTANT_SALARY: 无数据需要写入\n[2026-02-21 20:01:05] INFO | etl_billiards | DWS_ASSISTANT_SALARY: 完成(4/4),已处理 111.17/111.17 天\n[2026-02-21 20:01:05] INFO | etl_billiards | DWS_ASSISTANT_SALARY: 完成,统计={'counts': {'fetched': 0, 'inserted': 0, 'updated': 0, 'skipped': 0, 'errors': 0}}\n[2026-02-21 20:01:05] INFO | etl_billiards | DWS_ASSISTANT_FINANCE: 抓取阶段开始,目录=C:\\NeoZQYY\\export\\ETL-Connectors\\feiqiu\\JSON\\DWS_ASSISTANT_FINANCE\\DWS_ASSISTANT_FINANCE-8850-20260221-200105\n[2026-02-21 20:01:06] INFO | etl_billiards | DWS_ASSISTANT_FINANCE: 抓取完成,文件=None记录数=0\n[2026-02-21 20:01:06] INFO | etl_billiards | DWS_ASSISTANT_FINANCE: 本地清洗入库开始,源目录=C:\\NeoZQYY\\export\\ETL-Connectors\\feiqiu\\JSON\\DWS_ASSISTANT_FINANCE\\DWS_ASSISTANT_FINANCE-8850-20260221-200105\n[2026-02-21 20:01:06] INFO | etl_billiards | DWS_ASSISTANT_FINANCE: 窗口拆分为 4 段(共 111.17 天)\n[2026-02-21 20:01:06] INFO | etl_billiards | DWS_ASSISTANT_FINANCE: 开始执行(1/4),窗口[2025-10-31 22:00:00+08:00 ~ 2025-11-30 22:00:00+08:00]\n[2026-02-21 20:01:25] INFO | etl_billiards | DWS_ASSISTANT_FINANCE: 完成(1/4),已处理 30/111.17 天\n[2026-02-21 20:01:25] INFO | etl_billiards | DWS_ASSISTANT_FINANCE: 开始执行(2/4),窗口[2025-11-30 22:00:00+08:00 ~ 2025-12-30 22:00:00+08:00]\n[2026-02-21 20:01:49] INFO | etl_billiards | DWS_ASSISTANT_FINANCE: 完成(2/4),已处理 60/111.17 天\n[2026-02-21 20:01:49] INFO | etl_billiards | DWS_ASSISTANT_FINANCE: 开始执行(3/4),窗口[2025-12-30 22:00:00+08:00 ~ 2026-01-29 22:00:00+08:00]\n[2026-02-21 20:02:10] INFO | etl_billiards | DWS_ASSISTANT_FINANCE: 完成(3/4),已处理 90/111.17 天\n[2026-02-21 20:02:10] INFO | etl_billiards | DWS_ASSISTANT_FINANCE: 开始执行(4/4),窗口[2026-01-29 22:00:00+08:00 ~ 2026-02-20 02:00:00+08:00]\n[2026-02-21 20:02:15] INFO | etl_billiards | DWS_ASSISTANT_FINANCE: 完成(4/4),已处理 111.17/111.17 天\n[2026-02-21 20:02:15] INFO | etl_billiards | DWS_ASSISTANT_FINANCE: 完成,统计={'counts': {'fetched': 367, 'inserted': 367, 'updated': 0, 'skipped': 0, 'errors': 0}, 'extra': {'deleted': 367}}\n[2026-02-21 20:02:16] INFO | etl_billiards | ODS_SETTLEMENT_RECORDS: ODS fetch+load start, dir=C:\\NeoZQYY\\export\\ETL-Connectors\\feiqiu\\JSON\\ODS_SETTLEMENT_RECORDS\\ODS_SETTLEMENT_RECORDS-8851-20260221-200216\n[2026-02-21 20:02:16] INFO | etl_billiards | 开始执行ODS_SETTLEMENT_RECORDS (ODS)\n[2026-02-21 20:02:16] INFO | etl_billiards | ODS_SETTLEMENT_RECORDS: 窗口拆分为 4 段(共 111.17 天)\n[2026-02-21 20:02:16] INFO | etl_billiards | ODS_SETTLEMENT_RECORDS: 开始执行(1/4),窗口[2025-10-31 22:00:00+08:00 ~ 2025-11-30 22:00:00+08:00]\n[2026-02-21 20:02:31] INFO | etl_billiards | ODS_SETTLEMENT_RECORDS: 完成(1/4),已处理 30/111.17 天\n[2026-02-21 20:02:31] INFO | etl_billiards | ODS_SETTLEMENT_RECORDS: 开始执行(2/4),窗口[2025-11-30 22:00:00+08:00 ~ 2025-12-30 22:00:00+08:00]\n[2026-02-21 20:03:11] INFO | etl_billiards | ODS_SETTLEMENT_RECORDS: 完成(2/4),已处理 60/111.17 天\n[2026-02-21 20:03:11] INFO | etl_billiards | ODS_SETTLEMENT_RECORDS: 开始执行(3/4),窗口[2025-12-30 22:00:00+08:00 ~ 2026-01-29 22:00:00+08:00]\n[2026-02-21 20:03:47] INFO | etl_billiards | ODS_SETTLEMENT_RECORDS: 完成(3/4),已处理 90/111.17 天\n[2026-02-21 20:03:47] INFO | etl_billiards | ODS_SETTLEMENT_RECORDS: 开始执行(4/4),窗口[2026-01-29 22:00:00+08:00 ~ 2026-02-20 02:00:00+08:00]\n[2026-02-21 20:04:02] INFO | etl_billiards | ODS_SETTLEMENT_RECORDS: 完成(4/4),已处理 111.17/111.17 天\n[2026-02-21 20:04:02] INFO | etl_billiards | ODS_SETTLEMENT_RECORDS ODS 任务完成: {'fetched': 10366, 'inserted': 0, 'updated': 10366, 'skipped': 0, 'errors': 0, 'deleted': 0}\n[2026-02-21 20:04:03] INFO | etl_billiards | ODS_PAYMENT: ODS fetch+load start, dir=C:\\NeoZQYY\\export\\ETL-Connectors\\feiqiu\\JSON\\ODS_PAYMENT\\ODS_PAYMENT-8852-20260221-200403\n[2026-02-21 20:04:03] INFO | etl_billiards | 开始执行ODS_PAYMENT (ODS)\n[2026-02-21 20:04:03] INFO | etl_billiards | ODS_PAYMENT: 窗口拆分为 4 段(共 111.17 天)\n[2026-02-21 20:04:03] INFO | etl_billiards | ODS_PAYMENT: 开始执行(1/4),窗口[2025-10-31 22:00:00+08:00 ~ 2025-11-30 22:00:00+08:00]\n[2026-02-21 20:05:02] INFO | etl_billiards | ODS_PAYMENT: 完成(1/4),已处理 30/111.17 天\n[2026-02-21 20:05:02] INFO | etl_billiards | ODS_PAYMENT: 开始执行(2/4),窗口[2025-11-30 22:00:00+08:00 ~ 2025-12-30 22:00:00+08:00]\n[2026-02-21 20:06:05] INFO | etl_billiards | ODS_PAYMENT: 完成(2/4),已处理 60/111.17 天\n[2026-02-21 20:06:05] INFO | etl_billiards | ODS_PAYMENT: 开始执行(3/4),窗口[2025-12-30 22:00:00+08:00 ~ 2026-01-29 22:00:00+08:00]\n[2026-02-21 20:07:05] INFO | etl_billiards | ODS_PAYMENT: 完成(3/4),已处理 90/111.17 天\n[2026-02-21 20:07:05] INFO | etl_billiards | ODS_PAYMENT: 开始执行(4/4),窗口[2026-01-29 22:00:00+08:00 ~ 2026-02-20 02:00:00+08:00]\n[2026-02-21 20:08:03] INFO | etl_billiards | ODS_PAYMENT: 完成(4/4),已处理 111.17/111.17 天\n[2026-02-21 20:08:03] INFO | etl_billiards | ODS_PAYMENT ODS 任务完成: {'fetched': 42500, 'inserted': 0, 'updated': 42500, 'skipped': 0, 'errors': 0, 'deleted': 0}\n[2026-02-21 20:08:04] INFO | etl_billiards | ODS_REFUND: ODS fetch+load start, dir=C:\\NeoZQYY\\export\\ETL-Connectors\\feiqiu\\JSON\\ODS_REFUND\\ODS_REFUND-8853-20260221-200804\n[2026-02-21 20:08:04] INFO | etl_billiards | 开始执行ODS_REFUND (ODS)\n[2026-02-21 20:08:04] INFO | etl_billiards | ODS_REFUND: 窗口拆分为 4 段(共 111.17 天)\n[2026-02-21 20:08:04] INFO | etl_billiards | ODS_REFUND: 开始执行(1/4),窗口[2025-10-31 22:00:00+08:00 ~ 2025-11-30 22:00:00+08:00]\n[2026-02-21 20:08:05] INFO | etl_billiards | ODS_REFUND: early-cutoff 保护生效,软删除窗口起点从 2025-10-31 22:00:00+08:00 收窄至 2025-11-21 22:00:16+08:00\n[2026-02-21 20:08:05] INFO | etl_billiards | ODS_REFUND: 完成(1/4),已处理 30/111.17 天\n[2026-02-21 20:08:05] INFO | etl_billiards | ODS_REFUND: 开始执行(2/4),窗口[2025-11-30 22:00:00+08:00 ~ 2025-12-30 22:00:00+08:00]\n[2026-02-21 20:08:05] INFO | etl_billiards | ODS_REFUND: 完成(2/4),已处理 60/111.17 天\n[2026-02-21 20:08:05] INFO | etl_billiards | ODS_REFUND: 开始执行(3/4),窗口[2025-12-30 22:00:00+08:00 ~ 2026-01-29 22:00:00+08:00]\n[2026-02-21 20:08:06] INFO | etl_billiards | ODS_REFUND: 完成(3/4),已处理 90/111.17 天\n[2026-02-21 20:08:06] INFO | etl_billiards | ODS_REFUND: 开始执行(4/4),窗口[2026-01-29 22:00:00+08:00 ~ 2026-02-20 02:00:00+08:00]\n[2026-02-21 20:08:07] INFO | etl_billiards | ODS_REFUND: 完成(4/4),已处理 111.17/111.17 天\n[2026-02-21 20:08:07] INFO | etl_billiards | ODS_REFUND ODS 任务完成: {'fetched': 116, 'inserted': 0, 'updated': 116, 'skipped': 0, 'errors': 0, 'deleted': 0}\n[2026-02-21 20:08:07] INFO | etl_billiards | DWS_BUILD_ORDER_SUMMARY: 开始执行工具类任务\n[2026-02-21 20:08:07] INFO | etl_billiards | DWS_BUILD_ORDER_SUMMARY: 分段执行 共4段\n[2026-02-21 20:08:07] INFO | etl_billiards | DWS_BUILD_ORDER_SUMMARY: 开始执行(1/4), 窗口[2025-10-31 22:00:00+08:00 ~ 2025-11-30 22:00:00+08:00]\n[2026-02-21 20:08:07] INFO | etl_billiards | DWS订单汇总: 删除=4005 语句=DELETE FROM dws.dws_order_summary WHERE 1=1 AND site_id = %s AND order_date >= %s AND order_date <= %s\n[2026-02-21 20:08:07] INFO | etl_billiards | DWS_BUILD_ORDER_SUMMARY: 开始执行(2/4), 窗口[2025-11-30 22:00:00+08:00 ~ 2025-12-30 22:00:00+08:00]\n[2026-02-21 20:08:07] INFO | etl_billiards | DWS订单汇总: 删除=4029 语句=DELETE FROM dws.dws_order_summary WHERE 1=1 AND site_id = %s AND order_date >= %s AND order_date <= %s\n[2026-02-21 20:08:08] INFO | etl_billiards | DWS_BUILD_ORDER_SUMMARY: 开始执行(3/4), 窗口[2025-12-30 22:00:00+08:00 ~ 2026-01-29 22:00:00+08:00]\n[2026-02-21 20:08:08] INFO | etl_billiards | DWS订单汇总: 删除=3602 语句=DELETE FROM dws.dws_order_summary WHERE 1=1 AND site_id = %s AND order_date >= %s AND order_date <= %s\n[2026-02-21 20:08:08] INFO | etl_billiards | DWS_BUILD_ORDER_SUMMARY: 开始执行(4/4), 窗口[2026-01-29 22:00:00+08:00 ~ 2026-02-20 02:00:00+08:00]\n[2026-02-21 20:08:08] INFO | etl_billiards | DWS订单汇总: 删除=1660 语句=DELETE FROM dws.dws_order_summary WHERE 1=1 AND site_id = %s AND order_date >= %s AND order_date <= %s\n[2026-02-21 20:08:08] INFO | etl_billiards | DWS_BUILD_ORDER_SUMMARY: 完成, 统计={'fetched': 0, 'inserted': 13296, 'updated': 0, 'skipped': 0, 'errors': 0}\n[2026-02-21 20:08:08] INFO | etl_billiards | DWS_BUILD_ORDER_SUMMARY: 工具类任务执行成功\n[2026-02-21 20:08:08] INFO | etl_billiards | DWS_BUILD_ORDER_SUMMARY: 结果统计: {'fetched': 0, 'inserted': 13296, 'updated': 0, 'skipped': 0, 'errors': 0}\n[2026-02-21 20:08:09] INFO | etl_billiards | DWS_MEMBER_CONSUMPTION: 抓取阶段开始,目录=C:\\NeoZQYY\\export\\ETL-Connectors\\feiqiu\\JSON\\DWS_MEMBER_CONSUMPTION\\DWS_MEMBER_CONSUMPTION-8854-20260221-200809\n[2026-02-21 20:08:09] INFO | etl_billiards | DWS_MEMBER_CONSUMPTION: 提取数据,统计日期 2026-02-20\n[2026-02-21 20:08:09] INFO | etl_billiards | DWS_MEMBER_CONSUMPTION: 抓取完成,文件=None记录数=0\n[2026-02-21 20:08:09] INFO | etl_billiards | DWS_MEMBER_CONSUMPTION: 本地清洗入库开始,源目录=C:\\NeoZQYY\\export\\ETL-Connectors\\feiqiu\\JSON\\DWS_MEMBER_CONSUMPTION\\DWS_MEMBER_CONSUMPTION-8854-20260221-200809\n[2026-02-21 20:08:09] INFO | etl_billiards | DWS_MEMBER_CONSUMPTION: 窗口拆分为 4 段(共 111.17 天)\n[2026-02-21 20:08:09] INFO | etl_billiards | DWS_MEMBER_CONSUMPTION: 开始执行(1/4),窗口[2025-10-31 22:00:00+08:00 ~ 2025-11-30 22:00:00+08:00]\n[2026-02-21 20:08:09] INFO | etl_billiards | DWS_MEMBER_CONSUMPTION: 提取数据,统计日期 2025-11-30\n[2026-02-21 20:08:09] INFO | etl_billiards | DWS_MEMBER_CONSUMPTION: 转换数据198 条会员消费记录\n[2026-02-21 20:08:19] INFO | etl_billiards | DWS_MEMBER_CONSUMPTION: 完成(1/4),已处理 30/111.17 天\n[2026-02-21 20:08:19] INFO | etl_billiards | DWS_MEMBER_CONSUMPTION: 开始执行(2/4),窗口[2025-11-30 22:00:00+08:00 ~ 2025-12-30 22:00:00+08:00]\n[2026-02-21 20:08:19] INFO | etl_billiards | DWS_MEMBER_CONSUMPTION: 提取数据,统计日期 2025-12-30\n[2026-02-21 20:08:20] INFO | etl_billiards | DWS_MEMBER_CONSUMPTION: 转换数据198 条会员消费记录\n[2026-02-21 20:08:30] INFO | etl_billiards | DWS_MEMBER_CONSUMPTION: 完成(2/4),已处理 60/111.17 天\n[2026-02-21 20:08:30] INFO | etl_billiards | DWS_MEMBER_CONSUMPTION: 开始执行(3/4),窗口[2025-12-30 22:00:00+08:00 ~ 2026-01-29 22:00:00+08:00]\n[2026-02-21 20:08:30] INFO | etl_billiards | DWS_MEMBER_CONSUMPTION: 提取数据,统计日期 2026-01-29\n[2026-02-21 20:08:30] INFO | etl_billiards | DWS_MEMBER_CONSUMPTION: 转换数据198 条会员消费记录\n[2026-02-21 20:08:42] INFO | etl_billiards | DWS_MEMBER_CONSUMPTION: 完成(3/4),已处理 90/111.17 天\n[2026-02-21 20:08:42] INFO | etl_billiards | DWS_MEMBER_CONSUMPTION: 开始执行(4/4),窗口[2026-01-29 22:00:00+08:00 ~ 2026-02-20 02:00:00+08:00]\n[2026-02-21 20:08:42] INFO | etl_billiards | DWS_MEMBER_CONSUMPTION: 提取数据,统计日期 2026-02-20\n[2026-02-21 20:08:42] INFO | etl_billiards | DWS_MEMBER_CONSUMPTION: 转换数据198 条会员消费记录\n[2026-02-21 20:08:52] INFO | etl_billiards | DWS_MEMBER_CONSUMPTION: 完成(4/4),已处理 111.17/111.17 天\n[2026-02-21 20:08:52] INFO | etl_billiards | DWS_MEMBER_CONSUMPTION: 完成,统计={'counts': {'fetched': 198, 'inserted': 198, 'updated': 0, 'skipped': 0, 'errors': 0}, 'extra': {'deleted': 0}}\n[2026-02-21 20:08:53] INFO | etl_billiards | DWS_MEMBER_VISIT: 抓取阶段开始,目录=C:\\NeoZQYY\\export\\ETL-Connectors\\feiqiu\\JSON\\DWS_MEMBER_VISIT\\DWS_MEMBER_VISIT-8855-20260221-200853\n[2026-02-21 20:08:53] INFO | etl_billiards | DWS_MEMBER_VISIT: 提取数据,日期范围 2025-11-01 ~ 2026-02-20\n[2026-02-21 20:08:54] ERROR | etl_billiards | 任务 DWS_MEMBER_VISIT 失败: 错误: 当前事务被终止, 事务块结束之前的查询被忽略\nTraceback (most recent call last):\n File \"C:\\NeoZQYY\\apps\\etl\\connectors\\feiqiu\\orchestration\\task_executor.py\", line 215, in run_single_task\n fetch_stats = self._execute_fetch(task_code, cursor_data, fetch_dir, run_id)\n File \"C:\\NeoZQYY\\apps\\etl\\connectors\\feiqiu\\orchestration\\task_executor.py\", line 289, in _execute_fetch\n extracted = task.extract(context)\n File \"C:\\NeoZQYY\\apps\\etl\\connectors\\feiqiu\\tasks\\dws\\member_visit_task.py\", line 92, in extract\n member_info = self._extract_member_info(site_id)\n File \"C:\\NeoZQYY\\apps\\etl\\connectors\\feiqiu\\tasks\\dws\\member_visit_task.py\", line 317, in _extract_member_info\n rows = self.db.query(sql, (site_id,))\n File \"C:\\NeoZQYY\\apps\\etl\\connectors\\feiqiu\\database\\operations.py\", line 99, in query\n return self._connection.query(sql, args)\n ~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^\n File \"C:\\NeoZQYY\\apps\\etl\\connectors\\feiqiu\\database\\connection.py\", line 50, in query\n c.execute(sql, args)\n ~~~~~~~~~^^^^^^^^^^^\n File \"C:\\NeoZQYY\\.venv\\Lib\\site-packages\\psycopg2\\extras.py\", line 236, in execute\n return super().execute(query, vars)\n ~~~~~~~~~~~~~~~^^^^^^^^^^^^^\npsycopg2.errors.UndefinedColumn: 错误: 字段 \"birthday\" 不存在\nLINE 6: birthday\n ^\n\n\nDuring handling of the above exception, another exception occurred:\n\nTraceback (most recent call last):\n File \"C:\\NeoZQYY\\apps\\etl\\connectors\\feiqiu\\orchestration\\task_executor.py\", line 94, in run_tasks\n task_result = self.run_single_task(\n task_code, run_uuid, store_id, data_source=data_source,\n )\n File \"C:\\NeoZQYY\\apps\\etl\\connectors\\feiqiu\\orchestration\\task_executor.py\", line 255, in run_single_task\n self.run_tracker.update_run(\n ~~~~~~~~~~~~~~~~~~~~~~~~~~~^\n run_id=run_id,\n ^^^^^^^^^^^^^^\n ...<3 lines>...\n error_message=str(exc),\n ^^^^^^^^^^^^^^^^^^^^^^^\n )\n ^\n File \"C:\\NeoZQYY\\apps\\etl\\connectors\\feiqiu\\orchestration\\run_tracker.py\", line 105, in update_run\n self.db.execute(\n ~~~~~~~~~~~~~~~^\n sql,\n ^^^^\n ...<18 lines>...\n ),\n ^^\n )\n ^\n File \"C:\\NeoZQYY\\apps\\etl\\connectors\\feiqiu\\database\\connection.py\", line 56, in execute\n c.execute(sql, args)\n ~~~~~~~~~^^^^^^^^^^^\npsycopg2.errors.InFailedSqlTransaction: 错误: 当前事务被终止, 事务块结束之前的查询被忽略\n\n[2026-02-21 20:08:54] ERROR | etl_billiards | 任务 ODS_GOODS_CATEGORY 失败: 错误: 当前事务被终止, 事务块结束之前的查询被忽略\nTraceback (most recent call last):\n File \"C:\\NeoZQYY\\apps\\etl\\connectors\\feiqiu\\orchestration\\task_executor.py\", line 94, in run_tasks\n task_result = self.run_single_task(\n task_code, run_uuid, store_id, data_source=data_source,\n )\n File \"C:\\NeoZQYY\\apps\\etl\\connectors\\feiqiu\\orchestration\\task_executor.py\", line 152, in run_single_task\n task_cfg = self._load_task_config(task_code, store_id)\n File \"C:\\NeoZQYY\\apps\\etl\\connectors\\feiqiu\\orchestration\\task_executor.py\", line 429, in _load_task_config\n rows = self.db_ops.query(sql, (store_id, task_code))\n File \"C:\\NeoZQYY\\apps\\etl\\connectors\\feiqiu\\database\\operations.py\", line 99, in query\n return self._connection.query(sql, args)\n ~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^\n File \"C:\\NeoZQYY\\apps\\etl\\connectors\\feiqiu\\database\\connection.py\", line 50, in query\n c.execute(sql, args)\n ~~~~~~~~~^^^^^^^^^^^\n File \"C:\\NeoZQYY\\.venv\\Lib\\site-packages\\psycopg2\\extras.py\", line 236, in execute\n return super().execute(query, vars)\n ~~~~~~~~~~~~~~~^^^^^^^^^^^^^\npsycopg2.errors.InFailedSqlTransaction: 错误: 当前事务被终止, 事务块结束之前的查询被忽略\n\n[2026-02-21 20:08:54] ERROR | etl_billiards | 任务 ODS_STORE_GOODS 失败: 错误: 当前事务被终止, 事务块结束之前的查询被忽略\nTraceback (most recent call last):\n File \"C:\\NeoZQYY\\apps\\etl\\connectors\\feiqiu\\orchestration\\task_executor.py\", line 94, in run_tasks\n task_result = self.run_single_task(\n task_code, run_uuid, store_id, data_source=data_source,\n )\n File \"C:\\NeoZQYY\\apps\\etl\\connectors\\feiqiu\\orchestration\\task_executor.py\", line 152, in run_single_task\n task_cfg = self._load_task_config(task_code, store_id)\n File \"C:\\NeoZQYY\\apps\\etl\\connectors\\feiqiu\\orchestration\\task_executor.py\", line 429, in _load_task_config\n rows = self.db_ops.query(sql, (store_id, task_code))\n File \"C:\\NeoZQYY\\apps\\etl\\connectors\\feiqiu\\database\\operations.py\", line 99, in query\n return self._connection.query(sql, args)\n ~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^\n File \"C:\\NeoZQYY\\apps\\etl\\connectors\\feiqiu\\database\\connection.py\", line 50, in query\n c.execute(sql, args)\n ~~~~~~~~~^^^^^^^^^^^\n File \"C:\\NeoZQYY\\.venv\\Lib\\site-packages\\psycopg2\\extras.py\", line 236, in execute\n return super().execute(query, vars)\n ~~~~~~~~~~~~~~~^^^^^^^^^^^^^\npsycopg2.errors.InFailedSqlTransaction: 错误: 当前事务被终止, 事务块结束之前的查询被忽略\n\n[2026-02-21 20:08:54] ERROR | etl_billiards | 任务 ODS_STORE_GOODS_SALES 失败: 错误: 当前事务被终止, 事务块结束之前的查询被忽略\nTraceback (most recent call last):\n File \"C:\\NeoZQYY\\apps\\etl\\connectors\\feiqiu\\orchestration\\task_executor.py\", line 94, in run_tasks\n task_result = self.run_single_task(\n task_code, run_uuid, store_id, data_source=data_source,\n )\n File \"C:\\NeoZQYY\\apps\\etl\\connectors\\feiqiu\\orchestration\\task_executor.py\", line 152, in run_single_task\n task_cfg = self._load_task_config(task_code, store_id)\n File \"C:\\NeoZQYY\\apps\\etl\\connectors\\feiqiu\\orchestration\\task_executor.py\", line 429, in _load_task_config\n rows = self.db_ops.query(sql, (store_id, task_code))\n File \"C:\\NeoZQYY\\apps\\etl\\connectors\\feiqiu\\database\\operations.py\", line 99, in query\n return self._connection.query(sql, args)\n ~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^\n File \"C:\\NeoZQYY\\apps\\etl\\connectors\\feiqiu\\database\\connection.py\", line 50, in query\n c.execute(sql, args)\n ~~~~~~~~~^^^^^^^^^^^\n File \"C:\\NeoZQYY\\.venv\\Lib\\site-packages\\psycopg2\\extras.py\", line 236, in execute\n return super().execute(query, vars)\n ~~~~~~~~~~~~~~~^^^^^^^^^^^^^\npsycopg2.errors.InFailedSqlTransaction: 错误: 当前事务被终止, 事务块结束之前的查询被忽略\n\n[2026-02-21 20:08:54] ERROR | etl_billiards | 任务 ODS_TENANT_GOODS 失败: 错误: 当前事务被终止, 事务块结束之前的查询被忽略\nTraceback (most recent call last):\n File \"C:\\NeoZQYY\\apps\\etl\\connectors\\feiqiu\\orchestration\\task_executor.py\", line 94, in run_tasks\n task_result = self.run_single_task(\n task_code, run_uuid, store_id, data_source=data_source,\n )\n File \"C:\\NeoZQYY\\apps\\etl\\connectors\\feiqiu\\orchestration\\task_executor.py\", line 152, in run_single_task\n task_cfg = self._load_task_config(task_code, store_id)\n File \"C:\\NeoZQYY\\apps\\etl\\connectors\\feiqiu\\orchestration\\task_executor.py\", line 429, in _load_task_config\n rows = self.db_ops.query(sql, (store_id, task_code))\n File \"C:\\NeoZQYY\\apps\\etl\\connectors\\feiqiu\\database\\operations.py\", line 99, in query\n return self._connection.query(sql, args)\n ~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^\n File \"C:\\NeoZQYY\\apps\\etl\\connectors\\feiqiu\\database\\connection.py\", line 50, in query\n c.execute(sql, args)\n ~~~~~~~~~^^^^^^^^^^^\n File \"C:\\NeoZQYY\\.venv\\Lib\\site-packages\\psycopg2\\extras.py\", line 236, in execute\n return super().execute(query, vars)\n ~~~~~~~~~~~~~~~^^^^^^^^^^^^^\npsycopg2.errors.InFailedSqlTransaction: 错误: 当前事务被终止, 事务块结束之前的查询被忽略\n\n[2026-02-21 20:08:54] ERROR | etl_billiards | 任务 ODS_PLATFORM_COUPON 失败: 错误: 当前事务被终止, 事务块结束之前的查询被忽略\nTraceback (most recent call last):\n File \"C:\\NeoZQYY\\apps\\etl\\connectors\\feiqiu\\orchestration\\task_executor.py\", line 94, in run_tasks\n task_result = self.run_single_task(\n task_code, run_uuid, store_id, data_source=data_source,\n )\n File \"C:\\NeoZQYY\\apps\\etl\\connectors\\feiqiu\\orchestration\\task_executor.py\", line 152, in run_single_task\n task_cfg = self._load_task_config(task_code, store_id)\n File \"C:\\NeoZQYY\\apps\\etl\\connectors\\feiqiu\\orchestration\\task_executor.py\", line 429, in _load_task_config\n rows = self.db_ops.query(sql, (store_id, task_code))\n File \"C:\\NeoZQYY\\apps\\etl\\connectors\\feiqiu\\database\\operations.py\", line 99, in query\n return self._connection.query(sql, args)\n ~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^\n File \"C:\\NeoZQYY\\apps\\etl\\connectors\\feiqiu\\database\\connection.py\", line 50, in query\n c.execute(sql, args)\n ~~~~~~~~~^^^^^^^^^^^\n File \"C:\\NeoZQYY\\.venv\\Lib\\site-packages\\psycopg2\\extras.py\", line 236, in execute\n return super().execute(query, vars)\n ~~~~~~~~~~~~~~~^^^^^^^^^^^^^\npsycopg2.errors.InFailedSqlTransaction: 错误: 当前事务被终止, 事务块结束之前的查询被忽略\n\n[2026-02-21 20:08:54] ERROR | etl_billiards | 任务 ODS_GROUP_PACKAGE 失败: 错误: 当前事务被终止, 事务块结束之前的查询被忽略\nTraceback (most recent call last):\n File \"C:\\NeoZQYY\\apps\\etl\\connectors\\feiqiu\\orchestration\\task_executor.py\", line 94, in run_tasks\n task_result = self.run_single_task(\n task_code, run_uuid, store_id, data_source=data_source,\n )\n File \"C:\\NeoZQYY\\apps\\etl\\connectors\\feiqiu\\orchestration\\task_executor.py\", line 152, in run_single_task\n task_cfg = self._load_task_config(task_code, store_id)\n File \"C:\\NeoZQYY\\apps\\etl\\connectors\\feiqiu\\orchestration\\task_executor.py\", line 429, in _load_task_config\n rows = self.db_ops.query(sql, (store_id, task_code))\n File \"C:\\NeoZQYY\\apps\\etl\\connectors\\feiqiu\\database\\operations.py\", line 99, in query\n return self._connection.query(sql, args)\n ~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^\n File \"C:\\NeoZQYY\\apps\\etl\\connectors\\feiqiu\\database\\connection.py\", line 50, in query\n c.execute(sql, args)\n ~~~~~~~~~^^^^^^^^^^^\n File \"C:\\NeoZQYY\\.venv\\Lib\\site-packages\\psycopg2\\extras.py\", line 236, in execute\n return super().execute(query, vars)\n ~~~~~~~~~~~~~~~^^^^^^^^^^^^^\npsycopg2.errors.InFailedSqlTransaction: 错误: 当前事务被终止, 事务块结束之前的查询被忽略\n\n[2026-02-21 20:08:54] ERROR | etl_billiards | 任务 ODS_GROUP_BUY_REDEMPTION 失败: 错误: 当前事务被终止, 事务块结束之前的查询被忽略\nTraceback (most recent call last):\n File \"C:\\NeoZQYY\\apps\\etl\\connectors\\feiqiu\\orchestration\\task_executor.py\", line 94, in run_tasks\n task_result = self.run_single_task(\n task_code, run_uuid, store_id, data_source=data_source,\n )\n File \"C:\\NeoZQYY\\apps\\etl\\connectors\\feiqiu\\orchestration\\task_executor.py\", line 152, in run_single_task\n task_cfg = self._load_task_config(task_code, store_id)\n File \"C:\\NeoZQYY\\apps\\etl\\connectors\\feiqiu\\orchestration\\task_executor.py\", line 429, in _load_task_config\n rows = self.db_ops.query(sql, (store_id, task_code))\n File \"C:\\NeoZQYY\\apps\\etl\\connectors\\feiqiu\\database\\operations.py\", line 99, in query\n return self._connection.query(sql, args)\n ~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^\n File \"C:\\NeoZQYY\\apps\\etl\\connectors\\feiqiu\\database\\connection.py\", line 50, in query\n c.execute(sql, args)\n ~~~~~~~~~^^^^^^^^^^^\n File \"C:\\NeoZQYY\\.venv\\Lib\\site-packages\\psycopg2\\extras.py\", line 236, in execute\n return super().execute(query, vars)\n ~~~~~~~~~~~~~~~^^^^^^^^^^^^^\npsycopg2.errors.InFailedSqlTransaction: 错误: 当前事务被终止, 事务块结束之前的查询被忽略\n\n[2026-02-21 20:08:54] ERROR | etl_billiards | 任务 ODS_INVENTORY_STOCK 失败: 错误: 当前事务被终止, 事务块结束之前的查询被忽略\nTraceback (most recent call last):\n File \"C:\\NeoZQYY\\apps\\etl\\connectors\\feiqiu\\orchestration\\task_executor.py\", line 94, in run_tasks\n task_result = self.run_single_task(\n task_code, run_uuid, store_id, data_source=data_source,\n )\n File \"C:\\NeoZQYY\\apps\\etl\\connectors\\feiqiu\\orchestration\\task_executor.py\", line 152, in run_single_task\n task_cfg = self._load_task_config(task_code, store_id)\n File \"C:\\NeoZQYY\\apps\\etl\\connectors\\feiqiu\\orchestration\\task_executor.py\", line 429, in _load_task_config\n rows = self.db_ops.query(sql, (store_id, task_code))\n File \"C:\\NeoZQYY\\apps\\etl\\connectors\\feiqiu\\database\\operations.py\", line 99, in query\n return self._connection.query(sql, args)\n ~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^\n File \"C:\\NeoZQYY\\apps\\etl\\connectors\\feiqiu\\database\\connection.py\", line 50, in query\n c.execute(sql, args)\n ~~~~~~~~~^^^^^^^^^^^\n File \"C:\\NeoZQYY\\.venv\\Lib\\site-packages\\psycopg2\\extras.py\", line 236, in execute\n return super().execute(query, vars)\n ~~~~~~~~~~~~~~~^^^^^^^^^^^^^\npsycopg2.errors.InFailedSqlTransaction: 错误: 当前事务被终止, 事务块结束之前的查询被忽略\n\n[2026-02-21 20:08:54] ERROR | etl_billiards | 任务 ODS_INVENTORY_CHANGE 失败: 错误: 当前事务被终止, 事务块结束之前的查询被忽略\nTraceback (most recent call last):\n File \"C:\\NeoZQYY\\apps\\etl\\connectors\\feiqiu\\orchestration\\task_executor.py\", line 94, in run_tasks\n task_result = self.run_single_task(\n task_code, run_uuid, store_id, data_source=data_source,\n )\n File \"C:\\NeoZQYY\\apps\\etl\\connectors\\feiqiu\\orchestration\\task_executor.py\", line 152, in run_single_task\n task_cfg = self._load_task_config(task_code, store_id)\n File \"C:\\NeoZQYY\\apps\\etl\\connectors\\feiqiu\\orchestration\\task_executor.py\", line 429, in _load_task_config\n rows = self.db_ops.query(sql, (store_id, task_code))\n File \"C:\\NeoZQYY\\apps\\etl\\connectors\\feiqiu\\database\\operations.py\", line 99, in query\n return self._connection.query(sql, args)\n ~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^\n File \"C:\\NeoZQYY\\apps\\etl\\connectors\\feiqiu\\database\\connection.py\", line 50, in query\n c.execute(sql, args)\n ~~~~~~~~~^^^^^^^^^^^\n File \"C:\\NeoZQYY\\.venv\\Lib\\site-packages\\psycopg2\\extras.py\", line 236, in execute\n return super().execute(query, vars)\n ~~~~~~~~~~~~~~~^^^^^^^^^^^^^\npsycopg2.errors.InFailedSqlTransaction: 错误: 当前事务被终止, 事务块结束之前的查询被忽略\n\n[2026-02-21 20:08:54] ERROR | etl_billiards | 任务 DWS_GOODS_STOCK_DAILY 失败: 错误: 当前事务被终止, 事务块结束之前的查询被忽略\nTraceback (most recent call last):\n File \"C:\\NeoZQYY\\apps\\etl\\connectors\\feiqiu\\orchestration\\task_executor.py\", line 94, in run_tasks\n task_result = self.run_single_task(\n task_code, run_uuid, store_id, data_source=data_source,\n )\n File \"C:\\NeoZQYY\\apps\\etl\\connectors\\feiqiu\\orchestration\\task_executor.py\", line 152, in run_single_task\n task_cfg = self._load_task_config(task_code, store_id)\n File \"C:\\NeoZQYY\\apps\\etl\\connectors\\feiqiu\\orchestration\\task_executor.py\", line 429, in _load_task_config\n rows = self.db_ops.query(sql, (store_id, task_code))\n File \"C:\\NeoZQYY\\apps\\etl\\connectors\\feiqiu\\database\\operations.py\", line 99, in query\n return self._connection.query(sql, args)\n ~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^\n File \"C:\\NeoZQYY\\apps\\etl\\connectors\\feiqiu\\database\\connection.py\", line 50, in query\n c.execute(sql, args)\n ~~~~~~~~~^^^^^^^^^^^\n File \"C:\\NeoZQYY\\.venv\\Lib\\site-packages\\psycopg2\\extras.py\", line 236, in execute\n return super().execute(query, vars)\n ~~~~~~~~~~~~~~~^^^^^^^^^^^^^\npsycopg2.errors.InFailedSqlTransaction: 错误: 当前事务被终止, 事务块结束之前的查询被忽略\n\n[2026-02-21 20:08:54] ERROR | etl_billiards | 任务 DWS_GOODS_STOCK_WEEKLY 失败: 错误: 当前事务被终止, 事务块结束之前的查询被忽略\nTraceback (most recent call last):\n File \"C:\\NeoZQYY\\apps\\etl\\connectors\\feiqiu\\orchestration\\task_executor.py\", line 94, in run_tasks\n task_result = self.run_single_task(\n task_code, run_uuid, store_id, data_source=data_source,\n )\n File \"C:\\NeoZQYY\\apps\\etl\\connectors\\feiqiu\\orchestration\\task_executor.py\", line 152, in run_single_task\n task_cfg = self._load_task_config(task_code, store_id)\n File \"C:\\NeoZQYY\\apps\\etl\\connectors\\feiqiu\\orchestration\\task_executor.py\", line 429, in _load_task_config\n rows = self.db_ops.query(sql, (store_id, task_code))\n File \"C:\\NeoZQYY\\apps\\etl\\connectors\\feiqiu\\database\\operations.py\", line 99, in query\n return self._connection.query(sql, args)\n ~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^\n File \"C:\\NeoZQYY\\apps\\etl\\connectors\\feiqiu\\database\\connection.py\", line 50, in query\n c.execute(sql, args)\n ~~~~~~~~~^^^^^^^^^^^\n File \"C:\\NeoZQYY\\.venv\\Lib\\site-packages\\psycopg2\\extras.py\", line 236, in execute\n return super().execute(query, vars)\n ~~~~~~~~~~~~~~~^^^^^^^^^^^^^\npsycopg2.errors.InFailedSqlTransaction: 错误: 当前事务被终止, 事务块结束之前的查询被忽略\n\n[2026-02-21 20:08:54] ERROR | etl_billiards | 任务 DWS_GOODS_STOCK_MONTHLY 失败: 错误: 当前事务被终止, 事务块结束之前的查询被忽略\nTraceback (most recent call last):\n File \"C:\\NeoZQYY\\apps\\etl\\connectors\\feiqiu\\orchestration\\task_executor.py\", line 94, in run_tasks\n task_result = self.run_single_task(\n task_code, run_uuid, store_id, data_source=data_source,\n )\n File \"C:\\NeoZQYY\\apps\\etl\\connectors\\feiqiu\\orchestration\\task_executor.py\", line 152, in run_single_task\n task_cfg = self._load_task_config(task_code, store_id)\n File \"C:\\NeoZQYY\\apps\\etl\\connectors\\feiqiu\\orchestration\\task_executor.py\", line 429, in _load_task_config\n rows = self.db_ops.query(sql, (store_id, task_code))\n File \"C:\\NeoZQYY\\apps\\etl\\connectors\\feiqiu\\database\\operations.py\", line 99, in query\n return self._connection.query(sql, args)\n ~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^\n File \"C:\\NeoZQYY\\apps\\etl\\connectors\\feiqiu\\database\\connection.py\", line 50, in query\n c.execute(sql, args)\n ~~~~~~~~~^^^^^^^^^^^\n File \"C:\\NeoZQYY\\.venv\\Lib\\site-packages\\psycopg2\\extras.py\", line 236, in execute\n return super().execute(query, vars)\n ~~~~~~~~~~~~~~~^^^^^^^^^^^^^\npsycopg2.errors.InFailedSqlTransaction: 错误: 当前事务被终止, 事务块结束之前的查询被忽略\n\n[2026-02-21 20:08:55] ERROR | etl_billiards | 任务 DWS_FINANCE_DAILY 失败: 错误: 当前事务被终止, 事务块结束之前的查询被忽略\nTraceback (most recent call last):\n File \"C:\\NeoZQYY\\apps\\etl\\connectors\\feiqiu\\orchestration\\task_executor.py\", line 94, in run_tasks\n task_result = self.run_single_task(\n task_code, run_uuid, store_id, data_source=data_source,\n )\n File \"C:\\NeoZQYY\\apps\\etl\\connectors\\feiqiu\\orchestration\\task_executor.py\", line 152, in run_single_task\n task_cfg = self._load_task_config(task_code, store_id)\n File \"C:\\NeoZQYY\\apps\\etl\\connectors\\feiqiu\\orchestration\\task_executor.py\", line 429, in _load_task_config\n rows = self.db_ops.query(sql, (store_id, task_code))\n File \"C:\\NeoZQYY\\apps\\etl\\connectors\\feiqiu\\database\\operations.py\", line 99, in query\n return self._connection.query(sql, args)\n ~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^\n File \"C:\\NeoZQYY\\apps\\etl\\connectors\\feiqiu\\database\\connection.py\", line 50, in query\n c.execute(sql, args)\n ~~~~~~~~~^^^^^^^^^^^\n File \"C:\\NeoZQYY\\.venv\\Lib\\site-packages\\psycopg2\\extras.py\", line 236, in execute\n return super().execute(query, vars)\n ~~~~~~~~~~~~~~~^^^^^^^^^^^^^\npsycopg2.errors.InFailedSqlTransaction: 错误: 当前事务被终止, 事务块结束之前的查询被忽略\n\n[2026-02-21 20:08:55] ERROR | etl_billiards | 任务 DWS_FINANCE_RECHARGE 失败: 错误: 当前事务被终止, 事务块结束之前的查询被忽略\nTraceback (most recent call last):\n File \"C:\\NeoZQYY\\apps\\etl\\connectors\\feiqiu\\orchestration\\task_executor.py\", line 94, in run_tasks\n task_result = self.run_single_task(\n task_code, run_uuid, store_id, data_source=data_source,\n )\n File \"C:\\NeoZQYY\\apps\\etl\\connectors\\feiqiu\\orchestration\\task_executor.py\", line 152, in run_single_task\n task_cfg = self._load_task_config(task_code, store_id)\n File \"C:\\NeoZQYY\\apps\\etl\\connectors\\feiqiu\\orchestration\\task_executor.py\", line 429, in _load_task_config\n rows = self.db_ops.query(sql, (store_id, task_code))\n File \"C:\\NeoZQYY\\apps\\etl\\connectors\\feiqiu\\database\\operations.py\", line 99, in query\n return self._connection.query(sql, args)\n ~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^\n File \"C:\\NeoZQYY\\apps\\etl\\connectors\\feiqiu\\database\\connection.py\", line 50, in query\n c.execute(sql, args)\n ~~~~~~~~~^^^^^^^^^^^\n File \"C:\\NeoZQYY\\.venv\\Lib\\site-packages\\psycopg2\\extras.py\", line 236, in execute\n return super().execute(query, vars)\n ~~~~~~~~~~~~~~~^^^^^^^^^^^^^\npsycopg2.errors.InFailedSqlTransaction: 错误: 当前事务被终止, 事务块结束之前的查询被忽略\n\n[2026-02-21 20:08:55] ERROR | etl_billiards | 任务 DWS_FINANCE_INCOME_STRUCTURE 失败: 错误: 当前事务被终止, 事务块结束之前的查询被忽略\nTraceback (most recent call last):\n File \"C:\\NeoZQYY\\apps\\etl\\connectors\\feiqiu\\orchestration\\task_executor.py\", line 94, in run_tasks\n task_result = self.run_single_task(\n task_code, run_uuid, store_id, data_source=data_source,\n )\n File \"C:\\NeoZQYY\\apps\\etl\\connectors\\feiqiu\\orchestration\\task_executor.py\", line 152, in run_single_task\n task_cfg = self._load_task_config(task_code, store_id)\n File \"C:\\NeoZQYY\\apps\\etl\\connectors\\feiqiu\\orchestration\\task_executor.py\", line 429, in _load_task_config\n rows = self.db_ops.query(sql, (store_id, task_code))\n File \"C:\\NeoZQYY\\apps\\etl\\connectors\\feiqiu\\database\\operations.py\", line 99, in query\n return self._connection.query(sql, args)\n ~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^\n File \"C:\\NeoZQYY\\apps\\etl\\connectors\\feiqiu\\database\\connection.py\", line 50, in query\n c.execute(sql, args)\n ~~~~~~~~~^^^^^^^^^^^\n File \"C:\\NeoZQYY\\.venv\\Lib\\site-packages\\psycopg2\\extras.py\", line 236, in execute\n return super().execute(query, vars)\n ~~~~~~~~~~~~~~~^^^^^^^^^^^^^\npsycopg2.errors.InFailedSqlTransaction: 错误: 当前事务被终止, 事务块结束之前的查询被忽略\n\n[2026-02-21 20:08:55] ERROR | etl_billiards | 任务 DWS_FINANCE_DISCOUNT_DETAIL 失败: 错误: 当前事务被终止, 事务块结束之前的查询被忽略\nTraceback (most recent call last):\n File \"C:\\NeoZQYY\\apps\\etl\\connectors\\feiqiu\\orchestration\\task_executor.py\", line 94, in run_tasks\n task_result = self.run_single_task(\n task_code, run_uuid, store_id, data_source=data_source,\n )\n File \"C:\\NeoZQYY\\apps\\etl\\connectors\\feiqiu\\orchestration\\task_executor.py\", line 152, in run_single_task\n task_cfg = self._load_task_config(task_code, store_id)\n File \"C:\\NeoZQYY\\apps\\etl\\connectors\\feiqiu\\orchestration\\task_executor.py\", line 429, in _load_task_config\n rows = self.db_ops.query(sql, (store_id, task_code))\n File \"C:\\NeoZQYY\\apps\\etl\\connectors\\feiqiu\\database\\operations.py\", line 99, in query\n return self._connection.query(sql, args)\n ~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^\n File \"C:\\NeoZQYY\\apps\\etl\\connectors\\feiqiu\\database\\connection.py\", line 50, in query\n c.execute(sql, args)\n ~~~~~~~~~^^^^^^^^^^^\n File \"C:\\NeoZQYY\\.venv\\Lib\\site-packages\\psycopg2\\extras.py\", line 236, in execute\n return super().execute(query, vars)\n ~~~~~~~~~~~~~~~^^^^^^^^^^^^^\npsycopg2.errors.InFailedSqlTransaction: 错误: 当前事务被终止, 事务块结束之前的查询被忽略\n\n[2026-02-21 20:08:55] INFO | etl_billiards | DWS_WINBACK_INDEX: 开始执行工具类任务\n[2026-02-21 20:08:55] INFO | etl_billiards | 开始计算 DWS_WINBACK_INDEX\n[2026-02-21 20:08:55] ERROR | etl_billiards | DWS_WINBACK_INDEX: 工具类任务执行失败: 错误: 当前事务被终止, 事务块结束之前的查询被忽略\nTraceback (most recent call last):\n File \"C:\\NeoZQYY\\apps\\etl\\connectors\\feiqiu\\orchestration\\task_executor.py\", line 403, in _run_utility_task\n result = task.execute(None)\n File \"C:\\NeoZQYY\\apps\\etl\\connectors\\feiqiu\\tasks\\dws\\index\\member_index_base.py\", line 84, in execute\n tenant_id = self._get_tenant_id()\n File \"C:\\NeoZQYY\\apps\\etl\\connectors\\feiqiu\\tasks\\dws\\index\\member_index_base.py\", line 169, in _get_tenant_id\n rows = self.db.query(sql)\n File \"C:\\NeoZQYY\\apps\\etl\\connectors\\feiqiu\\database\\operations.py\", line 99, in query\n return self._connection.query(sql, args)\n ~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^\n File \"C:\\NeoZQYY\\apps\\etl\\connectors\\feiqiu\\database\\connection.py\", line 50, in query\n c.execute(sql, args)\n ~~~~~~~~~^^^^^^^^^^^\n File \"C:\\NeoZQYY\\.venv\\Lib\\site-packages\\psycopg2\\extras.py\", line 236, in execute\n return super().execute(query, vars)\n ~~~~~~~~~~~~~~~^^^^^^^^^^^^^\npsycopg2.errors.InFailedSqlTransaction: 错误: 当前事务被终止, 事务块结束之前的查询被忽略\n\n[2026-02-21 20:08:55] ERROR | etl_billiards | 任务 DWS_WINBACK_INDEX 失败: 错误: 当前事务被终止, 事务块结束之前的查询被忽略\nTraceback (most recent call last):\n File \"C:\\NeoZQYY\\apps\\etl\\connectors\\feiqiu\\orchestration\\task_executor.py\", line 94, in run_tasks\n task_result = self.run_single_task(\n task_code, run_uuid, store_id, data_source=data_source,\n )\n File \"C:\\NeoZQYY\\apps\\etl\\connectors\\feiqiu\\orchestration\\task_executor.py\", line 150, in run_single_task\n return self._run_utility_task(task_code_upper, store_id)\n ~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^\n File \"C:\\NeoZQYY\\apps\\etl\\connectors\\feiqiu\\orchestration\\task_executor.py\", line 403, in _run_utility_task\n result = task.execute(None)\n File \"C:\\NeoZQYY\\apps\\etl\\connectors\\feiqiu\\tasks\\dws\\index\\member_index_base.py\", line 84, in execute\n tenant_id = self._get_tenant_id()\n File \"C:\\NeoZQYY\\apps\\etl\\connectors\\feiqiu\\tasks\\dws\\index\\member_index_base.py\", line 169, in _get_tenant_id\n rows = self.db.query(sql)\n File \"C:\\NeoZQYY\\apps\\etl\\connectors\\feiqiu\\database\\operations.py\", line 99, in query\n return self._connection.query(sql, args)\n ~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^\n File \"C:\\NeoZQYY\\apps\\etl\\connectors\\feiqiu\\database\\connection.py\", line 50, in query\n c.execute(sql, args)\n ~~~~~~~~~^^^^^^^^^^^\n File \"C:\\NeoZQYY\\.venv\\Lib\\site-packages\\psycopg2\\extras.py\", line 236, in execute\n return super().execute(query, vars)\n ~~~~~~~~~~~~~~~^^^^^^^^^^^^^\npsycopg2.errors.InFailedSqlTransaction: 错误: 当前事务被终止, 事务块结束之前的查询被忽略\n\n[2026-02-21 20:08:55] INFO | etl_billiards | DWS_NEWCONV_INDEX: 开始执行工具类任务\n[2026-02-21 20:08:55] INFO | etl_billiards | 开始计算 DWS_NEWCONV_INDEX\n[2026-02-21 20:08:55] ERROR | etl_billiards | DWS_NEWCONV_INDEX: 工具类任务执行失败: 错误: 当前事务被终止, 事务块结束之前的查询被忽略\nTraceback (most recent call last):\n File \"C:\\NeoZQYY\\apps\\etl\\connectors\\feiqiu\\orchestration\\task_executor.py\", line 403, in _run_utility_task\n result = task.execute(None)\n File \"C:\\NeoZQYY\\apps\\etl\\connectors\\feiqiu\\tasks\\dws\\index\\member_index_base.py\", line 84, in execute\n tenant_id = self._get_tenant_id()\n File \"C:\\NeoZQYY\\apps\\etl\\connectors\\feiqiu\\tasks\\dws\\index\\member_index_base.py\", line 169, in _get_tenant_id\n rows = self.db.query(sql)\n File \"C:\\NeoZQYY\\apps\\etl\\connectors\\feiqiu\\database\\operations.py\", line 99, in query\n return self._connection.query(sql, args)\n ~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^\n File \"C:\\NeoZQYY\\apps\\etl\\connectors\\feiqiu\\database\\connection.py\", line 50, in query\n c.execute(sql, args)\n ~~~~~~~~~^^^^^^^^^^^\n File \"C:\\NeoZQYY\\.venv\\Lib\\site-packages\\psycopg2\\extras.py\", line 236, in execute\n return super().execute(query, vars)\n ~~~~~~~~~~~~~~~^^^^^^^^^^^^^\npsycopg2.errors.InFailedSqlTransaction: 错误: 当前事务被终止, 事务块结束之前的查询被忽略\n\n[2026-02-21 20:08:55] ERROR | etl_billiards | 任务 DWS_NEWCONV_INDEX 失败: 错误: 当前事务被终止, 事务块结束之前的查询被忽略\nTraceback (most recent call last):\n File \"C:\\NeoZQYY\\apps\\etl\\connectors\\feiqiu\\orchestration\\task_executor.py\", line 94, in run_tasks\n task_result = self.run_single_task(\n task_code, run_uuid, store_id, data_source=data_source,\n )\n File \"C:\\NeoZQYY\\apps\\etl\\connectors\\feiqiu\\orchestration\\task_executor.py\", line 150, in run_single_task\n return self._run_utility_task(task_code_upper, store_id)\n ~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^\n File \"C:\\NeoZQYY\\apps\\etl\\connectors\\feiqiu\\orchestration\\task_executor.py\", line 403, in _run_utility_task\n result = task.execute(None)\n File \"C:\\NeoZQYY\\apps\\etl\\connectors\\feiqiu\\tasks\\dws\\index\\member_index_base.py\", line 84, in execute\n tenant_id = self._get_tenant_id()\n File \"C:\\NeoZQYY\\apps\\etl\\connectors\\feiqiu\\tasks\\dws\\index\\member_index_base.py\", line 169, in _get_tenant_id\n rows = self.db.query(sql)\n File \"C:\\NeoZQYY\\apps\\etl\\connectors\\feiqiu\\database\\operations.py\", line 99, in query\n return self._connection.query(sql, args)\n ~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^\n File \"C:\\NeoZQYY\\apps\\etl\\connectors\\feiqiu\\database\\connection.py\", line 50, in query\n c.execute(sql, args)\n ~~~~~~~~~^^^^^^^^^^^\n File \"C:\\NeoZQYY\\.venv\\Lib\\site-packages\\psycopg2\\extras.py\", line 236, in execute\n return super().execute(query, vars)\n ~~~~~~~~~~~~~~~^^^^^^^^^^^^^\npsycopg2.errors.InFailedSqlTransaction: 错误: 当前事务被终止, 事务块结束之前的查询被忽略\n\n[2026-02-21 20:08:55] INFO | etl_billiards | DWS_RELATION_INDEX: 开始执行工具类任务\n[2026-02-21 20:08:55] INFO | etl_billiards | 开始计算关系指数RS/OS/MS/ML\n[2026-02-21 20:08:55] ERROR | etl_billiards | DWS_RELATION_INDEX: 工具类任务执行失败: 错误: 当前事务被终止, 事务块结束之前的查询被忽略\nTraceback (most recent call last):\n File \"C:\\NeoZQYY\\apps\\etl\\connectors\\feiqiu\\orchestration\\task_executor.py\", line 403, in _run_utility_task\n result = task.execute(None)\n File \"C:\\NeoZQYY\\apps\\etl\\connectors\\feiqiu\\tasks\\dws\\index\\relation_index_task.py\", line 145, in execute\n tenant_id = self._get_tenant_id()\n File \"C:\\NeoZQYY\\apps\\etl\\connectors\\feiqiu\\tasks\\dws\\index\\relation_index_task.py\", line 688, in _get_tenant_id\n rows = self.db.query(sql)\n File \"C:\\NeoZQYY\\apps\\etl\\connectors\\feiqiu\\database\\operations.py\", line 99, in query\n return self._connection.query(sql, args)\n ~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^\n File \"C:\\NeoZQYY\\apps\\etl\\connectors\\feiqiu\\database\\connection.py\", line 50, in query\n c.execute(sql, args)\n ~~~~~~~~~^^^^^^^^^^^\n File \"C:\\NeoZQYY\\.venv\\Lib\\site-packages\\psycopg2\\extras.py\", line 236, in execute\n return super().execute(query, vars)\n ~~~~~~~~~~~~~~~^^^^^^^^^^^^^\npsycopg2.errors.InFailedSqlTransaction: 错误: 当前事务被终止, 事务块结束之前的查询被忽略\n\n[2026-02-21 20:08:55] ERROR | etl_billiards | 任务 DWS_RELATION_INDEX 失败: 错误: 当前事务被终止, 事务块结束之前的查询被忽略\nTraceback (most recent call last):\n File \"C:\\NeoZQYY\\apps\\etl\\connectors\\feiqiu\\orchestration\\task_executor.py\", line 94, in run_tasks\n task_result = self.run_single_task(\n task_code, run_uuid, store_id, data_source=data_source,\n )\n File \"C:\\NeoZQYY\\apps\\etl\\connectors\\feiqiu\\orchestration\\task_executor.py\", line 150, in run_single_task\n return self._run_utility_task(task_code_upper, store_id)\n ~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^\n File \"C:\\NeoZQYY\\apps\\etl\\connectors\\feiqiu\\orchestration\\task_executor.py\", line 403, in _run_utility_task\n result = task.execute(None)\n File \"C:\\NeoZQYY\\apps\\etl\\connectors\\feiqiu\\tasks\\dws\\index\\relation_index_task.py\", line 145, in execute\n tenant_id = self._get_tenant_id()\n File \"C:\\NeoZQYY\\apps\\etl\\connectors\\feiqiu\\tasks\\dws\\index\\relation_index_task.py\", line 688, in _get_tenant_id\n rows = self.db.query(sql)\n File \"C:\\NeoZQYY\\apps\\etl\\connectors\\feiqiu\\database\\operations.py\", line 99, in query\n return self._connection.query(sql, args)\n ~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^\n File \"C:\\NeoZQYY\\apps\\etl\\connectors\\feiqiu\\database\\connection.py\", line 50, in query\n c.execute(sql, args)\n ~~~~~~~~~^^^^^^^^^^^\n File \"C:\\NeoZQYY\\.venv\\Lib\\site-packages\\psycopg2\\extras.py\", line 236, in execute\n return super().execute(query, vars)\n ~~~~~~~~~~~~~~~^^^^^^^^^^^^^\npsycopg2.errors.InFailedSqlTransaction: 错误: 当前事务被终止, 事务块结束之前的查询被忽略\n\n[2026-02-21 20:08:55] ERROR | etl_billiards | 任务 DWD_LOAD_FROM_ODS 失败: 错误: 当前事务被终止, 事务块结束之前的查询被忽略\nTraceback (most recent call last):\n File \"C:\\NeoZQYY\\apps\\etl\\connectors\\feiqiu\\orchestration\\task_executor.py\", line 94, in run_tasks\n task_result = self.run_single_task(\n task_code, run_uuid, store_id, data_source=data_source,\n )\n File \"C:\\NeoZQYY\\apps\\etl\\connectors\\feiqiu\\orchestration\\task_executor.py\", line 152, in run_single_task\n task_cfg = self._load_task_config(task_code, store_id)\n File \"C:\\NeoZQYY\\apps\\etl\\connectors\\feiqiu\\orchestration\\task_executor.py\", line 429, in _load_task_config\n rows = self.db_ops.query(sql, (store_id, task_code))\n File \"C:\\NeoZQYY\\apps\\etl\\connectors\\feiqiu\\database\\operations.py\", line 99, in query\n return self._connection.query(sql, args)\n ~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^\n File \"C:\\NeoZQYY\\apps\\etl\\connectors\\feiqiu\\database\\connection.py\", line 50, in query\n c.execute(sql, args)\n ~~~~~~~~~^^^^^^^^^^^\n File \"C:\\NeoZQYY\\.venv\\Lib\\site-packages\\psycopg2\\extras.py\", line 236, in execute\n return super().execute(query, vars)\n ~~~~~~~~~~~~~~~^^^^^^^^^^^^^\npsycopg2.errors.InFailedSqlTransaction: 错误: 当前事务被终止, 事务块结束之前的查询被忽略\n\n[2026-02-21 20:08:55] INFO | etl_billiards | 所有任务执行完成\n[2026-02-21 20:08:57] INFO | etl_billiards | 一致性检查报告已生成: C:\\NeoZQYY\\export\\ETL-Connectors\\feiqiu\\REPORTS\\consistency_report_20260221_200857.md\n[2026-02-21 20:08:57] INFO | etl_billiards | 计时报告已生成\n[2026-02-21 20:08:57] INFO | etl_billiards | \n╔══════════════════════════════════════════════════════════════╗\n║ 任务执行总结 ║\n╠══════════════════════════════════════════════════════════════╣\n║ 任务代码: FLOW_API_FULL ║\n║ 执行状态: 成功 ║\n║ 执行时间: 2026-02-21 19:57:02 ~ 20:08:57 (11分55秒) ║\n╠══════════════════════════════════════════════════════════════╣\n║ 数据统计 ║\n║ - 获取记录: 52,982 ║\n║ - 新增记录: 13,296 ║\n║ - 更新记录: 52,982 ║\n║ - 跳过记录: 0 ║\n║ - 错误记录: 0 ║\n╚══════════════════════════════════════════════════════════════╝\n[2026-02-21 20:08:57] INFO | etl_billiards | \n╔══════════════════════════════════════════════════════════════╗\n║ 任务执行总结 ║\n╠══════════════════════════════════════════════════════════════╣\n║ 任务代码: FLOW_API_FULL ║\n║ 执行状态: 成功 ║\n║ 执行时间: 2026-02-21 19:57:02 ~ 20:08:57 (11分55秒) ║\n╠══════════════════════════════════════════════════════════════╣\n║ 数据统计 ║\n║ - 获取记录: 52,982 ║\n║ - 新增记录: 13,296 ║\n║ - 更新记录: 52,982 ║\n║ - 跳过记录: 0 ║\n║ - 错误记录: 0 ║\n╚══════════════════════════════════════════════════════════════╝\n[2026-02-21 20:08:57] INFO | etl_billiards | Flow 执行完成: SUCCESS\n[2026-02-21 20:08:57] INFO | etl_billiards | ETL运行完成"
}