You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Soda Core如何动态对数据库所有表执行checks.yml四类统计检查

Soda Core 数据库全局统计检查配置方案

需求目标

动态/隐式地对数据库中所有表执行checks.yml检查,无需逐个命名上百张表。

已完成操作

按照Soda官方快速入门指南完成Soda Core安装,通过configuration.yml配置好数据源连接。

当前问题

官方文档仅提供单表检查示例,需实现四类基于COUNT()的统计检查:

  • 统计数据库内的表总数
  • 统计数据库所有表的列总数
  • 统计存在描述的表的数量
  • 统计存在描述的列的数量

完善后的checks.yml配置

# checks for MY_DATABASE:
sql_metrics:
  - name: num_tables
    query: |
      SELECT COUNT(*)
      FROM information_schema.tables
      WHERE table_schema = '你的数据库名称';  # 替换为实际数据库名
  - name: num_columns
    query: |
      SELECT COUNT(*)
      FROM information_schema.columns
      WHERE table_schema = '你的数据库名称';  # 替换为实际数据库名
  - name: sum_tables_descriptions
    query: |
      # 适配MySQL/MariaDB
      SELECT COUNT(*)
      FROM information_schema.tables
      WHERE table_schema = '你的数据库名称'
        AND table_comment IS NOT NULL
        AND TRIM(table_comment) != '';

      # 若为PostgreSQL,替换为以下SQL
      # SELECT COUNT(*)
      # FROM information_schema.tables
      # WHERE table_schema = '你的数据库名称'
      #   AND comment IS NOT NULL
      #   AND TRIM(comment) != '';
  - name: sum_columns_descriptions
    query: |
      # 适配MySQL/MariaDB
      SELECT COUNT(*)
      FROM information_schema.columns
      WHERE table_schema = '你的数据库名称'
        AND column_comment IS NOT NULL
        AND TRIM(column_comment) != '';

      # 若为PostgreSQL,替换为以下SQL
      # SELECT COUNT(*)
      # FROM information_schema.columns
      # WHERE table_schema = '你的数据库名称'
      #   AND comment IS NOT NULL
      #   AND TRIM(comment) != '';

配置说明

  • 所有SQL中的你的数据库名称需替换为实际要检查的数据库schema名称
  • 针对不同数据库类型(如MySQL、PostgreSQL),表/列描述字段名不同,需根据实际情况选择对应SQL块
  • 加入TRIM()判断是为了排除仅含空格的无效描述

内容的提问来源于stack exchange,提问作者DanielBell99

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.20 21:18:33