Xác thực Bộ kỳ vọng

Nhập môn Data Quality với Great Expectations

Davina Moossazadeh

Data Scientist

Validation Definitions

Validation Definition - Tham chiếu liên kết một Expectation Suite với dữ liệu mà nó mô tả

Sơ đồ cho thấy Validation Definition với Data và Expectation Suite làm đầu vào và Validation Results là đầu ra.

1 https://docs.greatexpectations.io/docs/core/run_validations/create_a_validation_definition/
Nhập môn Data Quality với Great Expectations

Tạo một Validation Definition

Tạo một Validation Definition với lớp ValidationDefinition:

validation_definition = gx.ValidationDefinition(

name="my_validation_definition",
data=batch_definition,
suite=suite, )
print(validation_definition)
Nhập môn Data Quality với Great Expectations

Xem một Validation Definition

name='my_validation_definition' 
data=BatchDefinition(
    id='1fcb36d6-fac6-4b9a-8ba6-a659978fd59e', 
    name='my_batch_definition', 
    partitioner=None
) 
suite={
  "name": "my_suite",
  "id": "0a123b9c-e370-4b18-b703-785dde88732d",
  "expectations": [],
  "meta": {"great_expectations_version": "1.2.4"},
  "notes": null
} 
id=None
Nhập môn Data Quality với Great Expectations

Xem một Validation Definition

print(validation_definition.name)
'my_validation_definition' 
print(validation_definition.data)
id='1fcb36d6-fac6-4b9a-8ba6-a659978fd59e' 
name='my_batch_definition' 
partitioner=None
print(validation_definition.suite)
{
  "name": "my_suite",
  "id": "0a123b9c-e370-4b18-b703-785dde88732d",
  "expectations": [],
  "meta": {"great_expectations_version": "1.2.4"},
  "notes": null
} 
print(validation_definition.id)
None
Nhập môn Data Quality với Great Expectations

Xem một Validation Definition

print(validation_definition.data_source)
assets:
  - batch_definitions:
      - name: my_batch_definition
        partitioner: null
    batch_metadata: {}
    id: 83682084-3bc4-4898-a807-fadc0f911415
    name: 'my_dataframe_asset'
    type: dataframe
id: f71d275e-a5b2-402e-a53c-8dad6975cce5
name: 'my_pandas_data_source'
type: pandas
Nhập môn Data Quality với Great Expectations

Chạy một Validation Definition

Chạy Validation bằng phương thức .run() của Validation Definition, truyền DataFrame qua batch_parameters:

validation_results = validation_definition.run(

batch_parameters={"dataframe": dataframe} )
Nhập môn Data Quality với Great Expectations

Lỗi Validation Definition

Lưu ý lỗi:

ValidationDefinitionRelatedResourcesFreshnessError:
ExpectationSuite 'my_suite' must be added to the DataContext before it can be 
updated. Please call `context.suites.add(<SUITE_OBJECT>)`, then try your action 
again.

Chạy Validation Definition trước khi thêm Expectation Suite vào Data Context sẽ gây lỗi

Nhập môn Data Quality với Great Expectations

Thêm một Expectation Suite

Thêm một Expectation Suite vào Data Context bằng .suites.add():

suite = context.suites.add(

suite=suite )
Nhập môn Data Quality với Great Expectations

Đánh giá một Validation Definition

validation_results = validation_definition.run(
    batch_parameters={"dataframe": dataframe}
)
Calculating Metrics: 0/0 [00:00<?, ?it/s]
print(validation_results.success)
False
print(validation_results.describe())
Nhập môn Data Quality với Great Expectations

Đánh giá một Validation Definition

{ "success": false,
  "statistics": {
    "evaluated_expectations": 1, "successful_expectations": 0,
    "unsuccessful_expectations": 1, "success_percent": 0.0
  },
  "expectations": [{
    "expectation_type": "expect_table_row_count_to_equal",
    "success": false,
    "kwargs": {"batch_id": ""my_datasource-my_dataframe_asset", "value": 118000}, 
    "result": {"observed_value": 11866}}
  ],
  "result_url": "https://app.greatexpectations.io/organizations/my_org/data-assets/*/validations/expectation-suites/0a123b9c-e370-4b18-b703-785dde88732d/results/cb093105-6ede-47d4-a141-dee10c632e18"
}
Nhập môn Data Quality với Great Expectations

Lưu ý về GX

  • Great Expectations có nhiều quy trình cho các tác vụ tương tự
    • ví dụ: Batch Definitions vs. Validation Definitions
  • Khóa học cung cấp cái nhìn tổng quan; các triển khai GX khác có thể dùng cách tiếp cận khác
Nhập môn Data Quality với Great Expectations

Ghi nhớ nhanh

Thêm Expectation Suite vào Data Context:

context.suites.add(suite)

Tạo Validation Definition:

validation_definition = \
gx.ValidationDefinition(
  name: str, 
  data=batch_definition, 
  suite=suite
)

Chạy Validation:

validation_results = \
validation_definition.run(
  batch_parameters={"dataframe": dataframe}
)

Kiểm tra kết quả Validation:

validation_results.success
validation_results.describe()
Nhập môn Data Quality với Great Expectations

Ayo berlatih!

Nhập môn Data Quality với Great Expectations

Preparing Video For Download...