Skip to main content

简单的数据验证

项目描述

数据检查

data_check 是一个简单的数据验证工具。在其最基本的形式中,它将执行 SQL 查询并将结果与​​ CSV 或 Excel 文件进行比较。但还有更高级的功能:

特征

  • CSV 检查:将 SQL 查询与 CSV 文件进行比较
  • Excel 支持:使用 Excel (xlsx) 而不是 CSV
  • 配置文件中的多个环境(数据库)
  • 从 CSV 文件填充表格
  • 在数据库上执行任何 SQL 文件
  • 更复杂的管道
  • 运行任何脚本/命令(通过管道)
  • 空数据集和全表比较的简化检查
  • 在多个查询中重用相同数据的查找
  • 测试数据生成

数据库支持

data_check 应该适用于任何与SQLAlchemy一起使用的数据库。目前 data_check 针对 PostgreSQL、MySQL、SQLite、Oracle 和 Microsoft SQL Server 进行了测试。

快速开始

您需要 Python 3.7.1 或更高版本才能运行 data_check。安装 data_check 的最简单方法是通过pipx

pipx install data-check

data_check Git 存储库也是一个示例 data_check 项目。克隆存储库,切换到文件夹并运行 data_check:

git clone git@github.com:andrjas/data_check.git
cd data_check/example
data_check

这将使用 data_check.yml 中设置的默认连接在检查文件夹中运行测试。

请参阅文档如何在不同环境中安装 data_check 以及其他数据库驱动程序和 data_check 的其他用法。

项目布局

data_check 有一个简单的项目布局:一个配置文件和一个包含测试文件的文件夹。您还可以在子文件夹中组织测试文件。

data_check.yml    # The configuration file
checks/           # Default folder for data tests
    some_test.sql # SQL file with the query to run against the database
    some_test.csv # CSV file with the expected result
    subfolder/    # Tests can be nested in subfolders

CSV 检查

这是运行 data_check 时的默认模式。data_check 需要一个 SQL 文件和一个 CSV 文件。将对数据库执行 SQL 文件,并将结果与​​ CSV 文件进行比较。如果它们匹配,则测试通过,否则失败。

管道

如果 data_check 在文件夹中找到名为data_check_pipeline.yml的文件,它将将此文件夹视为管道检查。它将执行 YAML 文件中的步骤,而不是运行CSV 检查。

带有管道的示例项目:

data_check.yml
checks/
    some_test.sql                # this test will run in parallel to the pipeline test
    some_test.csv
    sample_pipeline/
        data_check_pipeline.yml  # configuration for the pipeline
        data/
            my_schema.some_table.csv       # data for a table
        data2/
            some_data.csv        # other data
        some_checks/             # folder with CSV checks
            check1.sql
            check1.csl
            ...
        run_this.sql             # a SQL file that will be executed
        cleanup.sql
    other_pipeline/              # you can have multiple pipelines that will run in parallel
        data_check_pipeline.yml
        ...

文件sample_pipeline/data_check_pipeline.yml可能如下所示:

steps:
    # this will truncate the table my_schema.some_table and load it with the data from data/my_schema.some_table.csv
    - load: data
    # this will execute the SQL statement in run_this.sql
    - sql_file: run_this.sql
    # this will append the data from data2/some_data.csv to my_schema.other_table
    - load_table:
        file: data2/some_data.csv
        table: my_schema.other_table
        load_mode: append
    # this will run a python script and pass the connection name
    - cmd: "python3 /path/to/my_pipeline.py --connection {{CONNECTION}}"
    # this will run the CSV checks in the some_checks folder
    - check: some_checks

管道检查和简单的 CSV 检查可以共存于一个项目中。

文档

请参阅文档如何设置 data_check、如何创建新项目和更多选项。

项目详情


下载文件

下载适用于您平台的文件。如果您不确定要选择哪个,请了解有关安装包的更多信息。

源分布

data_check-0.12.0.tar.gz (33.4 kB 查看哈希

已上传 source

内置分布

data_check-0.12.0-py3-none-any.whl (49.7 kB 查看哈希

已上传 py3