ตรวจสอบความถูกต้องของ Expectation Suites

การตรวจสอบคุณภาพข้อมูลด้วย Great Expectations เบื้องต้น

Davina Moossazadeh

Data Scientist

Validation Definitions

Validation Definition - การอ้างอิงที่เชื่อม Expectation Suite กับข้อมูลที่อธิบาย

แผนผังแสดง Validation Definition โดยมี Data และ Expectation Suite เป็น input และ Validation Results เป็น output

1 https://docs.greatexpectations.io/docs/core/run_validations/create_a_validation_definition/
การตรวจสอบคุณภาพข้อมูลด้วย Great Expectations เบื้องต้น

การสร้าง Validation Definition

สร้าง Validation Definition ด้วยคลาส ValidationDefinition:

validation_definition = gx.ValidationDefinition(

name="my_validation_definition",
data=batch_definition,
suite=suite, )
print(validation_definition)
การตรวจสอบคุณภาพข้อมูลด้วย Great Expectations เบื้องต้น

ดู 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
การตรวจสอบคุณภาพข้อมูลด้วย Great Expectations เบื้องต้น

ดู 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
การตรวจสอบคุณภาพข้อมูลด้วย Great Expectations เบื้องต้น

ดู 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
การตรวจสอบคุณภาพข้อมูลด้วย Great Expectations เบื้องต้น

การรัน Validation Definition

รัน Validation ด้วยเมธอด .run() ของ Validation Definition โดยส่ง DataFrame ผ่าน batch_parameters:

validation_results = validation_definition.run(

batch_parameters={"dataframe": dataframe} )
การตรวจสอบคุณภาพข้อมูลด้วย Great Expectations เบื้องต้น

ข้อผิดพลาดของ Validation Definition

สังเกตข้อผิดพลาด:

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.

การรัน Validation Definition ก่อนเพิ่ม Expectation Suite ลงใน Data Context จะทำให้เกิดข้อผิดพลาด

การตรวจสอบคุณภาพข้อมูลด้วย Great Expectations เบื้องต้น

การเพิ่ม Expectation Suite

เพิ่ม Expectation Suite ลงใน Data Context ด้วย .suites.add():

suite = context.suites.add(

suite=suite )
การตรวจสอบคุณภาพข้อมูลด้วย Great Expectations เบื้องต้น

การประเมินผล 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())
การตรวจสอบคุณภาพข้อมูลด้วย Great Expectations เบื้องต้น

การประเมินผล 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"
}
การตรวจสอบคุณภาพข้อมูลด้วย Great Expectations เบื้องต้น

หมายเหตุเกี่ยวกับ GX

  • Great Expectations มีหลายวิธีสำหรับงานที่คล้ายกัน
    • เช่น Batch Definitions และ Validation Definitions
  • คอร์สนี้ให้ภาพรวมกว้าง แต่การใช้งาน GX แบบอื่นอาจใช้แนวทางที่แตกต่างกัน
การตรวจสอบคุณภาพข้อมูลด้วย Great Expectations เบื้องต้น

สรุปคำสั่งสำคัญ

เพิ่ม Expectation Suite ลงใน Data Context:

context.suites.add(suite)

สร้าง Validation Definition:

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

รัน Validation:

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

ตรวจสอบผลลัพธ์ Validation:

validation_results.success
validation_results.describe()
การตรวจสอบคุณภาพข้อมูลด้วย Great Expectations เบื้องต้น

มาฝึกกันเถอะ!

การตรวจสอบคุณภาพข้อมูลด้วย Great Expectations เบื้องต้น

Preparing Video For Download...