Best Practices for dataindlæsning og -transformation

Jeg vil gerne præsentere den bedste praksis, jeg har brugt, mens jeg udarbejdede LuckyTemplates-rapporter. I løbet af de sidste par år har jeg brugt mange online ressourcer om dataindlæsning og -transformation, som har været medvirkende til min rejse, men jeg blev hurtigt overvældet af indholdet, så jeg endte med at lave mine egne noter. Du kan se den fulde video af denne tutorial nederst på denne blog.

Dette er på ingen måde en udtømmende liste og heller ikke de bedste praksisser – de er blot nogle af dem, jeg har indarbejdet i min egen udvikling. De bedste fremgangsmåder udvikler sig også over tid, efterhånden som nye og forbedrede funktioner introduceres i LuckyTemplates-applikationen og præsenteres af LuckyTemplates-fællesskabet.

Jeg vil gerne præsentere den første af de fire søjler i LuckyTemplates-udvikling. De fire søjler er dataindlæsning og datatransformation , datamodellering , DAX-beregninger og rapporter og visualiseringer . Vi vil beskæftige os med opsætningen før udvikling og den første søjle i dette blogindlæg.

Best Practices for dataindlæsning og -transformation

Indholdsfortegnelse

Deaktivering af automatisk dato/klokkeslæt

Det anbefales stærkt, at du deaktiverer den automatiske dato- og klokkeslætfunktion i. Du kan gøre dette på to måder.

Du kan gøre dette globalt for alle filer med disse trin:

Best Practices for dataindlæsning og -transformation

Du kan også deaktivere den for den aktuelle fil ved at ændre dens indstilling.

Best Practices for dataindlæsning og -transformation

Deaktivering af automatisk registrering af relationer

Det anbefales også stærkt, at du deaktiverer de automatiske registreringsforhold. Du kan gå til Filer og se Indstillinger og indstillinger for at deaktivere automatisk registrering af nye relationer, efter at dataene er blevet indlæst.

Best Practices for dataindlæsning og -transformation

Interagere med visuals i LuckyTemplates-rapporter

Den næste ting, jeg vil tale om, er de to måder, hvorpå du kan interagere med visuals i LuckyTemplates-rapporter. Disse interaktioner kan enten krydsfiltreres eller krydsfremhæves .

Best Practices for dataindlæsning og -transformation

Krydsfremhævning er aktiveret som standard i LuckyTemplates. Du kan ændre dette ved at gå ind i Fil og derefter Indstillinger og indstillinger. For den aktuelle fil i afsnittet med rapportindstillinger kan du ændre den visuelle interaktion fra krydsfremhævning til krydsfiltrering.

Lad os tage et kig på vores rapport. Du kan se, at LuckyTemplates som standard bruger krydsfremhævning på relaterede billeder. Hvis jeg klikker på en kanal fra venstre søjlediagram, vil du se, at den valgte del er fremhævet i mørk farve, mens den umarkerede del forbliver i lys farve i det andet søjlediagram.

Best Practices for dataindlæsning og -transformation

Du kan se, at den fulde form ikke ændres i grafen, og du ser kun de fremhævede dele. Du kan ændre dette fra rapportindstillingerne og ændre den visuelle standardinteraktion fra krydsfremhævning til krydsfiltrering.

Best Practices for dataindlæsning og -transformation

Når du har gjort det, vil du se, at formen på dit relaterede søjlediagram ændres, hver gang du foretager et valg eller en gruppe af valg. Dette er en god praksis at komme ind i.

Best Practices for dataindlæsning og -transformation

Adskillelse af datasæt fra rapport

Den næste ting, jeg vil tale om, er at adskille din datasætudvikling fra din rapportudvikling. Det er her, du kan få en tyk datasætfil udgivet som et selvstændigt datasæt, der ikke har nogen visuals, og en tynd rapportfiludvikling, der vil bruge disse offentliggjorte datasæt.

En af fordelene ved at udgive datasæt separat er, at du kan bruge godkendelsesprocessen i LuckyTemplates-tjenesten til at promovere og certificere datasæt. Det er en ideel praksis at vælge et godkendt datasæt, helst et certificeret, når du udvikler en ny rapport.

Best Practices for dataindlæsning og -transformation

Oprettelse af en dedikeret datotabel

Sørg for, at din rapport har en dedikeret Dato-tabel i din rapport. Du kan bruge det, der er tilgængeligt på LuckyTemplates forum. Du kan kopiere og indsætte M-koden i en tom forespørgsel.

Den anden ting du skal gøre, når du har en dedikeret Dato-tabel, er at markere den som sådan. Dette vil gøre det muligt at bruge LuckyTemplates til tidsintelligensberegninger.

Best Practices for dataindlæsning og -transformation

Andre påmindelser til datotabellen

Sørg altid for, at din datatabel er sammenhængende, og at der er én række om dagen. Tjek også, at den helt dækker kanterne af din faktatabel.

Tilføj også hele år til tabellen Datoer. Det er også en god ide at tilføje et ekstra fremtidigt år til Datoer-tabellen for at aktivere eventuelle fremtidige eller prognosemæssige tidsintelligensberegninger.

Hvis du har flere dage i din Datoer-tabel, end du ønsker at vise på din rapport, kan du kontrollere, hvad der vises i udsnit ved hjælp af IsAfterToday-kolonnen eller de offsetkolonner, der er tilgængelige i filterruden.

Best Practices for dataindlæsning og -transformation

Stille spørgsmål om rapporten

Det næste, jeg vil tale om, er, om du overhovedet skal lave en rapport. Mens du gør det, skal du kontrollere, om der er en eksisterende rapport, du kan bruge til at opfylde dit behov. Hvis der ikke er nogen rapport, er der så en eksisterende datamodel, du kan bruge til at opfylde behovet? Er der et eksisterende datasæt, du kan bruge, eller skal du faktisk starte fra bunden?

Best Practices for dataindlæsning og -transformation

Iscenesættelse og reference til data

Den næste ting at tale om, når data indlæses, er iscenesættelse og referencedata. Når du indlæser en flad datatabel, har du muligvis fakta ogi samme tabel som en Excel-fil. Når du foretager en indlæsning og flytter den ind i en iscenesættelsesforespørgselssektion og omdøber den, kan du fjerne markeringen af ​​Aktiver indlæsning .

Best Practices for dataindlæsning og -transformation

Best Practices for dataindlæsning og -transformation

Det næste trin er at oprette en reference til den tabel for hver fakta- og opslagsdimension og at omdøbe tabellerne korrekt. Rediger hver reference, behold kun de nødvendige kolonner, og fjern dubletter.

Best Practices for dataindlæsning og -transformation

Best Practices for dataindlæsning og -transformation

Organiser din datamodel, og sæt den i sin egen gruppe. Jeg har altid en gruppe i mine datamodeller kaldet Data Model, som har alle de tabeller, som jeg skal bruge i mine billeder.

Best Practices for dataindlæsning og -transformation

Reduktion af databelastningen

Den næste ting at tale om er værktøjets ydeevne ved dataindlæsning. En af de største ting, der påvirker ydeevnen, er datavolumen, så stræb efter at reducere mængden af ​​data, der skal indlæses, så meget som muligt.

Følg dette aksiom:

Hvis du ikke har brug for det, skal du ikke hente det.

Det er meget nemmere at tilføje nye ting til en rapport, end det er at tage ting ud af vores rapport. Også når du lægger for mange ting ind i en rapport, vil du betale en bøde for ydeevne, som du ikke behøver opleve.

Gør helst din filtrering i kilden. Hvis du ikke kan gøre det i kilden, skal du bruge rullemenuen til automatisk filter i strømforespørgslen til at filtrere de felter, du er interesseret i.

Best Practices for dataindlæsning og -transformation

Også i kilden kan du også reducere antallet af kolonner, der vises, ved at bruge rullemenuen Vælg kolonner og kun vælge de kolonner, der er af interesse for dig.

Du kan bruge enten Vælg kolonner eller Fjern kolonner . Jeg anbefaler at bruge Vælg kolonner som bedste praksis, fordi det er nemt at gå tilbage til.

Hvis du skifter mening på et senere tidspunkt, giver det dig en hurtig måde at gøre det på via brugergrænsefladen i stedet for at gå ind i den avancerede editor og redigere M-koden direkte.

Best Practices for dataindlæsning og -transformation

Forespørgselsfoldning

Forespørgselsfoldning er endnu et dataindlæsningsforsøg fra LuckyTemplates til at kombinere flere datavalgs- og transformationstrin til en enkelt datakildeforespørgsel.

For at afgøre, om en forespørgsel foldes, skal du højreklikke på de anvendte trin i en forespørgsel. Du kan se, om en indbygget forespørgsel er nedtonet.

Hvis den er nedtonet, foldes forespørgslen ikke. Hvis den ikke er nedtonet, kan forespørgslen foldes.

Lad os gå til Transform data , så. I denne tabel, hvis jeg højreklikker på navigationstrinnet, kan jeg se, at View Native Query ikke er nedtonet, så jeg kan vælge den.

Best Practices for dataindlæsning og -transformation

Vi vil se en simpel SQL select-sætning her.

Best Practices for dataindlæsning og -transformation

Hvis vi går til næste trin, efter at filtreringen er udført, og ser den oprindelige forespørgsel, kan vi se, at forespørgslen er blevet lidt ændret, og der er en "hvor"-klausul i bunden af ​​forespørgslen.

Best Practices for dataindlæsning og -transformation

Hvis vi går til det tredje trin og højreklikker på det, kan vi se, at den oprindelige forespørgsel ikke er nedtonet, så vi kan vælge den en gang til.

Best Practices for dataindlæsning og -transformation

Når vi har valgt, kan vi se, at der er et endnu større sammenbrud af de tre forespørgsler til én. Dette er LuckyTemplates, der siger, at den bedste måde at få dataene ind i modellen på er, at kilden udfører arbejdet i stedet for mig.

Best Practices for dataindlæsning og -transformation

Brug af datakilder til forespørgselsfoldning

Datakilder, der typisk kan bruges med forespørgselsfoldning, er standardobjekter i relationelle databaser som tabeller og visninger.

Tilpassede SQL-forespørgsler til relationelle databaser kan ikke bruge forespørgselsfoldning. Flade filer og webdata kan ikke også foldes.

Nogle af de transformationer, der kan bruges med forespørgselsfoldning, er filtrering af rækker , fjernelse af kolonner , omdøbning af kolonner og joinforbindelser til andre forespørgsler fra den samme datakilde.

Nogle af de transformationer, der ikke kan bruges sammen med forespørgselsfoldning, omfatter tilføjelse af indekskolonner , ændring af kolonnedatatyper og fletning eller tilføjelse af forespørgsler fra forskellige datakilder .

Valg af den korrekte forbindelsestilstand

Den næste ting at gøre for at forbedre ydeevnen er at vælge den korrekte forbindelsestilstand. Importtilstand er standard og bør bruges, når det er muligt, da det giver den bedste rapportydeevne.

Direkte forespørgselstilstand kan bruges, hvis der ønskes opdaterede data, men vær blot opmærksom på, at det kan og sandsynligvis vil have en negativ effekt på ydeevnen.

Endelig er en live-forbindelsestilstand tilgængelig, når du har adgang til datavarehuse som en SSAS multidimensionelle kuber.

Lokalisering af transformationerne

Den næste ting, jeg vil tale om, er placeringen af, hvor disse transformationer skal udføres. Det bedste sted at gøre dem er i kilden . Hvis du ikke kan gøre dem i kilden, skal du gøre dem i power-forespørgsel . Hvis du ikke kan gøre dem i power-forespørgsel, så gør dem i DAX .

Udfør dine datatransformationer så langt opstrøms som muligt og så langt nedstrøms som nødvendigt.

Hvis du kan gøre noget i kraftforespørgsel, så skal du nok.

Igen, hvis det ikke er noget, der er dynamisk i forbindelse med rapportsessionen, kan du overveje at gøre det i kraftforespørgsel for at forenkle din DAX og øge din rapportydeevne.

Hvad angår formen på dine borde, så bestræb dig på at gøre faktaborde lange og tynde og bestræb dig på at gøre dimensionstabeller korte og brede .

Bedste praksis for navngivning og datatyper

Brug en konsekvent navngivnings- og store og små bogstaver , der er let at forstå for rapportbrugere. Omdøb dine tabeller og forespørgsler efter behov for at overholde standarderne for navngivning og store og små bogstaver for din rapport.

Omdøb dine kolonner efter behov for at være i overensstemmelse med disse navngivnings- og casingstandarder, og omdøb også dine power-forespørgselstrin efter behov for at gøre trinnene selvbeskrivende, da du muligvis ikke er den person, der vedligeholder rapporten.

LuckyTemplates gør et fremragende stykke arbejde med at tildele de korrekte datatyper ved import af data, men nogle gange er nogle justeringer også nødvendige. Du bør sikre dig, at kolonner i forskellige tabeller vil blive brugt som koblingskolonner mellem to tabeller, der er af samme datatype.

Sørg for, at alle dine datokolonner er dato og ikke tekst. Opdel dine dato/tidskolonner i separate Datoer og separate Tidskolonner.

Som et sidste trin skal du kontrollere dine datatyper igen . Gør det til en øvelse, før du trykker på Luk og Anvend i power-forespørgsel, for altid at kontrollere dine datatyper igen, da visse transformationer stille kan skifte datatyper til tekst.

Indhentning af data med en ensartet granularitet

Den sidste ting at diskutere er granularitet. Under dataindlæsningen og -transformationsprocessen bør du stræbe efter at kilde dine data med en ensartet granularitet. Når du kombinerer forskellige granulariteter i din løsning, skal du bruge power query (helst) eller DAX til at allokere referencedataene korrekt.

For eksempel, hvis dine primære salgsdata er på det daglige niveau, er dets granularitet dagligt. Hvis dine budgetreferencedata er på det månedlige niveau, er dets granularitet månedligt. Her er et eksempel på et, du kan gennemgå ved at foretage granularitetsjusteringer.

Konklusion

Jeg håber, du fandt denne tutorial om dataindlæsning og transformation nyttig. Hvis du gjorde det, så glem ikke at abonnere på LuckyTemplates YouTube-kanal for at sikre, at du får besked om nyt indhold.

Greg


Oplev unik indsigt ved hjælp af LuckyTemplates TOPN-funktion

Oplev unik indsigt ved hjælp af LuckyTemplates TOPN-funktion

Denne blog indeholder LuckyTemplates TOPN DAX-funktionen, som giver dig mulighed for at få unik indsigt fra dine data, hvilket hjælper dig med at træffe bedre markedsføringsbeslutninger.

Datamodellering i LuckyTemplates ved hjælp af understøttende tabeller

Datamodellering i LuckyTemplates ved hjælp af understøttende tabeller

Lær nogle fantastiske analytiske teknikker, som vi kan gøre til datamodellering i LuckyTemplates ved hjælp af DAX-understøttende tabeller.

Avanceret DAX til LuckyTemplates: Implementering af rangeringslogik på tværs af unikke indsigter

Avanceret DAX til LuckyTemplates: Implementering af rangeringslogik på tværs af unikke indsigter

Her dykker vi ned i LuckyTemplates Advanced DAX og implementerer rangeringslogik for at få en meget unik indsigt. Jeg viser også måleforgrening i dette eksempel.

LuckyTemplates What-If-parameterfunktion

LuckyTemplates What-If-parameterfunktion

Denne blog introducerer den nye funktion i LuckyTemplates, What-If-analyseparameteren. Du vil se, hvordan det gør alt hurtigt og nemt til din scenarieanalyse.

Brug LuckyTemplates Mål forgrening for at kontrollere, om dine avancer udvides, efterhånden som omsætningen vokser

Brug LuckyTemplates Mål forgrening for at kontrollere, om dine avancer udvides, efterhånden som omsætningen vokser

Lær, hvordan du afgør, om din omsætningsvækst er god ved at kontrollere, om dine avancer er udvidet ved hjælp af LuckyTemplates, der måler forgrening.

LuckyTemplates-parametre via forespørgselseditor

LuckyTemplates-parametre via forespørgselseditor

Lær og forstå, hvordan du kan oprette og bruge LuckyTemplates Parameters, som er en kraftfuld funktion i Query Editor.

Rundt søjlediagram – en visualisering til dit dashboard

Rundt søjlediagram – en visualisering til dit dashboard

Denne vejledning vil diskutere om oprettelse af et rundt søjlediagram ved hjælp af Charticulator. Du lærer, hvordan du designer dem til din LuckyTemplates-rapport.

PowerApps funktioner og formler | En introduktion

PowerApps funktioner og formler | En introduktion

Lær, hvordan du bruger PowerApps-funktioner og -formler til at forbedre funktionaliteten og ændre adfærd i vores Power Apps-lærredsapp.

Pipe In R: Tilslutningsfunktioner med Dplyr

Pipe In R: Tilslutningsfunktioner med Dplyr

I denne øvelse lærer du, hvordan du kæder funktioner sammen ved hjælp af dplyr-røroperatoren i programmeringssproget R.

RANKX Deep Dive: A Lucky Templates DAX-funktion

RANKX Deep Dive: A Lucky Templates DAX-funktion

RANKX fra LuckyTemplates giver dig mulighed for at returnere rangeringen af ​​et specifikt tal i hver tabelrække, der udgør en del af en liste over tal.