새 데이터에 기대 적용

Great Expectations로 배우는 데이터 품질 입문

Davina Moossazadeh

Data Scientist

체크포인트

체크포인트 - 공통 파라미터로 검증 정의를 묶어 실행하는 객체

체크포인트 도식. 워크플로: 배치 요청 -> 데이터 소스 -> 검증 정의. 검증 정의는 검증 결과를 내고, 이는 선택적 액션 목록(하나 이상 액션 포함)으로 전달됩니다.

액션 - 체크포인트에서 구성되며 검증 결과를 바탕으로 GX를 다른 도구와 연동하는 구성 요소

1 https://docs.greatexpectations.io/docs/core/trigger_actions_based_on_results/create_a_checkpoint_with_actions/
Great Expectations로 배우는 데이터 품질 입문

왜 체크포인트를 사용하나요?

재사용성

  • 하나의 배치에 여러 검증 정의 실행 가능

액션

  • 검증 결과에 따라 액션 트리거 가능
Great Expectations로 배우는 데이터 품질 입문

체크포인트 생성하기

$$

gx.Checkpoint()로 Slack 알림 포함 체크포인트 생성:

checkpoint = gx.Checkpoint(

name="my_checkpoint",
validation_definitions=[validation_definition],
actions=[SlackNotificationAction()] # optional )
Great Expectations로 배우는 데이터 품질 입문

체크포인트 오류

검증 정의를 데이터 컨텍스트에 추가하기 전에 체크포인트를 실행하면 오류가 발생합니다:

CheckpointRelatedResourcesFreshnessError: 
ValidationDefinition 'my_validation_definition' must be added to the DataContext 
before it can be updated. Please call `context.validation_definitions.add(
<VALIDATION_DEFINITION_OBJECT>)`, then try your action again.
Great Expectations로 배우는 데이터 품질 입문

검증 정의 추가하기

.validation_definitions.add()로 데이터 컨텍스트에 검증 정의 추가:

validation_definition = context.validation_definitions.add(

validation_definition=validation_definition )
Great Expectations로 배우는 데이터 품질 입문

체크포인트 실행하기

checkpoint_results = checkpoint.run(
    batch_parameters={"dataframe": dataframe}
)

체크포인트 결과. 출력이 길어 슬라이드에 모두 표시되지 않습니다.

Great Expectations로 배우는 데이터 품질 입문

체크포인트 결과 평가

print(checkpoint_results.success)
False
print(checkpoint_results.describe())
Great Expectations로 배우는 데이터 품질 입문

체크포인트 결과 평가

{ "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로 배우는 데이터 품질 입문

Data Docs

Data Docs - GX 메타데이터로 생성된 정적 웹사이트

# Data Docs를 업데이트하는 액션이 포함된 체크포인트
gx.Checkpoint(
    name,
    validation_definitions,
    actions=[
      gx.checkpoint.actions.UpdateDataDocsAction(
          name="update_my_site", site_names="my_data_docs_site"
        )
    ],
)
1 https://docs.greatexpectations.io/docs/core/configure_project_settings/configure_data_docs/
Great Expectations로 배우는 데이터 품질 입문

Data Docs

Data Docs 웹페이지 스크린샷. 테이블 수준 기대 목록과 관측값이 보입니다. 행 수 범위 기대 하나는 펼쳐진 검증 이력 테이블을 보여주며 실행 시간, 관측값, 최소/최대가 표시됩니다. 오른쪽 상단 초록 상자에는 체크 표시와 "모든 기대 충족" 문구가 있습니다.

Great Expectations로 배우는 데이터 품질 입문

치트시트

검증 정의를 데이터 컨텍스트에 추가:

context.validation_definitions.add(
    validation_definition
)

체크포인트 생성:

checkpoint = gx.Checkpoint(
    name: str, 
    validation_definitions: list,
)

체크포인트 실행:

checkpoint_results = checkpoint.run(
    batch_parameters={"dataframe": dataframe}
)

체크포인트 결과 확인:

checkpoint_results.success
checkpoint_results.describe()
Great Expectations로 배우는 데이터 품질 입문

Vamos praticar!

Great Expectations로 배우는 데이터 품질 입문

Preparing Video For Download...