Cosè il sé in Python: esempi del mondo reale
Cos'è il sé in Python: esempi del mondo reale
Desidero dedicare un po' di tempo oggi a parlare delle tabelle in LuckyTemplates. Ci imbattiamo continuamente in tavoli con ogni problema, ma in realtà non passiamo molto tempo a pensarci da soli. Puoi guardare il video completo di questo tutorial in fondo a questo blog.
Di recente c'è stato un post del membro di LuckyTemplates, Ashton, che propone sempre buone domande stimolanti. La sua domanda mi ha fatto pensare a uno schema che vedo abbastanza regolarmente e che voglio affrontare in questo tutorial.
Non è stato un errore che ha commesso, ma è un errore comune. Vedo molte volte in cui le persone dicono di avere problemi con un tavolo virtuale, ad esempio, quando non è un tavolo virtuale in primo luogo.
C'è una vera distinzione tra i tipi di tabelle in LuckyTemplates.
L'analogia che farei è se qualcuno dicesse: "Ehi, ho recentemente adottato un cane e ho problemi con il cane e mi chiedo se puoi aiutarmi" e non è un cane, ma un lupo. Sono entrambi canini, ma ci sono alcune distinzioni piuttosto grandi che vuoi prendere in considerazione.
Quindi, sebbene appartengano tutti alla stessa famiglia, proprio come le tabelle in LuckyTemplates, sono distinzioni importanti che influiscono davvero sulla soluzione e sul modo in cui si utilizzano tali tabelle. E quindi quello che volevo fare era rivisitare la domanda di Ashton, e poi approfondire un po' le differenze tra le tabelle che trovi in LuckyTemplates e mostrare come questo influenza il modo in cui le gestisci.
La domanda era piuttosto semplice, ma c'è qualcosa in più rispetto a quanto inizialmente sembra. Aveva un semplice set di dati che dice solo i clienti, il tipo di frutta che hanno acquistato, la quantità e poi solo un numero di indice.
Voleva avere un'affettatrice con una funzionalità di selezione multipla in modo che se si selezionasse dire arancione, avrebbe richiamato tutti i clienti che hanno acquistato arance, ma avrebbe anche mostrato cos'altro hanno acquistato.
Quindi, se disattiviamo questa selezione (arancione), possiamo vedere il set di dati completo. Possiamo anche vedere che questi sono i due clienti (Joe e Mary) che hanno acquistato le arance, ma ognuno di loro ha effettuato anche un acquisto aggiuntivo.
E così, la prima cosa che sappiamo è che l'affettatrice di frutta deve essere un tavolo affettatrice disconnesso. Se fosse un'affettatrice normale, colpiresti l'arancia e in pratica eliminerebbe tutto tranne l'arancia nel tavolo. Sappiamo anche che, poiché questo è dinamico, abbiamo un problema con il tavolo virtuale.
Quindi approfondiamo un po' questo argomento, ma prima diamo un'occhiata ai diversi tipi di tabelle che troviamo in LuckyTemplates.
Sommario
Tre tipi di tabelle in LuckyTemplates
Esistono tre tipi di tabelle che troviamo regolarmente. Il primo è il più comune ed è una tabella fisica, e questi sono davvero i tuoi dati primari. Ogni volta che si esegue Ottieni dati o si immettono dati direttamente tramite questa opzione o in Power Query , si esegue un riferimento o un duplicato oppure si caricano i dati tramite una query vuota, come una tabella data, che è una tabella fisica.
Una tabella fisica non è completamente dinamica, ma ha tutte queste altre caratteristiche che aumentano la dimensione del file perché si tratta di dati fisici. È accessibile in Power Query. In genere le relazioni nel modello di dati sono costruite attraverso relazioni fisiche. Non devono esserlo, ma di solito lo sono. Vengono utilizzati per i dati primari e li visualizzi tramite la visualizzazione dati o tramite Power Query.
Una tabella fisica non è completamente dinamica, ma ha tutte queste altre caratteristiche che aumentano la dimensione del file perché si tratta di dati fisici. È accessibile in Power Query. In genere le relazioni nel modello di dati sono costruite attraverso relazioni fisiche. Non devono esserlo, ma di solito lo sono. Vengono utilizzati per i dati primari e li visualizzi tramite la visualizzazione dati o tramite Power Query.
Quella che spesso viene confusa con la tabella virtuale è questa tabella calcolata o ciò che possiamo anche chiamare tabella di espressioni DAX. Questo ha un'analogia diretta con le colonne calcolate create tramite espressioni DAX . Questa operazione viene eseguita tramite la scheda Modellazione e l'opzione Nuova tabella, quindi si immette l'espressione DAX.
Quella che spesso viene confusa con la tabella virtuale è questa tabella calcolata o ciò che possiamo anche chiamare tabella di espressioni DAX. Questo ha un'analogia diretta con le colonne calcolate create tramite espressioni DAX. Questa operazione viene eseguita tramite la scheda Modellazione e l'opzione Nuova tabella, quindi si immette l'espressione DAX.
Come puoi vedere dalla tabella di confronto qui sotto, la tabella calcolata ha un profilo abbastanza diverso dalla tabella fisica o dalla tabella virtuale. Non è completamente dinamico.
Deve essere aggiornato per raccogliere le nuove informazioni. Aumenta la dimensione fisica del file. A differenza di una tabella fisica semplice, non è accessibile in Power Query. Proprio come una colonna calcolata non viene visualizzata in Power Query, nemmeno una tabella calcolata. Ma possiede gli altri aspetti di un tavolo fisico.
In genere, tabelle calcolate utilizzate per supportare le tabelle e utilizzate più comunemente per il debug. Ora sono disponibili strumenti migliori come DAX Studio e Tabular Editor, quindi non viene usato così frequentemente per questo. Puoi visualizzare questa tabella tramite la visualizzazione dati.
E francamente, come le colonne calcolate, è generalmente qualcosa da cui stare alla larga. Ci sono modi migliori per fare le cose che attraverso tabelle calcolate.
E poi l'analogia con le misure sono le vere tabelle virtuali . Questi vengono creati nel contesto delle misure attraverso il DAX Measure Code. Sono completamente dinamici, a differenza degli altri due tipi di tabelle. Non aumentano le dimensioni del file perché sono su richiesta. Proprio come le misure, le tabelle virtuali vengono calcolate su richiesta in memoria e vengono tutte utilizzate nel corso dei contesti per cui sono necessarie.
Non sono accessibili in Power Query. Non puoi mettere una relazione fisica su quelli. Se li colleghi nel tuo modello di dati, lo fai utilizzando relazioni virtuali, più comunemente con .
Le tabelle virtuali vengono utilizzate per i calcoli intermedi nelle misure perché una misura non può restituire un valore di tabella e deve restituire un valore scalare. Quindi in genere li usi come calcolo provvisorio su cui generi i tuoi scaler, che sono il prodotto risultante della tua misura.
Puoi visualizzare queste tabelle in strumenti come DAX Studio, Tabular Editor o New Table, che è di nuovo, probabilmente il modo meno desiderabile perché ingombra il tuo modello di dati con una serie di tabelle aggiuntive, a meno che non lo elimini.
Soluzione di misura DAX per una tabella virtuale
Tornando alla domanda di Ashton, guardando la tabella, possiamo dire che è dinamica. Possiamo anche fare scelte multiple e questo cambia completamente al volo. E quindi per questo sappiamo che si tratta di una tabella virtuale perché le altre due (tabelle fisiche e calcolate) non sono completamente dinamiche. Sappiamo anche che si tratta di una tabella disconnessa, come ho detto all'inizio.
Ho usato il concetto di Rubber Duck per risolvere questo problema. In un precedente tutorial, ho parlato di questo concetto di rubber ducking, che sta sviluppando una soluzione concettuale al problema prima di iniziare a scavare nel DAX specifico.
E così, per la soluzione della papera di gomma qui, quello che ho fatto è stato fondamentalmente mettere insieme questo tavolo affettatrice disconnesso. Quindi, ho raccolto il valore di quelle affettatrici. Successivamente, ho ideato un tavolo virtuale che filtrava i clienti in base a coloro che avevano acquistato le selezioni nel tavolo disconnesso.
Quindi, ho preso quell'elenco di clienti e ho filtrato il nostro set di dati originale da quei clienti per trovare i clienti e gli acquisti effettuati da quei clienti, oltre al valore dell'affettatrice.
Diamo un'occhiata alla misura specifica per vedere come è andata a finire e alcune delle considerazioni che hai quando lavori con i tavoli virtuali.
La prima cosa è stata sviluppare due misure di raccolta per i nostri valori. Il primo è il valore dell'affettatrice disconnessa.
Poiché avevamo la selezione multipla nel requisito, significava che non potevamo semplicemente utilizzare . Quindi quello che ho fatto è usare la funzione per acquisire potenzialmente una o più selezioni in quell'affettatrice disconnessa. Per i clienti, dato che avremo un cliente su ogni riga che stiamo valutando, possiamo usare SELECTEDVALUE.
La prossima cosa che ho fatto è stata questa variabile della tabella virtuale ( VAR Buyers ) che inizia con . Quindi, va a filtrare i clienti in base al fatto che abbiano effettuato o meno un acquisto di frutta che era nei nostri valori dell'affettatrice disconnessa.
Possiamo verificarlo eseguendo una query DAX. Possiamo farlo in DAX Studio o nell'editor tabulare. Quindi prendiamo qui la misura della nostra tabella virtuale, copiala nell'editor tabulare. Faremo in modo che ci dia i valori che ci aspettiamo di vedere, che sarebbero Joe e Mary.
Le query DAX restituiscono sempre tabelle e iniziano sempre con EVALUATE, quindi qui aggiungiamo EVALUATE. Tuttavia, non otteniamo nulla nel risultato. Questo perché la variabile di raccolta della frutta di disconnessione selezionata ( SelDisconnFruit ) non è a conoscenza dell'affettatrice. È fuori contesto.
Quindi il modo per testarlo è impostare artificialmente quel valore di affettatrice. Sostituiremo SelDisconnFruit con un tavolino qui. Digita Orange (il valore di quell'affettatrice) tra parentesi ondulate . E ora, otteniamo il risultato qui, che è Joe e Mary. Con ciò, il tavolo virtuale funziona esattamente come pensavamo.
Quindi possiamo tornare ora alla nostra espressione di misura. Una delle cose più impegnative delle tabelle virtuali è che sono facili da creare tabelle virtuali all'interno di una misura . Ma non puoi restituire una tabella virtuale come risultato di un measure . Quindi dobbiamo restituire uno scalare, ma che catturi l'aspetto rilevante della tabella virtuale.
Quindi qui abbiamo la tabella virtuale che ci dice quali clienti hanno acquistato i frutti che erano nell'affettatrice di valore. Possiamo impostare un'altra variabile ( VAR BuyerIn ) che dice, se il cliente selezionato era nella tabella di quell'acquirente, allora ottiene uno . E se no, ottiene uno zero .
Quindi prendiamo i risultati e li inseriamo nel riquadro dei filtri. La misura dei principali acquirenti , diciamo, è una e saranno i clienti che hanno acquistato, in questo caso, le arance.
E così facendo, filtriamo la nostra tabella di dati originale fino ai record corretti. Puoi vedere che ora crea quella tabella virtuale e fa quel filtro correttamente in base a ciascuna selezione.
Tabelle virtuali all'interno delle funzioni di iterazione in LuckyTemplates - Concetti DAX
Creazione di relazioni virtuali in LuckyTemplates Utilizzo della funzione TREATAS
Come utilizzare la funzione DAX COUNTROWS nelle tabelle virtuali
Conclusione
Questa è la maggior parte di ciò che volevo coprire oggi. È un esempio di tabella virtuale abbastanza semplice, ma con l'accento sulla differenza tra tabelle fisiche, tabelle calcolate e tabelle virtuali.
Ci sono molte questioni interessanti da rivisitare riguardo alle tabelle virtuali, in particolare con il debug delle misure delle tabelle virtuali. Questo è qualcosa su cui tornerò nelle prossime settimane, ma per ora, questo è tutto questo tutorial.
Saluti!
Cos'è il sé in Python: esempi del mondo reale
Imparerai come salvare e caricare oggetti da un file .rds in R. Questo blog tratterà anche come importare oggetti da R a LuckyTemplates.
In questa esercitazione sul linguaggio di codifica DAX, scopri come usare la funzione GENERATE e come modificare dinamicamente il titolo di una misura.
Questo tutorial illustrerà come utilizzare la tecnica di visualizzazione dinamica multi-thread per creare approfondimenti dalle visualizzazioni di dati dinamici nei report.
In questo articolo, esaminerò il contesto del filtro. Il contesto del filtro è uno degli argomenti principali che qualsiasi utente di LuckyTemplates dovrebbe inizialmente conoscere.
Voglio mostrare come il servizio online di LuckyTemplates Apps può aiutare nella gestione di diversi report e approfondimenti generati da varie fonti.
Scopri come elaborare le modifiche al margine di profitto utilizzando tecniche come la ramificazione delle misure e la combinazione di formule DAX in LuckyTemplates.
Questo tutorial discuterà delle idee di materializzazione delle cache di dati e di come influiscono sulle prestazioni dei DAX nel fornire risultati.
Se finora utilizzi ancora Excel, questo è il momento migliore per iniziare a utilizzare LuckyTemplates per le tue esigenze di reportistica aziendale.
Che cos'è il gateway LuckyTemplates? Tutto quello che devi sapere