跳转到主要内容

Great Expectations Cloud

项目描述

GX Cloud

PyPI Docker Pulls ci pre-commit.ci status codecov Ruff

快速开始

要使用GX代理,您需要拥有Great Expectations Cloud账户。您可以在https://app.greatexpectations.io免费注册。

在GX Cloud文档中可以找到GX代理的部署说明GX Cloud文档

开发设置

以下说明适用于为GX代理做出贡献的人,要部署和使用GX代理,请参阅上面的快速开始部分。

另请参阅CONTRIBUTING.md

  1. 安装poetry
  2. 设置虚拟环境并安装依赖项
    • poetry install --sync
  3. 激活您的虚拟环境
    • poetry shell
  4. 设置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

向代理添加操作

  1. great_expectations_cloud/agent/actions/中创建一个新的操作文件。
  2. 使用great_expectations_cloud.agent.event_handler.register_event_action()在该文件中注册您的操作。注册适用于操作应用的GX Core的主要版本,例如register_event_action("1", RunCheckpointEvent, RunCheckpointAction)注册了适用于GX Core主要版本1的操作(例如1.0.0)。
  3. 将您的操作导入到 great_expectations_cloud/agent/actions/__init__.py

注意:代理程序针对核心版本特定,但此注册机制允许我们在支持现有最新主要版本的同时,提前对GX核心的未来版本的操作进行工作。

发布流程

版本控制

这是将用于Docker镜像标签的版本。

标准发布:版本方案为 YYYYMMDD.{release_number} 其中

  • 日期是发布日期
  • 发布号从0开始,是当天第一次发布的版本
  • 发布号在当天内的每次发布中递增

例如: 20240402.0

预发布:版本方案为 YYYYMMDD.{release_number}.dev{dev_number}

  • 日期是发布日期
  • 开发号从0开始,是当天第一次预发布的版本
  • 开发号在当天内的每次预发布中递增
  • 发布号是针对此预发布的版本

例如: 20240403.0.dev020240403.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。此外,发布将带有 stablelatest 标签。

GitHub发布工作流程

我们使用GitHub Actions工作流程来自动化发布和预发布流程。涉及两个工作流程

  1. CI - 此工作流程在每次pull request时运行,如果版本尚未在PR中手动更新,则将更新 pyproject.toml 中的版本到预发布版本。它还将运行测试和代码风格检查。

  2. 容器化代理 - 此工作流程在合并到 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中。在以下情况下使用此标签
    • 仅修改开发依赖项。
    • 仅修改不影响功能的测试。

项目详情


发布历史 发布通知 | RSS订阅

下载文件

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

源代码分发

great_expectations_cloud-20241001.0.tar.gz (33.1 kB 查看哈希值)

上传时间 源代码

构建分发

great_expectations_cloud-20241001.0-py3-none-any.whl (38.6 kB 查看哈希值)

上传时间 Python 3

由以下机构支持