version_investigate2.py 1.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. #!/usr/bin/env python3
  2. """补查:requirement version 分布 + bk_20260422_strategy 的 version 值 + capability.tags 结构"""
  3. import sys
  4. from pathlib import Path
  5. sys.path.insert(0, str(Path(__file__).parent.parent.parent))
  6. from knowhub.knowhub_db.pg_capability_store import PostgreSQLCapabilityStore
  7. def show(cur, title, sql):
  8. print(f'\n=== {title} ===', flush=True)
  9. cur.execute(sql)
  10. rows = cur.fetchall()
  11. if not rows: print(' (空)', flush=True); return
  12. cols = list(rows[0].keys())
  13. print(' ' + ' | '.join(cols), flush=True)
  14. for r in rows:
  15. print(' ' + ' | '.join(str(r[c])[:80] for c in cols), flush=True)
  16. def main():
  17. s = PostgreSQLCapabilityStore()
  18. cur = s._get_cursor()
  19. try:
  20. cur.execute("SET statement_timeout = '30s'")
  21. show(cur, 'requirement version 分布',
  22. "SELECT version, COUNT(*) n FROM requirement GROUP BY version ORDER BY n DESC")
  23. show(cur, 'bk_20260422_strategy 的 version 分布',
  24. "SELECT version, COUNT(*) n FROM bk_20260422_strategy GROUP BY version")
  25. show(cur, 'bk_20260422_strategy_capability 的 cap_id 前 5',
  26. "SELECT DISTINCT capability_id FROM bk_20260422_strategy_capability LIMIT 5")
  27. show(cur, 'capability 列结构',
  28. """SELECT column_name, data_type FROM information_schema.columns
  29. WHERE table_name='capability' ORDER BY ordinal_position""")
  30. show(cur, 'resource 列结构',
  31. """SELECT column_name, data_type FROM information_schema.columns
  32. WHERE table_name='resource' ORDER BY ordinal_position""")
  33. show(cur, 'strategy 列结构',
  34. """SELECT column_name, data_type FROM information_schema.columns
  35. WHERE table_name='strategy' ORDER BY ordinal_position""")
  36. finally:
  37. cur.close(); s.close()
  38. if __name__ == '__main__':
  39. main()