【问题标题】:Great Expectations - Run Validation over specific subset of a PostgreSQL tableGreat Expectations - 对 PostgreSQL 表的特定子集运行验证
【发布时间】:2021-10-18 08:26:46
【问题描述】:

我对 Great Expectations 还很陌生 - 并且有一个问题。本质上,我有一个 PostgreSQL 数据库,每次运行数据管道时,我都想根据某个键验证 PostgreSQL 表的特定子集。例如:如果数据管道每天都运行,则将是一个名为 current_batch 的字段。以下查询将进行验证:

SELECT * FROM jobs WHERE current_batch = .

我不确定完成此操作的最佳方式。我是一个使用 v3-api 的人,对使用检查点还是验证器有点困惑。我假设我想使用检查点,但我似乎不知道如何创建检查点,但只验证 PostgreSQL 数据源的特定子集。

任何帮助或指导将不胜感激。

谢谢,

【问题讨论】:

    标签: great-expectations


    【解决方案1】:

    我完全理解您的困惑,因为我也在与 GE 合作,文档不是很清楚。

    首先,“验证器”现在称为“检查点”,因此它们不是不同的实体,您可以read here

    我正在开发一个 Oracle 数据库,我发现在测试我的数据之前应用查询的唯一方法是将查询放在检查点内。

    要创建检查点,您应该从终端运行great_expectations checkpoint new 命令。创建后,您应该在 .yml 文件中添加“查询”字段,即您的检查点。

    您可以在下面看到我正在使用的检查点的 sn-p。当我想验证我的数据时,我运行命令great_expectations checkpoint run check1

    name: check1
    module_name: great_expectations.checkpoint
    class_name: LegacyCheckpoint
    batches:
      - batch_kwargs:
          table: pso
          schema: test
          query: SELECT p AS c,
    
                 [ ... ]
    
           AND    lsr = c)
    
          datasource: my_database
          data_asset_name: test.pso
    
        expectation_suite_names:
          - exp_suite1
    

    希望这会有所帮助!如果您有任何疑问,请随时询问:)

    【讨论】:

    • 您的答案不是基于 V2 吗?从我看到的初始化 v3 检查点的方式是great_expectations --v3-api checkpoint new my_checkpoint
    • 是的,你是对的,但它的工作方式相同。我尝试了这两个命令,结果是相同的。 @sirVir
    【解决方案2】:

    我使用 Views(在 Postgres 中)管理它。在运行 GE 之前,我创建(或替换现有)视图作为查询,其中包含所有必要的连接、过滤、聚合等。然后在 GE 检查点中指定此视图的名称。

    是的,这不是理想的解决方案。我也宁愿在检查点中使用查询。但作为一种解决方法,它涵盖了我所有的情况。

    让我们有这样的看法:

    CREATE OR REPLACE VIEW table_to_check_1_today AS
    SELECT * FROM initial_table
    WHERE dt = current_date;
    

    检查点配置如下:

    name: my_task.my_check
    config_version: 1.0
    validations:
    - expectation_suite_name: my_task.my_suite
      batch_request:
        datasource_name: my_datasource
        data_connector_name: default_inferred_data_connector_name
        data_asset_name: table_to_check_1_today
    
    

    【讨论】:

      猜你喜欢
      • 2020-12-08
      • 2022-07-17
      • 2022-06-16
      • 2021-11-14
      • 2021-05-22
      • 2021-12-23
      • 2021-10-20
      • 2021-02-18
      • 1970-01-01
      相关资源
      最近更新 更多