简单的数据验证
项目描述
数据检查
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 的哈希值
| 算法 | 哈希摘要 | |
|---|---|---|
| SHA256 | a9efefa19586d902c57a7b34b976705e16e3e7a26fe635ff2f7d9eeb23817e62 |
|
| MD5 | caa21319c4c0b54895ace42d978c78df |
|
| 布莱克2-256 | bec3d45ac4cd5c485ebaa0754d26f7ff8b400ea5bfe03fc60716af704b2e7d5b |
data_check -0.12.0-py3-none-any.whl 的哈希值
| 算法 | 哈希摘要 | |
|---|---|---|
| SHA256 | 15bf4d7aeee5af09b060aa4b63f2654c11049b1015928f3310554b183a51dbe9 |
|
| MD5 | 185aecc786a254f2281ae1a3ff04ee94 |
|
| 布莱克2-256 | 587d1b2fb6df97434f2342e9e61e4af7acf90bd21337e370fbf2d6f5f0bbaf7d |