Beklentileri Yeni Veriye Uygula

Great Expectations ile Veri Kalitesine Giriş

Davina Moossazadeh

Data Scientist

Kontrol Noktaları

Kontrol Noktası (Checkpoint) - Ortak parametrelerle Doğrulama Tanımlarını gruplayıp çalıştıran bir nesne

Bir Kontrol Noktasını gösteren şema: İş akışı Batch Requests -> Data Source -> Validation Definition. Validation Definition, Validation Results üretir; bunlar isteğe bağlı Eylem Listesine (Action List) gider ve bir veya daha çok Eylem içerir.

Eylemler (Actions) - Kontrol Noktaları tarafından yapılandırılan ve Doğrulama Sonuçlarına göre GX'i diğer araçlarla entegre eden bileşenler

1 https://docs.greatexpectations.io/docs/core/trigger_actions_based_on_results/create_a_checkpoint_with_actions/
Great Expectations ile Veri Kalitesine Giriş

Neden Kontrol Noktaları?

Yeniden kullanılabilirlik

  • Bir Batch üzerinde birden çok Doğrulama Tanımı çalıştırılabilir

Eylemler

  • Doğrulama Sonuçlarına göre Eylemler tetiklenebilir
Great Expectations ile Veri Kalitesine Giriş

Bir Kontrol Noktası Oluşturma

$$

gx.Checkpoint() ile Slack bildirimi olan bir Kontrol Noktası oluşturma:

checkpoint = gx.Checkpoint(

name="my_checkpoint",
validation_definitions=[validation_definition],
actions=[SlackNotificationAction()] # optional )
Great Expectations ile Veri Kalitesine Giriş

Kontrol Noktası hataları

Doğrulama Tanımı Data Context'e eklenmeden bir Kontrol Noktası çalıştırmak hata verir:

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 ile Veri Kalitesine Giriş

Bir Doğrulama Tanımı Ekleme

.validation_definitions.add() ile Doğa Bağlamına (Data Context) Doğrulama Tanımını ekleyin:

validation_definition = context.validation_definitions.add(

validation_definition=validation_definition )
Great Expectations ile Veri Kalitesine Giriş

Bir Kontrol Noktası Çalıştırma

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

Kontrol Noktası Sonuçları. Çıktı uzun ve slayta sığmıyor.

Great Expectations ile Veri Kalitesine Giriş

Kontrol Noktası Sonuçlarını Değerlendirme

print(checkpoint_results.success)
False
print(checkpoint_results.describe())
Great Expectations ile Veri Kalitesine Giriş

Kontrol Noktası Sonuçlarını Değerlendirme

{ "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 ile Veri Kalitesine Giriş

Data Docs

Data Docs - GX meta verilerinden üretilen statik web siteleri

# Data Docs'u Güncelleme Eylemi içeren Kontrol Noktası
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 ile Veri Kalitesine Giriş

Data Docs

Bir Data Docs web sayfası ekran görüntüsü: tablo düzeyi Beklentilerin ve gözlenen değerlerin listesi. Satır sayısı aralığına ilişkin bir Beklenti genişletilmiş Doğrulama Geçmişi tablosunu gösteriyor: çalışma zamanı, gözlenen değer ve min/maks değerler. Sağ üstte onay işaretli yeşil bir kutuda "Tüm Beklentiler karşılandı" yazıyor.

Great Expectations ile Veri Kalitesine Giriş

Kısa rehber

Doğrulama Tanımını Data Context'e ekleyin:

context.validation_definitions.add(
    validation_definition
)

Kontrol Noktası oluşturun:

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

Kontrol Noktasını çalıştırın:

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

Sonuçları kontrol edin:

checkpoint_results.success
checkpoint_results.describe()
Great Expectations ile Veri Kalitesine Giriş

Vamos praticar!

Great Expectations ile Veri Kalitesine Giriş

Preparing Video For Download...