# ============================================================================== # ETL 系统配置文件 # ============================================================================== # 配置优先级:DEFAULTS < .env < CLI 参数 # ------------------------------------------------------------------------------ # 数据库配置 # ------------------------------------------------------------------------------ # 完整 DSN(优先使用,如果设置了则忽略下面的 host/port/name/user/password) PG_DSN=postgresql://local-Python:Neo-local-1991125@100.64.0.4:5432/LLZQ-test # 分离式配置(如果不使用 DSN,可以单独配置以下参数) # PG_HOST=localhost # PG_PORT=5432 # PG_NAME=your_database # PG_USER=your_user # PG_PASSWORD=your_password # 连接超时(秒,范围 1-20) PG_CONNECT_TIMEOUT=10 # ------------------------------------------------------------------------------ # 数据库 Schema 配置 # ------------------------------------------------------------------------------ # OLTP 业务数据 schema(默认 billiards) SCHEMA_OLTP=billiards # ETL 管理数据 schema(默认 etl_admin) SCHEMA_ETL=etl_admin # ------------------------------------------------------------------------------ # API 配置 # ------------------------------------------------------------------------------ API_BASE=https://pc.ficoo.vip/apiprod/admin/v1/ API_TOKEN=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJjbGllbnQtdHlwZSI6IjQiLCJ1c2VyLXR5cGUiOiIxIiwiaHR0cDovL3NjaGVtYXMubWljcm9zb2Z0LmNvbS93cy8yMDA4LzA2L2lkZW50aXR5L2NsYWltcy9yb2xlIjoiMTIiLCJyb2xlLWlkIjoiMTIiLCJ0ZW5hbnQtaWQiOiIyNzkwNjgzMTYwNzA5OTU3Iiwibmlja25hbWUiOiLnp5_miLfnrqHnkIblkZjvvJrmganmgakxIiwic2l0ZS1pZCI6IjAiLCJtb2JpbGUiOiIxMzgxMDUwMjMwNCIsInNpZCI6IjI5NTA0ODk2NTgzOTU4NDUiLCJzdGFmZi1pZCI6IjMwMDk5MTg2OTE1NTkwNDUiLCJvcmctaWQiOiIwIiwicm9sZS10eXBlIjoiMyIsInJlZnJlc2hUb2tlbiI6Iks1ZnBhYlRTNkFsR0FpMmN4WGYrMHdJVkk0L2UvTVQrSVBHM3V5VWRrSjg9IiwicmVmcmVzaEV4cGlyeVRpbWUiOiIyMDI2LzEvMzEg5LiL5Y2IMTA6MTQ6NTEiLCJuZWVkQ2hlY2tUb2tlbiI6ImZhbHNlIiwiZXhwIjoxNzY5ODY4ODkxLCJpc3MiOiJ0ZXN0IiwiYXVkIjoiVXNlciJ9.BH3-iwwrBczb8aFfI__6kwe3AIsEPacN9TruaTrQ3nY # API 请求超时(秒) API_TIMEOUT=20 # 分页大小 API_PAGE_SIZE=200 # 最大重试次数 API_RETRY_MAX=3 # 重试退避时间(JSON 数组格式,单位秒) # API_RETRY_BACKOFF=[1, 2, 4] # ------------------------------------------------------------------------------ # 门店配置 # ------------------------------------------------------------------------------ STORE_ID=2790685415443269 TIMEZONE=Asia/Taipei # ------------------------------------------------------------------------------ # 路径配置 # ------------------------------------------------------------------------------ # 导出根目录 EXPORT_ROOT=export/JSON # 日志根目录 LOG_ROOT=export/LOG # 在线抓取 JSON 输出目录 FETCH_ROOT=export/JSON # 本地入库数据源目录(INGEST_ONLY 模式使用) INGEST_SOURCE_DIR=export/test-json-doc # ------------------------------------------------------------------------------ # 流水线配置 # ------------------------------------------------------------------------------ # 运行模式:FULL(抓取+入库)、FETCH_ONLY(仅抓取)、INGEST_ONLY(仅入库) PIPELINE_FLOW=FULL # JSON 美化输出(调试用,会增加文件大小) WRITE_PRETTY_JSON=false # ------------------------------------------------------------------------------ # 时间窗口配置 # ------------------------------------------------------------------------------ # 冗余窗口(秒),向前多抓取的时间避免边界数据丢失 OVERLAP_SECONDS=120 # 忙时窗口大小(分钟) WINDOW_BUSY_MIN=30 # 闲时窗口大小(分钟) WINDOW_IDLE_MIN=180 # 闲时窗口定义(HH:MM 格式) IDLE_START=04:00 IDLE_END=16:00 # 窗口切分单位(month/none),用于长时间回溯任务按月切分 WINDOW_SPLIT_UNIT=month # 窗口前后补偿小时数,用于捕获边界数据 WINDOW_COMPENSATION_HOURS=2 # 允许空结果推进窗口 ALLOW_EMPTY_RESULT_ADVANCE=true # ------------------------------------------------------------------------------ # 数据完整性检查配置 # ------------------------------------------------------------------------------ # 检查模式:history(历史全量)、recent(最近增量) INTEGRITY_MODE=history # 历史检查起始日期(history 模式使用) INTEGRITY_HISTORY_START=2025-07-01 # 历史检查结束日期(留空表示到当前) INTEGRITY_HISTORY_END= # 是否包含维度表校验 INTEGRITY_INCLUDE_DIMENSIONS=true # 发现丢失数据时是否自动补全 INTEGRITY_AUTO_BACKFILL=true # 自动执行完整性检查(ETL 完成后自动触发) INTEGRITY_AUTO_CHECK=false # 指定要校验的 ODS 任务代码(逗号分隔,留空表示全部) # INTEGRITY_ODS_TASK_CODES=ODS_PAYMENT,ODS_MEMBER # ------------------------------------------------------------------------------ # 默认任务列表(逗号分隔,可被 CLI --tasks 参数覆盖) # ------------------------------------------------------------------------------ # RUN_TASKS=ODS_PAYMENT,ODS_MEMBER,ODS_SETTLEMENT_RECORDS,DWD_LOAD_FROM_ODS