初始提交:飞球 ETL 系统全量代码

This commit is contained in:
Neo
2026-02-13 08:05:34 +08:00
commit 3c51f5485d
441 changed files with 117631 additions and 0 deletions

22
utils/helpers.py Normal file
View File

@@ -0,0 +1,22 @@
# -*- coding: utf-8 -*-
"""通用工具函数"""
import hashlib
from datetime import datetime
from pathlib import Path
def ensure_dir(path: Path):
"""确保目录存在"""
path.mkdir(parents=True, exist_ok=True)
def make_surrogate_key(*parts) -> int:
"""
生成代理键
将多个字段值拼接后计算SHA1取前8字节转为无符号64位整数
"""
raw = "|".join("" if p is None else str(p) for p in parts)
h = hashlib.sha1(raw.encode("utf-8")).digest()[:8]
return int.from_bytes(h, byteorder="big", signed=False)
def now_local(tz) -> datetime:
"""获取本地当前时间"""
return datetime.now(tz)