Expectation Suite'leri Doğrulama

Great Expectations ile Veri Kalitesine Giriş

Davina Moossazadeh

Data Scientist

Doğrulama Tanımları

Validation Definition - Bir Expectation Suite'i tanımladığı veriyle ilişkilendiren başvuru nesnesi

Girdi olarak Veri ve Expectation Suite, çıktı olarak Validation Results içeren bir Doğrulama Tanımı şeması.

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

Bir Doğrulama Tanımı Oluşturma

ValidationDefinition sınıfıyla bir Doğrulama Tanımı oluşturun:

validation_definition = gx.ValidationDefinition(

name="my_validation_definition",
data=batch_definition,
suite=suite, )
print(validation_definition)
Great Expectations ile Veri Kalitesine Giriş

Bir Doğrulama Tanımını Görüntüleme

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

Bir Doğrulama Tanımını Görüntüleme

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

Bir Doğrulama Tanımını Görüntüleme

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

Bir Doğrulama Tanımını Çalıştırma

Validation Definition'ın .run() yöntemiyle bir Doğrulama çalıştırın; DataFrame'i batch_parameters ile geçin:

validation_results = validation_definition.run(

batch_parameters={"dataframe": dataframe} )
Great Expectations ile Veri Kalitesine Giriş

Doğrulama Tanımı hataları

Hatanın notu:

ValidationDefinitionRelatedResourcesFreshnessError:
' my_suite' ExpectationSuite'i güncellenmeden önce DataContext'e eklenmelidir. Lütfen önce `context.suites.add(<SUITE_OBJECT>)` çağırın ve ardından işlemi tekrar deneyin.

Expectation Suite, Data Context'e eklenmeden bir Doğrulama Tanımı çalıştırmak hata üretir

Great Expectations ile Veri Kalitesine Giriş

Bir Expectation Suite Ekleme

.suites.add() ile bir Expectation Suite'i Data Context'e ekleyin:

suite = context.suites.add(

suite=suite )
Great Expectations ile Veri Kalitesine Giriş

Bir Doğrulama Tanımını Değerlendirme

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

Bir Doğrulama Tanımı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ş

GX hakkında not

  • Great Expectations, benzer işler için birden çok iş akışı sunar
    • ör. Batch Definitions vs. Validation Definitions
  • Bu kurs genel bir bakış sunar; alternatif GX uygulamaları farklı yaklaşımlar kullanabilir
Great Expectations ile Veri Kalitesine Giriş

Kısa özet

Expectation Suite'i Data Context'e ekleyin:

context.suites.add(suite)

Validation Definition oluşturun:

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

Doğrulamayı çalıştırın:

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

Sonuçları kontrol edin:

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

Hadi pratik yapalım!

Great Expectations ile Veri Kalitesine Giriş

Preparing Video For Download...