Not
Åtkomst till denna sida kräver auktorisation. Du kan prova att logga in eller byta katalog.
Åtkomst till denna sida kräver auktorisation. Du kan prova att byta katalog.
Det är viktigt att rensa och verifiera data för att säkerställa kvaliteten på datatillgångarna i ett sjöhus. Den här artikeln beskriver Produkterbjudanden för Azure Databricks som är utformade för att underlätta datakvaliteten, samt ger rekommendationer för att definiera affärslogik för att implementera anpassade regler.
Schemahantering på Azure Databricks
Delta Lake tillhandahåller semantik för att framtvinga schema- och begränsningskontroller vid skrivning, vilket ger garantier kring datakvalitet för tabeller i ett sjöhus.
Schematillämpning säkerställer att data som skrivs till en tabell följer ett fördefinierat schema. Schemavalideringsregler varierar beroende på åtgärd. Se schematillämpning.
För att hantera schemautvecklingen tillhandahåller Delta mekanismer för att göra schemaändringar och utveckla tabeller. Det är viktigt att noga överväga när du ska använda schemautveckling för att undvika borttagna fält eller misslyckade pipelines. Mer information om hur du uppdaterar scheman manuellt eller automatiskt finns i Uppdatera Delta Lake-tabellschemat.
Tabellbegränsningar
Begränsningar kan vara i form av informationsmässiga primära nyckel- och sekundärnyckelbegränsningar eller framtvingade begränsningar. Se satsen ADD CONSTRAINT.
Tabellbegränsningar för Azure Databricks tillämpas eller är informationsbaserade.
Framtvingade begränsningar omfattar NOT NULL och CHECK begränsningar.
Informationsbegränsningar omfattar begränsningar för primärnyckel och främmande nyckel.
Se Begränsningar för Azure Databricks.
Hantera null- eller saknade värden
INTE NULL- kan tillämpas på Delta-tabeller. Det kan bara aktiveras i en befintlig tabell om inga befintliga poster i kolumnen är null och förhindrar att nya poster med null-värden infogas i en tabell.
Mönsterframtvingande
Reguljära uttryck (regex) kan användas för att framtvinga förväntade mönster i ett datafält. Detta är särskilt användbart när du hanterar textdata som måste följa specifika format eller mönster.
Om du vill framtvinga ett mönster med hjälp av regex kan du använda REGEXP funktionerna eller RLIKE i SQL. Med de här funktionerna kan du matcha ett datafält mot ett angivet regexmönster.
Här är ett exempel på hur du använder villkoret CHECK med regex för mönsterframtvingande i SQL:
CREATE TABLE table_name (
column_name STRING CHECK (column_name REGEXP '^[A-Za-z0-9]+$')
);
Värdeframtvingande
Begränsningar kan användas för att framtvinga värdeintervall för kolumner i en tabell. Detta säkerställer att endast giltiga värden inom det angivna intervallet tillåts infogas eller uppdateras.
Om du vill tillämpa en begränsning för värdeintervall kan du använda villkoret CHECK i SQL. Med villkoret CHECK kan du definiera ett villkor som måste vara sant för varje rad i tabellen.
Här är ett exempel på hur du använder villkoret CHECK för att framtvinga ett värdeintervall för en kolumn:
CREATE TABLE table_name (
column_name INT CHECK (column_name >= 0 AND column_name <= 100)
);
Definiera och konfigurera förväntningar med Lakeflow Spark deklarativa pipelines.
Med Lakeflow Spark deklarativa pipelines kan du definiera förväntningar när du deklarerar materialiserade vyer eller strömmande tabeller. Du kan välja att konfigurera förväntningar för att varna dig om överträdelser, ta bort poster som bryter mot reglerna, eller felanmäl arbetsbelastningar baserat på överträdelser. Se avsnittet Hantera datakvalitet med pipeline-förväntningar.
Dataövervakning
Azure Databricks tillhandahåller övervakningstjänster för datakvalitet som gör att du kan övervaka statistiska egenskaper och datakvalitet i alla tabeller i ditt konto. Se Dataprofilering.
Typomvandling av datatyper
När du infogar eller uppdaterar data i en tabell genererar Azure Databricks datatyper när de kan göra det på ett säkert sätt utan att förlora information.
Se följande artiklar för mer information om rollbesättningsbeteenden:
Anpassad affärslogik
Du kan använda filter och WHERE-satser för att definiera anpassad logik som placerar felaktiga poster i karantän och förhindrar att de sprids till underordnade tabeller.
CASE WHEN ... OTHERWISE satser kan du definiera villkorsstyrd logik för att smidigt tillämpa affärslogik på poster som inte uppfyller förväntningarna på förutsägbara sätt.
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;
Kommentar
Databricks rekommenderar att du alltid bearbetar filtrerade data som en separat skrivåtgärd, särskilt när du använder Strukturerad direktuppspelning. Om du använder .foreachBatch för att skriva till flera tabeller kan det leda till inkonsekventa resultat.
Du kan till exempel ha ett överordnat system som inte kan koda NULL värden, så platshållarvärdet -1 används för att representera data som saknas. I stället för att skriva anpassad logik för alla nedströms frågor i Azure Databricks för att ignorera poster som innehåller -1, kan du använda en case when-sats för att dynamiskt ersätta dessa poster som en transformering.
INSERT INTO silver_table
SELECT
* EXCEPT weight,
CASE
WHEN weight = -1 THEN NULL
ELSE weight
END AS weight
FROM bronze_table;