Pokonaj problemy z jakością danych dzięki dużym oczekiwaniom

Pokonaj problemy z jakością danych dzięki dużym oczekiwaniom

Węzeł źródłowy: 1893459

Gartner, Inc. szacuje, że złe koszty danych organizacjom średnio 12.9 mln USD rocznie.

Codziennie mamy do czynienia z petabajtami danych, a problemy z jakością danych są powszechne w przypadku tak ogromnych ilości danych. Złe dane kosztują organizacje pieniądze, reputację i czas. Dlatego bardzo ważne jest ciągłe monitorowanie i sprawdzanie jakości danych.

Złe dane obejmują niedokładne informacje, brakujące dane, nieprawidłowe informacje, niezgodne dane i zduplikowane dane. Złe dane spowodują nieprawidłową analizę danych, co skutkuje złymi decyzjami i nieskutecznymi strategiami. 

Jakość danych Experian wykazała, że ​​przeciętna firma traci 12% swoich przychodów z powodu niewystarczających danych. Poza pieniędzmi firmy ponoszą również stratę straconego czasu. 

Identyfikacja anomalii w danych przed ich przetworzeniem pomoże organizacjom uzyskać bardziej wartościowy wgląd w zachowania klientów i pomoże obniżyć koszty. 

Biblioteka wielkich oczekiwań pomaga organizacjom weryfikować i potwierdzać takie anomalie w danych dzięki ponad 200 łatwo dostępnym gotowym regułom. 

Great Expectations to biblioteka Pythona typu open source, która pomaga nam w sprawdzaniu poprawności danych. Wielkie oczekiwania dostarczyć zestaw metod lub funkcji do pomóc inżynierom danych szybko zweryfikować dany zestaw danych. 

W tym artykule przyjrzymy się krokom związanym z weryfikacją danych przez bibliotekę Great Expectations.

GE jest jak testy jednostkowe dla danych. GE zapewnia twierdzenia zwane Oczekiwaniami, aby zastosować pewne reguły do ​​testowanych danych. Na przykład identyfikator/numer polisy nie powinien być pusty w przypadku dokumentu polisy ubezpieczeniowej. Aby skonfigurować i uruchomić GE, musisz wykonać poniższe czynności. Chociaż istnieje wiele sposobów pracy z GE (przy użyciu interfejsu CLI), w tym artykule wyjaśnię programowy sposób konfigurowania rzeczy. Cały kod źródłowy wyjaśniony w tym artykule jest dostępny w this GitHub repo

Krok 1: Skonfiguruj konfigurację danych 

GE ma koncepcję sklepów. Magazyny to nic innego jak fizyczna lokalizacja na dysku, w której można przechowywać oczekiwania (reguły/twierdzenia), szczegóły przebiegu, szczegóły punktu kontrolnego, wyniki walidacji i dokumenty danych (statyczne wersje HTML wyników walidacji). Kliknij tutaj aby dowiedzieć się więcej o sklepach.

GE obsługuje różne backendy sklepów. W tym artykule używamy zaplecza magazynu plików i ustawień domyślnych. GE obsługuje inne backendy sklepów, takie jak AWS (Amazon Web Services) S3, Azure Blobs, PostgreSQL itp. dowiedz się więcej o backendach. Poniższy fragment kodu przedstawia bardzo prostą konfigurację danych:

STORE_FOLDER = "/Users/saisyam/work/github/great-expectations-sample/ge_data"
#Setup data config
data_context_config = DataContextConfig( datasources = {}, store_backend_defaults = FilesystemStoreBackendDefaults(root_directory=STORE_FOLDER)
) context = BaseDataContext(project_config = data_context_config)

 

Powyższa konfiguracja używa zaplecza magazynu plików z wartościami domyślnymi. GE automatycznie utworzy niezbędne foldery potrzebne do realizacji oczekiwań. W następnym kroku dodamy źródła danych.

Krok 2: skonfiguruj konfigurację źródła danych 

Firma GE obsługuje trzy typy źródeł danych: 

  1. Pandy 
  2. Iskra 
  3. SQLAlchemy 

Konfiguracja źródła danych mówi firmie GE, aby używała określonego mechanizmu wykonawczego do przetwarzania dostarczonego zestawu danych. Na przykład, jeśli skonfigurujesz swoje źródło danych do korzystania z mechanizmu wykonawczego Pandas, musisz dostarczyć ramkę danych Pandas z danymi do GE, aby spełnić Twoje oczekiwania. Poniżej znajduje się przykład wykorzystania Pand jako źródła danych:

datasource_config = { "name": "sales_datasource", "class_name": "Datasource", "module_name": "great_expectations.datasource", "execution_engine": { "module_name": "great_expectations.execution_engine", "class_name": "PandasExecutionEngine", }, "data_connectors": { "default_runtime_data_connector_name": { "class_name": "RuntimeDataConnector", "module_name": "great_expectations.datasource.data_connector", "batch_identifiers": ["default_identifier_name"], }, },
}
context.add_datasource(**datasource_config)

 

Sprawdź ta dokumentacja aby uzyskać więcej informacji o źródłach danych. 

Krok 3: Utwórz Pakiet Oczekiwania i Dodaj Oczekiwania 

Ten krok jest kluczową częścią. W tym kroku stworzymy pakiet i dodamy do niego oczekiwania. Możesz rozważyć pakiet jako grupę oczekiwań, które będą działać jako partia. Oczekiwania, które tutaj tworzymy, mają na celu zweryfikowanie przykładowego raportu sprzedaży. Możesz pobrać plik sprzedaż.csv plik.

Poniższy fragment kodu pokazuje, jak utworzyć pakiet i dodać oczekiwania. Do naszego apartamentu dodamy dwa oczekiwania.

# Create expectations suite and add expectations
suite = context.create_expectation_suite(expectation_suite_name="sales_suite", overwrite_existing=True) expectation_config_1 = ExpectationConfiguration( expectation_type="expect_column_values_to_be_in_set", kwargs={ "column": "product_group", "value_set": ["PG1", "PG2", "PG3", "PG4", "PG5", "PG6"] }
) suite.add_expectation(expectation_configuration=expectation_config_1) expectation_config_2 = ExpectationConfiguration( expectation_type="expect_column_values_to_be_unique", kwargs={ "column": "id" }
) suite.add_expectation(expectation_configuration=expectation_config_2)
context.save_expectation_suite(suite, "sales_suite")

 

Pierwsze oczekiwanie „expect_column_values_to_be_in_set” sprawdza, czy wartości w kolumnie (grupa_produktów) są równe którejkolwiek z wartości w danym zestawie wartości. Drugie oczekiwanie sprawdza, czy wartości kolumny „id” są unikalne. 

Po dodaniu i zapisaniu oczekiwań możemy teraz uruchomić te oczekiwania na zbiorze danych, który zobaczymy w kroku 4. 

Krok 4: Załaduj i sprawdź poprawność danych

W tym kroku załadujemy nasz plik CSV do pandas.DataFrame i utworzymy punkt kontrolny, aby uruchomić oczekiwania, które stworzyliśmy powyżej.

# load and validate data
df = pd.read_csv("./sales.csv") batch_request = RuntimeBatchRequest( datasource_name="sales_datasource", data_connector_name="default_runtime_data_connector_name", data_asset_name="product_sales", runtime_parameters={"batch_data":df}, batch_identifiers={"default_identifier_name":"default_identifier"}
) checkpoint_config = { "name": "product_sales_checkpoint", "config_version": 1, "class_name":"SimpleCheckpoint", "expectation_suite_name": "sales_suite"
}
context.add_checkpoint(**checkpoint_config)
results = context.run_checkpoint( checkpoint_name="product_sales_checkpoint", validations=[ {"batch_request": batch_request} ]
)

 

Tworzymy żądanie wsadowe dla naszych danych, podając nazwę źródła danych, co powie GE, aby użył określonego silnika wykonawczego, w naszym przypadku Pandas. Tworzymy konfigurację punktu kontrolnego, a następnie sprawdzamy poprawność naszego żądania wsadowego względem punktu kontrolnego. Możesz dodać wiele żądań partii, jeśli oczekiwania dotyczą danych w partii w jednym punkcie kontrolnym. Metoda `run_checkpoint` zwraca wynik w formacie JSON i może być wykorzystana do dalszego przetwarzania lub analizy. 

Efekt 

Po spełnieniu oczekiwań dotyczących naszego zbioru danych firma GE tworzy statyczny pulpit nawigacyjny w formacie HTML z wynikami dla naszego punktu kontrolnego. Wyniki zawierają liczbę ocenionych oczekiwań, pomyślne oczekiwania, nieudane oczekiwania i procenty sukcesu. Rekordy, które nie spełniają podanych oczekiwań, zostaną wyróżnione na stronie. Poniżej znajduje się próbka pomyślnego wykonania:
 

Pokonaj problemy z jakością danych dzięki dużym oczekiwaniom
źródło: wielkie nadzieje
 

Poniżej znajduje się próbka nieudanych oczekiwań:
 

Pokonaj problemy z jakością danych dzięki dużym oczekiwaniom
źródło: wielkie nadzieje

Skonfigurowaliśmy GE w czterech krokach i pomyślnie przeprowadziliśmy oczekiwania dotyczące danego zbioru danych. Firma GE oferuje bardziej zaawansowane funkcje, takie jak pisanie niestandardowych oczekiwań, które omówimy w przyszłych artykułach. Wiele organizacji intensywnie korzysta z usług GE, aby dostosowywać wymagania swoich klientów i tworzyć niestandardowe oczekiwania.

 
 
Saisyama Dampuriego ma ponad 18 lat doświadczenia w tworzeniu oprogramowania i jest pasjonatem odkrywania nowych technologii i narzędzi. Obecnie pracuje jako Sr. Cloud Architect w Anblicks, TX, USA. Nie kodując, będzie zajęty fotografią, gotowaniem i podróżowaniem.
 

Znak czasu:

Więcej z Knuggety