在准备环境前提交次全部更改。

This commit is contained in:
Neo
2026-02-19 08:35:13 +08:00
parent ded6dfb9d8
commit 4eac07da47
1387 changed files with 6107191 additions and 33002 deletions

View File

@@ -0,0 +1,212 @@
# ==============================================================================
# NeoZQYY ETL Connector飞球配置
# ==============================================================================
# ETL env_parser.py 从此文件加载
# 优先级DEFAULTS < 此 .env < 环境变量 < CLI 参数
# 敏感值禁止提交;本文件已在 .gitignore 中排除
# ------------------------------------------------------------------------------
# 门店配置
# ------------------------------------------------------------------------------
STORE_ID=2790685415443269
TIMEZONE=Asia/Shanghai
# ------------------------------------------------------------------------------
# 数据库配置
# ------------------------------------------------------------------------------
# CHANGE 2026-02-15 | 默认指向测试库,生产环境切换为 etl_feiqiu
PG_DSN=postgresql://local-Python:Neo-local-1991125@100.64.0.4:5432/test_etl_feiqiu
PG_CONNECT_TIMEOUT=10
# 数据库 Schema
SCHEMA_OLTP=ods
SCHEMA_ETL=meta
# ------------------------------------------------------------------------------
# API 配置(上游 SaaS API
# ------------------------------------------------------------------------------
API_BASE=https://pc.ficoo.vip/apiprod/admin/v1/
API_TOKEN=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJjbGllbnQtdHlwZSI6IjQiLCJ1c2VyLXR5cGUiOiIxIiwiaHR0cDovL3NjaGVtYXMubWljcm9zb2Z0LmNvbS93cy8yMDA4LzA2L2lkZW50aXR5L2NsYWltcy9yb2xlIjoiMTIiLCJyb2xlLWlkIjoiMTIiLCJ0ZW5hbnQtaWQiOiIyNzkwNjgzMTYwNzA5OTU3Iiwibmlja25hbWUiOiLnp5_miLfnrqHnkIblkZjvvJrmganmgakxIiwic2l0ZS1pZCI6IjAiLCJtb2JpbGUiOiIxMzgxMDUwMjMwNCIsInNpZCI6IjI5NTA0ODk2NTgzOTU4NDUiLCJzdGFmZi1pZCI6IjMwMDk5MTg2OTE1NTkwNDUiLCJvcmctaWQiOiIwIiwicm9sZS10eXBlIjoiMyIsInJlZnJlc2hUb2tlbiI6InoxazVzWjlDeEFKYnFkNG1pT3NwUzBsQTRMYUNGcURkQjJBdFdsQk1DbDA9IiwicmVmcmVzaEV4cGlyeVRpbWUiOiIyMDI2LzIvMjIg5LiL5Y2IMTE6NTk6MzAiLCJuZWVkQ2hlY2tUb2tlbiI6ImZhbHNlIiwiZXhwIjoxNzcxNzc1OTcwLCJpc3MiOiJ0ZXN0IiwiYXVkIjoiVXNlciJ9.27D1QgKFYGgMKR9bS5NbCSl4kIf9oFVOQLsFl_ITxdI
API_TIMEOUT=20
API_PAGE_SIZE=200
API_RETRY_MAX=3
# ------------------------------------------------------------------------------
# 路径配置(已更新为 NeoZQYY 路径)
# ------------------------------------------------------------------------------
EXPORT_ROOT=C:/NeoZQYY/export/ETL/JSON
LOG_ROOT=C:/NeoZQYY/export/ETL/LOG
FETCH_ROOT=C:/NeoZQYY/export/ETL/JSON
WRITE_PRETTY_JSON=true
# ------------------------------------------------------------------------------
# 管线流程配置
# ------------------------------------------------------------------------------
PIPELINE_FLOW=FULL
# ------------------------------------------------------------------------------
# 时间窗口配置
# ------------------------------------------------------------------------------
OVERLAP_SECONDS=600
WINDOW_BUSY_MIN=30
WINDOW_IDLE_MIN=180
IDLE_START=04:00
IDLE_END=16:00
WINDOW_SPLIT_UNIT=day
WINDOW_SPLIT_DAYS=10
WINDOW_COMPENSATION_HOURS=2
ALLOW_EMPTY_RESULT_ADVANCE=true
# ------------------------------------------------------------------------------
# 快照配置
# ------------------------------------------------------------------------------
SNAPSHOT_MISSING_DELETE=true
SNAPSHOT_ALLOW_EMPTY_DELETE=false
# ------------------------------------------------------------------------------
# 数据完整性检查配置
# ------------------------------------------------------------------------------
INTEGRITY_MODE=history
INTEGRITY_HISTORY_START=2025-07-01
INTEGRITY_INCLUDE_DIMENSIONS=true
INTEGRITY_AUTO_CHECK=false
INTEGRITY_AUTO_BACKFILL=false
INTEGRITY_COMPARE_CONTENT=true
INTEGRITY_CONTENT_SAMPLE_LIMIT=50
INTEGRITY_BACKFILL_MISMATCH=true
INTEGRITY_RECHECK_AFTER_BACKFILL=true
# 指定 ODS 任务代码(逗号分隔,为空则全部)
# INTEGRITY_ODS_TASK_CODES=
# 是否强制按月切分(默认 true
# INTEGRITY_FORCE_MONTHLY_SPLIT=true
# ------------------------------------------------------------------------------
# 校验配置
# ------------------------------------------------------------------------------
VERIFY_SKIP_ODS_ON_FETCH=true
VERIFY_ODS_LOCAL_JSON=true
# ------------------------------------------------------------------------------
# 数据库会话参数defaults.py → db.session.*
# ------------------------------------------------------------------------------
# 会话时区(默认跟随 TIMEZONE
# DB_SESSION_TIMEZONE=Asia/Shanghai
# SQL 语句超时(毫秒,默认 30000
# DB_STATEMENT_TIMEOUT_MS=30000
# 锁等待超时(毫秒,默认 5000
# DB_LOCK_TIMEOUT_MS=5000
# 事务空闲超时(毫秒,默认 600000 = 10 分钟)
# DB_IDLE_IN_TX_TIMEOUT_MS=600000
# ------------------------------------------------------------------------------
# 清洗配置defaults.py → clean.*
# ------------------------------------------------------------------------------
# 是否记录未知字段(默认 true
# CLEAN_LOG_UNKNOWN_FIELDS=true
# 未知字段日志上限(默认 50
# CLEAN_UNKNOWN_FIELDS_LIMIT=50
# 哈希算法(默认 sha1
# CLEAN_HASH_ALGO=sha1
# 哈希盐值(默认空)
# CLEAN_HASH_SALT=
# 严格数值校验(默认 true
# CLEAN_STRICT_NUMERIC=true
# 金额舍入精度(默认 2 位小数)
# CLEAN_ROUND_MONEY_SCALE=2
# ------------------------------------------------------------------------------
# 安全配置defaults.py → security.*
# ------------------------------------------------------------------------------
# 日志中是否脱敏(默认 true
# SECURITY_REDACT_IN_LOGS=true
# 需脱敏的键名JSON 数组,默认 ["token","password","Authorization"]
# SECURITY_REDACT_KEYS=["token","password","Authorization"]
# 日志中是否回显 token默认 false调试用
# SECURITY_ECHO_TOKEN_IN_LOGS=false
# ------------------------------------------------------------------------------
# IO 文件大小限制defaults.py → io.max_file_bytes
# ------------------------------------------------------------------------------
# 单文件最大字节数(默认 50MB = 52428800
# MAX_FILE_BYTES=52428800
# ------------------------------------------------------------------------------
# DWD 层配置
# ------------------------------------------------------------------------------
DWD_FACT_UPSERT=true
# 事实表 UPSERT 批量大小(默认 1000
# DWD_FACT_UPSERT_BATCH_SIZE=1000
# 最小批量大小(锁冲突时自动缩小,默认 100
# DWD_FACT_UPSERT_MIN_BATCH_SIZE=100
# 最大重试次数(默认 2
# DWD_FACT_UPSERT_MAX_RETRIES=2
# 重试退避时间JSON 数组,秒,默认 [1,2,4]
# DWD_FACT_UPSERT_RETRY_BACKOFF=[1,2,4]
# 事实表 backfill 锁等待超时(毫秒,为空则沿用 DB_LOCK_TIMEOUT_MS
# DWD_FACT_UPSERT_LOCK_TIMEOUT_MS=
# ------------------------------------------------------------------------------
# 任务列表配置
# ------------------------------------------------------------------------------
RUN_TASKS=PRODUCTS,TABLES,MEMBERS,ASSISTANTS,PACKAGES_DEF,ORDERS,PAYMENTS,REFUNDS,COUPON_USAGE,INVENTORY_CHANGE,TOPUPS,TABLE_DISCOUNT,ASSISTANT_ABOLISH,LEDGER
INDEX_LOOKBACK_DAYS=60
# ------------------------------------------------------------------------------
# DWS 月度/薪资配置defaults.py → dws.*
# ------------------------------------------------------------------------------
# 是否允许历史月度重算(默认 false
# DWS_MONTHLY_ALLOW_HISTORY=false
# 上月宽限天数(默认 5即次月 1-5 号仍可计算上月)
# DWS_MONTHLY_PREV_GRACE_DAYS=5
# 历史月份数(默认 0即不回溯
# DWS_MONTHLY_HISTORY_MONTHS=0
# 新人封顶生效日期(默认 2026-03-01
# DWS_MONTHLY_NEW_HIRE_CAP_EFFECTIVE_FROM=2026-03-01
# 新人封顶天数(默认 25
# DWS_MONTHLY_NEW_HIRE_CAP_DAY=25
# 新人最高等级(默认 2
# DWS_MONTHLY_NEW_HIRE_MAX_TIER_LEVEL=2
# 薪资计算运行天数(默认 5
# DWS_SALARY_RUN_DAYS=5
# 是否允许非周期内运行(默认 false
# DWS_SALARY_ALLOW_OUT_OF_CYCLE=false
# 包房课单价(默认 138
# DWS_SALARY_ROOM_COURSE_PRICE=138
# ------------------------------------------------------------------------------
# 运行模式defaults.py → run.data_source
# ------------------------------------------------------------------------------
# 数据源模式hybrid默认API+本地、online仅 API、offline仅本地
# 也可通过 PIPELINE_FLOW 间接设置FULL→hybrid, FETCH_ONLY→online, INGEST_ONLY→offline
# DATA_SOURCE=hybrid
# ------------------------------------------------------------------------------
# API 额外请求头defaults.py → api.headers_extra
# ------------------------------------------------------------------------------
# JSON 对象格式,默认空
# API_HEADERS_EXTRA={}