59 lines
2.0 KiB
Python
59 lines
2.0 KiB
Python
"""DEBUG 第四轮:ODS settlement_records 的 member 列名 + 负值来源。"""
|
||
import psycopg2, psycopg2.extras, os
|
||
from dotenv import load_dotenv
|
||
from pathlib import Path
|
||
|
||
load_dotenv(Path(__file__).resolve().parents[2] / ".env")
|
||
conn = psycopg2.connect(os.environ["PG_DSN"])
|
||
cur = conn.cursor(cursor_factory=psycopg2.extras.RealDictCursor)
|
||
|
||
member_id = 2799207378798341
|
||
site_id = 2790685415443269
|
||
|
||
# ODS settlement_records 的 member 相关列
|
||
cur.execute("""
|
||
SELECT column_name FROM information_schema.columns
|
||
WHERE table_schema='ods' AND table_name='settlement_records'
|
||
AND column_name LIKE '%%member%%'
|
||
""")
|
||
print("=== ods.settlement_records member 列 ===")
|
||
for r in cur.fetchall():
|
||
print(f" {r['column_name']}")
|
||
|
||
# 用 tenantmemberid (API 原始驼峰转小写)
|
||
cur.execute("""
|
||
SELECT column_name FROM information_schema.columns
|
||
WHERE table_schema='ods' AND table_name='settlement_records'
|
||
AND column_name LIKE '%%tenant%%'
|
||
""")
|
||
print("\n=== ods.settlement_records tenant 列 ===")
|
||
for r in cur.fetchall():
|
||
print(f" {r['column_name']}")
|
||
|
||
# 查 DWD mapping 中 tenant_member_id 的来源
|
||
# dwd_settlement_head 有 member_id,ODS 有什么?
|
||
cur.execute("""
|
||
SELECT consumemoney, id
|
||
FROM ods.settlement_records
|
||
WHERE consumemoney < 0
|
||
ORDER BY consumemoney LIMIT 5
|
||
""")
|
||
print("\n=== ODS 负值 consumemoney 记录 ===")
|
||
for r in cur.fetchall():
|
||
print(f" consumemoney={r['consumemoney']}, id={r['id']}")
|
||
|
||
# 确认 dwd_settlement_head 没有 tenant_member_id
|
||
cur.execute("""
|
||
SELECT column_name FROM information_schema.columns
|
||
WHERE table_schema='dwd' AND table_name='dwd_settlement_head'
|
||
AND column_name LIKE '%%tenant%%member%%'
|
||
""")
|
||
rows = cur.fetchall()
|
||
print(f"\n=== dwd_settlement_head tenant_member 列: {[r['column_name'] for r in rows]} ===")
|
||
if not rows:
|
||
print(" 确认: dwd_settlement_head 没有 tenant_member_id 列")
|
||
print(" member_visit_task.py 第326行引用 tenant_member_id 是 BUG")
|
||
print(" 正确列名应为 member_id")
|
||
|
||
conn.close()
|