5 lines
64 KiB
JSON
5 lines
64 KiB
JSON
{
|
||
"execution_id": "fe87144a-687d-4ce0-9b79-6bd0186b2be3",
|
||
"output_log": "",
|
||
"error_log": "[2026-02-21 20:19:52] INFO | etl_billiards | 配置加载完成\n[2026-02-21 20:19:52] INFO | etl_billiards | 门店ID: 2790685415443269\n[2026-02-21 20:19:52] INFO | etl_billiards | 执行模式: Flow 模式\n[2026-02-21 20:19:52] INFO | etl_billiards | Flow 类型: api_full\n[2026-02-21 20:19:52] INFO | etl_billiards | 处理模式: full_window\n[2026-02-21 20:19:52] INFO | etl_billiards | FLOW_API_FULL | 开始执行 Flow: api_full | 开始时间: 2026-02-21 20:19:52\n[2026-02-21 20:19:52] INFO | etl_billiards | Flow api_full: 执行增量 ETL,层=['ODS', 'DWD', 'DWS', 'INDEX']\n[2026-02-21 20:19:52] 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=d8eca4ca2d72445ab62c96b90fb80752\n[2026-02-21 20:19:52] INFO | etl_billiards | DWS_ASSISTANT_DAILY: 抓取阶段开始,目录=C:\\NeoZQYY\\export\\ETL-Connectors\\feiqiu\\JSON\\DWS_ASSISTANT_DAILY\\DWS_ASSISTANT_DAILY-8856-20260221-201952\n[2026-02-21 20:19:52] INFO | etl_billiards | DWS_ASSISTANT_DAILY: 提取数据,日期范围 2025-11-01 ~ 2026-02-20\n[2026-02-21 20:19:53] INFO | etl_billiards | DWS_ASSISTANT_DAILY: 抓取完成,文件=None,记录数=0\n[2026-02-21 20:19:53] INFO | etl_billiards | DWS_ASSISTANT_DAILY: 本地清洗入库开始,源目录=C:\\NeoZQYY\\export\\ETL-Connectors\\feiqiu\\JSON\\DWS_ASSISTANT_DAILY\\DWS_ASSISTANT_DAILY-8856-20260221-201952\n[2026-02-21 20:19:53] INFO | etl_billiards | DWS_ASSISTANT_DAILY: 窗口拆分为 4 段(共 111.17 天)\n[2026-02-21 20:19:53] 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 20:19:53] INFO | etl_billiards | DWS_ASSISTANT_DAILY: 提取数据,日期范围 2025-10-31 ~ 2025-11-30\n[2026-02-21 20:19:54] INFO | etl_billiards | DWS_ASSISTANT_DAILY: 转换数据,服务记录 715 条,废除记录 12 条\n[2026-02-21 20:20:35] INFO | etl_billiards | DWS_ASSISTANT_DAILY: 完成(1/4),已处理 30/111.17 天\n[2026-02-21 20:20:35] 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 20:20:35] INFO | etl_billiards | DWS_ASSISTANT_DAILY: 提取数据,日期范围 2025-11-30 ~ 2025-12-30\n[2026-02-21 20:20:35] INFO | etl_billiards | DWS_ASSISTANT_DAILY: 转换数据,服务记录 959 条,废除记录 30 条\n[2026-02-21 20:21:32] INFO | etl_billiards | DWS_ASSISTANT_DAILY: 完成(2/4),已处理 60/111.17 天\n[2026-02-21 20:21:32] 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 20:21:32] INFO | etl_billiards | DWS_ASSISTANT_DAILY: 提取数据,日期范围 2025-12-30 ~ 2026-01-29\n[2026-02-21 20:21:32] INFO | etl_billiards | DWS_ASSISTANT_DAILY: 转换数据,服务记录 838 条,废除记录 46 条\n[2026-02-21 20:22:11] INFO | etl_billiards | DWS_ASSISTANT_DAILY: 完成(3/4),已处理 90/111.17 天\n[2026-02-21 20:22:11] 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 20:22:11] INFO | etl_billiards | DWS_ASSISTANT_DAILY: 提取数据,日期范围 2026-01-29 ~ 2026-02-20\n[2026-02-21 20:22:11] INFO | etl_billiards | DWS_ASSISTANT_DAILY: 转换数据,服务记录 216 条,废除记录 1 条\n[2026-02-21 20:22:20] INFO | etl_billiards | DWS_ASSISTANT_DAILY: 完成(4/4),已处理 111.17/111.17 天\n[2026-02-21 20:22:20] INFO | etl_billiards | DWS_ASSISTANT_DAILY: 完成,统计={'counts': {'fetched': 367, 'inserted': 367, 'updated': 0, 'skipped': 0, 'errors': 0}, 'extra': {'deleted': 367}}\n[2026-02-21 20:22:20] INFO | etl_billiards | DWS_ASSISTANT_MONTHLY: 抓取阶段开始,目录=C:\\NeoZQYY\\export\\ETL-Connectors\\feiqiu\\JSON\\DWS_ASSISTANT_MONTHLY\\DWS_ASSISTANT_MONTHLY-8857-20260221-202220\n[2026-02-21 20:22:20] INFO | etl_billiards | DWS_ASSISTANT_MONTHLY: 跳过历史月份 ['2025-11-01', '2025-12-01', '2026-01-01']\n[2026-02-21 20:22:20] INFO | etl_billiards | DWS_ASSISTANT_MONTHLY: 提取数据,月份范围 ['2026-02-01']\n[2026-02-21 20:22:21] INFO | etl_billiards | DWS_ASSISTANT_MONTHLY: 抓取完成,文件=None,记录数=0\n[2026-02-21 20:22:21] INFO | etl_billiards | DWS_ASSISTANT_MONTHLY: 本地清洗入库开始,源目录=C:\\NeoZQYY\\export\\ETL-Connectors\\feiqiu\\JSON\\DWS_ASSISTANT_MONTHLY\\DWS_ASSISTANT_MONTHLY-8857-20260221-202220\n[2026-02-21 20:22:21] INFO | etl_billiards | DWS_ASSISTANT_MONTHLY: 窗口拆分为 4 段(共 111.17 天)\n[2026-02-21 20:22:21] 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 20:22:21] INFO | etl_billiards | DWS_ASSISTANT_MONTHLY: 跳过历史月份 ['2025-10-01']\n[2026-02-21 20:22:21] INFO | etl_billiards | DWS_ASSISTANT_MONTHLY: 提取数据,月份范围 ['2025-11-01']\n[2026-02-21 20:22:21] INFO | etl_billiards | DWS_ASSISTANT_MONTHLY: 转换数据,1 个月份,25 条聚合记录\n[2026-02-21 20:22:24] INFO | etl_billiards | DWS_ASSISTANT_MONTHLY: 加载完成,删除 25 行,插入 25 行\n[2026-02-21 20:22:24] INFO | etl_billiards | DWS_ASSISTANT_MONTHLY: 完成(1/4),已处理 30/111.17 天\n[2026-02-21 20:22:24] 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 20:22:24] INFO | etl_billiards | DWS_ASSISTANT_MONTHLY: 跳过历史月份 ['2025-11-01']\n[2026-02-21 20:22:24] INFO | etl_billiards | DWS_ASSISTANT_MONTHLY: 提取数据,月份范围 ['2025-12-01']\n[2026-02-21 20:22:24] INFO | etl_billiards | DWS_ASSISTANT_MONTHLY: 转换数据,1 个月份,29 条聚合记录\n[2026-02-21 20:22:27] INFO | etl_billiards | DWS_ASSISTANT_MONTHLY: 加载完成,删除 29 行,插入 29 行\n[2026-02-21 20:22:27] INFO | etl_billiards | DWS_ASSISTANT_MONTHLY: 完成(2/4),已处理 60/111.17 天\n[2026-02-21 20:22:27] 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 20:22:27] INFO | etl_billiards | DWS_ASSISTANT_MONTHLY: 跳过历史月份 ['2025-12-01']\n[2026-02-21 20:22:27] INFO | etl_billiards | DWS_ASSISTANT_MONTHLY: 提取数据,月份范围 ['2026-01-01']\n[2026-02-21 20:22:28] INFO | etl_billiards | DWS_ASSISTANT_MONTHLY: 转换数据,1 个月份,22 条聚合记录\n[2026-02-21 20:22:30] INFO | etl_billiards | DWS_ASSISTANT_MONTHLY: 加载完成,删除 22 行,插入 22 行\n[2026-02-21 20:22:30] INFO | etl_billiards | DWS_ASSISTANT_MONTHLY: 完成(3/4),已处理 90/111.17 天\n[2026-02-21 20:22:30] 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 20:22:30] INFO | etl_billiards | DWS_ASSISTANT_MONTHLY: 跳过历史月份 ['2026-01-01']\n[2026-02-21 20:22:30] INFO | etl_billiards | DWS_ASSISTANT_MONTHLY: 提取数据,月份范围 ['2026-02-01']\n[2026-02-21 20:22:30] INFO | etl_billiards | DWS_ASSISTANT_MONTHLY: 转换数据,1 个月份,9 条聚合记录\n[2026-02-21 20:22:31] INFO | etl_billiards | DWS_ASSISTANT_MONTHLY: 加载完成,删除 9 行,插入 9 行\n[2026-02-21 20:22:31] INFO | etl_billiards | DWS_ASSISTANT_MONTHLY: 完成(4/4),已处理 111.17/111.17 天\n[2026-02-21 20:22:31] INFO | etl_billiards | DWS_ASSISTANT_MONTHLY: 完成,统计={'counts': {'fetched': 25, 'inserted': 25, 'updated': 0, 'skipped': 0, 'errors': 0}, 'extra': {'deleted': 25}}\n[2026-02-21 20:22:32] INFO | etl_billiards | DWS_ASSISTANT_CUSTOMER: 抓取阶段开始,目录=C:\\NeoZQYY\\export\\ETL-Connectors\\feiqiu\\JSON\\DWS_ASSISTANT_CUSTOMER\\DWS_ASSISTANT_CUSTOMER-8858-20260221-202232\n[2026-02-21 20:22:32] INFO | etl_billiards | DWS_ASSISTANT_CUSTOMER: 提取数据,统计日期 2026-02-20\n[2026-02-21 20:22:32] INFO | etl_billiards | DWS_ASSISTANT_CUSTOMER: 抓取完成,文件=None,记录数=0\n[2026-02-21 20:22:32] INFO | etl_billiards | DWS_ASSISTANT_CUSTOMER: 本地清洗入库开始,源目录=C:\\NeoZQYY\\export\\ETL-Connectors\\feiqiu\\JSON\\DWS_ASSISTANT_CUSTOMER\\DWS_ASSISTANT_CUSTOMER-8858-20260221-202232\n[2026-02-21 20:22:32] INFO | etl_billiards | DWS_ASSISTANT_CUSTOMER: 窗口拆分为 4 段(共 111.17 天)\n[2026-02-21 20:22:32] 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 20:22:32] INFO | etl_billiards | DWS_ASSISTANT_CUSTOMER: 提取数据,统计日期 2025-11-30\n[2026-02-21 20:22:32] INFO | etl_billiards | DWS_ASSISTANT_CUSTOMER: 转换数据,486 条服务关系记录\n[2026-02-21 20:22:57] INFO | etl_billiards | DWS_ASSISTANT_CUSTOMER: 完成(1/4),已处理 30/111.17 天\n[2026-02-21 20:22:57] 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:22:57] INFO | etl_billiards | DWS_ASSISTANT_CUSTOMER: 提取数据,统计日期 2025-12-30\n[2026-02-21 20:22:57] INFO | etl_billiards | DWS_ASSISTANT_CUSTOMER: 转换数据,410 条服务关系记录\n[2026-02-21 20:23:18] INFO | etl_billiards | DWS_ASSISTANT_CUSTOMER: 完成(2/4),已处理 60/111.17 天\n[2026-02-21 20:23:18] 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:23:18] INFO | etl_billiards | DWS_ASSISTANT_CUSTOMER: 提取数据,统计日期 2026-01-29\n[2026-02-21 20:23:19] INFO | etl_billiards | DWS_ASSISTANT_CUSTOMER: 转换数据,334 条服务关系记录\n[2026-02-21 20:23:36] INFO | etl_billiards | DWS_ASSISTANT_CUSTOMER: 完成(3/4),已处理 90/111.17 天\n[2026-02-21 20:23:36] 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:23:36] INFO | etl_billiards | DWS_ASSISTANT_CUSTOMER: 提取数据,统计日期 2026-02-20\n[2026-02-21 20:23:36] INFO | etl_billiards | DWS_ASSISTANT_CUSTOMER: 转换数据,289 条服务关系记录\n[2026-02-21 20:23:51] INFO | etl_billiards | DWS_ASSISTANT_CUSTOMER: 完成(4/4),已处理 111.17/111.17 天\n[2026-02-21 20:23:51] 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:23:52] INFO | etl_billiards | DWS_ASSISTANT_SALARY: 抓取阶段开始,目录=C:\\NeoZQYY\\export\\ETL-Connectors\\feiqiu\\JSON\\DWS_ASSISTANT_SALARY\\DWS_ASSISTANT_SALARY-8859-20260221-202352\n[2026-02-21 20:23:52] INFO | etl_billiards | DWS_ASSISTANT_SALARY: 非工资结算期,跳过\n[2026-02-21 20:23:52] INFO | etl_billiards | DWS_ASSISTANT_SALARY: 抓取完成,文件=None,记录数=0\n[2026-02-21 20:23:52] INFO | etl_billiards | DWS_ASSISTANT_SALARY: 本地清洗入库开始,源目录=C:\\NeoZQYY\\export\\ETL-Connectors\\feiqiu\\JSON\\DWS_ASSISTANT_SALARY\\DWS_ASSISTANT_SALARY-8859-20260221-202352\n[2026-02-21 20:23:52] INFO | etl_billiards | DWS_ASSISTANT_SALARY: 窗口拆分为 4 段(共 111.17 天)\n[2026-02-21 20:23:52] 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:23:52] INFO | etl_billiards | DWS_ASSISTANT_SALARY: 非工资结算期,跳过\n[2026-02-21 20:23:52] INFO | etl_billiards | DWS_ASSISTANT_SALARY: 无数据需要写入\n[2026-02-21 20:23:52] INFO | etl_billiards | DWS_ASSISTANT_SALARY: 完成(1/4),已处理 30/111.17 天\n[2026-02-21 20:23:52] 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:23:52] INFO | etl_billiards | DWS_ASSISTANT_SALARY: 非工资结算期,跳过\n[2026-02-21 20:23:52] INFO | etl_billiards | DWS_ASSISTANT_SALARY: 无数据需要写入\n[2026-02-21 20:23:52] INFO | etl_billiards | DWS_ASSISTANT_SALARY: 完成(2/4),已处理 60/111.17 天\n[2026-02-21 20:23:52] 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:23:52] INFO | etl_billiards | DWS_ASSISTANT_SALARY: 非工资结算期,跳过\n[2026-02-21 20:23:52] INFO | etl_billiards | DWS_ASSISTANT_SALARY: 无数据需要写入\n[2026-02-21 20:23:52] INFO | etl_billiards | DWS_ASSISTANT_SALARY: 完成(3/4),已处理 90/111.17 天\n[2026-02-21 20:23:52] 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:23:52] INFO | etl_billiards | DWS_ASSISTANT_SALARY: 非工资结算期,跳过\n[2026-02-21 20:23:52] INFO | etl_billiards | DWS_ASSISTANT_SALARY: 无数据需要写入\n[2026-02-21 20:23:52] INFO | etl_billiards | DWS_ASSISTANT_SALARY: 完成(4/4),已处理 111.17/111.17 天\n[2026-02-21 20:23:52] INFO | etl_billiards | DWS_ASSISTANT_SALARY: 完成,统计={'counts': {'fetched': 0, 'inserted': 0, 'updated': 0, 'skipped': 0, 'errors': 0}}\n[2026-02-21 20:23:52] INFO | etl_billiards | DWS_ASSISTANT_FINANCE: 抓取阶段开始,目录=C:\\NeoZQYY\\export\\ETL-Connectors\\feiqiu\\JSON\\DWS_ASSISTANT_FINANCE\\DWS_ASSISTANT_FINANCE-8860-20260221-202352\n[2026-02-21 20:23:53] INFO | etl_billiards | DWS_ASSISTANT_FINANCE: 抓取完成,文件=None,记录数=0\n[2026-02-21 20:23:53] INFO | etl_billiards | DWS_ASSISTANT_FINANCE: 本地清洗入库开始,源目录=C:\\NeoZQYY\\export\\ETL-Connectors\\feiqiu\\JSON\\DWS_ASSISTANT_FINANCE\\DWS_ASSISTANT_FINANCE-8860-20260221-202352\n[2026-02-21 20:23:53] INFO | etl_billiards | DWS_ASSISTANT_FINANCE: 窗口拆分为 4 段(共 111.17 天)\n[2026-02-21 20:23:53] 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:24:13] INFO | etl_billiards | DWS_ASSISTANT_FINANCE: 完成(1/4),已处理 30/111.17 天\n[2026-02-21 20:24:13] 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:24:37] INFO | etl_billiards | DWS_ASSISTANT_FINANCE: 完成(2/4),已处理 60/111.17 天\n[2026-02-21 20:24:37] 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:24:55] INFO | etl_billiards | DWS_ASSISTANT_FINANCE: 完成(3/4),已处理 90/111.17 天\n[2026-02-21 20:24:55] 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:25:00] INFO | etl_billiards | DWS_ASSISTANT_FINANCE: 完成(4/4),已处理 111.17/111.17 天\n[2026-02-21 20:25:00] 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:25:00] INFO | etl_billiards | ODS_SETTLEMENT_RECORDS: ODS fetch+load start, dir=C:\\NeoZQYY\\export\\ETL-Connectors\\feiqiu\\JSON\\ODS_SETTLEMENT_RECORDS\\ODS_SETTLEMENT_RECORDS-8861-20260221-202500\n[2026-02-21 20:25:00] INFO | etl_billiards | 开始执行ODS_SETTLEMENT_RECORDS (ODS)\n[2026-02-21 20:25:00] INFO | etl_billiards | ODS_SETTLEMENT_RECORDS: 窗口拆分为 4 段(共 111.17 天)\n[2026-02-21 20:25:01] 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:25:15] INFO | etl_billiards | ODS_SETTLEMENT_RECORDS: 完成(1/4),已处理 30/111.17 天\n[2026-02-21 20:25:15] 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:25:54] INFO | etl_billiards | ODS_SETTLEMENT_RECORDS: 完成(2/4),已处理 60/111.17 天\n[2026-02-21 20:25:54] 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:26:29] INFO | etl_billiards | ODS_SETTLEMENT_RECORDS: 完成(3/4),已处理 90/111.17 天\n[2026-02-21 20:26:29] 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:26:44] INFO | etl_billiards | ODS_SETTLEMENT_RECORDS: 完成(4/4),已处理 111.17/111.17 天\n[2026-02-21 20:26:44] INFO | etl_billiards | ODS_SETTLEMENT_RECORDS ODS 任务完成: {'fetched': 10366, 'inserted': 0, 'updated': 10366, 'skipped': 0, 'errors': 0, 'deleted': 0}\n[2026-02-21 20:26:45] INFO | etl_billiards | ODS_PAYMENT: ODS fetch+load start, dir=C:\\NeoZQYY\\export\\ETL-Connectors\\feiqiu\\JSON\\ODS_PAYMENT\\ODS_PAYMENT-8862-20260221-202645\n[2026-02-21 20:26:45] INFO | etl_billiards | 开始执行ODS_PAYMENT (ODS)\n[2026-02-21 20:26:45] INFO | etl_billiards | ODS_PAYMENT: 窗口拆分为 4 段(共 111.17 天)\n[2026-02-21 20:26:45] 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:27:42] INFO | etl_billiards | ODS_PAYMENT: 完成(1/4),已处理 30/111.17 天\n[2026-02-21 20:27:42] 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:28:40] INFO | etl_billiards | ODS_PAYMENT: 完成(2/4),已处理 60/111.17 天\n[2026-02-21 20:28:40] 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:29:38] INFO | etl_billiards | ODS_PAYMENT: 完成(3/4),已处理 90/111.17 天\n[2026-02-21 20:29:38] 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:30:36] INFO | etl_billiards | ODS_PAYMENT: 完成(4/4),已处理 111.17/111.17 天\n[2026-02-21 20:30:36] INFO | etl_billiards | ODS_PAYMENT ODS 任务完成: {'fetched': 42500, 'inserted': 0, 'updated': 42500, 'skipped': 0, 'errors': 0, 'deleted': 0}\n[2026-02-21 20:30:37] INFO | etl_billiards | ODS_REFUND: ODS fetch+load start, dir=C:\\NeoZQYY\\export\\ETL-Connectors\\feiqiu\\JSON\\ODS_REFUND\\ODS_REFUND-8863-20260221-203037\n[2026-02-21 20:30:37] INFO | etl_billiards | 开始执行ODS_REFUND (ODS)\n[2026-02-21 20:30:37] INFO | etl_billiards | ODS_REFUND: 窗口拆分为 4 段(共 111.17 天)\n[2026-02-21 20:30:37] 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:30:38] 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:30:38] INFO | etl_billiards | ODS_REFUND: 完成(1/4),已处理 30/111.17 天\n[2026-02-21 20:30:38] 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:30:38] INFO | etl_billiards | ODS_REFUND: 完成(2/4),已处理 60/111.17 天\n[2026-02-21 20:30:38] 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:30:39] INFO | etl_billiards | ODS_REFUND: 完成(3/4),已处理 90/111.17 天\n[2026-02-21 20:30:39] 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:30:40] INFO | etl_billiards | ODS_REFUND: 完成(4/4),已处理 111.17/111.17 天\n[2026-02-21 20:30:40] INFO | etl_billiards | ODS_REFUND ODS 任务完成: {'fetched': 116, 'inserted': 0, 'updated': 116, 'skipped': 0, 'errors': 0, 'deleted': 0}\n[2026-02-21 20:30:40] INFO | etl_billiards | DWS_BUILD_ORDER_SUMMARY: 开始执行工具类任务\n[2026-02-21 20:30:40] INFO | etl_billiards | DWS_BUILD_ORDER_SUMMARY: 分段执行 共4段\n[2026-02-21 20:30:40] 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:30:40] 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:30:40] 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:30:41] 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:30:41] 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:30:41] 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:30:41] 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:30:41] 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:30:41] INFO | etl_billiards | DWS_BUILD_ORDER_SUMMARY: 完成, 统计={'fetched': 0, 'inserted': 13296, 'updated': 0, 'skipped': 0, 'errors': 0}\n[2026-02-21 20:30:41] INFO | etl_billiards | DWS_BUILD_ORDER_SUMMARY: 工具类任务执行成功\n[2026-02-21 20:30:41] INFO | etl_billiards | DWS_BUILD_ORDER_SUMMARY: 结果统计: {'fetched': 0, 'inserted': 13296, 'updated': 0, 'skipped': 0, 'errors': 0}\n[2026-02-21 20:30:42] INFO | etl_billiards | DWS_MEMBER_CONSUMPTION: 抓取阶段开始,目录=C:\\NeoZQYY\\export\\ETL-Connectors\\feiqiu\\JSON\\DWS_MEMBER_CONSUMPTION\\DWS_MEMBER_CONSUMPTION-8864-20260221-203042\n[2026-02-21 20:30:42] INFO | etl_billiards | DWS_MEMBER_CONSUMPTION: 提取数据,统计日期 2026-02-20\n[2026-02-21 20:30:42] INFO | etl_billiards | DWS_MEMBER_CONSUMPTION: 抓取完成,文件=None,记录数=0\n[2026-02-21 20:30:42] INFO | etl_billiards | DWS_MEMBER_CONSUMPTION: 本地清洗入库开始,源目录=C:\\NeoZQYY\\export\\ETL-Connectors\\feiqiu\\JSON\\DWS_MEMBER_CONSUMPTION\\DWS_MEMBER_CONSUMPTION-8864-20260221-203042\n[2026-02-21 20:30:42] INFO | etl_billiards | DWS_MEMBER_CONSUMPTION: 窗口拆分为 4 段(共 111.17 天)\n[2026-02-21 20:30:42] 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:30:42] INFO | etl_billiards | DWS_MEMBER_CONSUMPTION: 提取数据,统计日期 2025-11-30\n[2026-02-21 20:30:42] INFO | etl_billiards | DWS_MEMBER_CONSUMPTION: 转换数据,198 条会员消费记录\n[2026-02-21 20:30:53] INFO | etl_billiards | DWS_MEMBER_CONSUMPTION: 完成(1/4),已处理 30/111.17 天\n[2026-02-21 20:30:53] 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:30:53] INFO | etl_billiards | DWS_MEMBER_CONSUMPTION: 提取数据,统计日期 2025-12-30\n[2026-02-21 20:30:53] INFO | etl_billiards | DWS_MEMBER_CONSUMPTION: 转换数据,198 条会员消费记录\n[2026-02-21 20:31:03] INFO | etl_billiards | DWS_MEMBER_CONSUMPTION: 完成(2/4),已处理 60/111.17 天\n[2026-02-21 20:31:03] 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:31:03] INFO | etl_billiards | DWS_MEMBER_CONSUMPTION: 提取数据,统计日期 2026-01-29\n[2026-02-21 20:31:03] INFO | etl_billiards | DWS_MEMBER_CONSUMPTION: 转换数据,198 条会员消费记录\n[2026-02-21 20:31:14] INFO | etl_billiards | DWS_MEMBER_CONSUMPTION: 完成(3/4),已处理 90/111.17 天\n[2026-02-21 20:31:14] 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:31:14] INFO | etl_billiards | DWS_MEMBER_CONSUMPTION: 提取数据,统计日期 2026-02-20\n[2026-02-21 20:31:14] INFO | etl_billiards | DWS_MEMBER_CONSUMPTION: 转换数据,198 条会员消费记录\n[2026-02-21 20:31:24] INFO | etl_billiards | DWS_MEMBER_CONSUMPTION: 完成(4/4),已处理 111.17/111.17 天\n[2026-02-21 20:31:24] 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:31:25] INFO | etl_billiards | DWS_MEMBER_VISIT: 抓取阶段开始,目录=C:\\NeoZQYY\\export\\ETL-Connectors\\feiqiu\\JSON\\DWS_MEMBER_VISIT\\DWS_MEMBER_VISIT-8865-20260221-203125\n[2026-02-21 20:31:25] INFO | etl_billiards | DWS_MEMBER_VISIT: 提取数据,日期范围 2025-11-01 ~ 2026-02-20\n[2026-02-21 20:31:25] 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 95, in extract\n table_info = self._extract_table_info(site_id)\n File \"C:\\NeoZQYY\\apps\\etl\\connectors\\feiqiu\\tasks\\dws\\member_visit_task.py\", line 334, in _extract_table_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: 错误: 字段 \"site_table_id\" 不存在\nLINE 3: site_table_id AS table_id,\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:31:25] 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:31:25] 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:31:25] 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:31:25] 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:31:26] 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:31:26] 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:31:26] 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:31:26] 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:31:26] 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:31:26] 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:31:26] 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:31:26] 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:31:26] 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:31:26] 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:31:26] 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:31:26] 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:31:26] INFO | etl_billiards | DWS_WINBACK_INDEX: 开始执行工具类任务\n[2026-02-21 20:31:26] INFO | etl_billiards | 开始计算 DWS_WINBACK_INDEX\n[2026-02-21 20:31:26] 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:31:26] 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:31:26] INFO | etl_billiards | DWS_NEWCONV_INDEX: 开始执行工具类任务\n[2026-02-21 20:31:26] INFO | etl_billiards | 开始计算 DWS_NEWCONV_INDEX\n[2026-02-21 20:31:26] 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:31:26] 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:31:26] INFO | etl_billiards | DWS_RELATION_INDEX: 开始执行工具类任务\n[2026-02-21 20:31:26] INFO | etl_billiards | 开始计算关系指数(RS/OS/MS/ML)\n[2026-02-21 20:31:26] 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:31:26] 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:31:27] 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:31:27] INFO | etl_billiards | 所有任务执行完成\n[2026-02-21 20:31:29] INFO | etl_billiards | 一致性检查报告已生成: C:\\NeoZQYY\\export\\ETL-Connectors\\feiqiu\\REPORTS\\consistency_report_20260221_203129.md\n[2026-02-21 20:31:29] INFO | etl_billiards | 计时报告已生成\n[2026-02-21 20:31:29] INFO | etl_billiards | \n╔══════════════════════════════════════════════════════════════╗\n║ 任务执行总结 ║\n╠══════════════════════════════════════════════════════════════╣\n║ 任务代码: FLOW_API_FULL ║\n║ 执行状态: 成功 ║\n║ 执行时间: 2026-02-21 20:19:52 ~ 20:31:29 (11分37秒) ║\n╠══════════════════════════════════════════════════════════════╣\n║ 数据统计 ║\n║ - 获取记录: 52,982 ║\n║ - 新增记录: 13,296 ║\n║ - 更新记录: 52,982 ║\n║ - 跳过记录: 0 ║\n║ - 错误记录: 0 ║\n╚══════════════════════════════════════════════════════════════╝\n[2026-02-21 20:31:29] INFO | etl_billiards | \n╔══════════════════════════════════════════════════════════════╗\n║ 任务执行总结 ║\n╠══════════════════════════════════════════════════════════════╣\n║ 任务代码: FLOW_API_FULL ║\n║ 执行状态: 成功 ║\n║ 执行时间: 2026-02-21 20:19:52 ~ 20:31:29 (11分37秒) ║\n╠══════════════════════════════════════════════════════════════╣\n║ 数据统计 ║\n║ - 获取记录: 52,982 ║\n║ - 新增记录: 13,296 ║\n║ - 更新记录: 52,982 ║\n║ - 跳过记录: 0 ║\n║ - 错误记录: 0 ║\n╚══════════════════════════════════════════════════════════════╝\n[2026-02-21 20:31:29] INFO | etl_billiards | Flow 执行完成: SUCCESS\n[2026-02-21 20:31:29] INFO | etl_billiards | ETL运行完成"
|
||
} |