Muistiinpano
Tämän sivun käyttö edellyttää valtuutusta. Voit yrittää kirjautua sisään tai vaihtaa hakemistoa.
Tämän sivun käyttö edellyttää valtuutusta. Voit yrittää vaihtaa hakemistoa.
Koskee:✅ Microsoft Fabric -varasto
Kun olet luonut taulukon ja ladannut dataa siihen, varmista datan täydellisyys ja oikeellisuus ennen kuin käytät sitä raportointiin tai jälkikäsittelyyn.
Tämä artikkeli tarjoaa yksinkertaisia ja realistisia esimerkkejä validointi- ja puhdistuskyselyistä, joita voit ajaa taulukon dbo.fact_sale luomista vastaan luotussa taulukossa varastossa.
edellytykset
Aloittaaksesi suorita seuraavat ennakkovaatimukset:
- Sinulla on käyttöoikeus Premium-kapasiteetin työtilan Warehouse-kohteeseen osallistujalla tai suuremmilla käyttöoikeuksilla.
- Muista yhdistää varastosi tuotteeseen. Et voi ajaa kyselyitä suoraan varaston SQL-analytiikkapäätepisteessä.
- Valitse kyselytyökalu. Tässä opetusohjelmassa on SQL-kyselyeditori Microsoft Fabric -portaalissa, mutta voit käyttää mitä tahansa T-SQL-kyselytyökalua.
- Täytä taulukko
dbo.fact_saledatalla, kuten varastossa on esitetty Luo taulukot.
Validointikyselyt voivat vaihdella hyvin yksinkertaisista predikaateista (esimerkiksi arvojen tarkistaminen NULL ) aina kehittyneempiin tarkistuksiin, joissa käytetään sisäänrakennettuja tekoälyfunktioita datan merkityksen tai laadun arviointiin. Valitse validoinnin taso, joka vastaa tarkistamasi datan riskiä ja merkitystä.
Käsittele näiden kyselyjen palauttamia rivejä tarkistettaviksi, ei automaattisina virheinä. Varmista liiketoimintasääntö datan tai lähdejärjestelmän omistajan kanssa ennen kuin korjaat tai poistat rivejä, ja suosi lähteen tai muunnoksen korjaamista kuin faktasivien päivittämistä.
Etsi rivejä, joilta puuttuvat arvot sarakkeesta
Käytä yksinkertaista WHERE lauseketta löytääksesi rivejä, joilta puuttuu arvoja vaadituista sarakkeista. Tämä tarkistus on yksi nopeimmista ja yleisimmistä tarkistuksista, jotka suoritetaan datan lataamisen jälkeen taulukkoon.
SELECT SaleKey, CustomerKey, StockItemKey, Quantity, UnitPrice
FROM dbo.fact_sale
WHERE CustomerKey IS NULL
OR StockItemKey IS NULL
OR Quantity IS NULL
OR UnitPrice IS NULL;
Laskelmien validointi
Vertaa tallennettuja kokonaissumia niiden odotusarvoihin havaitaksesi tiedon laadun ongelmat, jotka ilmenevät vastaanoton tai muunnoksen yhteydessä. Esimerkiksi pitäisi TotalIncludingTax aina olla yhtä suuri kuin TotalExcludingTax plus TaxAmount. Koska SQL-vertailut NULL eivät koskaan arvioida todeiksi, tarkista myös puuttuvat summat eksplisiittisesti, jotta rivit eivät jää hiljaisesti pois.
SELECT SaleKey, TotalExcludingTax, TaxAmount, TotalIncludingTax,
(TotalExcludingTax + TaxAmount) AS ExpectedTotalIncludingTax
FROM dbo.fact_sale
WHERE TotalExcludingTax IS NULL
OR TaxAmount IS NULL
OR TotalIncludingTax IS NULL
OR TotalIncludingTax <> (TotalExcludingTax + TaxAmount);
Etsi kaksoisrivejä
Tarkista yhdistelmä liiketoimintapalstoja, jotka tulisi olla ainutlaatuisia yhdessä. Jos laskumallisi sallii korkeintaan yhden rivin per varastotuote laskussa, yhdistelmän WWIInvoiceID ja StockItemKey pitäisi olla yksilöllinen.
SELECT WWIInvoiceID, StockItemKey, COUNT(*) AS NumberOfRows
FROM dbo.fact_sale
WHERE WWIInvoiceID IS NOT NULL
AND StockItemKey IS NOT NULL
GROUP BY WWIInvoiceID, StockItemKey
HAVING COUNT(*) > 1;
Voit myös tarkistaa päällekkäisyyksiä eri liiketoimintasarakkeiden yhdistelmällä, heuristiikkana eikä tiukkana sääntönä. On harvinaista, että sama myyjä myy saman varastotuotteen samalle asiakkaalle useammin kuin kerran samana päivänä, joten useampi kuin yksi rivi yhdistelmälle CustomerKey, StockItemKey, InvoiceDateKey, ja SalespersonKey on syytä tarkastella mahdollisena kaksoiskappaleena. Varmista lähdejärjestelmää vastaan ennen kuin käsittelet osuman vahvistetuksi, sillä aito uusintatilaus samana päivänä on mahdollinen.
SELECT CustomerKey, StockItemKey, InvoiceDateKey, SalespersonKey, COUNT(*) AS NumberOfRows
FROM dbo.fact_sale
WHERE CustomerKey IS NOT NULL
AND StockItemKey IS NOT NULL
AND InvoiceDateKey IS NOT NULL
AND SalespersonKey IS NOT NULL
GROUP BY CustomerKey, StockItemKey, InvoiceDateKey, SalespersonKey
HAVING COUNT(*) > 1;
Sisällön vahvistaminen
Tarkista, että arvot osuvat odotetulle joukolle tai vaihteluvälille. Esimerkiksi Quantity ja UnitPrice pitäisi aina olla positiivisia lukuja.
SELECT SaleKey, Quantity, UnitPrice
FROM dbo.fact_sale
WHERE Quantity <= 0
OR UnitPrice <= 0;
Validoi data tekoälyfunktioilla
Jos tarkistuksia on vaikea ilmaista yksinkertaisina predikaattina, käytä tekoälyfunktioita pohtimaan sarakkeen sisältöä luonnollisella kielellä. Siinä dbo.fact_sale, Description mainitaan usein, onko tuote tuore, pakastettu vai kylmä, joten voit tarkistaa AI_GENERATE_RESPONSE , onko se linjassa kyseisen rivin TotalDryItems ja TotalChillerItems lukumäärän kanssa. Määrittele käskyt kerran @prompt muuttujana ja välitä rivikohtaiset arvot erillisenä dataargumenttina.
DECLARE @prompt nvarchar(max) = N'A product description that mentions frozen or chilled items should usually have a nonzero chiller item count, and a description that mentions only dry or ambient items should usually have a nonzero dry item count. Based on the description, dry item count, and chiller item count below, respond with OK if the values look consistent, or a short phrase describing what might be worth reviewing.';
DECLARE @InvoiceDate date = '2013-01-01';
SELECT SaleKey, Description, TotalDryItems, TotalChillerItems,
AI_GENERATE_RESPONSE(
@prompt,
CONCAT(
'Description: ', Description,
'. Dry item count: ', TotalDryItems,
'. Chiller item count: ', TotalChillerItems
)
) AS ReviewNote
FROM dbo.fact_sale
WHERE InvoiceDateKey = @InvoiceDate;
Tarkista mahdolliset ristiriidat lähdejärjestelmän omistajan kanssa ennen lähdedatan korjaamista.