Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Czyszczenie i walidowanie danych jest niezbędne do zapewnienia jakości zasobów danych w lakehouse. W tym artykule opisano oferty produktów usługi Azure Databricks zaprojektowane w celu ułatwienia jakości danych, a także udostępnia zalecenia dotyczące definiowania logiki biznesowej w celu zaimplementowania reguł niestandardowych.
Egzekwowanie schematu w usłudze Azure Databricks
Delta Lake zapewnia semantykę do wymuszania kontroli schematu i ograniczeń podczas zapisu, co gwarantuje jakość danych w tabelach w systemie Lakehouse.
Wymuszanie schematu zapewnia, że dane zapisywane w tabeli są zgodne ze wstępnie zdefiniowanym schematem. Reguły sprawdzania poprawności schematu różnią się w zależności od operacji. Zobacz Egzekwowanie schematu.
Aby obsłużyć ewolucję schematu, funkcja Delta udostępnia mechanizmy wprowadzania zmian schematu i zmieniających się tabel. Należy uważnie rozważyć, kiedy należy użyć ewolucji schematu, aby uniknąć porzuconych pól lub potoków, które zakończyły się niepowodzeniem. Aby uzyskać szczegółowe informacje na temat ręcznego lub automatycznego aktualizowania schematów, zobacz Aktualizowanie schematu tabeli usługi Delta Lake.
Ograniczenia tabeli
Ograniczenia mogą mieć postać informacyjnego klucza podstawowego i ograniczeń klucza obcego lub wymuszonych ograniczeń. Zobacz klauzulę ADD CONSTRAINT.
Ograniczenia tabel w usłudze Azure Databricks są wymuszane lub informacyjne.
Wymuszone ograniczenia obejmują NOT NULL i CHECK ograniczenia.
Ograniczenia informacyjne obejmują ograniczenia klucza podstawowego i klucza obcego.
Zobacz Ograniczenia dotyczące usługi Azure Databricks.
Radzenie sobie z wartościami null lub brakującymi wartościami
Nie można wymusić wartości NULL w tabelach delty. Można ją włączyć tylko w istniejącej tabeli, jeśli w istniejących rekordach w kolumnie nie ma wartości null i zapobiega wstawianiu nowych rekordów z wartościami null do tabeli.
Wymuszanie wzorca
Wyrażenia regularne (regex) mogą służyć do wymuszania oczekiwanych wzorców w polu danych. Jest to szczególnie przydatne w przypadku obsługi danych tekstowych, które muszą być zgodne z określonymi formatami lub wzorcami.
Aby wymusić wzorzec przy użyciu wyrażenia regularnego, możesz użyć funkcji REGEXP lub RLIKE w języku SQL. Te funkcje umożliwiają dopasowanie pola danych do określonego wzorca wyrażeń regularnych.
Oto przykład użycia ograniczenia CHECK z wyrażeniem regularnym do wymuszania wzorca w SQL.
CREATE TABLE table_name (
column_name STRING CHECK (column_name REGEXP '^[A-Za-z0-9]+$')
);
Wymuszanie wartości
Ograniczenia mogą służyć do wymuszania zakresów wartości w kolumnach w tabeli. Dzięki temu można wstawić lub zaktualizować tylko prawidłowe wartości w określonym zakresie.
Aby wymusić ograniczenie zakresu wartości, możesz użyć CHECK ograniczenia w języku SQL. Ograniczenie CHECK umożliwia zdefiniowanie warunku, który musi być spełniony dla każdego wiersza w tabeli.
Oto przykład użycia CHECK ograniczenia w celu wymuszenia zakresu wartości w kolumnie:
CREATE TABLE table_name (
column_name INT CHECK (column_name >= 0 AND column_name <= 100)
);
Definiowanie i konfigurowanie oczekiwań przy użyciu potoków deklaratywnych platformy Spark w usłudze Lakeflow.
Potoki deklaratywne platformy Lakeflow umożliwiają definiowanie oczekiwań podczas deklarowania zmaterializowanych widoków lub tabel przesyłania strumieniowego. Możesz skonfigurować oczekiwania systemowe, aby ostrzec Cię o naruszeniach, odrzucać rekordy naruszające zasady lub przerywać obciążenia robocze na podstawie naruszeń. Zobacz Zarządzanie jakością danych za pomocą oczekiwań dotyczących potoku.
Monitorowanie danych
Usługa Azure Databricks udostępnia usługi monitorowania jakości danych, które umożliwiają monitorowanie właściwości statystycznych i jakości danych we wszystkich tabelach na koncie. Zobacz Profilowanie danych.
Rzutowanie typów danych
Podczas wstawiania lub aktualizowania danych w tabeli usługa Azure Databricks rzutuje typy danych, gdy może to zrobić bezpiecznie bez utraty informacji.
Aby uzyskać szczegółowe informacje na temat zachowań rzutowania, zobacz następujące artykuły:
Niestandardowa logika biznesowa
Za pomocą filtrów i WHERE klauzul można zdefiniować logikę niestandardową, która kwarantannie nieprawidłowych rekordów i uniemożliwia ich propagowanie do tabel podrzędnych.
CASE WHEN ... OTHERWISE Klauzule umożliwiają definiowanie logiki warunkowej w celu bezpiecznego stosowania logiki biznesowej do rekordów naruszających oczekiwania w przewidywalny sposób.
DECLARE current_time = now()
INSERT INTO silver_table
SELECT * FROM bronze_table
WHERE event_timestamp <= current_time AND quantity >= 0;
INSERT INTO quarantine_table
SELECT * FROM bronze_table
WHERE event_timestamp > current_time OR quantity < 0;
Uwaga
Usługa Databricks zaleca zawsze przetwarzanie filtrowanych danych jako oddzielnej operacji zapisu, zwłaszcza w przypadku korzystania ze przesyłania strumieniowego ze strukturą. Użycie polecenia .foreachBatch do zapisywania w wielu tabelach może prowadzić do niespójnych wyników.
Na przykład może istnieć system nadrzędny, który nie może kodować NULL wartości, a więc wartość -1 symbolu zastępczego jest używana do reprezentowania brakujących danych. Zamiast pisać niestandardową logikę dla wszystkich zapytań podrzędnych w usłudze Azure Databricks w celu ignorowania rekordów zawierających -1, można użyć instrukcji CASE WHEN, aby dynamicznie zastępować te rekordy jako część przekształcenia.
INSERT INTO silver_table
SELECT
* EXCEPT weight,
CASE
WHEN weight = -1 THEN NULL
ELSE weight
END AS weight
FROM bronze_table;