71 lines
32 KiB
JSON
71 lines
32 KiB
JSON
{
|
||
"tasks": {
|
||
"771c025b": {
|
||
"id": "771c025b",
|
||
"name": "日常同步 (2h)",
|
||
"task_codes": [
|
||
"ODS_TENANT_GOODS",
|
||
"ODS_GOODS_CATEGORY",
|
||
"ODS_RECHARGE_SETTLE",
|
||
"ODS_ASSISTANT_ABOLISH",
|
||
"ODS_ASSISTANT_ACCOUNT",
|
||
"ODS_PAYMENT",
|
||
"ODS_STORE_GOODS",
|
||
"ODS_GROUP_BUY_REDEMPTION",
|
||
"ODS_INVENTORY_STOCK",
|
||
"ODS_GROUP_PACKAGE",
|
||
"ODS_PLATFORM_COUPON",
|
||
"ODS_ASSISTANT_LEDGER",
|
||
"ODS_STORE_GOODS_SALES",
|
||
"ODS_MEMBER_BALANCE",
|
||
"ODS_SETTLEMENT_RECORDS",
|
||
"ODS_REFUND",
|
||
"ODS_TABLE_FEE_DISCOUNT",
|
||
"ODS_SETTLEMENT_TICKET",
|
||
"ODS_TABLES",
|
||
"ODS_TABLE_USE",
|
||
"ODS_MEMBER",
|
||
"ODS_INVENTORY_CHANGE",
|
||
"ODS_MEMBER_CARD",
|
||
"DWD_LOAD_FROM_ODS"
|
||
],
|
||
"schedule": {
|
||
"schedule_type": "interval",
|
||
"interval_value": 1,
|
||
"interval_unit": "hours",
|
||
"daily_time": "04:00",
|
||
"weekly_days": [
|
||
1
|
||
],
|
||
"weekly_time": "04:00",
|
||
"cron_expression": "0 4 * * *",
|
||
"enabled": true,
|
||
"start_date": null,
|
||
"end_date": null
|
||
},
|
||
"task_config": {
|
||
"pipeline_flow": "FULL",
|
||
"lookback_hours": 2
|
||
},
|
||
"enabled": true,
|
||
"last_run": "2026-02-01T23:28:41.246703",
|
||
"next_run": "2026-02-02T00:28:41.246703",
|
||
"run_count": 1,
|
||
"last_status": "成功",
|
||
"execution_history": [
|
||
{
|
||
"task_id": "2cb92566",
|
||
"executed_at": "2026-02-01T23:28:41.246703",
|
||
"status": "success",
|
||
"exit_code": 0,
|
||
"duration_seconds": 191.25862,
|
||
"summary": "【DWD 装载】维表新增: 0条, 维表更新: 1条, 事实表新增: 2条, 事实表更新: 0条\n 维表: dim_store_goods: +0, ~1\n 事实表: dwd_settlement_head: +1, ~0, dwd_payment: +1, ~0\n【错误】2026-02-01 23:28:42 [INFO] etl_billiards: ODS_TENANT_GOODS ODS 任务完成: {'fetched': 173, 'inserted': 0,; 2026-02-01 23:28:43 [INFO] etl_billiards: ODS_GOODS_CATEGORY ODS 任务完成: {'fetched': 9, 'inserted': 0,; 2026-02-01 23:28:43 [INFO] etl_billiards: ODS_RECHARGE_SETTLE ODS 任务完成: {'fetched': 0, 'inserted': 0\n【结果】✓ etl_billiards: ETL运行完成",
|
||
"output": "[工作目录] C:\\dev\\LLTQ\\ETL\\feiqiu-ETL\\etl_billiards\n[执行命令] python -m cli.main --tasks ODS_TENANT_GOODS,ODS_GOODS_CATEGORY,ODS_RECHARGE_SETTLE,ODS_ASSISTANT_ABOLISH,ODS_ASSISTANT_ACCOUNT,ODS_PAYMENT,ODS_STORE_GOODS,ODS_GROUP_BUY_REDEMPTION,ODS_INVENTORY_STOCK,ODS_GROUP_PACKAGE,ODS_PLATFORM_COUPON,ODS_ASSISTANT_LEDGER,ODS_STORE_GOODS_SALES,ODS_MEMBER_BALANCE,ODS_SETTLEMENT_RECORDS,ODS_REFUND,ODS_TABLE_FEE_DISCOUNT,ODS_SETTLEMENT_TICKET,ODS_TABLES,ODS_TABLE_USE,ODS_MEMBER,ODS_INVENTORY_CHANGE,ODS_MEMBER_CARD,DWD_LOAD_FROM_ODS --pipeline-flow FULL --window-start 2026-02-01 21:28:41 --window-end 2026-02-01 23:28:41\n2026-02-01 23:28:41 [INFO] etl_billiards: 配置加载完成\n2026-02-01 23:28:41 [INFO] etl_billiards: 门店ID: 2790685415443269\n2026-02-01 23:28:41 [INFO] etl_billiards: 任务列表: ['ODS_TENANT_GOODS', 'ODS_GOODS_CATEGORY', 'ODS_RECHARGE_SETTLE', 'ODS_ASSISTANT_ABOLISH', 'ODS_ASSISTANT_ACCOUNT', 'ODS_PAYMENT', 'ODS_STORE_GOODS', 'ODS_GROUP_BUY_REDEMPTION', 'ODS_INVENTORY_STOCK', 'ODS_GROUP_PACKAGE', 'ODS_PLATFORM_COUPON', 'ODS_ASSISTANT_LEDGER', 'ODS_STORE_GOODS_SALES', 'ODS_MEMBER_BALANCE', 'ODS_SETTLEMENT_RECORDS', 'ODS_REFUND', 'ODS_TABLE_FEE_DISCOUNT', 'ODS_SETTLEMENT_TICKET', 'ODS_TABLES', 'ODS_TABLE_USE', 'ODS_MEMBER', 'ODS_INVENTORY_CHANGE', 'ODS_MEMBER_CARD', 'DWD_LOAD_FROM_ODS']\n2026-02-01 23:28:41 [INFO] etl_billiards: 开始运行任务: ['ODS_TENANT_GOODS', 'ODS_GOODS_CATEGORY', 'ODS_RECHARGE_SETTLE', 'ODS_ASSISTANT_ABOLISH', 'ODS_ASSISTANT_ACCOUNT', 'ODS_PAYMENT', 'ODS_STORE_GOODS', 'ODS_GROUP_BUY_REDEMPTION', 'ODS_INVENTORY_STOCK', 'ODS_GROUP_PACKAGE', 'ODS_PLATFORM_COUPON', 'ODS_ASSISTANT_LEDGER', 'ODS_STORE_GOODS_SALES', 'ODS_MEMBER_BALANCE', 'ODS_SETTLEMENT_RECORDS', 'ODS_REFUND', 'ODS_TABLE_FEE_DISCOUNT', 'ODS_SETTLEMENT_TICKET', 'ODS_TABLES', 'ODS_TABLE_USE', 'ODS_MEMBER', 'ODS_INVENTORY_CHANGE', 'ODS_MEMBER_CARD', 'DWD_LOAD_FROM_ODS'], run_uuid=e889270a378745498e3c92ae97b7d500\n2026-02-01 23:28:41 [INFO] etl_billiards: ODS_TENANT_GOODS: ODS fetch+load start, dir=export\\JSON\\ODS_TENANT_GOODS\\ODS_TENANT_GOODS-7371-20260201-232841\n2026-02-01 23:28:41 [INFO] etl_billiards: 开始执行ODS_TENANT_GOODS (ODS)\n2026-02-01 23:28:41 [INFO] etl_billiards: ODS_TENANT_GOODS: 开始执行(1/1),窗口[2026-02-01 19:28:41+08:00 ~ 2026-02-02 01:28:41+08:00]\n2026-02-01 23:28:42 [INFO] etl_billiards: ODS_TENANT_GOODS ODS 任务完成: {'fetched': 173, 'inserted': 0, 'updated': 0, 'skipped': 173, 'errors': 0}\n2026-02-01 23:28:43 [INFO] etl_billiards: ODS_GOODS_CATEGORY: ODS fetch+load start, dir=export\\JSON\\ODS_GOODS_CATEGORY\\ODS_GOODS_CATEGORY-7372-20260201-232843\n2026-02-01 23:28:43 [INFO] etl_billiards: 开始执行ODS_GOODS_CATEGORY (ODS)\n2026-02-01 23:28:43 [INFO] etl_billiards: ODS_GOODS_CATEGORY: 开始执行(1/1),窗口[2026-02-01 19:28:41+08:00 ~ 2026-02-02 01:28:41+08:00]\n2026-02-01 23:28:43 [INFO] etl_billiards: ODS_GOODS_CATEGORY ODS 任务完成: {'fetched': 9, 'inserted': 0, 'updated': 0, 'skipped': 9, 'errors': 0}\n2026-02-01 23:28:43 [INFO] etl_billiards: ODS_RECHARGE_SETTLE: ODS fetch+load start, dir=export\\JSON\\ODS_RECHARGE_SETTLE\\ODS_RECHARGE_SETTLE-7373-20260201-232843\n2026-02-01 23:28:43 [INFO] etl_billiards: 开始执行ODS_RECHARGE_SETTLE (ODS)\n2026-02-01 23:28:43 [INFO] etl_billiards: ODS_RECHARGE_SETTLE: 开始执行(1/1),窗口[2026-02-01 19:28:41+08:00 ~ 2026-02-02 01:28:41+08:00]\n2026-02-01 23:28:43 [INFO] etl_billiards: ODS_RECHARGE_SETTLE ODS 任务完成: {'fetched': 0, 'inserted': 0, 'updated': 0, 'skipped': 0, 'errors': 0}\n2026-02-01 23:28:43 [INFO] etl_billiards: ODS_ASSISTANT_ABOLISH: ODS fetch+load start, dir=export\\JSON\\ODS_ASSISTANT_ABOLISH\\ODS_ASSISTANT_ABOLISH-7374-20260201-232843\n2026-02-01 23:28:43 [INFO] etl_billiards: 开始执行ODS_ASSISTANT_ABOLISH (ODS)\n2026-02-01 23:28:43 [INFO] etl_billiards: ODS_ASSISTANT_ABOLISH: 开始执行(1/1),窗口[2026-02-01 19:28:41+08:00 ~ 2026-02-02 01:28:41+08:00]\n2026-02-01 23:28:44 [INFO] etl_billiards: ODS_ASSISTANT_ABOLISH ODS 任务完成: {'fetched': 0, 'inserted': 0, 'updated': 0, 'skipped': 0, 'errors': 0}\n2026-02-01 23:28:44 [INFO] etl_billiards: ODS_ASSISTANT_ACCOUNT: ODS fetch+load start, dir=export\\JSON\\ODS_ASSISTANT_ACCOUNT\\ODS_ASSISTANT_ACCOUNT-7375-20260201-232844\n2026-02-01 23:28:44 [INFO] etl_billiards: 开始执行ODS_ASSISTANT_ACCOUNT (ODS)\n2026-02-01 23:28:44 [INFO] etl_billiards: ODS_ASSISTANT_ACCOUNT: 开始执行(1/1),窗口[2026-02-01 19:28:41+08:00 ~ 2026-02-02 01:28:41+08:00]\n2026-02-01 23:28:45 [INFO] etl_billiards: ODS_ASSISTANT_ACCOUNT ODS 任务完成: {'fetched': 69, 'inserted': 0, 'updated': 0, 'skipped': 69, 'errors': 0}\n2026-02-01 23:28:45 [INFO] etl_billiards: ODS_PAYMENT: ODS fetch+load start, dir=export\\JSON\\ODS_PAYMENT\\ODS_PAYMENT-7376-20260201-232845\n2026-02-01 23:28:45 [INFO] etl_billiards: 开始执行ODS_PAYMENT (ODS)\n2026-02-01 23:28:45 [INFO] etl_billiards: ODS_PAYMENT: 开始执行(1/1),窗口[2026-02-01 19:28:41+08:00 ~ 2026-02-02 01:28:41+08:00]\n2026-02-01 23:29:11 [INFO] etl_billiards: ODS_PAYMENT ODS 任务完成: {'fetched': 11941, 'inserted': 1, 'updated': 0, 'skipped': 11940, 'errors': 0}\n2026-02-01 23:29:11 [INFO] etl_billiards: ODS_STORE_GOODS: ODS fetch+load start, dir=export\\JSON\\ODS_STORE_GOODS\\ODS_STORE_GOODS-7377-20260201-232911\n2026-02-01 23:29:11 [INFO] etl_billiards: 开始执行ODS_STORE_GOODS (ODS)\n2026-02-01 23:29:11 [INFO] etl_billiards: ODS_STORE_GOODS: 开始执行(1/1),窗口[2026-02-01 19:28:41+08:00 ~ 2026-02-02 01:28:41+08:00]\n2026-02-01 23:29:11 [INFO] etl_billiards: ODS_STORE_GOODS ODS 任务完成: {'fetched': 172, 'inserted': 1, 'updated': 0, 'skipped': 171, 'errors': 0}\n2026-02-01 23:29:12 [INFO] etl_billiards: ODS_GROUP_BUY_REDEMPTION: ODS fetch+load start, dir=export\\JSON\\ODS_GROUP_BUY_REDEMPTION\\ODS_GROUP_BUY_REDEMPTION-7378-20260201-232912\n2026-02-01 23:29:12 [INFO] etl_billiards: 开始执行ODS_GROUP_BUY_REDEMPTION (ODS)\n2026-02-01 23:29:12 [INFO] etl_billiards: ODS_GROUP_BUY_REDEMPTION: 开始执行(1/1),窗口[2026-02-01 19:28:41+08:00 ~ 2026-02-02 01:28:41+08:00]\n2026-02-01 23:29:51 [INFO] etl_billiards: ODS_GROUP_BUY_REDEMPTION ODS 任务完成: {'fetched': 8245, 'inserted': 0, 'updated': 0, 'skipped': 8245, 'errors': 0}\n2026-02-01 23:29:51 [INFO] etl_billiards: ODS_INVENTORY_STOCK: ODS fetch+load start, dir=export\\JSON\\ODS_INVENTORY_STOCK\\ODS_INVENTORY_STOCK-7379-20260201-232951\n2026-02-01 23:29:51 [INFO] etl_billiards: 开始执行ODS_INVENTORY_STOCK (ODS)\n2026-02-01 23:29:51 [INFO] etl_billiards: ODS_INVENTORY_STOCK: 开始执行(1/1),窗口[2026-02-01 19:28:41+08:00 ~ 2026-02-02 01:28:41+08:00]\n2026-02-01 23:29:52 [INFO] etl_billiards: ODS_INVENTORY_STOCK ODS 任务完成: {'fetched': 172, 'inserted': 1, 'updated': 0, 'skipped': 171, 'errors': 0}\n2026-02-01 23:29:52 [INFO] etl_billiards: ODS_GROUP_PACKAGE: ODS fetch+load start, dir=export\\JSON\\ODS_GROUP_PACKAGE\\ODS_GROUP_PACKAGE-7380-20260201-232952\n2026-02-01 23:29:52 [INFO] etl_billiards: 开始执行ODS_GROUP_PACKAGE (ODS)\n2026-02-01 23:29:52 [INFO] etl_billiards: ODS_GROUP_PACKAGE: 开始执行(1/1),窗口[2026-02-01 19:28:41+08:00 ~ 2026-02-02 01:28:41+08:00]\n2026-02-01 23:29:52 [INFO] etl_billiards: ODS_GROUP_PACKAGE ODS 任务完成: {'fetched': 18, 'inserted': 0, 'updated': 0, 'skipped': 18, 'errors': 0}\n2026-02-01 23:29:52 [INFO] etl_billiards: ODS_PLATFORM_COUPON: ODS fetch+load start, dir=export\\JSON\\ODS_PLATFORM_COUPON\\ODS_PLATFORM_COUPON-7381-20260201-232952\n2026-02-01 23:29:52 [INFO] etl_billiards: 开始执行ODS_PLATFORM_COUPON (ODS)\n2026-02-01 23:29:52 [INFO] etl_billiards: ODS_PLATFORM_COUPON: 开始执行(1/1),窗口[2026-02-01 19:28:41+08:00 ~ 2026-02-02 01:28:41+08:00]\n2026-02-01 23:30:35 [INFO] etl_billiards: ODS_PLATFORM_COUPON ODS 任务完成: {'fetched': 17470, 'inserted': 0, 'updated': 0, 'skipped': 17470, 'errors': 0}\n2026-02-01 23:30:35 [INFO] etl_billiards: ODS_ASSISTANT_LEDGER: ODS fetch+load start, dir=export\\JSON\\ODS_ASSISTANT_LEDGER\\ODS_ASSISTANT_LEDGER-7382-20260201-233035\n2026-02-01 23:30:35 [INFO] etl_billiards: 开始执行ODS_ASSISTANT_LEDGER (ODS)\n2026-02-01 23:30:35 [INFO] etl_billiards: ODS_ASSISTANT_LEDGER: 开始执行(1/1),窗口[2026-02-01 19:28:41+08:00 ~ 2026-02-02 01:28:41+08:00]\n2026-02-01 23:30:36 [INFO] etl_billiards: ODS_ASSISTANT_LEDGER ODS 任务完成: {'fetched': 6, 'inserted': 0, 'updated': 0, 'skipped': 6, 'errors': 0}\n2026-02-01 23:30:36 [INFO] etl_billiards: ODS_STORE_GOODS_SALES: ODS fetch+load start, dir=export\\JSON\\ODS_STORE_GOODS_SALES\\ODS_STORE_GOODS_SALES-7383-20260201-233036\n2026-02-01 23:30:36 [INFO] etl_billiards: 开始执行ODS_STORE_GOODS_SALES (ODS)\n2026-02-01 23:30:36 [INFO] etl_billiards: ODS_STORE_GOODS_SALES: 开始执行(1/1),窗口[2026-02-01 19:28:41+08:00 ~ 2026-02-02 01:28:41+08:00]\n2026-02-01 23:30:36 [INFO] etl_billiards: ODS_STORE_GOODS_SALES ODS 任务完成: {'fetched': 0, 'inserted': 0, 'updated': 0, 'skipped': 0, 'errors': 0}\n2026-02-01 23:30:36 [INFO] etl_billiards: ODS_MEMBER_BALANCE: ODS fetch+load start, dir=export\\JSON\\ODS_MEMBER_BALANCE\\ODS_MEMBER_BALANCE-7384-20260201-233036\n2026-02-01 23:30:36 [INFO] etl_billiards: 开始执行ODS_MEMBER_BALANCE (ODS)\n2026-02-01 23:30:36 [INFO] etl_billiards: ODS_MEMBER_BALANCE: 开始执行(1/1),窗口[2026-02-01 19:28:41+08:00 ~ 2026-02-02 01:28:41+08:00]\n2026-02-01 23:31:04 [INFO] etl_billiards: ODS_MEMBER_BALANCE ODS 任务完成: {'fetched': 2470, 'inserted': 0, 'updated': 0, 'skipped': 2470, 'errors': 0}\n2026-02-01 23:31:04 [INFO] etl_billiards: ODS_SETTLEMENT_RECORDS: ODS fetch+load start, dir=export\\JSON\\ODS_SETTLEMENT_RECORDS\\ODS_SETTLEMENT_RECORDS-7385-20260201-233104\n2026-02-01 23:31:04 [INFO] etl_billiards: 开始执行ODS_SETTLEMENT_RECORDS (ODS)\n2026-02-01 23:31:04 [INFO] etl_billiards: ODS_SETTLEMENT_RECORDS: 开始执行(1/1),窗口[2026-02-01 19:28:41+08:00 ~ 2026-02-02 01:28:41+08:00]\n2026-02-01 23:31:05 [INFO] etl_billiards: ODS_SETTLEMENT_RECORDS ODS 任务完成: {'fetched': 44, 'inserted': 1, 'updated': 0, 'skipped': 43, 'errors': 0}\n2026-02-01 23:31:05 [INFO] etl_billiards: ODS_REFUND: ODS fetch+load start, dir=export\\JSON\\ODS_REFUND\\ODS_REFUND-7386-20260201-233105\n2026-02-01 23:31:05 [INFO] etl_billiards: 开始执行ODS_REFUND (ODS)\n2026-02-01 23:31:05 [INFO] etl_billiards: ODS_REFUND: 开始执行(1/1),窗口[2026-02-01 19:28:41+08:00 ~ 2026-02-02 01:28:41+08:00]\n2026-02-01 23:31:05 [INFO] etl_billiards: ODS_REFUND ODS 任务完成: {'fetched': 40, 'inserted': 0, 'updated': 0, 'skipped': 40, 'errors': 0}\n2026-02-01 23:31:06 [INFO] etl_billiards: ODS_TABLE_FEE_DISCOUNT: ODS fetch+load start, dir=export\\JSON\\ODS_TABLE_FEE_DISCOUNT\\ODS_TABLE_FEE_DISCOUNT-7387-20260201-233106\n2026-02-01 23:31:06 [INFO] etl_billiards: 开始执行ODS_TABLE_FEE_DISCOUNT (ODS)\n2026-02-01 23:31:06 [INFO] etl_billiards: ODS_TABLE_FEE_DISCOUNT: 开始执行(1/1),窗口[2026-02-01 19:28:41+08:00 ~ 2026-02-02 01:28:41+08:00]\n2026-02-01 23:31:13 [INFO] etl_billiards: ODS_TABLE_FEE_DISCOUNT ODS 任务完成: {'fetched': 1783, 'inserted': 0, 'updated': 0, 'skipped': 1783, 'errors': 0}\n2026-02-01 23:31:13 [INFO] etl_billiards: ODS_SETTLEMENT_TICKET: ODS fetch+load start, dir=export\\JSON\\ODS_SETTLEMENT_TICKET\\ODS_SETTLEMENT_TICKET-7388-20260201-233113\n2026-02-01 23:31:13 [INFO] etl_billiards: ODS_SETTLEMENT_TICKET: 开始执行(1/1),窗口[2026-02-01 19:28:41+08:00 ~ 2026-02-02 01:28:41+08:00]\n2026-02-01 23:31:14 [INFO] etl_billiards: ODS_SETTLEMENT_TICKET: 窗口[2026-02-01 19:28:41+08:00 ~ 2026-02-02 01:28:41+08:00] 未发现需要抓取的小票\n2026-02-01 23:31:14 [INFO] etl_billiards: ODS_SETTLEMENT_TICKET: 小票抓取完成,抓取=0 插入=0 更新=0 跳过=0\n2026-02-01 23:31:14 [INFO] etl_billiards: ODS_TABLES: ODS fetch+load start, dir=export\\JSON\\ODS_TABLES\\ODS_TABLES-7389-20260201-233114\n2026-02-01 23:31:14 [INFO] etl_billiards: 开始执行ODS_TABLES (ODS)\n2026-02-01 23:31:14 [INFO] etl_billiards: ODS_TABLES: 开始执行(1/1),窗口[2026-02-01 19:28:41+08:00 ~ 2026-02-02 01:28:41+08:00]\n2026-02-01 23:31:14 [INFO] etl_billiards: ODS_TABLES ODS 任务完成: {'fetched': 74, 'inserted': 1, 'updated': 0, 'skipped': 73, 'errors': 0}\n2026-02-01 23:31:15 [INFO] etl_billiards: ODS_TABLE_USE: ODS fetch+load start, dir=export\\JSON\\ODS_TABLE_USE\\ODS_TABLE_USE-7390-20260201-233115\n2026-02-01 23:31:15 [INFO] etl_billiards: 开始执行ODS_TABLE_USE (ODS)\n2026-02-01 23:31:15 [INFO] etl_billiards: ODS_TABLE_USE: 开始执行(1/1),窗口[2026-02-01 19:28:41+08:00 ~ 2026-02-02 01:28:41+08:00]\n2026-02-01 23:31:35 [INFO] etl_billiards: ODS_TABLE_USE ODS 任务完成: {'fetched': 10138, 'inserted': 0, 'updated': 0, 'skipped': 10138, 'errors': 0}\n2026-02-01 23:31:36 [INFO] etl_billiards: ODS_MEMBER: ODS fetch+load start, dir=export\\JSON\\ODS_MEMBER\\ODS_MEMBER-7391-20260201-233136\n2026-02-01 23:31:36 [INFO] etl_billiards: 开始执行ODS_MEMBER (ODS)\n2026-02-01 23:31:36 [INFO] etl_billiards: ODS_MEMBER: 开始执行(1/1),窗口[2026-02-01 19:28:41+08:00 ~ 2026-02-02 01:28:41+08:00]\n2026-02-01 23:31:37 [INFO] etl_billiards: ODS_MEMBER ODS 任务完成: {'fetched': 556, 'inserted': 0, 'updated': 0, 'skipped': 556, 'errors': 0}\n2026-02-01 23:31:38 [INFO] etl_billiards: ODS_INVENTORY_CHANGE: ODS fetch+load start, dir=export\\JSON\\ODS_INVENTORY_CHANGE\\ODS_INVENTORY_CHANGE-7392-20260201-233138\n2026-02-01 23:31:38 [INFO] etl_billiards: 开始执行ODS_INVENTORY_CHANGE (ODS)\n2026-02-01 23:31:38 [INFO] etl_billiards: ODS_INVENTORY_CHANGE: 开始执行(1/1),窗口[2026-02-01 19:28:41+08:00 ~ 2026-02-02 01:28:41+08:00]\n2026-02-01 23:31:38 [INFO] etl_billiards: ODS_INVENTORY_CHANGE ODS 任务完成: {'fetched': 75, 'inserted': 1, 'updated': 0, 'skipped': 74, 'errors': 0}\n2026-02-01 23:31:38 [INFO] etl_billiards: ODS_MEMBER_CARD: ODS fetch+load start, dir=export\\JSON\\ODS_MEMBER_CARD\\ODS_MEMBER_CARD-7393-20260201-233138\n2026-02-01 23:31:38 [INFO] etl_billiards: 开始执行ODS_MEMBER_CARD (ODS)\n2026-02-01 23:31:38 [INFO] etl_billiards: ODS_MEMBER_CARD: 开始执行(1/1),窗口[2026-02-01 19:28:41+08:00 ~ 2026-02-02 01:28:41+08:00]\n2026-02-01 23:31:41 [INFO] etl_billiards: ODS_MEMBER_CARD ODS 任务完成: {'fetched': 945, 'inserted': 0, 'updated': 0, 'skipped': 945, 'errors': 0}\n2026-02-01 23:31:41 [INFO] etl_billiards: DWD_LOAD_FROM_ODS: 抓取阶段开始,目录=export\\JSON\\DWD_LOAD_FROM_ODS\\DWD_LOAD_FROM_ODS-7394-20260201-233141\n2026-02-01 23:31:41 [INFO] etl_billiards: DWD_LOAD_FROM_ODS: 抓取完成,文件=None,记录数=0\n2026-02-01 23:31:41 [INFO] etl_billiards: DWD_LOAD_FROM_ODS: 本地清洗入库开始,源目录=export\\JSON\\DWD_LOAD_FROM_ODS\\DWD_LOAD_FROM_ODS-7394-20260201-233141\n2026-02-01 23:31:41 [INFO] etl_billiards: DWD_LOAD_FROM_ODS: 开始执行(1/1),窗口[2026-02-01 19:28:41+08:00 ~ 2026-02-02 01:28:41+08:00]\n2026-02-01 23:31:41 [INFO] etl_billiards: DWD 装载开始:billiards_dwd.dim_site <= billiards_ods.table_fee_transactions\n2026-02-01 23:31:42 [INFO] etl_billiards: DWD 装载完成:billiards_dwd.dim_site,用时 0.42s\n2026-02-01 23:31:42 [INFO] etl_billiards: DWD 装载开始:billiards_dwd.dim_site_ex <= billiards_ods.table_fee_transactions\n2026-02-01 23:31:42 [INFO] etl_billiards: DWD 装载完成:billiards_dwd.dim_site_ex,用时 0.54s\n2026-02-01 23:31:42 [INFO] etl_billiards: DWD 装载开始:billiards_dwd.dim_table <= billiards_ods.site_tables_master\n2026-02-01 23:31:43 [INFO] etl_billiards: DWD 装载完成:billiards_dwd.dim_table,用时 0.18s\n2026-02-01 23:31:43 [INFO] etl_billiards: DWD 装载开始:billiards_dwd.dim_table_ex <= billiards_ods.site_tables_master\n2026-02-01 23:31:43 [INFO] etl_billiards: DWD 装载完成:billiards_dwd.dim_table_ex,用时 0.25s\n2026-02-01 23:31:43 [INFO] etl_billiards: DWD 装载开始:billiards_dwd.dim_assistant <= billiards_ods.assistant_accounts_master\n2026-02-01 23:31:43 [INFO] etl_billiards: DWD 装载完成:billiards_dwd.dim_assistant,用时 0.18s\n2026-02-01 23:31:43 [INFO] etl_billiards: DWD 装载开始:billiards_dwd.dim_assistant_ex <= billiards_ods.assistant_accounts_master\n2026-02-01 23:31:43 [INFO] etl_billiards: DWD 装载完成:billiards_dwd.dim_assistant_ex,用时 0.20s\n2026-02-01 23:31:43 [INFO] etl_billiards: DWD 装载开始:billiards_dwd.dim_member <= billiards_ods.member_profiles\n2026-02-01 23:31:44 [INFO] etl_billiards: DWD 装载完成:billiards_dwd.dim_member,用时 0.26s\n2026-02-01 23:31:44 [INFO] etl_billiards: DWD 装载开始:billiards_dwd.dim_member_ex <= billiards_ods.member_profiles\n2026-02-01 23:31:44 [INFO] etl_billiards: DWD 装载完成:billiards_dwd.dim_member_ex,用时 0.21s\n2026-02-01 23:31:44 [INFO] etl_billiards: DWD 装载开始:billiards_dwd.dim_member_card_account <= billiards_ods.member_stored_value_cards\n2026-02-01 23:31:44 [INFO] etl_billiards: DWD 装载完成:billiards_dwd.dim_member_card_account,用时 0.55s\n2026-02-01 23:31:44 [INFO] etl_billiards: DWD 装载开始:billiards_dwd.dim_member_card_account_ex <= billiards_ods.member_stored_value_cards\n2026-02-01 23:31:45 [INFO] etl_billiards: DWD 装载完成:billiards_dwd.dim_member_card_account_ex,用时 0.78s\n2026-02-01 23:31:45 [INFO] etl_billiards: DWD 装载开始:billiards_dwd.dim_tenant_goods <= billiards_ods.tenant_goods_master\n2026-02-01 23:31:45 [INFO] etl_billiards: DWD 装载完成:billiards_dwd.dim_tenant_goods,用时 0.20s\n2026-02-01 23:31:45 [INFO] etl_billiards: DWD 装载开始:billiards_dwd.dim_tenant_goods_ex <= billiards_ods.tenant_goods_master\n2026-02-01 23:31:45 [INFO] etl_billiards: DWD 装载完成:billiards_dwd.dim_tenant_goods_ex,用时 0.19s\n2026-02-01 23:31:45 [INFO] etl_billiards: DWD 装载开始:billiards_dwd.dim_store_goods <= billiards_ods.store_goods_master\n2026-02-01 23:31:46 [INFO] etl_billiards: DWD 装载完成:billiards_dwd.dim_store_goods,用时 0.25s\n2026-02-01 23:31:46 [INFO] etl_billiards: DWD 装载开始:billiards_dwd.dim_store_goods_ex <= billiards_ods.store_goods_master\n2026-02-01 23:31:46 [INFO] etl_billiards: DWD 装载完成:billiards_dwd.dim_store_goods_ex,用时 0.26s\n2026-02-01 23:31:46 [INFO] etl_billiards: DWD 装载开始:billiards_dwd.dim_goods_category <= billiards_ods.stock_goods_category_tree\n2026-02-01 23:31:46 [INFO] etl_billiards: DWD 装载完成:billiards_dwd.dim_goods_category,用时 0.17s\n2026-02-01 23:31:46 [INFO] etl_billiards: DWD 装载开始:billiards_dwd.dim_groupbuy_package <= billiards_ods.group_buy_packages\n2026-02-01 23:31:46 [INFO] etl_billiards: DWD 装载完成:billiards_dwd.dim_groupbuy_package,用时 0.17s\n2026-02-01 23:31:46 [INFO] etl_billiards: DWD 装载开始:billiards_dwd.dim_groupbuy_package_ex <= billiards_ods.group_buy_packages\n2026-02-01 23:31:47 [INFO] etl_billiards: DWD 装载完成:billiards_dwd.dim_groupbuy_package_ex,用时 0.18s\n2026-02-01 23:31:47 [INFO] etl_billiards: DWD 装载开始:billiards_dwd.dwd_settlement_head <= billiards_ods.settlement_records\n2026-02-01 23:31:47 [INFO] etl_billiards: DWD 装载完成:billiards_dwd.dwd_settlement_head,用时 0.23s\n2026-02-01 23:31:47 [INFO] etl_billiards: DWD 装载开始:billiards_dwd.dwd_settlement_head_ex <= billiards_ods.settlement_records\n2026-02-01 23:31:47 [INFO] etl_billiards: DWD 装载完成:billiards_dwd.dwd_settlement_head_ex,用时 0.23s\n2026-02-01 23:31:47 [INFO] etl_billiards: DWD 装载开始:billiards_dwd.dwd_table_fee_log <= billiards_ods.table_fee_transactions\n2026-02-01 23:31:47 [INFO] etl_billiards: DWD 装载完成:billiards_dwd.dwd_table_fee_log,用时 0.41s\n2026-02-01 23:31:47 [INFO] etl_billiards: DWD 装载开始:billiards_dwd.dwd_table_fee_log_ex <= billiards_ods.table_fee_transactions\n2026-02-01 23:31:48 [INFO] etl_billiards: DWD 装载完成:billiards_dwd.dwd_table_fee_log_ex,用时 0.24s\n2026-02-01 23:31:48 [INFO] etl_billiards: DWD 装载开始:billiards_dwd.dwd_table_fee_adjust <= billiards_ods.table_fee_discount_records\n2026-02-01 23:31:48 [INFO] etl_billiards: DWD 装载完成:billiards_dwd.dwd_table_fee_adjust,用时 0.20s\n2026-02-01 23:31:48 [INFO] etl_billiards: DWD 装载开始:billiards_dwd.dwd_table_fee_adjust_ex <= billiards_ods.table_fee_discount_records\n2026-02-01 23:31:48 [INFO] etl_billiards: DWD 装载完成:billiards_dwd.dwd_table_fee_adjust_ex,用时 0.21s\n2026-02-01 23:31:48 [INFO] etl_billiards: DWD 装载开始:billiards_dwd.dwd_store_goods_sale <= billiards_ods.store_goods_sales_records\n2026-02-01 23:31:48 [INFO] etl_billiards: DWD 装载完成:billiards_dwd.dwd_store_goods_sale,用时 0.22s\n2026-02-01 23:31:48 [INFO] etl_billiards: DWD 装载开始:billiards_dwd.dwd_store_goods_sale_ex <= billiards_ods.store_goods_sales_records\n2026-02-01 23:31:48 [INFO] etl_billiards: DWD 装载完成:billiards_dwd.dwd_store_goods_sale_ex,用时 0.21s\n2026-02-01 23:31:48 [INFO] etl_billiards: DWD 装载开始:billiards_dwd.dwd_assistant_service_log <= billiards_ods.assistant_service_records\n2026-02-01 23:31:49 [INFO] etl_billiards: DWD 装载完成:billiards_dwd.dwd_assistant_service_log,用时 0.26s\n2026-02-01 23:31:49 [INFO] etl_billiards: DWD 装载开始:billiards_dwd.dwd_assistant_service_log_ex <= billiards_ods.assistant_service_records\n2026-02-01 23:31:49 [INFO] etl_billiards: DWD 装载完成:billiards_dwd.dwd_assistant_service_log_ex,用时 0.20s\n2026-02-01 23:31:49 [INFO] etl_billiards: DWD 装载开始:billiards_dwd.dwd_assistant_trash_event <= billiards_ods.assistant_cancellation_records\n2026-02-01 23:31:49 [INFO] etl_billiards: DWD 装载完成:billiards_dwd.dwd_assistant_trash_event,用时 0.20s\n2026-02-01 23:31:49 [INFO] etl_billiards: DWD 装载开始:billiards_dwd.dwd_assistant_trash_event_ex <= billiards_ods.assistant_cancellation_records\n2026-02-01 23:31:49 [INFO] etl_billiards: DWD 装载完成:billiards_dwd.dwd_assistant_trash_event_ex,用时 0.23s\n2026-02-01 23:31:49 [INFO] etl_billiards: DWD 装载开始:billiards_dwd.dwd_member_balance_change <= billiards_ods.member_balance_changes\n2026-02-01 23:31:50 [INFO] etl_billiards: DWD 装载完成:billiards_dwd.dwd_member_balance_change,用时 0.20s\n2026-02-01 23:31:50 [INFO] etl_billiards: DWD 装载开始:billiards_dwd.dwd_member_balance_change_ex <= billiards_ods.member_balance_changes\n2026-02-01 23:31:50 [INFO] etl_billiards: DWD 装载完成:billiards_dwd.dwd_member_balance_change_ex,用时 0.20s\n2026-02-01 23:31:50 [INFO] etl_billiards: DWD 装载开始:billiards_dwd.dwd_groupbuy_redemption <= billiards_ods.group_buy_redemption_records\n2026-02-01 23:31:50 [INFO] etl_billiards: DWD 装载完成:billiards_dwd.dwd_groupbuy_redemption,用时 0.23s\n2026-02-01 23:31:50 [INFO] etl_billiards: DWD 装载开始:billiards_dwd.dwd_groupbuy_redemption_ex <= billiards_ods.group_buy_redemption_records\n2026-02-01 23:31:50 [INFO] etl_billiards: DWD 装载完成:billiards_dwd.dwd_groupbuy_redemption_ex,用时 0.23s\n2026-02-01 23:31:50 [INFO] etl_billiards: DWD 装载开始:billiards_dwd.dwd_platform_coupon_redemption <= billiards_ods.platform_coupon_redemption_records\n2026-02-01 23:31:50 [INFO] etl_billiards: DWD 装载完成:billiards_dwd.dwd_platform_coupon_redemption,用时 0.21s\n2026-02-01 23:31:50 [INFO] etl_billiards: DWD 装载开始:billiards_dwd.dwd_platform_coupon_redemption_ex <= billiards_ods.platform_coupon_redemption_records\n2026-02-01 23:31:51 [INFO] etl_billiards: DWD 装载完成:billiards_dwd.dwd_platform_coupon_redemption_ex,用时 0.23s\n2026-02-01 23:31:51 [INFO] etl_billiards: DWD 装载开始:billiards_dwd.dwd_recharge_order <= billiards_ods.recharge_settlements\n2026-02-01 23:31:51 [INFO] etl_billiards: DWD 装载完成:billiards_dwd.dwd_recharge_order,用时 0.20s\n2026-02-01 23:31:51 [INFO] etl_billiards: DWD 装载开始:billiards_dwd.dwd_recharge_order_ex <= billiards_ods.recharge_settlements\n2026-02-01 23:31:51 [INFO] etl_billiards: DWD 装载完成:billiards_dwd.dwd_recharge_order_ex,用时 0.20s\n2026-02-01 23:31:51 [INFO] etl_billiards: DWD 装载开始:billiards_dwd.dwd_payment <= billiards_ods.payment_transactions\n2026-02-01 23:31:51 [INFO] etl_billiards: DWD 装载完成:billiards_dwd.dwd_payment,用时 0.28s\n2026-02-01 23:31:51 [INFO] etl_billiards: DWD 装载开始:billiards_dwd.dwd_refund <= billiards_ods.refund_transactions\n2026-02-01 23:31:52 [INFO] etl_billiards: DWD 装载完成:billiards_dwd.dwd_refund,用时 0.22s\n2026-02-01 23:31:52 [INFO] etl_billiards: DWD 装载开始:billiards_dwd.dwd_refund_ex <= billiards_ods.refund_transactions\n2026-02-01 23:31:52 [INFO] etl_billiards: DWD 装载完成:billiards_dwd.dwd_refund_ex,用时 0.20s\n2026-02-01 23:31:52 [INFO] etl_billiards: DWD_LOAD_FROM_ODS: 完成,统计={'tables': [{'table': 'billiards_dwd.dim_site', 'mode': 'SCD2', 'processed': 1, 'inserted': 0, 'updated': 0, 'skipped': 1}, {'table': 'billiards_dwd.dim_site_ex', 'mode': 'SCD2', 'processed': 1, 'inserted': 0, 'updated': 0, 'skipped': 1}, {'table': 'billiards_dwd.dim_table', 'mode': 'SCD2', 'processed': 74, 'inserted': 0, 'updated': 0, 'skipped': 74}, {'table': 'billiards_dwd.dim_table_ex', 'mode': 'SCD2', 'processed': 74, 'inserted': 0, 'updated': 1, 'skipped': 73}, {'table': 'billiards_dwd.dim_assistant', 'mode': 'SCD2', 'processed': 69, 'inserted': 0, 'updated': 0, 'skipped': 69}, {'table': 'billiards_dwd.dim_assistant_ex', 'mode': 'SCD2', 'processed': 69, 'inserted': 0, 'updated': 0, 'skipped': 69}, {'table': 'billiards_dwd.dim_member', 'mode': 'SCD2', 'processed': 556, 'inserted': 0, 'updated': 0, 'skipped': 556}, {'table': 'billiards_dwd.dim_member_ex', 'mode': 'SCD2', 'processed': 556, 'inserted': 0, 'updated': 0, 'skipped': 556}, {'table': 'billiards_dwd.dim_member_card_account', 'mode': 'SCD2', 'processed': 945, 'inserted': 0, 'updated': 0, 'skipped': 945}, {'table': 'billiards_dwd.dim_member_card_account_ex', 'mode': 'SCD2', 'processed': 945, 'inserted': 0, 'updated': 0, 'skipped': 945}, {'table': 'billiards_dwd.dim_tenant_goods', 'mode': 'SCD2', 'processed': 173, 'inserted': 0, 'updated': 0, 'skipped': 173}, {'table': 'billiards_dwd.dim_tenant_goods_ex', 'mode': 'SCD2', 'processed': 173, 'inserted': 0, 'updated': 0, 'skipped': 173}, {'table': 'billiards_dwd.dim_store_goods', 'mode': 'SCD2', 'processed': 172, 'inserted': 0, 'updated': 1, 'skipped': 171}, {'table': 'billiards_dwd.dim_store_goods_ex', 'mode': 'SCD2', 'processed': 172, 'inserted': 0, 'updated': 1, 'skipped': 171}, {'table': 'billiards_dwd.dim_goods_category', 'mode': 'SCD2', 'processed': 26, 'inserted': 0, 'updated': 0, 'skipped': 26}, {'table': 'billiards_dwd.dim_groupbuy_package', 'mode': 'SCD2', 'processed': 34, 'inserted': 0, 'updated': 0, 'skipped': 34}, {'table': 'billiards_dwd.dim_groupbuy_package_ex', 'mode': 'SCD2', 'processed': 34, 'inserted': 0, 'updated': 0, 'skipped': 34}, {'table': 'billiards_dwd.dwd_settlement_head', 'mode': 'INCREMENT', 'inserted': 1, 'updated': 0, 'processed': 1}, {'table': 'billiards_dwd.dwd_settlement_head_ex', 'mode': 'INCREMENT', 'inserted': 1, 'updated': 0, 'processed': 1}, {'table': 'billiards_dwd.dwd_table_fee_log', 'mode': 'INCREMENT', 'inserted': 0, 'updated': 0, 'processed': 0}, {'table': 'billiards_dwd.dwd_table_fee_log_ex', 'mode': 'INCREMENT', 'inserted': 0, 'updated': 0, 'processed': 0}, {'table': 'billiards_dwd.dwd_table_fee_adjust', 'mode': 'INCREMENT', 'inserted': 0, 'updated': 0, 'processed': 0}, {'table': 'billiards_dwd.dwd_table_fee_adjust_ex', 'mode': 'INCREMENT', 'inserted': 0, 'updated': 0, 'processed': 0}, {'table': 'billiards_dwd.dwd_store_goods_sale', 'mode': 'INCREMENT', 'inserted': 0, 'updated': 0, 'processed': 0}, {'table': 'billiards_dwd.dwd_store_goods_sale_ex', 'mode': 'INCREMENT', 'inserted': 0, 'updated': 0, 'processed': 0}, {'table': 'billiards_dwd.dwd_assistant_service_log', 'mode': 'INCREMENT', 'inserted': 0, 'updated': 0, 'processed': 0}, {'table': 'billiards_dwd.dwd_assistant_service_log_ex', 'mode': 'INCREMENT', 'inserted': 0, 'updated': 0, 'processed': 0}, {'table': 'billiards_dwd.dwd_assistant_trash_event', 'mode': 'INCREMENT', 'inserted': 0, 'updated': 0, 'processed': 0}, {'table': 'billiards_dwd.dwd_assistant_trash_event_ex', 'mode': 'INCREMENT', 'inserted': 0, 'updated': 0, 'processed': 0}, {'table': 'billiards_dwd.dwd_member_balance_change', 'mode': 'INCREMENT', 'inserted': 0, 'updated': 0, 'processed': 0}, {'table': 'billiards_dwd.dwd_member_balance_change_ex', 'mode': 'INCREMENT', 'inserted': 0, 'updated': 0, 'processed': 0}, {'table': 'billiards_dwd.dwd_groupbuy_redemption', 'mode': 'INCREMENT', 'inserted': 0, 'updated': 0, 'processed': 0}, {'table': 'billiards_dwd.dwd_groupbuy_redemption_ex', 'mode': 'INCREMENT', 'inserted': 0, 'updated': 0, 'processed': 0}, {'table': 'billiards_dwd.dwd_platform_coupon_redemption', 'mode': 'INCREMENT', 'inserted': 0, 'updated': 0, 'processed': 0}, {'table': 'billiards_dwd.dwd_platform_coupon_redemption_ex', 'mode': 'INCREMENT', 'inserted': 0, 'updated': 0, 'processed': 0}, {'table': 'billiards_dwd.dwd_recharge_order', 'mode': 'INCREMENT', 'inserted': 0, 'updated': 0, 'processed': 0}, {'table': 'billiards_dwd.dwd_recharge_order_ex', 'mode': 'INCREMENT', 'inserted': 0, 'updated': 0, 'processed': 0}, {'table': 'billiards_dwd.dwd_payment', 'mode': 'INCREMENT', 'inserted': 1, 'updated': 0, 'processed': 1}, {'table': 'billiards_dwd.dwd_refund', 'mode': 'INCREMENT', 'inserted': 0, 'updated': 0, 'processed': 0}, {'table': 'billiards_dwd.dwd_refund_ex', 'mode': 'INCREMENT', 'inserted': 0, 'updated': 0, 'processed': 0}], 'errors': []}\n2026-02-01 23:31:52 [INFO] etl_billiards: 所有任务执行完成\n2026-02-01 23:31:52 [INFO] etl_billiards: ETL运行完成\n",
|
||
"error": ""
|
||
}
|
||
],
|
||
"created_at": "2026-02-01T23:27:58.777762",
|
||
"updated_at": "2026-02-01T23:31:52.514792"
|
||
}
|
||
}
|
||
} |