管理元件

Great Expectations 資料品質入門

Davina Moossazadeh

Data Scientist

元件

GX 元件-以 Python 類別表示資料與資料驗證的實體

  • Data Context
  • Data Sources 與 Data Assets
  • Batch Definitions 與 Batches
  • Expectations
  • Expectation Suites
  • Validation Definitions
  • Checkpoints 與 Actions
  • Data Docs
1 https://docs.greatexpectations.io/docs/core/introduction/gx_overview
Great Expectations 資料品質入門

在 GX 中管理元件

Data Sources

  • 連線資料並包含 Data Assets

Expectation Suites

  • 容納 Expectations

Validation Definitions

  • 以資料驗證 Expectations

Checkpoints

  • 彙整並自動化 Validations

context.data_sources

$$

context.suites

$$

context.validation_definitions

$$

context.checkpoints

Great Expectations 資料品質入門

新增元件

Expectation Suite:

suite = context.suites.add(suite)

Validation Definition:

validation_definition = context.validation_definitions.add(validation_definition)

Checkpoint:

checkpoint = context.checkpoints.add(
    checkpoint=checkpoint
)
Great Expectations 資料品質入門

新增 Data Source

data_source = context.data_sources.add_<TYPE_NAME>()

1 https://docs.greatexpectations.io/docs/core/connect_to_data/
Great Expectations 資料品質入門

新增 pandas Data Source

使用 .add_pandas() 快速為 pandas DataFrame 設定 Data Source:

data_source = context.data_sources.add_pandas(
    name="my_pandas_datasource"
)
Great Expectations 資料品質入門

擷取元件

.get() 並指定名稱參數來擷取元件:

context.<COMPONENT>s.get(

name: str )
data_source = context.data_sources.get(

name="my_pandas_datasource" )
print(data_source)
id: 46c91f1b-1db9-4351-b5dd-83e038c0f511
name: 'my_pandas_datasource'
type: pandas
Great Expectations 資料品質入門

擷取元件

Data Sources:

context.data_sources.get(
    name="my_pandas_datasource"
)

Expectation Suites:

context.suites.get(
    name="my_suite"
)

Validation Definitions:

context.validation_definitions.get(
    name="my_validation_definition"
)

Checkpoints:

context.checkpoints.get(
    name="my_checkpoint"
)
Great Expectations 資料品質入門

列出元件

使用 .all() 列出 Data Context 中所有元件的名稱與中繼資料:

context.<COMPONENT>s.all()
data_sources = context.data_sources.all()

print(data_sources)
{
    'my_pandas_datasource': PandasDatasource(
        type='pandas',
        name='my_pandas_datasource', 
        id=UUID('c22b16f7-6945-400e-932f-026cbd63b112'), 
        assets=[]
    )
}
Great Expectations 資料品質入門

列出元件

Data Sources:

context.data_sources.all()

Expectation Suites:

context.suites.all()

Validation Definitions:

context.validation_definitions.all()

Checkpoints:

context.checkpoints.all()
Great Expectations 資料品質入門

刪除元件

使用 .delete() 並指定名稱來移除元件:

context.<COMPONENT>s.delete(

name: str )
context.data_sources.delete(
    name="my_pandas_datasource"
)

print(context.data_sources.all())
{}
Great Expectations 資料品質入門

刪除元件

Data Sources:

context.data_sources.delete(
    name="my_pandas_datasource"
)

Expectation Suites:

context.suites.delete(
    name="my_suite"
)

Validation Definitions:

context.validation_definitions.delete(
    name="my_validation_definition"
)

Checkpoints:

context.checkpoints.delete(
    name="my_checkpoint"
)
Great Expectations 資料品質入門

小抄

將元件加入 Data Context:

context.data_sources.add(data_source)

context.suites.add(suite)

context.validation_definitions.add(
    validation_definition
)

context.checkpoints.add(checkpoint)

擷取元件:

.get(name: str)

列出元件:

.all()

刪除元件:

.delete(name: str)
Great Expectations 資料品質入門

一起來練習吧!

Great Expectations 資料品質入門

Preparing Video For Download...