Ξεπεράστε τα ζητήματα ποιότητας των δεδομένων σας με μεγάλες προσδοκίες

Ξεπεράστε τα ζητήματα ποιότητας των δεδομένων σας με μεγάλες προσδοκίες

Κόμβος πηγής: 1893459

Η Gartner, Inc. εκτιμά ότι κακό κόστος δεδομένων οργανισμούς κατά μέσο όρο 12.9 εκατομμύρια USD ετησίως.

Ασχολούμαστε με Petabyte δεδομένων καθημερινά και τα προβλήματα ποιότητας δεδομένων είναι κοινά με τόσο τεράστιους όγκους δεδομένων. Τα κακά δεδομένα κοστίζουν στους οργανισμούς χρήματα, φήμη και χρόνο. Ως εκ τούτου, είναι πολύ σημαντικό να παρακολουθείτε και να επικυρώνετε συνεχώς την ποιότητα των δεδομένων.

Τα κακά δεδομένα περιλαμβάνουν ανακριβείς πληροφορίες, δεδομένα που λείπουν, εσφαλμένες πληροφορίες, μη συμμορφούμενα δεδομένα και διπλότυπα δεδομένα. Τα κακά δεδομένα θα οδηγήσουν σε εσφαλμένη ανάλυση δεδομένων, με αποτέλεσμα κακές αποφάσεις και αναποτελεσματικές στρατηγικές. 

Η ποιότητα των δεδομένων Experian διαπίστωσε ότι η μέση εταιρεία χάνει το 12% των εσόδων της λόγω ανεπαρκών δεδομένων. Εκτός από χρήματα, οι εταιρείες υφίστανται και απώλεια χαμένου χρόνου. 

Ο εντοπισμός των ανωμαλιών στα δεδομένα πριν από την επεξεργασία θα βοηθήσει τους οργανισμούς να αποκτήσουν πιο πολύτιμες γνώσεις για τη συμπεριφορά των πελατών τους και θα βοηθήσει στη μείωση του κόστους. 

Η βιβλιοθήκη μεγάλων προσδοκιών βοηθά τους οργανισμούς να επαληθεύουν και να επιβεβαιώνουν τέτοιες ανωμαλίες στα δεδομένα με περισσότερους από 200+ out-of-the-box κανόνες που είναι άμεσα διαθέσιμοι. 

Το Great Expectations είναι μια βιβλιοθήκη Python ανοιχτού κώδικα που μας βοηθά στην επικύρωση δεδομένων. Μεγάλες Προσδοκίες παρέχει ένα σύνολο μεθόδων ή λειτουργιών για να βοηθήστε τους μηχανικούς δεδομένων επικυρώστε γρήγορα ένα δεδομένο σύνολο δεδομένων. 

Σε αυτό το άρθρο, θα εξετάσουμε τα βήματα που απαιτούνται για την επικύρωση των δεδομένων από τη βιβλιοθήκη Great Expectations.

Το GE είναι σαν μοναδιαίες δοκιμές για δεδομένα. Η GE παρέχει ισχυρισμούς που ονομάζονται Προσδοκίες για την εφαρμογή ορισμένων κανόνων στα υπό δοκιμή δεδομένα. Για παράδειγμα, το αναγνωριστικό/αριθμός συμβολαίου δεν πρέπει να είναι κενό για ένα έγγραφο ασφαλιστηρίου συμβολαίου. Για να ρυθμίσετε και να εκτελέσετε το GE, πρέπει να ακολουθήσετε τα παρακάτω βήματα. Αν και υπάρχουν πολλοί τρόποι για να εργαστείτε με τη GE (χρησιμοποιώντας το CLI της), θα εξηγήσω τον τρόπο ρύθμισης των πραγμάτων μέσω προγραμματισμού σε αυτό το άρθρο. Όλος ο πηγαίος κώδικας που εξηγείται σε αυτό το άρθρο είναι διαθέσιμος σε αυτό GitHub repo

Βήμα 1: Ρυθμίστε τη διαμόρφωση δεδομένων 

Η GE έχει μια ιδέα των καταστημάτων. Τα καταστήματα δεν είναι παρά η φυσική θέση στο δίσκο όπου μπορεί να αποθηκεύσει τις προσδοκίες (κανόνες/βεβαιώσεις), λεπτομέρειες εκτέλεσης, λεπτομέρειες σημείων ελέγχου, αποτελέσματα επικύρωσης και έγγραφα δεδομένων (στατικές εκδόσεις HTML των αποτελεσμάτων επικύρωσης). Περισσότερα για να μάθετε περισσότερα για τα καταστήματα.

Η GE υποστηρίζει διάφορα backend καταστημάτων. Σε αυτό το άρθρο, χρησιμοποιούμε το backend και τις προεπιλογές αποθήκευσης αρχείων. Η GE υποστηρίζει άλλα backend καταστημάτων όπως AWS (Amazon Web Services) S3, Azure Blobs, PostgreSQL, κ.λπ. Ανατρέξτε στο μάθετε περισσότερα για τα backends. Το παρακάτω απόσπασμα κώδικα δείχνει μια πολύ απλή διαμόρφωση δεδομένων:

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)

 

Η παραπάνω ρύθμιση παραμέτρων χρησιμοποιεί το backend του File store με προεπιλογές. Η GE θα δημιουργήσει αυτόματα τους απαραίτητους φακέλους που απαιτούνται για την εκτέλεση των προσδοκιών. Θα προσθέσουμε πηγές δεδομένων στο επόμενο βήμα μας.

Βήμα 2: Ρύθμιση παραμέτρων πηγής δεδομένων 

Η GE υποστηρίζει τρεις τύπους πηγών δεδομένων: 

  1. Πάντα 
  2. Σπινθήρας 
  3. SQLAlchemy 

Η διαμόρφωση προέλευσης δεδομένων λέει στη GE να χρησιμοποιήσει μια συγκεκριμένη μηχανή εκτέλεσης για την επεξεργασία του παρεχόμενου συνόλου δεδομένων. Για παράδειγμα, εάν διαμορφώσετε την πηγή δεδομένων σας ώστε να χρησιμοποιεί τη μηχανή εκτέλεσης του Pandas, πρέπει να παρέχετε ένα πλαίσιο δεδομένων Pandas με δεδομένα στην GE για την εκτέλεση των προσδοκιών σας. Ακολουθεί ένα δείγμα για τη χρήση των Pandas ως πηγή δεδομένων:

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)

 

Παρακαλώ αναφερθείτε σε αυτήν την τεκμηρίωση για περισσότερες πληροφορίες σχετικά με τις πηγές δεδομένων. 

Βήμα 3: Δημιουργήστε μια σουίτα προσδοκιών και προσθέστε τις προσδοκίες 

Αυτό το βήμα είναι το κρίσιμο μέρος. Σε αυτό το βήμα, θα δημιουργήσουμε μια σουίτα και θα προσθέσουμε προσδοκίες στη σουίτα. Μπορείτε να θεωρήσετε μια σουίτα ως μια ομάδα προσδοκιών που θα λειτουργήσει ως παρτίδα. Οι προσδοκίες που δημιουργούμε εδώ είναι να επικυρώσουμε ένα δείγμα αναφοράς πωλήσεων. Μπορείτε να κατεβάσετε το πωλήσεις.csv αρχείο.

Το παρακάτω απόσπασμα κώδικα δείχνει πώς μπορείτε να δημιουργήσετε μια σουίτα και να προσθέσετε προσδοκίες. Θα προσθέσουμε δύο προσδοκίες στη σουίτα μας.

# 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")

 

Η πρώτη προσδοκία, "expect_column_values_to_be_in_set" ελέγχει εάν οι τιμές της στήλης (ομάδα_προϊόντων) είναι ίσες με οποιαδήποτε από τις τιμές στο δεδομένο σύνολο_τιμών. Η δεύτερη προσδοκία ελέγχει εάν οι τιμές της στήλης "id" είναι μοναδικές. 

Μόλις προστεθούν και αποθηκευτούν οι προσδοκίες, τώρα μπορούμε να εκτελέσουμε αυτές τις προσδοκίες σε ένα σύνολο δεδομένων που θα δούμε στο βήμα 4. 

Βήμα 4: Φόρτωση και επικύρωση των δεδομένων

Σε αυτό το βήμα, θα φορτώσουμε το αρχείο CSV στο pandas.DataFrame και θα δημιουργήσουμε ένα σημείο ελέγχου για να εκτελέσουμε τις προσδοκίες που δημιουργήσαμε παραπάνω.

# 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} ]
)

 

Δημιουργούμε ένα αίτημα δέσμης για τα δεδομένα μας, παρέχοντας το όνομα της πηγής δεδομένων, το οποίο θα πει στην GE να χρησιμοποιήσει μια συγκεκριμένη μηχανή εκτέλεσης, στην περίπτωσή μας, Pandas. Δημιουργούμε μια ρύθμιση παραμέτρων σημείου ελέγχου και, στη συνέχεια, επικυρώνουμε το αίτημα δέσμης σε σχέση με το σημείο ελέγχου. Μπορείτε να προσθέσετε πολλαπλές αιτήσεις παρτίδας εάν οι προσδοκίες ισχύουν για τα δεδομένα της παρτίδας σε ένα μόνο σημείο ελέγχου. Η μέθοδος "run_checkpoint" επιστρέφει το αποτέλεσμα σε μορφή JSON και μπορεί να χρησιμοποιηθεί για περαιτέρω επεξεργασία ή ανάλυση. 

Αποτελέσματα 

Αφού εκτελέσουμε τις προσδοκίες στο σύνολο δεδομένων μας, η GE δημιουργεί έναν στατικό πίνακα εργαλείων HTML με τα αποτελέσματα για το σημείο ελέγχου μας. Τα αποτελέσματα περιέχουν τον αριθμό των αξιολογημένων προσδοκιών, τις επιτυχείς προσδοκίες, τις αποτυχημένες προσδοκίες και τα ποσοστά επιτυχίας. Τυχόν εγγραφές που δεν ανταποκρίνονται στις δεδομένες προσδοκίες θα επισημαίνονται στη σελίδα. Ακολουθεί ένα δείγμα για επιτυχή εκτέλεση:
 

Ξεπεράστε τα ζητήματα ποιότητας των δεδομένων σας με μεγάλες προσδοκίες
Πηγή: Μεγάλες Προσδοκίες
 

Παρακάτω είναι ένα δείγμα της αποτυχημένης προσδοκίας:
 

Ξεπεράστε τα ζητήματα ποιότητας των δεδομένων σας με μεγάλες προσδοκίες
Πηγή: Μεγάλες Προσδοκίες

Ρυθμίσαμε τη GE σε τέσσερα βήματα και εκτελέσαμε με επιτυχία τις προσδοκίες σε ένα δεδομένο σύνολο δεδομένων. Η GE διαθέτει πιο προηγμένες δυνατότητες, όπως τη σύνταξη των προσαρμοσμένων προσδοκιών σας, τις οποίες θα καλύψουμε σε μελλοντικά άρθρα. Πολλοί οργανισμοί χρησιμοποιούν εκτενώς τη GE για να προσαρμόσουν τις απαιτήσεις των πελατών τους και να γράψουν προσαρμοσμένες προσδοκίες.

 
 
Saisyam Dampuri έρχεται με 18+ χρόνια εμπειρίας στην ανάπτυξη λογισμικού και είναι παθιασμένος με την εξερεύνηση νέων τεχνολογιών και εργαλείων. Αυτήν τη στιγμή εργάζεται ως Sr. Cloud Architect στο Anblicks, TX, ΗΠΑ. Αν και δεν κωδικοποιεί, θα είναι απασχολημένος με τη φωτογραφία, το μαγείρεμα και τα ταξίδια.
 

Σφραγίδα ώρας:

Περισσότερα από KDnuggets