Files
Neo-ZQYY/scripts/ops/_etl_log_temp.txt

5 lines
75 KiB
Plaintext
Raw 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": "dbf0c29a-253a-4705-a1ef-35cd71243d48",
"output_log": "",
"error_log": "[2026-02-21 15:29:21] INFO | etl_billiards | 配置加载完成\n[2026-02-21 15:29:21] INFO | etl_billiards | 门店ID: 2790685415443269\n[2026-02-21 15:29:21] INFO | etl_billiards | 执行模式: Flow 模式\n[2026-02-21 15:29:21] INFO | etl_billiards | Flow 类型: api_full\n[2026-02-21 15:29:21] INFO | etl_billiards | 处理模式: full_window\n[2026-02-21 15:29:21] INFO | etl_billiards | FLOW_API_FULL | 开始执行 Flow: api_full | 开始时间: 2026-02-21 15:29:21\n[2026-02-21 15:29:21] INFO | etl_billiards | Flow api_full: 执行增量 ETL层=['ODS', 'DWD', 'DWS', 'INDEX']\n[2026-02-21 15:29:21] INFO | etl_billiards | 开始运行任务: ['ODS_ASSISTANT_ACCOUNT', 'ODS_ASSISTANT_LEDGER', 'ODS_ASSISTANT_ABOLISH', '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', 'ODS_TABLE_USE', 'ODS_TABLE_FEE_DISCOUNT', 'ODS_TABLES', 'ODS_MEMBER', 'ODS_MEMBER_CARD', 'ODS_MEMBER_BALANCE', 'ODS_RECHARGE_SETTLE', '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=4ba9d2d365ee4a858f1c4104b1942dc2\n[2026-02-21 15:29:21] INFO | etl_billiards | ODS_ASSISTANT_ACCOUNT: ODS fetch+load start, dir=C:\\NeoZQYY\\export\\ETL-Connectors\\feiqiu\\JSON\\ODS_ASSISTANT_ACCOUNT\\ODS_ASSISTANT_ACCOUNT-8821-20260221-152921\n[2026-02-21 15:29:21] INFO | etl_billiards | 开始执行ODS_ASSISTANT_ACCOUNT (ODS)\n[2026-02-21 15:29:21] INFO | etl_billiards | ODS_ASSISTANT_ACCOUNT: 窗口拆分为 4 段(共 111.17 天)\n[2026-02-21 15:29:22] INFO | etl_billiards | ODS_ASSISTANT_ACCOUNT: 开始执行(1/4),窗口[2025-10-31 22:00:00+08:00 ~ 2025-11-30 22:00:00+08:00]\n[2026-02-21 15:29:25] INFO | etl_billiards | ODS_ASSISTANT_ACCOUNT: 完成(1/4),已处理 30/111.17 天\n[2026-02-21 15:29:25] INFO | etl_billiards | ODS_ASSISTANT_ACCOUNT: 开始执行(2/4),窗口[2025-11-30 22:00:00+08:00 ~ 2025-12-30 22:00:00+08:00]\n[2026-02-21 15:29:27] INFO | etl_billiards | ODS_ASSISTANT_ACCOUNT: 完成(2/4),已处理 60/111.17 天\n[2026-02-21 15:29:27] INFO | etl_billiards | ODS_ASSISTANT_ACCOUNT: 开始执行(3/4),窗口[2025-12-30 22:00:00+08:00 ~ 2026-01-29 22:00:00+08:00]\n[2026-02-21 15:29:30] INFO | etl_billiards | ODS_ASSISTANT_ACCOUNT: 完成(3/4),已处理 90/111.17 天\n[2026-02-21 15:29:30] INFO | etl_billiards | ODS_ASSISTANT_ACCOUNT: 开始执行(4/4),窗口[2026-01-29 22:00:00+08:00 ~ 2026-02-20 02:00:00+08:00]\n[2026-02-21 15:29:31] INFO | etl_billiards | ODS_ASSISTANT_ACCOUNT: 完成(4/4),已处理 111.17/111.17 天\n[2026-02-21 15:29:31] INFO | etl_billiards | ODS_ASSISTANT_ACCOUNT ODS 任务完成: {'fetched': 276, 'inserted': 0, 'updated': 276, 'skipped': 0, 'errors': 0, 'deleted': 0}\n[2026-02-21 15:29:32] INFO | etl_billiards | ODS_ASSISTANT_LEDGER: ODS fetch+load start, dir=C:\\NeoZQYY\\export\\ETL-Connectors\\feiqiu\\JSON\\ODS_ASSISTANT_LEDGER\\ODS_ASSISTANT_LEDGER-8822-20260221-152932\n[2026-02-21 15:29:32] INFO | etl_billiards | 开始执行ODS_ASSISTANT_LEDGER (ODS)\n[2026-02-21 15:29:32] INFO | etl_billiards | ODS_ASSISTANT_LEDGER: 窗口拆分为 4 段(共 111.17 天)\n[2026-02-21 15:29:32] INFO | etl_billiards | ODS_ASSISTANT_LEDGER: 开始执行(1/4),窗口[2025-10-31 22:00:00+08:00 ~ 2025-11-30 22:00:00+08:00]\n[2026-02-21 15:29:36] INFO | etl_billiards | ODS_ASSISTANT_LEDGER: early-cutoff 保护生效,软删除窗口起点从 2025-10-31 22:00:00+08:00 收窄至 2025-10-31 22:23:40+08:00\n[2026-02-21 15:29:43] INFO | etl_billiards | ODS_ASSISTANT_LEDGER: 完成(1/4),已处理 30/111.17 天\n[2026-02-21 15:29:43] INFO | etl_billiards | ODS_ASSISTANT_LEDGER: 开始执行(2/4),窗口[2025-11-30 22:00:00+08:00 ~ 2025-12-30 22:00:00+08:00]\n[2026-02-21 15:29:55] INFO | etl_billiards | ODS_ASSISTANT_LEDGER: early-cutoff 保护生效,软删除窗口起点从 2025-11-30 22:00:00+08:00 收窄至 2025-11-30 22:29:58+08:00\n[2026-02-21 15:29:55] INFO | etl_billiards | ODS_ASSISTANT_LEDGER: 完成(2/4),已处理 60/111.17 天\n[2026-02-21 15:29:55] INFO | etl_billiards | ODS_ASSISTANT_LEDGER: 开始执行(3/4),窗口[2025-12-30 22:00:00+08:00 ~ 2026-01-29 22:00:00+08:00]\n[2026-02-21 15:30:05] INFO | etl_billiards | ODS_ASSISTANT_LEDGER: early-cutoff 保护生效,软删除窗口起点从 2025-12-30 22:00:00+08:00 收窄至 2025-12-30 22:48:21+08:00\n[2026-02-21 15:30:05] INFO | etl_billiards | ODS_ASSISTANT_LEDGER: 完成(3/4),已处理 90/111.17 天\n[2026-02-21 15:30:05] INFO | etl_billiards | ODS_ASSISTANT_LEDGER: 开始执行(4/4),窗口[2026-01-29 22:00:00+08:00 ~ 2026-02-20 02:00:00+08:00]\n[2026-02-21 15:30:08] INFO | etl_billiards | ODS_ASSISTANT_LEDGER: early-cutoff 保护生效,软删除窗口起点从 2026-01-29 22:00:00+08:00 收窄至 2026-01-29 22:07:25+08:00\n[2026-02-21 15:30:08] INFO | etl_billiards | ODS_ASSISTANT_LEDGER: 完成(4/4),已处理 111.17/111.17 天\n[2026-02-21 15:30:08] INFO | etl_billiards | ODS_ASSISTANT_LEDGER ODS 任务完成: {'fetched': 2277, 'inserted': 342, 'updated': 2277, 'skipped': 0, 'errors': 0, 'deleted': 342}\n[2026-02-21 15:30:08] INFO | etl_billiards | ODS_ASSISTANT_ABOLISH: ODS fetch+load start, dir=C:\\NeoZQYY\\export\\ETL-Connectors\\feiqiu\\JSON\\ODS_ASSISTANT_ABOLISH\\ODS_ASSISTANT_ABOLISH-8823-20260221-153008\n[2026-02-21 15:30:08] INFO | etl_billiards | 开始执行ODS_ASSISTANT_ABOLISH (ODS)\n[2026-02-21 15:30:08] INFO | etl_billiards | ODS_ASSISTANT_ABOLISH: 窗口拆分为 4 段(共 111.17 天)\n[2026-02-21 15:30:08] INFO | etl_billiards | ODS_ASSISTANT_ABOLISH: 开始执行(1/4),窗口[2025-10-31 22:00:00+08:00 ~ 2025-11-30 22:00:00+08:00]\n[2026-02-21 15:30:09] INFO | etl_billiards | ODS_ASSISTANT_ABOLISH: 完成(1/4),已处理 30/111.17 天\n[2026-02-21 15:30:09] INFO | etl_billiards | ODS_ASSISTANT_ABOLISH: 开始执行(2/4),窗口[2025-11-30 22:00:00+08:00 ~ 2025-12-30 22:00:00+08:00]\n[2026-02-21 15:30:10] INFO | etl_billiards | ODS_ASSISTANT_ABOLISH: 完成(2/4),已处理 60/111.17 天\n[2026-02-21 15:30:10] INFO | etl_billiards | ODS_ASSISTANT_ABOLISH: 开始执行(3/4),窗口[2025-12-30 22:00:00+08:00 ~ 2026-01-29 22:00:00+08:00]\n[2026-02-21 15:30:11] INFO | etl_billiards | ODS_ASSISTANT_ABOLISH: 完成(3/4),已处理 90/111.17 天\n[2026-02-21 15:30:11] INFO | etl_billiards | ODS_ASSISTANT_ABOLISH: 开始执行(4/4),窗口[2026-01-29 22:00:00+08:00 ~ 2026-02-20 02:00:00+08:00]\n[2026-02-21 15:30:11] INFO | etl_billiards | ODS_ASSISTANT_ABOLISH: 完成(4/4),已处理 111.17/111.17 天\n[2026-02-21 15:30:11] INFO | etl_billiards | ODS_ASSISTANT_ABOLISH ODS 任务完成: {'fetched': 78, 'inserted': 0, 'updated': 78, 'skipped': 0, 'errors': 0, 'deleted': 0}\n[2026-02-21 15:30:13] INFO | etl_billiards | DWS_ASSISTANT_DAILY: 抓取阶段开始,目录=C:\\NeoZQYY\\export\\ETL-Connectors\\feiqiu\\JSON\\DWS_ASSISTANT_DAILY\\DWS_ASSISTANT_DAILY-8824-20260221-153013\n[2026-02-21 15:30:13] INFO | etl_billiards | DWS_ASSISTANT_DAILY: 提取数据,日期范围 2025-11-01 ~ 2026-02-20\n[2026-02-21 15:30:14] ERROR | etl_billiards | 任务 DWS_ASSISTANT_DAILY 失败: 错误: 当前事务被终止, 事务块结束之前的查询被忽略\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\\assistant_daily_task.py\", line 85, in extract\n trash_records = self._extract_trash_records(site_id, start_date, end_date)\n File \"C:\\NeoZQYY\\apps\\etl\\connectors\\feiqiu\\tasks\\dws\\assistant_daily_task.py\", line 185, in _extract_trash_records\n rows = self.db.query(sql, (site_id, start_date, end_date))\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: 错误: 字段 \"assistant_service_id\" 不存在\nLINE 3: assistant_service_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 15:30:14] ERROR | etl_billiards | 任务 DWS_ASSISTANT_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 15:30:14] ERROR | etl_billiards | 任务 DWS_ASSISTANT_CUSTOMER 失败: 错误: 当前事务被终止, 事务块结束之前的查询被忽略\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 15:30:14] ERROR | etl_billiards | 任务 DWS_ASSISTANT_SALARY 失败: 错误: 当前事务被终止, 事务块结束之前的查询被忽略\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 15:30:14] ERROR | etl_billiards | 任务 DWS_ASSISTANT_FINANCE 失败: 错误: 当前事务被终止, 事务块结束之前的查询被忽略\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 15:30:14] ERROR | etl_billiards | 任务 ODS_SETTLEMENT_RECORDS 失败: 错误: 当前事务被终止, 事务块结束之前的查询被忽略\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 15:30:15] ERROR | etl_billiards | 任务 ODS_PAYMENT 失败: 错误: 当前事务被终止, 事务块结束之前的查询被忽略\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 15:30:15] ERROR | etl_billiards | 任务 ODS_REFUND 失败: 错误: 当前事务被终止, 事务块结束之前的查询被忽略\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 15:30:15] INFO | etl_billiards | DWS_BUILD_ORDER_SUMMARY: 开始执行工具类任务\n[2026-02-21 15:30:15] INFO | etl_billiards | DWS_BUILD_ORDER_SUMMARY: 分段执行 共4段\n[2026-02-21 15:30:15] 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 15:30:15] ERROR | etl_billiards | DWS_BUILD_ORDER_SUMMARY: 执行失败\nTraceback (most recent call last):\n File \"C:\\NeoZQYY\\apps\\etl\\connectors\\feiqiu\\tasks\\utility\\dws_build_order_summary_task.py\", line 223, in execute\n load_result = self.load(transformed, context) or {}\n ~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^\n File \"C:\\NeoZQYY\\apps\\etl\\connectors\\feiqiu\\tasks\\utility\\dws_build_order_summary_task.py\", line 311, in load\n cur.execute(\"SELECT to_regclass('dws.dws_order_summary') AS reg;\")\n ~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\npsycopg2.errors.InFailedSqlTransaction: 错误: 当前事务被终止, 事务块结束之前的查询被忽略\n\n[2026-02-21 15:30:15] ERROR | etl_billiards | DWS_BUILD_ORDER_SUMMARY: 工具类任务执行失败: 错误: 当前事务被终止, 事务块结束之前的查询被忽略\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\\utility\\dws_build_order_summary_task.py\", line 223, in execute\n load_result = self.load(transformed, context) or {}\n ~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^\n File \"C:\\NeoZQYY\\apps\\etl\\connectors\\feiqiu\\tasks\\utility\\dws_build_order_summary_task.py\", line 311, in load\n cur.execute(\"SELECT to_regclass('dws.dws_order_summary') AS reg;\")\n ~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\npsycopg2.errors.InFailedSqlTransaction: 错误: 当前事务被终止, 事务块结束之前的查询被忽略\n\n[2026-02-21 15:30:15] ERROR | etl_billiards | 任务 DWS_BUILD_ORDER_SUMMARY 失败: 错误: 当前事务被终止, 事务块结束之前的查询被忽略\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\\utility\\dws_build_order_summary_task.py\", line 223, in execute\n load_result = self.load(transformed, context) or {}\n ~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^\n File \"C:\\NeoZQYY\\apps\\etl\\connectors\\feiqiu\\tasks\\utility\\dws_build_order_summary_task.py\", line 311, in load\n cur.execute(\"SELECT to_regclass('dws.dws_order_summary') AS reg;\")\n ~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\npsycopg2.errors.InFailedSqlTransaction: 错误: 当前事务被终止, 事务块结束之前的查询被忽略\n\n[2026-02-21 15:30:15] INFO | etl_billiards | ODS_TABLE_USE: ODS fetch+load start, dir=C:\\NeoZQYY\\export\\ETL-Connectors\\feiqiu\\JSON\\ODS_TABLE_USE\\ODS_TABLE_USE-8825-20260221-153015\n[2026-02-21 15:30:15] INFO | etl_billiards | 开始执行ODS_TABLE_USE (ODS)\n[2026-02-21 15:30:15] INFO | etl_billiards | ODS_TABLE_USE: 窗口拆分为 4 段(共 111.17 天)\n[2026-02-21 15:30:16] INFO | etl_billiards | ODS_TABLE_USE: 开始执行(1/4),窗口[2025-10-31 22:00:00+08:00 ~ 2025-11-30 22:00:00+08:00]\n[2026-02-21 15:31:28] INFO | etl_billiards | ODS_TABLE_USE: early-cutoff 保护生效,软删除窗口起点从 2025-10-31 22:00:00+08:00 收窄至 2025-11-21 11:14:11+08:00\n[2026-02-21 15:31:28] INFO | etl_billiards | ODS_TABLE_USE: 完成(1/4),已处理 30/111.17 天\n[2026-02-21 15:31:28] INFO | etl_billiards | ODS_TABLE_USE: 开始执行(2/4),窗口[2025-11-30 22:00:00+08:00 ~ 2025-12-30 22:00:00+08:00]\n[2026-02-21 15:32:34] INFO | etl_billiards | ODS_TABLE_USE: 完成(2/4),已处理 60/111.17 天\n[2026-02-21 15:32:34] INFO | etl_billiards | ODS_TABLE_USE: 开始执行(3/4),窗口[2025-12-30 22:00:00+08:00 ~ 2026-01-29 22:00:00+08:00]\n[2026-02-21 15:33:44] INFO | etl_billiards | ODS_TABLE_USE: 完成(3/4),已处理 90/111.17 天\n[2026-02-21 15:33:44] INFO | etl_billiards | ODS_TABLE_USE: 开始执行(4/4),窗口[2026-01-29 22:00:00+08:00 ~ 2026-02-20 02:00:00+08:00]\n[2026-02-21 15:35:01] INFO | etl_billiards | ODS_TABLE_USE: 完成(4/4),已处理 111.17/111.17 天\n[2026-02-21 15:35:01] INFO | etl_billiards | ODS_TABLE_USE ODS 任务完成: {'fetched': 36412, 'inserted': 0, 'updated': 36412, 'skipped': 0, 'errors': 0, 'deleted': 0}\n[2026-02-21 15:35:02] INFO | etl_billiards | ODS_TABLE_FEE_DISCOUNT: ODS fetch+load start, dir=C:\\NeoZQYY\\export\\ETL-Connectors\\feiqiu\\JSON\\ODS_TABLE_FEE_DISCOUNT\\ODS_TABLE_FEE_DISCOUNT-8826-20260221-153502\n[2026-02-21 15:35:02] INFO | etl_billiards | 开始执行ODS_TABLE_FEE_DISCOUNT (ODS)\n[2026-02-21 15:35:02] INFO | etl_billiards | ODS_TABLE_FEE_DISCOUNT: 窗口拆分为 4 段(共 111.17 天)\n[2026-02-21 15:35:02] INFO | etl_billiards | ODS_TABLE_FEE_DISCOUNT: 开始执行(1/4),窗口[2025-10-31 22:00:00+08:00 ~ 2025-11-30 22:00:00+08:00]\n[2026-02-21 15:35:18] INFO | etl_billiards | ODS_TABLE_FEE_DISCOUNT: early-cutoff 保护生效,软删除窗口起点从 2025-10-31 22:00:00+08:00 收窄至 2025-11-21 15:28:23+08:00\n[2026-02-21 15:35:18] INFO | etl_billiards | ODS_TABLE_FEE_DISCOUNT: 完成(1/4),已处理 30/111.17 天\n[2026-02-21 15:35:18] INFO | etl_billiards | ODS_TABLE_FEE_DISCOUNT: 开始执行(2/4),窗口[2025-11-30 22:00:00+08:00 ~ 2025-12-30 22:00:00+08:00]\n[2026-02-21 15:35:32] INFO | etl_billiards | ODS_TABLE_FEE_DISCOUNT: 完成(2/4),已处理 60/111.17 天\n[2026-02-21 15:35:32] INFO | etl_billiards | ODS_TABLE_FEE_DISCOUNT: 开始执行(3/4),窗口[2025-12-30 22:00:00+08:00 ~ 2026-01-29 22:00:00+08:00]\n[2026-02-21 15:35:47] INFO | etl_billiards | ODS_TABLE_FEE_DISCOUNT: 完成(3/4),已处理 90/111.17 天\n[2026-02-21 15:35:47] INFO | etl_billiards | ODS_TABLE_FEE_DISCOUNT: 开始执行(4/4),窗口[2026-01-29 22:00:00+08:00 ~ 2026-02-20 02:00:00+08:00]\n[2026-02-21 15:36:04] INFO | etl_billiards | ODS_TABLE_FEE_DISCOUNT: 完成(4/4),已处理 111.17/111.17 天\n[2026-02-21 15:36:04] INFO | etl_billiards | ODS_TABLE_FEE_DISCOUNT ODS 任务完成: {'fetched': 6464, 'inserted': 0, 'updated': 6464, 'skipped': 0, 'errors': 0, 'deleted': 0}\n[2026-02-21 15:36:05] INFO | etl_billiards | ODS_TABLES: ODS fetch+load start, dir=C:\\NeoZQYY\\export\\ETL-Connectors\\feiqiu\\JSON\\ODS_TABLES\\ODS_TABLES-8827-20260221-153605\n[2026-02-21 15:36:05] INFO | etl_billiards | 开始执行ODS_TABLES (ODS)\n[2026-02-21 15:36:05] INFO | etl_billiards | ODS_TABLES: 窗口拆分为 4 段(共 111.17 天)\n[2026-02-21 15:36:06] INFO | etl_billiards | ODS_TABLES: 开始执行(1/4),窗口[2025-10-31 22:00:00+08:00 ~ 2025-11-30 22:00:00+08:00]\n[2026-02-21 15:36:08] INFO | etl_billiards | ODS_TABLES: 完成(1/4),已处理 30/111.17 天\n[2026-02-21 15:36:08] INFO | etl_billiards | ODS_TABLES: 开始执行(2/4),窗口[2025-11-30 22:00:00+08:00 ~ 2025-12-30 22:00:00+08:00]\n[2026-02-21 15:36:09] INFO | etl_billiards | ODS_TABLES: 完成(2/4),已处理 60/111.17 天\n[2026-02-21 15:36:09] INFO | etl_billiards | ODS_TABLES: 开始执行(3/4),窗口[2025-12-30 22:00:00+08:00 ~ 2026-01-29 22:00:00+08:00]\n[2026-02-21 15:36:10] INFO | etl_billiards | ODS_TABLES: 完成(3/4),已处理 90/111.17 天\n[2026-02-21 15:36:10] INFO | etl_billiards | ODS_TABLES: 开始执行(4/4),窗口[2026-01-29 22:00:00+08:00 ~ 2026-02-20 02:00:00+08:00]\n[2026-02-21 15:36:10] INFO | etl_billiards | ODS_TABLES: 完成(4/4),已处理 111.17/111.17 天\n[2026-02-21 15:36:10] INFO | etl_billiards | ODS_TABLES ODS 任务完成: {'fetched': 296, 'inserted': 0, 'updated': 296, 'skipped': 0, 'errors': 0, 'deleted': 0}\n[2026-02-21 15:36:11] INFO | etl_billiards | ODS_MEMBER: ODS fetch+load start, dir=C:\\NeoZQYY\\export\\ETL-Connectors\\feiqiu\\JSON\\ODS_MEMBER\\ODS_MEMBER-8828-20260221-153611\n[2026-02-21 15:36:11] INFO | etl_billiards | 开始执行ODS_MEMBER (ODS)\n[2026-02-21 15:36:11] INFO | etl_billiards | ODS_MEMBER: 窗口拆分为 4 段(共 111.17 天)\n[2026-02-21 15:36:11] INFO | etl_billiards | ODS_MEMBER: 开始执行(1/4),窗口[2025-10-31 22:00:00+08:00 ~ 2025-11-30 22:00:00+08:00]\n[2026-02-21 15:36:16] INFO | etl_billiards | ODS_MEMBER: 完成(1/4),已处理 30/111.17 天\n[2026-02-21 15:36:16] INFO | etl_billiards | ODS_MEMBER: 开始执行(2/4),窗口[2025-11-30 22:00:00+08:00 ~ 2025-12-30 22:00:00+08:00]\n[2026-02-21 15:36:20] INFO | etl_billiards | ODS_MEMBER: 完成(2/4),已处理 60/111.17 天\n[2026-02-21 15:36:20] INFO | etl_billiards | ODS_MEMBER: 开始执行(3/4),窗口[2025-12-30 22:00:00+08:00 ~ 2026-01-29 22:00:00+08:00]\n[2026-02-21 15:36:25] INFO | etl_billiards | ODS_MEMBER: 完成(3/4),已处理 90/111.17 天\n[2026-02-21 15:36:25] INFO | etl_billiards | ODS_MEMBER: 开始执行(4/4),窗口[2026-01-29 22:00:00+08:00 ~ 2026-02-20 02:00:00+08:00]\n[2026-02-21 15:36:28] INFO | etl_billiards | ODS_MEMBER: 完成(4/4),已处理 111.17/111.17 天\n[2026-02-21 15:36:28] INFO | etl_billiards | ODS_MEMBER ODS 任务完成: {'fetched': 2228, 'inserted': 0, 'updated': 2228, 'skipped': 0, 'errors': 0, 'deleted': 0}\n[2026-02-21 15:36:29] INFO | etl_billiards | ODS_MEMBER_CARD: ODS fetch+load start, dir=C:\\NeoZQYY\\export\\ETL-Connectors\\feiqiu\\JSON\\ODS_MEMBER_CARD\\ODS_MEMBER_CARD-8829-20260221-153629\n[2026-02-21 15:36:29] INFO | etl_billiards | 开始执行ODS_MEMBER_CARD (ODS)\n[2026-02-21 15:36:29] INFO | etl_billiards | ODS_MEMBER_CARD: 窗口拆分为 4 段(共 111.17 天)\n[2026-02-21 15:36:29] INFO | etl_billiards | ODS_MEMBER_CARD: 开始执行(1/4),窗口[2025-10-31 22:00:00+08:00 ~ 2025-11-30 22:00:00+08:00]\n[2026-02-21 15:36:37] INFO | etl_billiards | ODS_MEMBER_CARD: 完成(1/4),已处理 30/111.17 天\n[2026-02-21 15:36:37] INFO | etl_billiards | ODS_MEMBER_CARD: 开始执行(2/4),窗口[2025-11-30 22:00:00+08:00 ~ 2025-12-30 22:00:00+08:00]\n[2026-02-21 15:36:46] INFO | etl_billiards | ODS_MEMBER_CARD: 完成(2/4),已处理 60/111.17 天\n[2026-02-21 15:36:46] INFO | etl_billiards | ODS_MEMBER_CARD: 开始执行(3/4),窗口[2025-12-30 22:00:00+08:00 ~ 2026-01-29 22:00:00+08:00]\n[2026-02-21 15:36:57] INFO | etl_billiards | ODS_MEMBER_CARD: 完成(3/4),已处理 90/111.17 天\n[2026-02-21 15:36:57] INFO | etl_billiards | ODS_MEMBER_CARD: 开始执行(4/4),窗口[2026-01-29 22:00:00+08:00 ~ 2026-02-20 02:00:00+08:00]\n[2026-02-21 15:37:05] INFO | etl_billiards | ODS_MEMBER_CARD: 完成(4/4),已处理 111.17/111.17 天\n[2026-02-21 15:37:05] INFO | etl_billiards | ODS_MEMBER_CARD ODS 任务完成: {'fetched': 3784, 'inserted': 0, 'updated': 3784, 'skipped': 0, 'errors': 0, 'deleted': 0}\n[2026-02-21 15:37:06] INFO | etl_billiards | ODS_MEMBER_BALANCE: ODS fetch+load start, dir=C:\\NeoZQYY\\export\\ETL-Connectors\\feiqiu\\JSON\\ODS_MEMBER_BALANCE\\ODS_MEMBER_BALANCE-8830-20260221-153706\n[2026-02-21 15:37:06] INFO | etl_billiards | 开始执行ODS_MEMBER_BALANCE (ODS)\n[2026-02-21 15:37:06] INFO | etl_billiards | ODS_MEMBER_BALANCE: 窗口拆分为 4 段(共 111.17 天)\n[2026-02-21 15:37:06] INFO | etl_billiards | ODS_MEMBER_BALANCE: 开始执行(1/4),窗口[2025-10-31 22:00:00+08:00 ~ 2025-11-30 22:00:00+08:00]\n[2026-02-21 15:37:34] INFO | etl_billiards | ODS_MEMBER_BALANCE: early-cutoff 保护生效,软删除窗口起点从 2025-10-31 22:00:00+08:00 收窄至 2025-11-21 11:11:42+08:00\n[2026-02-21 15:37:34] INFO | etl_billiards | ODS_MEMBER_BALANCE: 完成(1/4),已处理 30/111.17 天\n[2026-02-21 15:37:34] INFO | etl_billiards | ODS_MEMBER_BALANCE: 开始执行(2/4),窗口[2025-11-30 22:00:00+08:00 ~ 2025-12-30 22:00:00+08:00]\n[2026-02-21 15:38:01] INFO | etl_billiards | ODS_MEMBER_BALANCE: 完成(2/4),已处理 60/111.17 天\n[2026-02-21 15:38:01] INFO | etl_billiards | ODS_MEMBER_BALANCE: 开始执行(3/4),窗口[2025-12-30 22:00:00+08:00 ~ 2026-01-29 22:00:00+08:00]\n[2026-02-21 15:38:30] INFO | etl_billiards | ODS_MEMBER_BALANCE: 完成(3/4),已处理 90/111.17 天\n[2026-02-21 15:38:30] INFO | etl_billiards | ODS_MEMBER_BALANCE: 开始执行(4/4),窗口[2026-01-29 22:00:00+08:00 ~ 2026-02-20 02:00:00+08:00]\n[2026-02-21 15:38:59] INFO | etl_billiards | ODS_MEMBER_BALANCE: 完成(4/4),已处理 111.17/111.17 天\n[2026-02-21 15:38:59] INFO | etl_billiards | ODS_MEMBER_BALANCE ODS 任务完成: {'fetched': 8740, 'inserted': 0, 'updated': 8740, 'skipped': 0, 'errors': 0, 'deleted': 0}\n[2026-02-21 15:39:01] INFO | etl_billiards | ODS_RECHARGE_SETTLE: ODS fetch+load start, dir=C:\\NeoZQYY\\export\\ETL-Connectors\\feiqiu\\JSON\\ODS_RECHARGE_SETTLE\\ODS_RECHARGE_SETTLE-8831-20260221-153901\n[2026-02-21 15:39:01] INFO | etl_billiards | 开始执行ODS_RECHARGE_SETTLE (ODS)\n[2026-02-21 15:39:01] INFO | etl_billiards | ODS_RECHARGE_SETTLE: 窗口拆分为 4 段(共 111.17 天)\n[2026-02-21 15:39:01] INFO | etl_billiards | ODS_RECHARGE_SETTLE: 开始执行(1/4),窗口[2025-10-31 22:00:00+08:00 ~ 2025-11-30 22:00:00+08:00]\n[2026-02-21 15:39:02] INFO | etl_billiards | ODS_RECHARGE_SETTLE: 完成(1/4),已处理 30/111.17 天\n[2026-02-21 15:39:02] INFO | etl_billiards | ODS_RECHARGE_SETTLE: 开始执行(2/4),窗口[2025-11-30 22:00:00+08:00 ~ 2025-12-30 22:00:00+08:00]\n[2026-02-21 15:39:03] INFO | etl_billiards | ODS_RECHARGE_SETTLE: 完成(2/4),已处理 60/111.17 天\n[2026-02-21 15:39:03] INFO | etl_billiards | ODS_RECHARGE_SETTLE: 开始执行(3/4),窗口[2025-12-30 22:00:00+08:00 ~ 2026-01-29 22:00:00+08:00]\n[2026-02-21 15:39:05] INFO | etl_billiards | ODS_RECHARGE_SETTLE: 完成(3/4),已处理 90/111.17 天\n[2026-02-21 15:39:05] INFO | etl_billiards | ODS_RECHARGE_SETTLE: 开始执行(4/4),窗口[2026-01-29 22:00:00+08:00 ~ 2026-02-20 02:00:00+08:00]\n[2026-02-21 15:39:06] INFO | etl_billiards | ODS_RECHARGE_SETTLE: 完成(4/4),已处理 111.17/111.17 天\n[2026-02-21 15:39:06] INFO | etl_billiards | ODS_RECHARGE_SETTLE ODS 任务完成: {'fetched': 191, 'inserted': 0, 'updated': 191, 'skipped': 0, 'errors': 0, 'deleted': 0}\n[2026-02-21 15:39:06] INFO | etl_billiards | DWS_MEMBER_CONSUMPTION: 抓取阶段开始,目录=C:\\NeoZQYY\\export\\ETL-Connectors\\feiqiu\\JSON\\DWS_MEMBER_CONSUMPTION\\DWS_MEMBER_CONSUMPTION-8832-20260221-153906\n[2026-02-21 15:39:06] INFO | etl_billiards | DWS_MEMBER_CONSUMPTION: 提取数据,统计日期 2026-02-20\n[2026-02-21 15:39:07] ERROR | etl_billiards | 任务 DWS_MEMBER_CONSUMPTION 失败: 错误: 当前事务被终止, 事务块结束之前的查询被忽略\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_consumption_task.py\", line 83, in extract\n member_info = self._extract_member_info(site_id)\n File \"C:\\NeoZQYY\\apps\\etl\\connectors\\feiqiu\\tasks\\dws\\member_consumption_task.py\", line 249, 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: 错误: 字段 \"site_id\" 不存在\nLINE 10: WHERE site_id = 2790685415443269\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 15:39:07] ERROR | etl_billiards | 任务 DWS_MEMBER_VISIT 失败: 错误: 当前事务被终止, 事务块结束之前的查询被忽略\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 15:39:07] 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 15:39:07] 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 15:39:07] 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 15:39:07] 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 15:39:07] 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 15:39:07] 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 15:39:07] 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 15:39:07] 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 15:39:07] 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 15:39:07] 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 15:39:07] 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 15:39:07] 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 15:39:07] 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 15:39:07] 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 15:39:08] 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 15:39:08] 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 15:39:08] INFO | etl_billiards | DWS_WINBACK_INDEX: 开始执行工具类任务\n[2026-02-21 15:39:08] INFO | etl_billiards | 开始计算 DWS_WINBACK_INDEX\n[2026-02-21 15:39:08] 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 15:39:08] 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 15:39:08] INFO | etl_billiards | DWS_NEWCONV_INDEX: 开始执行工具类任务\n[2026-02-21 15:39:08] INFO | etl_billiards | 开始计算 DWS_NEWCONV_INDEX\n[2026-02-21 15:39:08] 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 15:39:08] 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 15:39:08] INFO | etl_billiards | DWS_RELATION_INDEX: 开始执行工具类任务\n[2026-02-21 15:39:08] INFO | etl_billiards | 开始计算关系指数RS/OS/MS/ML\n[2026-02-21 15:39:08] 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 15:39:08] 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 15:39:08] 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 15:39:08] INFO | etl_billiards | 所有任务执行完成\n[2026-02-21 15:39:10] INFO | etl_billiards | 一致性检查报告已生成: C:\\NeoZQYY\\export\\ETL-Connectors\\feiqiu\\REPORTS\\consistency_report_20260221_153910.md\n[2026-02-21 15:39:10] INFO | etl_billiards | 计时报告已生成\n[2026-02-21 15:39:10] INFO | etl_billiards | \n╔══════════════════════════════════════════════════════════════╗\n║ 任务执行总结 ║\n╠══════════════════════════════════════════════════════════════╣\n║ 任务代码: FLOW_API_FULL ║\n║ 执行状态: 成功 ║\n║ 执行时间: 2026-02-21 15:29:21 ~ 15:39:10 (9分49秒) ║\n╠══════════════════════════════════════════════════════════════╣\n║ 数据统计 ║\n║ - 获取记录: 60,746 ║\n║ - 新增记录: 342 ║\n║ - 更新记录: 60,746 ║\n║ - 跳过记录: 0 ║\n║ - 错误记录: 0 ║\n╚══════════════════════════════════════════════════════════════╝\n[2026-02-21 15:39:10] INFO | etl_billiards | \n╔══════════════════════════════════════════════════════════════╗\n║ 任务执行总结 ║\n╠══════════════════════════════════════════════════════════════╣\n║ 任务代码: FLOW_API_FULL ║\n║ 执行状态: 成功 ║\n║ 执行时间: 2026-02-21 15:29:21 ~ 15:39:10 (9分49秒) ║\n╠══════════════════════════════════════════════════════════════╣\n║ 数据统计 ║\n║ - 获取记录: 60,746 ║\n║ - 新增记录: 342 ║\n║ - 更新记录: 60,746 ║\n║ - 跳过记录: 0 ║\n║ - 错误记录: 0 ║\n╚══════════════════════════════════════════════════════════════╝\n[2026-02-21 15:39:10] INFO | etl_billiards | Flow 执行完成: SUCCESS\n[2026-02-21 15:39:10] INFO | etl_billiards | ETL运行完成"
}