Great Expectations Cloud
项目描述
GX Cloud
快速开始
要使用GX代理,您需要拥有Great Expectations Cloud账户。您可以在https://app.greatexpectations.io免费注册。
在GX Cloud文档中可以找到GX代理的部署说明GX Cloud文档。
开发设置
以下说明适用于为GX代理做出贡献的人,要部署和使用GX代理,请参阅上面的快速开始部分。
另请参阅CONTRIBUTING.md
- 安装
poetry
- 设置虚拟环境并安装依赖项
poetry install --sync
- 激活您的虚拟环境
poetry shell
- 设置precommit钩子
pre-commit install
故障排除
如果遇到问题,您可以尝试pipx reinstall-all
本地开发运行
$ gx-agent --help
usage: gx-agent [-h] [--log-level LOG_LEVEL] [--skip-log-file SKIP_LOG_FILE] [--log-cfg-file LOG_CFG_FILE] [--version]
optional arguments:
-h, --help show this help message and exit
--log-level LOG_LEVEL
Level of logging to use. Defaults to WARNING.
--skip-log-file SKIP_LOG_FILE
Skip writing debug logs to a file. Defaults to False. Does not affect logging to stdout/stderr.
--log-cfg-file LOG_CFG_FILE
Path to a logging configuration json file. Supersedes --log-level and --skip-log-file.
--version Show the GX Agent version.
设置环境变量
GX_CLOUD_ACCESS_TOKEN
GX_CLOUD_ORGANIZATION_ID
启动GX代理
如果您打算运行GX代理针对本地服务(云后端或数据源),请在容器外运行代理。
gx-agent
开发者任务
通过invoke
(在tasks.py
中定义)可以访问常见开发者任务。
invoke --list
查看可用任务。
同步依赖项
为确保您使用核心和开发依赖项的最新版本,请运行poetry install --sync
。这也可以作为invoke任务使用。
invoke deps
更新poetry.lock
依赖项
我们CI和Docker构建步骤中安装的依赖项由poetry.lock文件确定。
要仅更新特定依赖项(如great_expectations
),请参阅更新特定依赖项...
poetry update great_expectations
poetry lock
在两种情况下,更新的poetry.lock
文件都必须提交并合并到main。
构建和运行GX代理镜像
要构建GX代理Docker镜像,请在根目录中运行以下命令
invoke docker
运行GX代理
invoke docker --run
或者
docker run --env GX_CLOUD_ACCESS_TOKEN="<GX_TOKEN>" --env GX_CLOUD_ORGANIZATION_ID="<GX_ORG_ID>" gx/agent
现在进入GX Cloud,对GX代理运行命令,例如为数据源生成Expectation Suite。
注意:如果您推送新的镜像更新,请更新
containerize-agent.yaml
中的镜像标签版本。该镜像将通过GitHub Actions构建和推送。
示例数据
来自/examples/agent/data的内容将复制到Docker容器的/data
。
向代理添加操作
- 在
great_expectations_cloud/agent/actions/
中创建一个新的操作文件。 - 使用
great_expectations_cloud.agent.event_handler.register_event_action()
在该文件中注册您的操作。注册适用于操作应用的GX Core的主要版本,例如register_event_action("1", RunCheckpointEvent, RunCheckpointAction)
注册了适用于GX Core主要版本1的操作(例如1.0.0)。 - 将您的操作导入到
great_expectations_cloud/agent/actions/__init__.py
注意:代理程序针对核心版本特定,但此注册机制允许我们在支持现有最新主要版本的同时,提前对GX核心的未来版本的操作进行工作。
发布流程
版本控制
这是将用于Docker镜像标签的版本。
标准发布:版本方案为 YYYYMMDD.{release_number}
其中
- 日期是发布日期
- 发布号从0开始,是当天第一次发布的版本
- 发布号在当天内的每次发布中递增
例如: 20240402.0
预发布:版本方案为 YYYYMMDD.{release_number}.dev{dev_number}
- 日期是发布日期
- 开发号从0开始,是当天第一次预发布的版本
- 开发号在当天内的每次预发布中递增
- 发布号是针对此预发布的版本
例如: 20240403.0.dev0
是 20240403.0
发布的第一个预发布。
例如,假设一天中有两个发布的以下发布序列
20240403.0.dev0
20240403.0.dev1
20240403.0
20240403.1.dev0
20240403.1
可能有些天没有标准发布,只有预发布,或者有些天完全没有预发布或标准发布。
预发布
预发布在每个合并到 main
分支时自动完成。版本更新在 pyproject.toml
中,并在PyPi上创建一个预发布。还会生成一个新的Docker标签并将其推送到 Docker Hub
手动预发布
注意:CI会在合并到 main
时自动创建预发布。不要手动创建预发布,考虑使用CI流程。这仅适用于特殊情况。
要手动创建预发布,运行以下命令更新 pyproject.toml
中的版本,然后将它合并到单独的PR中的 main
invoke pre-release
这将创建一个新的预发布版本。在下一次合并到 main
时,发布将上传到PyPi。还会生成一个新的Docker标签并将其推送到 Docker Hub
发布
项目维护者将定期完成发布,并与 GX Core 的任何发布一起完成。
对于维护者,要创建发布,运行以下命令更新 pyproject.toml
中的版本,然后将它合并到单独的PR中的 main
invoke release
这将创建一个新的发布版本。在下一次合并到 main
时,发布将上传到PyPi。还会生成一个新的Docker标签并将其推送到 Docker Hub。此外,发布将带有 stable
和 latest
标签。
GitHub发布工作流程
我们使用GitHub Actions工作流程来自动化发布和预发布流程。涉及两个工作流程
-
CI - 此工作流程在每次pull request时运行,如果版本尚未在PR中手动更新,则将更新
pyproject.toml
中的版本到预发布版本。它还将运行测试和代码风格检查。 -
容器化代理 - 此工作流程在合并到
main
时运行,将创建一个新的Docker镜像并将其推送到Docker Hub和PyPi。它使用pyproject.toml
中的版本。
工作流程的视觉表示在此处显示 这里
Dependabot 和 发布/预发布
GitHub的Dependabot会定期检查我们的依赖项,以基于漏洞更新,并建议提交PR来相应地更新依赖项版本号。
Dependabot可能只更新poetry.lock
文件。如果只更改poetry.lock
,则可以在预发布中完成。
对于对pyproject.toml
文件的更改
- 如果
[tool.poetry.group.dev.dependencies]
组中工具的版本更新,则无需版本升级即可完成。- 在此过程中,请确保在预提交配置
.pre-commit-config.yaml
中保留任何版本引用同步(例如,ruff)。
- 在此过程中,请确保在预提交配置
- 对于其他依赖项更新或包构建元数据更改,应策划新的发布。这包括以下部分的更新
[tool.poetry.dependencies]
[tool.poetry.group.*.dependencies]
其中*
是组名(不包括dev
组)
- 要停止自动版本升级,请将“无版本升级”标签添加到PR中。在以下情况下使用此标签
- 仅修改开发依赖项。
- 仅修改不影响功能的测试。
项目详情
哈希 用于 great_expectations_cloud-20241001.0-py3-none-any.whl
算法 | 哈希摘要 | |
---|---|---|
SHA256 | d89e7804de71ba4a144a05c4a4080132a714cadf4965b8904197ae2882e3fa6f |
|
MD5 | 3890efa0a7199a2447a9539271d0081a |
|
BLAKE2b-256 | d830a482a1d86c697f04bdac3fe70c4d60cb7d737a4e8f1f15f20d2e0f00e042 |