2. 环境搭建与快速启动:使用 pip 安装 GE,初始化项目,创建第一个 Data Context
好,咱们正式开始动手。这一章的目标很简单:在你的机器上把 Great Expectations 跑起来,然后创建一个项目骨架。我见过不少新手在环境配置上卡半天,其实真没那么复杂。跟着我来,十分钟搞定。
2.1 使用 pip 安装 Great Expectations
安装之前,我建议你先确认一下 Python 版本。GE 目前要求 Python 3.8 到 3.11。我个人习惯用 3.10,兼容性最好。
打开终端,执行:
# 创建虚拟环境(推荐)
python -m venv ge_env
source ge_env/bin/activate # Windows 用 ge_env\Scripts\activate
# 安装 Great Expectations
pip install great_expectations
安装完成后,验证一下:
great_expectations --version
如果看到版本号,说明装好了。嗯,这里要注意:如果你在公司内网,可能需要配置代理或使用离线包。我遇到过几次因为网络问题安装失败的情况,解决办法是提前下载 whl 文件。
2.2 初始化项目:创建 Data Context
Data Context 是什么?说白了,它就是 GE 项目的“大脑”——管理所有配置、数据源、校验规则和结果的地方。你想想看,没有它,GE 根本不知道你要校验什么数据。
初始化非常简单:
# 进入你的项目目录
cd my_data_project
# 初始化 GE 项目
great_expectations init
执行后,你会看到终端输出一堆信息。GE 会在当前目录下创建一个 great_expectations/ 文件夹。这就是你的 Data Context。
我们来看看这个文件夹里都有什么:
great_expectations/
├── great_expectations.yml # 主配置文件
├── expectations/ # 存放 Expectation Suite
├── checkpoints/ # 存放 Checkpoint 配置
├── plugins/ # 自定义插件目录
├── uncommitted/ # 不提交到版本控制的文件
│ ├── config_variables.yml # 敏感变量
│ └── data_docs/ # 生成的文档
└── .gitignore
这个结构很清晰。我刚开始用的时候,最喜欢的是 uncommitted/ 目录——它自动帮你把敏感信息隔离了,省得你手写 .gitignore。
2.3 创建第一个 Data Context(编程方式)
除了命令行,你也可以用 Python 代码来创建。我个人更推荐这种方式,尤其是在自动化脚本里。
import great_expectations as ge
# 创建 Data Context
context = ge.data_context.DataContext()
# 或者指定路径
# context = ge.data_context.DataContext("/path/to/my/great_expectations")
执行这段代码,GE 会在当前目录下创建 great_expectations/ 文件夹。如果已经存在,它会直接加载。
2.4 验证 Data Context 是否可用
创建完了,怎么知道它好不好使?跑个简单的列表看看:
# 列出所有可用的数据源
datasources = context.list_datasources()
print(datasources)
# 列出所有 Expectation Suite
suites = context.list_expectation_suites()
print(suites)
如果返回空列表,说明 Data Context 正常工作。别担心,空是正常的——我们还没添加任何数据源和校验规则。
2.5 本章知识体系
下面这张图帮你理清环境搭建的核心流程:
2.6 常见问题与避坑
安装和初始化过程中,你可能会遇到几个坑。我帮你列出来:
| 问题 | 原因 | 解决办法 |
|---|---|---|
| pip 安装超时 | 网络问题或包体积大 | 使用国内镜像源:pip install -i https://pypi.tuna.tsinghua.edu.cn/simple great_expectations |
| Python 版本不兼容 | 使用了 Python 3.12+ | 降级到 3.10 或 3.11 |
| 初始化后找不到文件夹 | 当前目录权限不足 | 切换到有写入权限的目录 |
| Jupyter 中 DataContext 报错 | 工作目录不对 | 用 os.chdir() 切换到项目根目录 |
great_expectations/ 加到杀毒软件的白名单里。我遇到过几次因为实时扫描导致初始化卡死的情况,关了杀毒软件瞬间就好了。
2.7 小结
到这一步,你的 GE 环境已经搭好了。Data Context 也创建成功了。说白了,你现在有了一个空白的“校验工作台”。接下来要做什么?往里面加数据源、写校验规则、跑检查。别急,后面几章会一步步带你走完。
嗯,最后提醒一句:如果你在团队里用,记得把 great_expectations/ 提交到 Git,但 uncommitted/ 目录要加到 .gitignore 里。GE 初始化时已经帮你做好了,别手贱改掉。