Jegyzet
Az oldalhoz való hozzáférés engedélyezést igényel. Próbálhatod be jelentkezni vagy könyvtárat váltani.
Az oldalhoz való hozzáférés engedélyezést igényel. Megpróbálhatod a könyvtár váltását.
Az adatok tisztítása és ellenőrzése elengedhetetlen az adategységek minőségének biztosításához egy tóházban. Ez a cikk az adatminőség megkönnyítésére tervezett Azure Databricks-termékajánlatokat ismerteti, valamint javaslatokat nyújt az egyéni szabályok implementálásához szükséges üzleti logika meghatározásához.
Sémakényszerítés az Azure Databricksben
A Delta Lake biztosít szemantikát a séma- és kényszerellenőrzések írás közben történő érvényesítésére, amely garantálja a lakehouse-beli táblák adatminőségét.
A sémakényszerítés biztosítja, hogy a táblába írt adatok egy előre definiált sémához igazodjanak. A sémaérvényesítési szabályok műveletenként eltérőek. Lásd séma érvényesítés.
A sémafejlődés kezeléséhez a Delta mechanizmusokat biztosít a sémamódosításokhoz és a változó táblákhoz. Fontos alaposan megfontolni, hogy mikor érdemes sémafejlődést használni az elvetett mezők vagy a sikertelen folyamatok elkerülése érdekében. A sémák manuális vagy automatikus frissítésével kapcsolatos részletekért lásd: Táblaséma frissítése.
Tábla korlátozások
A kényszerek lehetnek információs elsődleges kulcs és idegenkulcs-megkötések, vagy kényszerített kényszerek. Lásd ADD CONSTRAINT záradék.
Az Azure Databricks táblakorlátozásai kikényszeríthetők vagy tájékoztató jellegűek.
A kényszerek közé tartoznak NOT NULL és CHECK típusú kényszerek.
Az információs korlátozások közé tartoznak az elsődleges kulcsra és a külső kulcsra vonatkozó korlátozások.
Lásd : Az Azure Databricks korlátozásai.
Null vagy hiányzó értékek kezelése
A NOT NULL a Delta-táblákon kényszeríthető. Ez csak akkor engedélyezhető egy meglévő táblában, ha az oszlopban egyetlen rekord sem null értékű, és megakadályozza, hogy null értékű új rekordok legyenek beszúrva egy táblába.
Szabálykényszerítés
A reguláris kifejezéseket (regex) fel lehet használni arra, hogy az adatmezőkben elvárt mintákat érvényesítsünk. Ez különösen akkor hasznos, ha olyan szöveges adatokkal foglalkozik, amelyeknek meg kell felelnie bizonyos formátumoknak vagy mintáknak.
Ha regex használatával szeretne mintát kényszeríteni, használhatja az REGEXP SQL-ben lévő függvényeket vagy RLIKE függvényeket. Ezek a függvények lehetővé teszik egy adatmező egy adott regex-mintával való egyeztetését.
Íme egy példa arra, hogyan használhatja a kényszert a CHECK regex használatával a mintaérvényesítéshez az SQL-ben:
CREATE TABLE table_name (
column_name STRING CHECK (column_name REGEXP '^[A-Za-z0-9]+$')
);
Értékérvényesítés
A korlátozások segítségével értéktartományokat kényszeríthet ki egy tábla oszlopaiban. Ez biztosítja, hogy csak a megadott tartományon belüli érvényes értékek legyenek beszúrhatók vagy frissíthetők.
Az értéktartomány-korlátozás kényszerítéséhez használhatja a kényszert az CHECK SQL-ben. A CHECK kényszer lehetővé teszi, hogy olyan feltételt határozzon meg, amely a tábla minden sorához igaznak kell lennie.
Íme egy példa arra, hogyan kényszeríthet ki értéktartományt egy oszlopon a CHECK kényszer használatával:
CREATE TABLE table_name (
column_name INT CHECK (column_name >= 0 AND column_name <= 100)
);
Elvárások definiálása és konfigurálása a Lakeflow Spark deklaratív folyamataival.
A Lakeflow Spark Deklaratív folyamatok lehetővé teszik az elvárások definiálását a materializált nézetek vagy streamelési táblák deklarálása során. Beállíthatja az elvárásokat, hogy figyelmeztesse önt a megsértésekre, elvessen olyan rekordokat, amelyek nem felelnek meg az elvárásoknak, vagy sikertelennek minősítse a feladatokat a szabályszegések alapján. Lásd: Adatminőség kezelése csővezeték-elvárásokkal.
Adatfigyelés
Az Azure Databricks adatminőség-monitorozási szolgáltatásokat biztosít, amelyek lehetővé teszik az adatok statisztikai tulajdonságainak és minőségének monitorozását a fiók összes táblájában. Lásd az adatprofilozást.
Adattípusok átalakítása
Amikor adatokat szúr be vagy frissít egy táblában, az Azure Databricks adattípusokat ad le, amikor az adatok elvesztése nélkül biztonságosan megteheti.
Az öntvények viselkedésével kapcsolatos részletekért tekintse meg az alábbi cikkeket:
Egyéni üzleti logika
Szűrők és WHERE záradékok használatával definiálhat olyan egyéni logikát, amely karanténba helyezi a rossz rekordokat, és megakadályozza, hogy azokat továbbító táblákba propagálja.
CASE WHEN ... OTHERWISE a záradékokkal feltételes logikát határozhat meg, hogy az üzleti logikát elegánsan alkalmazza olyan rekordokra, amelyek kiszámítható módon sértik az elvárásokat.
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;
Feljegyzés
A Databricks azt javasolja, hogy a szűrt adatokat mindig külön írási műveletként dolgozza fel, különösen strukturált streamelés esetén. A .foreachBatch használata több táblába történő íráshoz inkonzisztens eredményekhez vezethet.
Előfordulhat például, hogy egy felsőbb rétegbeli rendszer nem képes értékek kódolására NULL , ezért a helyőrző érték -1 a hiányzó adatok megjelenítésére szolgál. Ahelyett, hogy saját logikát írjon az Azure Databricksben az összes alsóbb rétegbeli lekérdezéshez a -1 tartalmazó rekordok figyelmen kívül hagyásához, használhat egy 'case when' utasítást, hogy ezeket a rekordokat dinamikusan lecserélje átalakításként.
INSERT INTO silver_table
SELECT
* EXCEPT weight,
CASE
WHEN weight = -1 THEN NULL
ELSE weight
END AS weight
FROM bronze_table;