44 lines
1.5 KiB
Python
44 lines
1.5 KiB
Python
"""查询 DWD 层各表的最新记录时间和行数(修正版)。"""
|
||
import os
|
||
import sys
|
||
from dotenv import load_dotenv
|
||
|
||
load_dotenv()
|
||
|
||
PG_DSN = os.environ.get("TEST_DB_DSN") or os.environ.get("PG_DSN")
|
||
if not PG_DSN:
|
||
print("ERROR: TEST_DB_DSN / PG_DSN 未设置", file=sys.stderr)
|
||
sys.exit(1)
|
||
|
||
if "etl_feiqiu" in PG_DSN and "test_" not in PG_DSN:
|
||
PG_DSN = PG_DSN.replace("etl_feiqiu", "test_etl_feiqiu")
|
||
|
||
import psycopg2
|
||
|
||
# 修正:只查 create_time,不查不存在的 update_time
|
||
QUERIES = [
|
||
("dwd_table_fee_log", "SELECT MAX(create_time), COUNT(*) FROM dwd.dwd_table_fee_log"),
|
||
("dwd_assistant_service_log", "SELECT MAX(create_time), COUNT(*) FROM dwd.dwd_assistant_service_log"),
|
||
("dwd_groupbuy_redemption", "SELECT MAX(create_time), COUNT(*) FROM dwd.dwd_groupbuy_redemption"),
|
||
("dwd_refund", "SELECT MAX(create_time), COUNT(*) FROM dwd.dwd_refund"),
|
||
("dwd_platform_coupon_redemption", "SELECT MAX(create_time), COUNT(*) FROM dwd.dwd_platform_coupon_redemption"),
|
||
]
|
||
|
||
conn = psycopg2.connect(PG_DSN)
|
||
try:
|
||
cur = conn.cursor()
|
||
print(f"{'表名':<42} {'max(create_time)':<30} {'行数':>8}")
|
||
print("-" * 82)
|
||
for tbl, sql in QUERIES:
|
||
try:
|
||
cur.execute(sql)
|
||
row = cur.fetchone()
|
||
t1 = str(row[0])[:25] if row[0] else "-"
|
||
cnt = row[1] if row[1] else 0
|
||
print(f"{tbl:<42} {t1:<30} {cnt:>8}")
|
||
except Exception as e:
|
||
print(f"{tbl:<42} ERROR: {e}")
|
||
conn.rollback()
|
||
finally:
|
||
conn.close()
|