Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Power Query è un motore di trasformazione e preparazione dei dati. Power Query viene fornita con
un'interfaccia grafica per ottenere dati dalle origini e un editor di Power Query per l'applicazione delle
trasformazioni. Poiché il motore è disponibile in molti prodotti e servizi, la destinazione in cui verranno archiviati
i dati dipende dalla posizione Power Query usata. Usando Power Query, è possibile eseguire l'elaborazione
estrazione, trasformazione e caricamento (ETL) dei dati.
Diagramma con origini dati simbolizzate a destra, passando tramite Power Query per la trasformazione e quindi
passando a varie destinazioni, ad esempio Azure Data Lake Archiviazione, Dataverse, Microsoft Excel o Power BI.
Trovare e connettersi ai dati è troppo difficile Power Query la connettività a un'ampia gamma di origini
dati, inclusi i dati di tutte le dimensioni e forme.
Le esperienze per la connettività dei dati sono troppo Coerenza dell'esperienza e parità delle funzionalità di query
frammentate su tutte le origini dati.
SF IDA ESIST EN T E C O M E P O W ER Q UERY ?
I dati devono spesso essere rimodellati prima dell'utilizzo Esperienza estremamente interattiva e intuitiva per la
creazione rapida e iterativa di query su qualsiasi origine dati,
di qualsiasi dimensione.
Qualsiasi data shaping è uno-off e non ripetibile Quando si Power Query per accedere e trasformare i dati, si
definisce un processo ripetibile (query) che può essere
facilmente aggiornato in futuro per ottenere dati aggiornati.
Nel caso in cui sia necessario modificare il processo o la
query per conto delle modifiche dello schema o dei dati
sottostanti, è possibile usare la stessa esperienza interattiva
e intuitiva usata quando si è definita inizialmente la query.
Volume (dimensioni dei dati), velocità (frequenza di modifica) Power Query offre la possibilità di usare un subset dell'intero
e varietà (ampiezza di origini dati e forme di dati) set di dati per definire le trasformazioni dei dati necessarie,
consentendo di filtrare e trasformare facilmente i dati in
dimensioni gestibili.
Power Query le query possono essere aggiornate
manualmente o sfruttando le funzionalità di aggiornamento
pianificato in prodotti specifici (ad esempio Power BI) o anche
a livello di codice (usando il modello Excel a oggetti).
Poiché Power Query offre connettività a centinaia di origini
dati e oltre 350 tipi diversi di trasformazioni dei dati per
ognuna di queste origini, è possibile usare i dati da qualsiasi
origine e in qualsiasi forma.
NOTE
Sebbene esistano Power Query esperienze, entrambe offrono quasi la stessa esperienza utente in ogni scenario.
Trasformazioni
Il motore di trasformazione Power Query include molte funzioni di trasformazione predefinite che possono
essere usate tramite l'interfaccia grafica del editor di Power Query. Queste trasformazioni possono essere
semplici come la rimozione di una colonna o l'applicazione di filtri alle righe o l'uso della prima riga come
intestazione di tabella. Sono disponibili anche opzioni di trasformazione avanzate, ad esempio merge, append,
group by, pivot e unpivot.
Tutte queste trasformazioni sono rese possibili scegliendo l'opzione di trasformazione nel menu e quindi
applicando le opzioni necessarie per tale trasformazione. La figura seguente illustra alcune delle trasformazioni
disponibili in editor di Power Query.
Flussi di dati
Power Query può essere usato in molti prodotti, ad esempio Power BI e Excel. Tuttavia, l'Power Query all'interno
di un prodotto ne limita l'utilizzo solo a quel prodotto specifico. I flussi di dati sono una versione del servizio
indipendente dal prodotto Power Query'esperienza che viene eseguita nel cloud. Usando i flussi di dati, è
possibile ottenere dati e trasformare i dati nello stesso modo, ma invece di inviare l'output a Power BI o Excel, è
possibile archiviare l'output in altre opzioni di archiviazione, ad esempio Dataverse o Azure Data Lake
Archiviazione. In questo modo, è possibile usare l'output dei flussi di dati in altri prodotti e servizi.
Altre informazioni: Che cosa sono i flussi di dati?
P O W ER Q UERY P O W ER Q UERY
P RO DOT TO M OTO RE M 1 DESK TO P 2 O N L IN E 3 F L USSI DI DAT I 4
Power BI Sì Sì Sì Sì
Power Apps Sì No Sì Sì
Power Automate Sì No Sì No
SQL Server Sì No No No
Integration Services
3 Power Quer y Online Esperienza Power Query disponibile nelle applicazioni Web
browser.
4 Flussi di dati Power Query come servizio che viene eseguito nel cloud ed
è indipendente dal prodotto. Il risultato archiviato può
essere usato in altre applicazioni come servizi.
Vedi anche
Origini dati in Power Query
Recupero dei dati
Power Query introduttiva
Modellare e combinare i dati usando Power Query
Informazioni sui flussi di dati
Acquisizione dei dati
07/12/2021 • 3 minutes to read
Power Query possibile connettersi a molte origini dati diverse in modo da poter usare i dati necessari. Questo
articolo illustra in modo più completo i passaggi per l'I/O dei dati Power Query.
La connessione a un'origine dati Power Query segue un set standard di fasi prima dell'destinazione dei dati in
una destinazione. Questo articolo descrive ognuna di queste fasi.
NOTE
In alcuni casi, un connettore potrebbe avere tutte queste fasi e in altri casi un connettore potrebbe avere solo alcune di
esse. Per altre informazioni sull'esperienza di un connettore specifico, vedere la documentazione disponibile per il
connettore specifico.
Le fasi sono:
1. Impostazioni di connessione
2. Authentication
3. Anteprima dati
4. Destinazione query
1. Impostazioni di connessione
La maggior parte dei connettori richiede inizialmente almeno un parametro per inizializzare una connessione
all'origine dati. Ad esempio, il connettore SQL Server richiede almeno il nome host per stabilire una
connessione al database SQL Server.
In confronto, quando si tenta di connettersi a un file Excel, Power Query è necessario usare il percorso del file
per trovare il file a cui connettersi.
I parametri del connettore vengono comunemente usati per stabilire una connessione a un'origine dati e
insieme al connettore usato definiscono il cosiddetto — — percorso dell'origine dati.
NOTE
Alcuni connettori non richiedono l'immissione di parametri. Questi connettori sono denominati connettori singleton e
avranno un solo percorso di origine dati disponibile per ogni ambiente. Alcuni esempi sono Adobe Analytics, MailChimp e
Google Analytics.
2. Autenticazione
Ogni singola connessione effettuata in Power Query deve essere autenticata. I metodi di autenticazione variano
da connettore a connettore e alcuni connettori potrebbero offrire più metodi di autenticazione.
I metodi di autenticazione attualmente disponibili per Power Query sono:
Anonimo: comunemente usato per la connessione a un'origine dati che non richiede l'autenticazione utente,
ad esempio una pagina Web o un file disponibile su HTTP pubblico.
Basic: un nome utente e una password inviati nella codifica Base64 vengono accettati per l'autenticazione.
Chiave API: viene accettata una singola chiave API per l'autenticazione.
Account aziendale o account Microsoft: questo metodo è noto anche come OAuth 2.0.
Windows : può essere implicito o esplicito.
Database : disponibile solo in alcuni connettori di database.
Ad esempio, i metodi di autenticazione disponibili per il connettore SQL Server database sono Windows,
Database e account Microsoft.
3. Anteprima dei dati
L'obiettivo della fase di anteprima dei dati è fornire un modo semplice per visualizzare in anteprima e
selezionare i dati.
A seconda del connettore in uso, è possibile visualizzare in anteprima i dati usando:
Finestra Strumento di navigazione
Finestra di dialogo Anteprima tabella
Finestra Strumento di navigazione (tabella di navigazione )
La finestra Strumento di navigazione è costituita da due sezioni principali:
Il riquadro di selezione degli oggetti viene visualizzato sul lato sinistro della finestra. L'utente può
interagire con e selezionare questi oggetti.
NOTE
Per Power Query in Excel selezionare l'opzione Seleziona più elementi nell'angolo superiore sinistro della finestra di
spostamento per selezionare più oggetti alla volta nel riquadro di selezione degli oggetti.
NOTE
L'elenco di oggetti in Power Query Desktop è limitato a 10.000 elementi. Questo limite non esiste in Power Query
Online. Per una soluzione alternativa in Power Query Desktop, vedere Soluzione alternativa alla limitazione degli
oggetti.
Il riquadro di anteprima dei dati sul lato destro della finestra mostra un'anteprima dei dati dell'oggetto
selezionato.
Soluzione alternativa per la limitazione degli oggetti
È previsto un limite fisso di 10.000 oggetti nello strumento di navigazione in Power Query Desktop. Questo
limite non si verifica in Power Query Online. Alla fine, Power Query'interfaccia utente online sostituirà quella nel
desktop.
Nel frattempo, è possibile usare la soluzione alternativa seguente:
1. Fare clic con il pulsante destro del mouse sul nodo radice dello strumento di navigazione e quindi
scegliere Trasforma dati .
2. editor di Power Query quindi si apre con la tabella di navigazione completa nell'area di anteprima della
tabella. Questa vista non ha un limite al numero di oggetti ed è possibile usare filtri o altre trasformazioni
Power Query per esplorare l'elenco e trovare le righe desiderate, ad esempio in base alla colonna Nome.
3. Dopo aver trovato l'elemento desiderato, è possibile ottenere il contenuto selezionando il collegamento
dati ,ad esempio il collegamento Tabella nell'immagine seguente.
Quando si tenta di connettersi a un'origine dati usando un nuovo connettore per la prima volta, potrebbe essere
necessario selezionare il metodo di autenticazione da usare per l'accesso ai dati. Dopo aver selezionato il
metodo di autenticazione, non verrà richiesto di selezionare un metodo di autenticazione per il connettore
usando i parametri di connessione specificati. Tuttavia, se è necessario modificare il metodo di autenticazione in
un secondo momento, è possibile farlo.
Se si usa un connettore da un'app online, ad esempio il servizio Power BI o Power Apps, verrà visualizzata una
finestra di dialogo del metodo di autenticazione per il connettore feed OData simile all'immagine seguente.
Come si può vedere, un'altra selezione di metodi di autenticazione viene presentata da un'app online. Alcuni
connettori potrebbero anche chiedere di immettere il nome di un gateway dati locale per potersi connettere ai
dati.
Il livello selezionato per il metodo di autenticazione scelto per questo connettore determina la parte di un URL a
cui verrà applicato il metodo di autenticazione. Se si seleziona l'indirizzo Web di primo livello, il metodo di
autenticazione selezionato per questo connettore verrà usato per tale indirizzo URL o per qualsiasi sottoindirizzo
all'interno di tale indirizzo.
Tuttavia, potrebbe non essere necessario impostare l'indirizzo di primo livello su un metodo di autenticazione
specifico perché sottoindirizzo diversi possono richiedere metodi di autenticazione diversi. Un esempio può
essere se si accede a due cartelle separate di un singolo sito SharePoint e si vuole usare account Microsoft
diversi per accedervi.
Dopo aver impostato il metodo di autenticazione per l'indirizzo specifico di un connettore, non sarà necessario
selezionare di nuovo il metodo di autenticazione per tale connettore usando tale indirizzo URL o qualsiasi
sottoindirizzo. Si supponga, ad esempio, di selezionare l'indirizzo come livello a cui si desidera applicare
https://contoso.com/ le impostazioni dell'URL del connettore Web. Ogni volta che si usa un connettore Web
per accedere a qualsiasi pagina Web che inizia con questo indirizzo, non sarà necessario selezionare
nuovamente il metodo di autenticazione.
2. Nella finestra di dialogo Impostazioni origine dati selezionare Autorizzazioni globali , scegliere il sito
Web in cui si vuole modificare l'impostazione di autorizzazione e quindi selezionare Modifica
autorizzazioni .
3. Nella finestra di dialogo Modifica autorizzazioni selezionare Modifica in Credenziali .
4. Modificare le credenziali nel tipo richiesto dal sito Web, selezionare Salva e quindi selezionare OK.
È anche possibile eliminare le credenziali per un sito Web specifico nel passaggio 3 selezionando Cancella
autorizzazioni per un sito Web selezionato oppure selezionando Cancella tutte le autorizzazioni per tutti i siti
Web elencati.
Per modificare il metodo di autenticazione in Ser vizi online, ad esempio per i flussi di dati nel
ser vizio Power BI e Microsoft Power Platform
1. Selezionare il connettore e quindi selezionare Modifica connessione .
3. Si verifica l'errore, che indica che l'autenticazione OAuth o Azure Active Directory non è supportata nel
servizio.
2. Selezionare Account aziendale e quindi Accedi per continuare a connettersi usando OAuth.
Quando si seleziona Accedi nel passaggio 2 precedente, Power Query invia una richiesta all'endpoint URL
fornito con un'intestazione Authorization con un bearer token vuoto.
È quindi previsto che il servizio risponda con una risposta 401 con un'intestazione WWW_Authenticate che
indica l'URI Azure AD di autorizzazione da usare. Questa risposta deve includere il tenant a cui accedere o
/common/ se la risorsa non è associata a un tenant specifico.
HTTP/1.1 401 Unauthorized
Cache-Control: private
Content-Type: text/html
Server:
WWW-Authenticate: Bearer authorization_uri=https://login.microsoftonline.com/3df2eaf6-33d0-4a10-8ce8-
7e596000ebe7/oauth2/authorize
Date: Wed, 15 Aug 2018 15:02:04 GMT
Content-Length: 49
Power Query possibile avviare il flusso OAuth sul authorization_uri . Power Query richiede un valore Azure AD
Risorsa o Gruppo di destinatari uguale al dominio dell'URL richiesto. Questo valore sarà il valore che si usa per il
valore applicazione Azure URL ID nella registrazione dell'API o del servizio. Ad esempio, se si accede a , Power
Query il valore https://api.myservice.com/path/to/data/api dell'URL dell'ID applicazione sarà uguale a
https://api.myservice.com .
Gli ID Azure Active Directory client seguenti vengono usati da Power Query. Potrebbe essere necessario
consentire in modo esplicito a questi ID client di accedere al servizio e all'API, a seconda delle impostazioni
Azure Active Directory globali.
Se è necessario un maggiore controllo sul flusso OAuth (ad esempio, se il servizio deve rispondere con un
anziché con ), o se 302 l'URL dell'ID applicazione o il valore della risorsa Azure AD non corrispondono all'URL
del servizio, è necessario usare un connettore 401 personalizzato. Per altre informazioni sull'uso del flusso di
Azure AD integrato, vedere Azure Active Directory autenticazione.
Importazione di file SharePoint e OneDrive for
Business
07/12/2021 • 5 minutes to read
Power Query offre una serie di modi per accedere ai file ospitati in SharePoint o OneDrive for Business.
Power Query un pulsante Sfoglia OneDrive accanto alla casella di testo Percorso file o URL quando si crea un
flusso di dati in PowerApps usando uno di questi connettori:
Excel
JSON
PDF
XML
TXT/CSV
Quando si seleziona questo pulsante, verrà richiesto di eseguire il processo di autenticazione. Dopo aver
completato questo processo, viene visualizzata una nuova finestra con tutti i file all'interno OneDrive for
Business dell'utente autenticato.
È possibile selezionare il file desiderato e quindi selezionare il pulsante Apri. Dopo aver selezionato Apri, si
tornerà alla pagina delle impostazioni di connessione iniziale in cui si può vedere che la casella di testo Percorso
file o URL contiene ora l'URL esatto del file selezionato da OneDrive for Business.
È possibile selezionare il pulsante Avanti nell'angolo inferiore destro della finestra per continuare il processo e
ottenere i dati.
NOTE
L'interfaccia del browser potrebbe non apparire esattamente come nell'immagine seguente. Esistono diversi modi
per selezionare Apri in Excel per i file nell'interfaccia del browser di OneDrive for Business. È possibile usare
qualsiasi opzione che consenta di aprire il file in Excel.
2. In Excel selezionare File Info > (Informazioni file) e quindi il pulsante Copy path (Copia percorso).
Per usare il collegamento appena copiato in Power Query, seguire questa procedura:
1. Selezionare Recupera dati > Web .
2. Nella finestra di dialogo Da Web selezionare l'opzione Di base e incollare il collegamento nell'URL .
3. Rimuovere la stringa ?web=1 alla fine del collegamento in modo che Power Query possibile passare
correttamente al file e quindi selezionare OK.
4. Se Power Query richiede le credenziali, scegliere Windows (per i siti SharePoint locali) o Account
aziendale (per i siti Microsoft 365 o OneDrive for Business). Selezionare Connessione .
Cau t i on
Quando si lavora con i file ospitati in OneDrive per Home, il file a cui ci si vuole connettere deve essere
disponibile pubblicamente. Quando si imposta il metodo di autenticazione per questa connessione,
selezionare l'opzione Anonimo.
Quando viene visualizzata la finestra di dialogo Strumento di navigazione, è possibile selezionare dall'elenco
di tabelle, fogli e intervalli presenti nella cartella di lavoro Excel lavoro. Da qui è possibile usare il file di
OneDrive for Business esattamente come qualsiasi altro file di Excel. Si possono creare report e usarli nei set di
dati proprio come per qualsiasi altra origine dati.
NOTE
Per usare un file di OneDrive for Business come origine dati nel servizio Power BI, con l'aggiornamento del ser vizio
abilitato per tale file, assicurarsi di selezionare OAuth2 come metodo di autenticazione quando si configurano le
impostazioni di aggiornamento. In caso contrario, è possibile che venga restituito un errore (ad esempio L'aggiornamento
delle credenziali dell'origine dati non è riuscito. ) quando si prova a eseguire la connessione o l'aggiornamento. Selezionare
OAuth2 come metodo di autenticazione per risolvere l'errore delle credenziali.
La tabella include una colonna denominata Content che contiene il file in formato binario. I valori nella
colonna Contenuto hanno un colore diverso rispetto al resto dei valori nelle altre colonne della tabella, a
indicare che sono selezionabili.
Selezionando un valore Binario nella colonna Contenuto, Power Query aggiungerà automaticamente una
serie di passaggi nella query per passare al file e interpretarne il contenuto laddove possibile.
Ad esempio, dalla tabella illustrata nell'immagine precedente, è possibile selezionare la seconda riga in cui il
valore del campo Name è 02-Februar y.csv . Power Query crea automaticamente una serie di passaggi per
esplorare e interpretare il contenuto del file come file CSV.
NOTE
È possibile interagire con la tabella applicando filtri, ordinamenti e altre trasformazioni prima di passare al file desiderato.
Dopo aver completato queste trasformazioni, selezionare il valore Binar y (Binario) che si vuole visualizzare.
Non è necessario l'URL completo, ma solo le prime parti. L'URL da usare in Power Query avrà il formato
seguente:
https://<unique_tenant_name>.sharepoint.com/personal/<user_identifier>
Ad esempio:
https://contoso-my.sharepoint/personal/user123_contoso_com
SharePoint.Contents("https://contoso.sharepoint.com/marketing/data")
NOTE
Per impostazione predefinita, questa funzione tenta di usare l'API SharePoint versione 14 per la connessione. Se
non si è certi della versione dell'API usata dal sito SharePoint, provare a usare il codice di esempio seguente:
SharePoint.Contents("https://contoso.sharepoint.com/marketing/data", [ApiVersion="Auto"]) .
3. Power Query verrà richiesto di aggiungere un metodo di autenticazione per la connessione. Usare lo
stesso metodo di autenticazione che si userebbe per il connettore SharePoint file.
4. Spostarsi tra i diversi documenti fino alla cartella o ai file specifici a cui si è interessati.
Si supponga, ad esempio, SharePoint un sito con una cartella Documenti condivisi. È possibile selezionare
il valore Tabella nella colonna Contenuto per la cartella e passare direttamente a tale cartella.
All'interno di questa cartella Documenti condivisi è presente una cartella in cui l'azienda archivia tutti i
report sulle vendite. Questa cartella è denominata Sales Reports. È possibile selezionare il valore
Tabella nella colonna Contenuto per la riga.
Con tutti i file all'interno della cartella Sales Reports, è possibile selezionare il pulsante Combina file
(vedere Panoramica sulla combinazione di file)per combinare i dati di tutti i file in questa cartella in una
singola tabella. In alternativa, è possibile passare direttamente a un singolo file di propria scelta
selezionando il valore Binario nella colonna Contenuto.
NOTE
L'esperienza fornita dalla funzione è ottimale per SharePoint SharePoint.Contents e OneDrive for Business ambienti
con un numero elevato di file.
Mancanza di supporto per Microsoft Graph in
Power Query
07/12/2021 • 2 minutes to read
La connessione alle API REST Graph Microsoft da Power Query non è consigliata o supportata. È invece
consigliabile esplorare soluzioni alternative per il recupero dei dati di analisi in base Graph, ad esempio
Microsoft Graph data connect.
Gli utenti potrebbero scoprire di poter effettuare determinate chiamate REST agli endpoint api di Microsoft
Graph tramite le funzioni o , ma questi approcci non sono affidabili come soluzioni Web.Contents OData.Feed a
lungo termine.
Questo articolo descrive i problemi associati a Microsoft Graph connettività da Power Query e spiega perché
non è consigliabile.
Autenticazione
Il flusso di autenticazione dell'account aziendale predefinito per Power Query e delle funzioni di non è
compatibile con la maggior parte Web.Contents OData.Feed Graph endpoint. In particolare, Power Query client
Azure Active Directory (Azure AD) richiede l'ambito, che non è compatibile con il Graph di sicurezza di
user_impersonation Graph. Graph usa un set completo di autorizzazioni che non sono disponibili tramite i
connettori Web e OData generici.
Anche l'implementazione di flussi di recupero delle credenziali Azure AD personalizzati direttamente dalla query
o usando credenziali hardcoded o incorporate non è consigliata per motivi di sicurezza.
Prestazioni
L'API microsoft Graph è progettata per supportare molti scenari applicativi, ma non è adatta al recupero dati su
larga scala necessario per la maggior parte degli scenari di analisi. Gli utenti che tentano di recuperare grandi
quantità di dati Graph possono riscontrare problemi di prestazioni. Per informazioni dettagliate sull'applicabilità
dello scenario, vedere Graph documentazione.
Anche se Power BI Desktop offre connettività predefinita a più di 150 origini dati, in alcuni casi un utente
potrebbe volersi connettere a un'origine dati per cui non è disponibile alcun connettore out-of-box.
Con Power Query, è possibile connettersi a molte origini dati diverse e trasformare i dati nella forma desiderata.
In questo articolo si apprenderà come creare query con Power Query individuando:
Funzionamento dell'esperienza "Ottieni dati" in Power Query.
Come usare e sfruttare l'interfaccia Power Query utente.
Come eseguire trasformazioni comuni come il raggruppamento e l'unione dei dati.
Se non si ha Power Query, è possibile iscriversi per ottenere una versione di valutazione gratuita Power BI prima
di iniziare. È possibile usare Power BI di dati per provare le Power Query online descritte in questo articolo.
È anche possibile scaricare Power BI Desktop gratuitamente.
Gli esempi in questo articolo si connettono a e usano il feed OData Northwind.
https://services.odata.org/V4/Northwind/Northwind.svc/
Dopo aver selezionato questo connettore, nella schermata vengono visualizzate le impostazioni di connessione
e le credenziali.
Per URL immettere l'URL del feed OData Northwind illustrato nella sezione precedente.
Per il gateway dati locale, lasciare none.
Per Tipo di autenticazione lasciare anonimo.
Selezionare il pulsante Avanti .
Verrà aper to lo strumento di navigazione, in cui è possibile selezionare le tabelle a cui connettersi dall'origine
dati. Selezionare la tabella Customers per caricare un'anteprima dei dati e quindi selezionare Trasforma dati .
La finestra di dialogo carica quindi i dati dalla tabella Customers nell'editor Power Query dati.
L'esperienza precedente per la connessione ai dati, la specifica del metodo di autenticazione e la selezione
dell'oggetto o della tabella specifica a cui connettersi è denominata Esperienza Di recupero dati ed è
documentata con altri dettagli nell'articolo Recupero di dati.
NOTE
Per altre informazioni sul connettore feed OData, vedere Feed OData.
1. Barra multifunzione: l'esperienza di spostamento della barra multifunzione, che offre più schede per
aggiungere trasformazioni, selezionare le opzioni per la query e accedere ai diversi pulsanti della barra
multifunzione per completare varie attività.
2. Riquadro Quer y: visualizzazione di tutte le query disponibili.
3. Visualizzazione corrente: visualizzazione di lavoro principale, che per impostazione predefinita visualizza
un'anteprima dei dati per la query. È anche possibile abilitare la visualizzazione diagramma insieme alla
visualizzazione di anteprima dei dati. È anche possibile passare dalla visualizzazione schema alla
visualizzazione di anteprima dei dati mantenendo la visualizzazione diagramma.
4. Impostazioni quer y : visualizzazione della query attualmente selezionata con informazioni rilevanti, ad
esempio il nome della query, i passaggi della query e vari indicatori.
5. Barra di stato: barra che visualizza informazioni importanti rilevanti sulla query, ad esempio il tempo di
esecuzione, le colonne e le righe totali e lo stato di elaborazione. Questa barra contiene anche pulsanti per
modificare la visualizzazione corrente.
NOTE
La visualizzazione schema e diagramma è attualmente disponibile solo in Power Query Online.
Il lato destro della barra di stato contiene anche icone per il diagramma, i dati e le visualizzazioni dello schema. È
possibile usare queste icone per passare da una visualizzazione all'altra. È anche possibile usare queste icone
per abilitare o disabilitare la visualizzazione desiderata.
L Power Query'interfaccia utente con il riquadro query compresso e la visualizzazione corrente passa alla
visualizzazione
Informazioni sulla visualizzazione schema
La visualizzazione schema offre un modo rapido e semplice per interagire solo con i componenti dello schema
per la tabella, ad esempio i nomi di colonna e i tipi di dati. È consigliabile usare la visualizzazione schema
quando si desidera eseguire azioni correlate allo schema, ad esempio la rimozione di colonne, la
ridenominazione delle colonne, la modifica dei tipi di dati delle colonne, il riordino delle colonne o la
duplicazione delle colonne.
NOTE
Per altre informazioni sulla visualizzazione schema, vedere Uso della visualizzazione Schema.
Ad esempio, nella visualizzazione schema selezionare il segno di spunta accanto alle colonne Orders e
CustomerDemographics e dalla barra multifunzione selezionare l'azione Rimuovi colonne. Questa selezione
applica una trasformazione per rimuovere queste colonne dai dati.
Che cos'è la visualizzazione diagramma
È ora possibile tornare alla visualizzazione di anteprima dei dati e abilitare la visualizzazione diagramma per
visualizzare una prospettiva più visiva dei dati e delle query.
La visualizzazione diagramma consente di visualizzare come è strutturata la query e come potrebbe interagire
con altre query nel progetto. Ogni passaggio della query ha un'icona distinta che consente di riconoscere la
trasformazione usata. Sono anche presenti righe che connettono i passaggi per illustrare le dipendenze. Poiché
sia la visualizzazione di anteprima dei dati che la visualizzazione diagramma sono abilitate, la visualizzazione
diagramma viene visualizzata sopra l'anteprima dei dati.
NOTE
Per altre informazioni sulla visualizzazione diagramma, vedere Vista diagramma.
Viene quindi visualizzata la finestra di dialogo Raggruppa per. È possibile impostare l'operazione
Raggruppa per per raggruppare in base al paese e contare il numero di righe dei clienti per paese.
1. Mantenere selezionato il pulsante di opzione Basic.
2. Selezionare Paese in base a cui raggruppare.
3. Selezionare Customers e Count rows rispettivamente come nome e operazione della colonna.
Selezionare OK per eseguire l'operazione. L'anteprima dei dati viene aggiornata per visualizzare il numero
totale di clienti per paese.
Un modo alternativo per avviare la finestra di dialogo Raggruppa per consiste nell'usare il pulsante Raggruppa
per nella barra multifunzione o facendo clic con il pulsante destro del mouse sulla colonna Paese.
Per praticità, le trasformazioni in Power Query spesso sono accessibili da più posizioni, in modo che gli utenti
possano scegliere di usare l'esperienza preferita.
Selezionare Crea per aggiungere la nuova query all'editor Power Query query. Nel riquadro delle query
verranno ora visualizzate sia la query Customers che la query Suppliers.
Aprire di nuovo la finestra di dialogo Raggruppa per, questa volta selezionando il pulsante Raggruppa per
sulla barra multifunzione nella scheda Trasforma.
Nella finestra di dialogo Raggruppa per impostare l'operazione Raggruppa per per raggruppare in base al
paese e contare il numero di righe fornitore per paese.
1. Mantenere selezionato il pulsante di opzione Basic.
2. Selezionare Countr y to group by (Paese in base a cui eseguire il raggruppamento).
3. Selezionare Suppliers e Count rows rispettivamente come nome e operazione della colonna.
NOTE
Per altre informazioni sulla trasformazione Raggruppa per, vedere Raggruppamento o riepilogo di righe.
Riferimento a query
Ora che sono state eseguite una query per i clienti e una query per i fornitori, l'obiettivo successivo è combinare
queste query in un'unica query. Esistono diversi modi per eseguire questa operazione, tra cui l'uso dell'opzione
Merge nella tabella Customers, la duplicazione di una query o il riferimento a una query. Per questo esempio
si creerà un riferimento facendo clic con il pulsante destro del mouse sulla tabella Customers e scegliendo
Riferimento , che crea in modo efficace una nuova query che fa riferimento alla query Customers.
Dopo aver creato questa nuova query, modificare il nome della query in Countr y Analysis e disabilitare il
caricamento della tabella Customers deselezionando l'opzione Abilita caricamento dalla query Suppliers.
Unione di query
Un'operazione di merge esegue il join di due tabelle esistenti in base ai valori corrispondenti di una o più
colonne. In questo esempio l'obiettivo è unire entrambe le tabelle Customers e Suppliers in una sola tabella
per i paesi che hanno sia Customers che Suppliers .
All'interno della query Country Analysis selezionare l'opzione Merge queries (Unisci query) nella scheda
Home della barra multifunzione.
Verrà visualizzata una nuova finestra di dialogo per l'operazione di unione. È quindi possibile selezionare la
query da unire alla query corrente. Selezionare la query Suppliers e selezionare il campo Countr y da
entrambe le query. Selezionare infine il tipo di inner join, in quanto per questa analisi si vogliono usare solo i
paesi in cui sono disponibili Clienti e Fornitori.
Dopo aver selezionato il pulsante OK, alla query countr y analysis viene aggiunta una nuova colonna
contenente i dati della query Suppliers. Selezionare l'icona accanto al campo Suppliers, in cui viene
visualizzato un menu in cui è possibile selezionare i campi da espandere. Selezionare solo il campo Suppliers
e quindi fare clic sul pulsante OK.
Il risultato di questa operazione di espansione è una tabella con solo 12 righe. Rinominare il campo
Suppliers.Suppliers in Suppliers facendo doppio clic sul nome del campo e immettendo il nuovo nome.
NOTE
Per altre informazioni sulla funzionalità Merge di quer y, vedere Panoramica delle query di merge.
Passaggi applicati
Ogni trasformazione applicata alla query viene salvata come passaggio nella sezione Passaggi applicati del
riquadro Impostazioni query. Se è necessario controllare il modo in cui la query viene trasformata da un
passaggio all'altro, è possibile selezionare un passaggio e visualizzare in anteprima la modalità di risoluzione
della query in quel punto specifico.
È anche possibile fare clic con il pulsante destro del mouse su una query e selezionare l'opzione Proprietà per
modificare il nome della query o aggiungere una descrizione per la query. Ad esempio, fare clic con il pulsante
destro del mouse sul passaggio Merge quer y della query Countr y Analysis e modificare il nome della query
in Merge with Suppliers e la descrizione in Getting data from the Suppliers quer y for Suppliers by
Countr y .
Questa modifica aggiunge una nuova icona accanto al passaggio su cui è possibile passare il mouse per
leggerne la descrizione.
NOTE
Per altre informazioni sui passaggi applicati, vedere Uso dell'elenco Passaggi applicati.
Prima di passare alla sezione successiva, disabilitare la visualizzazione Diagramma per visualizzare solo
l'anteprima dei dati.
Questa modifica crea una nuova colonna denominata Integer-division che è possibile rinominare in Ratio.
Questa modifica è il passaggio finale della query, in quanto è possibile visualizzare il rapporto cliente-fornitore
per i paesi in cui i dati hanno clienti e fornitori.
Riepilogo
In questo articolo è stata creata una serie di query con Power Query che fornisce un'analisi del rapporto cliente-
fornitore a livello di paese per l'azienda Northwind.
Sono stati appresi i componenti dell'interfaccia utente di Power Query, come creare nuove query all'interno
dell'editor di query, fare riferimento a query, unire query, comprendere la sezione passaggi applicati, aggiungere
nuove colonne e usare gli strumenti di profilatura dei dati per comprendere meglio i dati.
Power Query è un potente strumento usato per connettersi a molte origini dati diverse e trasformare i dati nella
forma desiderata. Gli scenari descritti in questo articolo sono esempi che illustrano come gli utenti possono
usare Power Query per trasformare i dati non elaborati in importanti informazioni aziendali utili.
Utilizzo dell'elenco dei passaggi applicati
07/12/2021 • 2 minutes to read
Tutte le trasformazioni ai dati verranno mostrate nell'elenco Passaggi applicati. Ad esempio, se si modifica il
nome della prima colonna, verrà visualizzato nell'elenco Passaggi applicati come Colonne rinominate .
Immettere il nome desiderato e quindi premere INVIO o fare clic all'indietro nel passaggio.
Eliminare un passaggio
Per eliminare un passaggio, fare clic con il pulsante destro del mouse sul passaggio e scegliere Elimina.
In alternativa, selezionare la x accanto al passaggio.
Per inserire un nuovo passaggio intermedio, fare clic con il pulsante destro del mouse su un passaggio e
scegliere Inserisci passaggio dopo . Selezionare quindi Inserisci nella nuova finestra.
Per impostare una trasformazione per il nuovo passaggio, selezionare il nuovo passaggio nell'elenco e
apportare la modifica ai dati. La trasformazione verrà collegata automaticamente al passaggio selezionato.
Sposta passaggio
Per spostare un passaggio verso l'alto di una posizione nell'elenco, fare clic con il pulsante destro del mouse sul
passaggio e scegliere Sposta su.
Per spostare un passaggio verso il basso di una posizione nell'elenco, fare clic con il pulsante destro del mouse
sul passaggio e scegliere Sposta giù.
In alternativa, o per spostare più di una singola posizione, trascinare e rilasciare il passaggio nella posizione
desiderata.
Nella finestra è possibile modificare il nome e la descrizione del passaggio e salvare le modifiche selezionando
OK.
NOTE
L'aggiunta di una descrizione a un passaggio aggiungerà una piccola icona accanto al passaggio per indicare che il
passaggio ha una descrizione. È possibile passare il mouse su questa icona per visualizzare la descrizione come descrizione
comando.
Panoramica della valutazione delle query e del
ripiegamento delle query Power Query
07/12/2021 • 8 minutes to read
Questo articolo offre una panoramica di base del modo in cui le query M vengono elaborate e trasformate in
richieste di origine dati.
TIP
È possibile pensare allo script M come a una ricetta che descrive come preparare i dati.
Il modo più comune per creare uno script M è usare l'editor di Power Query. Ad esempio, quando ci si connette
a un'origine dati, ad esempio un database SQL Server, si noterà sul lato destro dello schermo che è presente una
sezione denominata passaggi applicati. In questa sezione vengono visualizzati tutti i passaggi o le trasformazioni
usati nella query. In questo senso, l'editor di Power Query funge da interfaccia per creare lo script M appropriato
per le trasformazioni che si stanno cercando e garantisce che il codice in uso sia valido.
NOTE
Lo script M viene usato nell'editor Power Query per:
Visualizzare la query come una serie di passaggi e consentire la creazione o la modifica di nuovi passaggi.
Visualizzare una visualizzazione diagramma.
L'immagine precedente evidenzia la sezione passaggi applicati, che contiene i passaggi seguenti:
Source : consente di stabilire la connessione all'origine dati. In questo caso, si tratta di una connessione a un
database SQL Server database.
Navigazione: consente di passare a una tabella specifica nel database.
Rimosse altre colonne: seleziona le colonne della tabella da mantenere.
Righe ordinate: ordina la tabella usando una o più colonne.
Righe principali mantenute: filtra la tabella in modo da mantenere solo un determinato numero di righe
dalla parte superiore della tabella.
Questo set di nomi di passaggio è un modo semplice per visualizzare lo script M Power Query creato
automaticamente. Esistono diversi modi per visualizzare lo script M completo. In Power Query, è possibile
selezionare Editor avanzato nella scheda Visualizza. È anche possibile selezionare Editor avanzato dal
gruppo Quer y nella scheda Home. In alcune versioni di Power Query, è anche possibile modificare la
visualizzazione della barra della formula per visualizzare lo script di query nella scheda Visualizza e nel gruppo
Layout selezionare Script visualizzazione Script Query > .
La maggior parte dei nomi trovati nel riquadro Passaggi applicati viene usata anche come nello script M. I
passaggi di una query vengono denominati usando un elemento denominato identificatori nel linguaggio M. A
volte i caratteri aggiuntivi vengono racchiusi tra i nomi dei passaggi in M, ma questi caratteri non vengono
visualizzati nei passaggi applicati. Un esempio è #"Kept top rows" , che viene categorizzato come identificatore
tra virgolette a causa di questi caratteri aggiuntivi. Un identificatore tra virgolette può essere usato per
consentire l'uso di qualsiasi sequenza di zero o più caratteri Unicode come identificatore, tra cui parole chiave,
spazi vuoti, commenti, operatori e segni di punteggiatura. Per altre informazioni sugli identificatori nel
linguaggio M, vedere struttura lessicale.
Qualsiasi modifica apportata alla query tramite l'editor Power Query aggiornerà automaticamente lo script M
per la query. Ad esempio, se si usa l'immagine precedente come punto di partenza, se si modifica il nome del
passaggio Delle prime righe mantenute in primi 20 righe, questa modifica verrà aggiornata automaticamente
nella visualizzazione script.
Sebbene sia consigliabile usare l'editor di Power Query per creare tutto o la maggior parte dello script M, è
possibile aggiungere o modificare manualmente parti dello script M. Per altre informazioni sulla lingua M,
visitare il sito della documentazione ufficiale per la lingua M.
NOTE
Lo script M, detto anche codice M, è un termine usato per qualsiasi codice che usa il linguaggio M. Nel contesto di questo
articolo, lo script M fa anche riferimento al codice presente all'interno di una query Power Query e accessibile tramite la
finestra dell'editor avanzata o tramite la visualizzazione script nella barra della formula.
1. Lo script M, disponibile all'interno dell'editor avanzato, viene inviato al motore Power Query motore. Sono
incluse anche altre informazioni importanti, ad esempio le credenziali e i livelli di privacy delle origini dati.
2. Power Query determina quali dati devono essere estratti dall'origine dati e invia una richiesta all'origine dati.
3. L'origine dati risponde alla richiesta Power Query trasferendo i dati richiesti Power Query.
4. Power Query riceve i dati in ingresso dall'origine dati ed esegue eventuali trasformazioni usando il motore di
Power Query, se necessario.
5. I risultati derivati dal punto precedente vengono caricati in una destinazione.
NOTE
Mentre questo esempio illustra una query con un database SQL come origine dati, il concetto si applica alle query con o
senza un'origine dati.
Quando Power Query legge lo script M, esegue lo script tramite un processo di ottimizzazione per valutare in
modo più efficiente la query. In questo processo determina quali passaggi (trasformazioni) dalla query possono
essere scaricati nell'origine dati. Determina anche quali altri passaggi devono essere valutati usando Power
Query motore. Questo processo di ottimizzazione è denominato query folding, in cui Power Query tenta di
eseguire il push della maggior parte della possibile esecuzione nell'origine dati per ottimizzare l'esecuzione
della query.
IMPORTANT
Vengono seguite tutte le regole Power Query linguaggio della formula M (noto anche come linguaggio M). In particolare,
la valutazione differita svolge un ruolo importante durante il processo di ottimizzazione. In questo processo Power Query
quali trasformazioni specifiche della query devono essere valutate. Power Query anche quali altre trasformazioni non
devono essere valutate perché non sono necessarie nell'output della query.
Inoltre, quando sono coinvolte più origini, il livello di privacy dei dati di ogni origine dati viene preso in considerazione
durante la valutazione della query. Altre informazioni: Dietro le quinte di Data Privacy Firewall
Il diagramma seguente illustra i passaggi che vengono esersi in questo processo di ottimizzazione.
1. Lo script M, disponibile all'interno dell'editor avanzato, viene inviato al motore Power Query motore.
Vengono fornite anche altre informazioni importanti, ad esempio le credenziali e i livelli di privacy delle
origini dati.
2. Il meccanismo di folding delle query invia richieste di metadati all'origine dati per determinare le funzionalità
dell'origine dati, gli schemi di tabella, le relazioni tra entità diverse nell'origine dati e altro ancora.
3. In base ai metadati ricevuti, il meccanismo di folding delle query determina quali informazioni estrarre
dall'origine dati e quale set di trasformazioni deve essere eseguita all'interno del motore Power Query dati.
Invia le istruzioni ad altri due componenti che si occupano del recupero dei dati dall'origine dati e della
trasformazione dei dati in ingresso nel motore di Power Query, se necessario.
4. Dopo che le istruzioni sono state ricevute dai componenti interni di Power Query, Power Query invia una
richiesta all'origine dati usando una query sull'origine dati.
5. L'origine dati riceve la richiesta dal Power Query e trasferisce i dati al motore Power Query dati.
6. Quando i dati sono all'interno di Power Query, il motore di trasformazione all'interno di Power Query (noto
anche come motore mashup) esegue le trasformazioni che non è stato possibile ripiegare o offcaricare
nell'origine dati.
7. I risultati derivati dal punto precedente vengono caricati in una destinazione.
NOTE
A seconda delle trasformazioni e dell'origine dati usata nello script M, Power Query se verrà eseguito il flusso o il buffer
dei dati in ingresso.
Panoramica della funzionalità di ripiegamento delle query
L'obiettivo della ripiego delle query è eseguire l'offload o il push della valutazione di una query in un'origine
dati in grado di calcolare le trasformazioni della query.
Il meccanismo di folding delle query raggiunge questo obiettivo traducendo lo script M in un linguaggio che
può essere interpretato ed eseguito dall'origine dati. Quindi inserisce la valutazione nell'origine dati e invia il
risultato di tale valutazione Power Query.
Questa operazione offre spesso un'esecuzione di query molto più veloce rispetto all'estrazione di tutti i dati
necessari dall'origine dati e all'esecuzione di tutte le trasformazioni necessarie nel motore Power Query dati.
Quando si usa l'esperienzaottieni dati, Power Query guida l'utente nel processo che consente di connettersi
all'origine dati. In questo caso, Power Query una serie di funzioni nel linguaggio M classificate come funzioni di
accesso ai dati. Queste funzioni specifiche usano meccanismi e protocolli per connettersi all'origine dati usando
un linguaggio comprensibile per l'origine dati.
Tuttavia, i passaggi che seguono nella query sono i passaggi o le trasformazioni che il meccanismo di folding
delle query tenta di ottimizzare. Verifica quindi se possono essere scaricati nell'origine dati anziché essere
elaborati usando il motore Power Query dati.
IMPORTANT
Tutte le funzioni dell'origine dati, comunemente visualizzate come passaggio Origine di una query, esere query sui dati
nell'origine dati nel linguaggio nativo. Il meccanismo di ripiegamento delle query viene utilizzato in tutte le trasformazioni
applicate alla query dopo la funzione dell'origine dati, in modo che possano essere convertite e combinate in una singola
query di origine dati o in tutte le trasformazioni che possono essere scaricate nell'origine dati.
A seconda della struttura della query, il meccanismo di folding delle query può avere tre possibili risultati:
Ripiegamento completo delle query: quando viene eseguito il push di tutte le trasformazioni di query
nell'origine dati e si verifica un'elaborazione minima nel motore Power Query dati.
Ripiegamento parziale delle query: quando è possibile eseguire il push all'origine dati solo di alcune
trasformazioni nella query e non di tutte. In questo caso, nell'origine dati viene eseguito solo un subset delle
trasformazioni e il resto delle trasformazioni di query si verifica nel motore Power Query dati.
Nessuna ripiegamento query: quando la query contiene trasformazioni che non possono essere convertite
nel linguaggio di query nativo dell'origine dati, perché le trasformazioni non sono supportate o il connettore
non supporta la riduplicazione delle query. In questo caso, Power Query i dati non elaborati dall'origine dati
e usa il motore Power Query per ottenere l'output desiderato elaborando le trasformazioni necessarie a
livello di Power Query motore.
NOTE
Il meccanismo di folding delle query è disponibile principalmente nei connettori per le origini dati strutturate, ad esempio,
Microsoft SQL Server feed OData. Durante la fase di ottimizzazione, il motore potrebbe talvolta riordinare i passaggi nella
query.
L'uso di un'origine dati con più risorse di elaborazione e funzionalità di folding delle query può velocizzare i tempi di
caricamento delle query quando l'elaborazione avviene nell'origine dati e non nel motore Power Query dati.
Passaggi successivi
Per esempi dettagliati dei tre possibili risultati del meccanismo di folding delle query, vedere Esempi di folding
delle query.
Esempi di folding delle query
07/12/2021 • 17 minutes to read
Questo articolo fornisce alcuni scenari di esempio per ognuno dei tre possibili risultati per la visualizzazione
delle query. Include anche alcuni suggerimenti su come ottenere il massimo dal meccanismo di ripiegamento
delle query e sull'effetto che può avere nelle query.
Scenario
Imagine uno scenario in cui, usando il database Wide World Importersper il database Azure Synapse Analytics
SQL , si ha l'attività di creazione di una query in Power Query che si connette alla tabella e recupera le ultime 10
vendite con solo i fact_Sale campi seguenti:
Chiave di vendita
Customer Key
Chiave data fattura
Descrizione
Quantità
NOTE
A scopo dimostrativo, questo articolo usa il database descritto nell'esercitazione sul caricamento del database Wide World
Importers in Azure Synapse Analytics. La differenza principale in questo articolo è che la tabella contiene solo dati per
l'anno 2000, per un totale di fact_Sale 3.644.356 righe.
Anche se i risultati potrebbero non corrispondere esattamente ai risultati ottenuti seguendo l'esercitazione riportata nella
documentazione di Azure Synapse Analytics, l'obiettivo di questo articolo è illustrare i concetti di base e l'impatto che la
funzionalità di folding delle query può avere nelle query.
Questo articolo illustra tre modi per ottenere lo stesso output con diversi livelli di ripiegamento delle query:
Nessuna ripiegamento delle query
Ripiegamento parziale delle query
Ripiegamento completo delle query
Dopo la connessione al database e l'esplorazione della tabella, selezionare la trasformazione Mantieni righe in
basso disponibile nel gruppo Riduci righe fact_Sale della scheda Home.
Dopo aver selezionato questa trasformazione, viene visualizzata una nuova finestra di dialogo. In questa nuova
finestra di dialogo è possibile immettere il numero di righe che si desidera mantenere. In questo caso immettere
il valore 10 e quindi selezionare OK.
TIP
In questo caso, l'esecuzione di questa operazione restituisce il risultato delle ultime dieci vendite. Nella maggior parte degli
scenari è consigliabile fornire una logica più esplicita che definisce le righe considerate ultime applicando un'operazione di
ordinamento sulla tabella.
Selezionare quindi la trasformazione Scegli colonne disponibile nel gruppo Gestisci colonne della scheda
Home. È quindi possibile selezionare le colonne da mantenere dalla tabella e rimuovere le altre.
Infine, nella finestra di dialogo Scegli colonne selezionare le colonne , , , e e quindi selezionare Sale Key
Customer Key Invoice Date Key Description Quantity OK.
let
Source = Sql.Database(ServerName, DatabaseName),
Navigation = Source{[Schema = "wwi", Item = "fact_Sale"]}[Data],
#"Kept bottom rows" = Table.LastN(Navigation, 10),
#"Choose columns" = Table.SelectColumns(#"Kept bottom rows", {"Sale Key", "Customer Key", "Invoice Date
Key", "Description", "Quantity"})
in
#"Choose columns""
Per la valutazione, questa query doveva scaricare tutte le righe e i campi dalla fact_Sale tabella. Questa query
ha richiesto in media 3 minuti e 4 secondi per l'elaborazione in un'istanza standard di flussi di dati Power BI (che
rappresenta la valutazione e il caricamento dei dati nei flussi di dati).
A questo punto si crea la logica che ordina la tabella in modo che abbia le ultime vendite nella parte inferiore
della tabella. Selezionare la Sale Key colonna, ovvero la chiave primaria e la sequenza incrementale o l'indice
della tabella. Ordinare la tabella usando solo questo campo in ordine crescente dal menu di scelta rapida per la
colonna.
Selezionare quindi il menu contestuale della tabella e scegliere la trasformazione Mantieni righe in basso.
let
Source = Sql.Database(ServerName, DatabaseName),
Navigation = Source{[Schema = "wwi", Item = "fact_Sale"]}[Data],
#"Choose columns" = Table.SelectColumns(Navigation, {"Sale Key", "Customer Key", "Invoice Date Key",
"Description", "Quantity"}),
#"Sorted rows" = Table.Sort(#"Choose columns", {{"Sale Key", Order.Ascending}}),
#"Kept bottom rows" = Table.LastN(#"Sorted rows", 10)
in
#"Kept bottom rows"
Esempio di folding parziale delle query: Informazioni sulla valutazione della query
Controllando il riquadro dei passaggi applicati, si noterà che gli indicatori di ripiegamento dei passaggi
mostrano che l'ultima trasformazione aggiunta, , è contrassegnata come un passaggio che verrà valutato
all'esterno dell'origine dati o, in altre parole, dal motore Kept bottom rows Power Query.
È possibile fare clic con il pulsante destro del mouse sull'ultimo passaggio della query, quello denominato , e
selezionare l'opzione Piano di query per comprendere meglio come valutare Kept bottom rows la query.
Ogni casella nell'immagine precedente è denominata nodo. Un nodo rappresenta ogni processo che deve essere
eseguita (da sinistra a destra) per la valutazione della query. Alcuni di questi nodi possono essere valutati
nell'origine dati, mentre altri, ad esempio il nodo per , rappresentato dal passaggio Righe inferiore mantenute,
vengono valutati usando il motore Power Query Table.LastN dati.
Per visualizzare la richiesta esatta inviata all'origine dati, selezionare Visualizza dettagli nel Value.NativeQuery
nodo.
Questa richiesta si trova nella lingua nativa dell'origine dati. In questo caso, tale lingua è SQL e questa istruzione
rappresenta una richiesta per tutte le righe, con solo i campi richiesti della tabella ordinati in base fact_Sale al
Sale Key campo.
La consulenza di questa richiesta di origine dati consente di comprendere meglio la storia che il piano di query
completo tenta di trasmettere. L'ordine dei nodi è un processo sequenziale che inizia richiedendo i dati
dall'origine dati:
Sql.Database : si connette al database e invia richieste di metadati per comprenderne le funzionalità.
Value.NativeQuery : rappresenta la richiesta generata dal Power Query per soddisfare la query. Power Query
invia le richieste di dati in un'istruzione SQL nativa all'origine dati. In questo caso, che rappresenta tutti i
record, con solo i campi richiesti della tabella nel database ordinati in ordine crescente fact_Sale in base al
Sales Key campo.
Table.LastN : dopo Power Query tutti i record dalla tabella, usa il motore Power Query per filtrare la tabella e
mantenere solo le fact_Sale ultime 10 righe.
Per la valutazione, questa query doveva scaricare tutte le righe e solo i campi obbligatori dalla fact_Sale
tabella. L'elaborazione di una media di 3 minuti e 4 secondi in un'istanza standard di flussi di dati Power BI ( che
rappresenta la valutazione e il caricamento dei dati nei flussi di dati).
A questo punto si crea la logica per ordinare la tabella in modo da avere le ultime vendite nella parte superiore
della tabella. Consente di Sale Key selezionare la colonna, ovvero la chiave primaria e la sequenza incrementale
o l'indice della tabella. Ordinare la tabella solo usando questo campo in ordine decrescente dal menu di scelta
rapida per la colonna.
Selezionare quindi il menu di scelta rapida della tabella e scegliere la trasformazione Mantieni le prime
righe.
let
Source = Sql.Database(ServerName, DatabaseName),
Navigation = Source{[Schema = "wwi", Item = "fact_Sale"]}[Data],
#"Choose columns" = Table.SelectColumns(Navigation, {"Sale Key", "Customer Key", "Invoice Date Key",
"Description", "Quantity"}),
#"Sorted rows" = Table.Sort(#"Choose columns", {{"Sale Key", Order.Descending}}),
#"Kept top rows" = Table.FirstN(#"Sorted rows", 10)
in
#"Kept top rows"
Esempio di folding completo della query: Informazioni sulla valutazione della query
Quando si controlla il riquadro dei passaggi applicati, si noterà che gli indicatori di folding dei passaggi
mostrano che le trasformazioni aggiunte, scegliere le colonne , le righe ordinate e le righe principali mantenute
sono contrassegnate come passaggi che verranno valutati nell'origine dati.
È possibile fare clic con il pulsante destro del mouse sull'ultimo passaggio della query, denominato Righe
principali mantenute , e selezionare l'opzione Piano di quer y .
Questa richiesta è nel linguaggio nativo dell'origine dati. In questo caso, tale lingua è SQL e questa istruzione
rappresenta una richiesta per tutte le righe e i campi della fact_Sale tabella.
Consultando questa query sull'origine dati è possibile comprendere meglio la storia che il piano di query
completo tenta di comunicare:
Sql.Database : si connette al database e invia richieste di metadati per comprenderne le funzionalità.
Value.NativeQuery : rappresenta la richiesta generata dal Power Query per soddisfare la query. Power Query
invia le richieste di dati in un'istruzione SQL nativa all'origine dati. In questo caso, rappresenta una richiesta
solo per i primi 10 record della tabella, con solo i campi obbligatori dopo l'ordinamento decrescente usando
fact_Sale il Sale Key campo .
NOTE
Anche se non è disponibile alcuna clausola che può essere usata per selezionare le prime righe di una tabella nel
linguaggio T-SQL, esiste una clausola TOP che recupera le prime righe di una tabella.
Per la valutazione, questa query scarica solo 10 righe, con solo i campi richiesti dalla fact_Sale tabella.
L'elaborazione di questa query ha richiesto in media 31 secondi in un'istanza standard di flussi di dati Power BI (
che rappresenta la valutazione e il caricamento dei dati nei flussi di dati).
ESEM P IO ET IC H ET TA T EM P O IN SEC O N DI
Spesso una query che si rilasci completamente all'origine dati supera le prestazioni di query simili che non si
rilascino completamente all'origine dati. Questo può essere il motivo per cui questo è il caso. Questi motivi
vanno dalla complessità delle trasformazioni eseguite dalla query alle ottimizzazioni delle query implementate
nell'origine dati, ad esempio indici, elaborazione dedicata e risorse di rete. Esistono comunque due processi
chiave specifici che la riduzione delle query tenta di usare per ridurre al minimo l'impatto di entrambi i processi
con Power Query:
Dati in transito
Trasformazioni eseguite dal motore Power Query
Le sezioni seguenti illustrano l'effetto di questi due processi nelle query indicate in precedenza.
Dati in transito
Quando viene eseguita una query, tenta di recuperare i dati dall'origine dati come uno dei primi passaggi. I dati
recuperati dall'origine dati sono definiti dal meccanismo di definizione della query. Questo meccanismo
identifica i passaggi della query che possono essere scaricati nell'origine dati.
Nella tabella seguente viene elencato il numero di righe richieste dalla fact_Sale tabella del database . La
tabella include anche una breve descrizione dell'istruzione SQL inviata per richiedere tali dati dall'origine dati.
Quando si richiedono dati da un'origine dati, l'origine dati deve calcolare i risultati per la richiesta e quindi
inviare i dati al richiedente. Anche se le risorse di calcolo sono già state menzionate, le risorse di rete per lo
spostamento dei dati dall'origine dati a Power Query e quindi Power Query essere in grado di ricevere i dati in
modo efficace e prepararli per le trasformazioni che verranno esercite in locale possono richiedere tempo a
seconda delle dimensioni dei dati.
Per gli esempi presentati, Power Query è stato necessario richiedere più di 3,6 milioni di righe dall'origine dati
per gli esempi di query di tipo no query folding e partial query folding. Per l'esempio completo di folding della
query, sono richieste solo 10 righe. Per i campi richiesti, l'esempio no query folding ha richiesto tutti i campi
disponibili dalla tabella. Sia la query parziale che l'intero esempio di definizione della query hanno inviato solo
una richiesta per i campi necessari.
Cau t i on
P O W ER Q UERY N O DI DI
ESEM P IO ET IC H ET TA T RA SF O RM A Z IO N E DEL M OTO RE
Per gli esempi presentati in questo articolo, l'esempio completo di trasformazione della query non richiede
l'esecuzione di trasformazioni all'interno del motore Power Query perché la tabella di output richiesta proviene
direttamente dall'origine dati. Al contrario, le altre due query richiedono che alcuni calcoli avvengano Power
Query motore. A causa della quantità di dati che devono essere elaborati da queste due query, il processo per
questi esempi richiede più tempo rispetto all'esempio di compilazione della query completa.
Le trasformazioni possono essere raggruppate nelle categorie seguenti:
Analisi completa Operatori che devono raccogliere tutte le righe prima che i
dati possano passare all'operatore successivo nella catena.
Ad esempio, per ordinare i dati, Power Query necessario
raccogliere tutti i dati. Altri esempi di operatori di analisi
completa Table.Group sono Table.NestedJoin , e
Table.Pivot .
TIP
Anche se non tutte le trasformazioni sono le stesse dal punto di vista delle prestazioni, nella maggior parte dei casi è in
genere meglio avere un numero inferiore di trasformazioni.
Considerazioni e suggerimenti
Seguire le procedure consigliate per la creazione di una nuova query, come indicato in Procedure consigliate
in Power Query.
Usare gli indicatori di folding dei passaggi per verificare quali passaggi impediscono la ripiegamento della
query. Riordinarli se necessario per aumentare la fase di ordinamento.
Usare il piano di query per determinare le trasformazioni in corso nel motore Power Query per un
particolare passaggio. Provare a modificare la query esistente riorganendo i passaggi. Controllare quindi di
nuovo il piano di query dell'ultimo passaggio della query e verificare se il piano di query ha un aspetto
migliore rispetto a quello precedente. Ad esempio, il nuovo piano di query ha meno nodi rispetto a quello
precedente e la maggior parte dei nodi è "Streaming" e non "analisi completa". Per le origini dati che
supportano la folding, tutti i nodi del piano di query diversi da e i nodi di accesso all'origine dati
rappresentano trasformazioni Value.NativeQuery che non sono stati rilevati.
Quando disponibile, è possibile usare l'opzione Visualizza query nativa (o Visualizza quer y origine dati ) per
assicurarsi che la query possa essere rilevata nell'origine dati. Se questa opzione è disabilitata per il
passaggio e si usa un'origine che in genere la abilita, è stato creato un passaggio che interrompe la
visualizzazione della query. Se si usa un'origine che non supporta questa opzione, è possibile fare
affidamento sugli indicatori di folding dei passaggi e sul piano di query.
Usare gli strumenti di diagnostica delle query per comprendere meglio le richieste inviate all'origine dati
quando sono disponibili funzionalità di configurazione delle query per il connettore.
Quando si combinano dati provenienti dall'uso di più connettori, Power Query tenta di eseguire il push del
maggior lavoro possibile per entrambe le origini dati, rispettando al tempo stesso i livelli di privacy definiti
per ogni origine dati.
Leggere l'articolo sui livelli di privacy per proteggere l'esecuzione delle query da un errore del firewall sulla
privacy dei dati.
Usare altri strumenti per controllare la visualizzazione della query dal punto di vista della richiesta ricevuta
dall'origine dati. In base all'esempio riportato in questo articolo, è possibile usare Microsoft SQL Server
Profiler per controllare le richieste inviate Power Query e ricevute dal Microsoft SQL Server.
Se si aggiunge un nuovo passaggio a una query completamente concisa e anche il nuovo passaggio si rilevi,
Power Query potrebbe inviare una nuova richiesta all'origine dati anziché usare una versione memorizzata
nella cache del risultato precedente. In pratica, questo processo può comportare operazioni apparentemente
semplici su una piccola quantità di dati che richiede più tempo del previsto per l'aggiornamento
nell'anteprima. Questo aggiornamento più lungo è dovuto Power Query eseguire di nuovo una query
sull'origine dati anziché utilizzare una copia locale dei dati.
Utilizzo degli strumenti di profilatura dei dati
07/12/2021 • 2 minutes to read
Gli strumenti di profilatura dei dati offrono modi nuovi e intuitivi per pulire, trasformare e comprendere i dati in
editor di Power Query. e comprendono:
Colonna qualità
Colonna distribuzione
Profilo colonna
Per abilitare gli strumenti di profilatura dei dati, passare alla scheda Visualizza sulla barra multifunzione.
Abilitare le opzioni desiderate nel gruppo Anteprima dati, come illustrato nell'immagine seguente.
Dopo aver abilitato le opzioni, verrà visualizzata un'immagine simile alla seguente in editor di Power Query.
NOTE
Per impostazione predefinita, Power Query la profilatura dei dati nelle prime 1.000 righe dei dati. Per fare in modo che
funzioni sull'intero set di dati, controllare l'angolo inferiore sinistro della finestra dell'editor per modificare la modalità di
esecuzione della profilatura delle colonne.
Colonna qualità
La funzionalità di qualità della colonna etichetta i valori in righe in cinque categorie:
Valido, visualizzato in verde.
Errore , visualizzato in rosso.
Vuoto, visualizzato in grigio scuro.
Sconosciuto, visualizzato in verde tratteggiato. Indica quando sono presenti errori in una colonna, la
qualità dei dati rimanenti è sconosciuta.
Errore imprevisto, visualizzato in rosso tratteggiato.
Questi indicatori vengono visualizzati direttamente sotto il nome della colonna come parte di un piccolo grafico
a barre, come illustrato nell'immagine seguente.
Anche il numero di record in ogni categoria di qualità della colonna viene visualizzato come percentuale.
Passando il puntatore del mouse su una delle colonne, viene visualizzata la distribuzione numerica della qualità
dei valori in tutta la colonna. Inoltre, selezionando il pulsante con i puntini di sospensione (...) vengono
visualizzati alcuni pulsanti di azione rapida per le operazioni sui valori.
Colonna distribuzione
Questa funzionalità fornisce un set di oggetti visivi sotto i nomi delle colonne che illustrano la frequenza e la
distribuzione dei valori in ognuna delle colonne. I dati in queste visualizzazioni vengono ordinati in ordine
decrescente rispetto al valore con la frequenza più alta.
Passando il puntatore del mouse sui dati di distribuzione in una delle colonne, si ottengono informazioni sui dati
complessivi nella colonna (con conteggio distinct e valori univoci). È anche possibile selezionare il pulsante con i
puntini di sospensione e scegliere da un menu di operazioni disponibili.
Profilo colonna
Questa funzionalità offre un'analisi più approfondita dei dati in una colonna. Oltre all'istogramma di
distribuzione, contiene un istogramma di statistiche. Queste informazioni vengono visualizzate sotto la sezione
di anteprima dei dati, come illustrato nell'immagine seguente.
Copiare i dati
Nell'angolo superiore destro delle sezioni statistiche colonna e distribuzione dei valori è possibile selezionare il
pulsante con i puntini di sospensione (...) per visualizzare un menu di scelta rapida Copia. Selezionarlo per
copiare negli Appunti i dati visualizzati in una delle due sezioni.
In Power Query verranno create molte query diverse. Indipendentemente dal recupero di dati da molte tabelle o
dalla duplicazione della query originale, il numero di query aumenta.
Si usa il riquadro Quer y per spostarsi tra le query.
NOTE
Alcune azioni nell'editor Power Query Online possono essere diverse da quelle nell'editor Power Query Desktop. Queste
differenze verranno notate in questo articolo.
Per essere più completi, verranno toccate tutte le azioni del menu di scelta rapida rilevanti per entrambe.
Rinominare una query
Per modificare direttamente il nome della query, fare doppio clic sul nome della query. Questa azione consentirà
di modificare immediatamente il nome.
Altre opzioni per rinominare la query sono:
Passare al menu di scelta rapida e selezionare Rinomina .
Passare a Quer y Impostazioni immettere un nome diverso nel campo di input Nome.
Copiare e incollare
Copia e incolla può essere usato quando si dispone di una query copiata da inserire nell Power Query editor.
NOTE
Per altre informazioni su come copiare e incollare query in Power Query, vedere Condivisione di una query.
Per essere più completi, verranno descritte ancora una volta tutte le azioni del menu di scelta rapida rilevanti per
entrambe.
Nuova query
È possibile importare dati nell'editor Power Query come opzione dal menu di scelta rapida.
Questa opzione funziona come la funzionalità Ottieni dati.
NOTE
Per informazioni su come ottenere dati in Power Query, vedere Recupero di dati
Unire query
Quando si seleziona l'opzione Merge queries (Unisci query) dal menu di scelta rapida, viene visualizzata la
schermata di input Merge queries (Unisci query).
Questa opzione funziona come la funzionalità Merge quer y disponibile sulla barra multifunzione e in altre aree
dell'editor.
NOTE
Per altre informazioni su come usare la funzionalità Merge di quer y, vedere Panoramica delle query di merge.
Nuovo parametro
Quando si seleziona l'opzione Nuovo parametro dal menu di scelta rapida, viene visualizzata la schermata
Di input nuovo parametro.
Questa opzione funziona come la funzionalità Nuovo parametro disponibile sulla barra multifunzione.
NOTE
Per altre informazioni sui parametri in Power Quer y, vedere Uso dei parametri.
Nuovo gruppo
È possibile creare cartelle e spostare le query all'interno e all'interno delle cartelle per scopi organizzativi.
Queste cartelle sono denominate gruppi.
Per spostare la query in un gruppo, aprire il menu di scelta rapida nella query specifica.
Nel menu selezionare Sposta nel gruppo .
Selezionare quindi il gruppo in cui si vuole inserire la query.
Lo spostamento sarà simile all'immagine seguente. Usando la stessa procedura descritta in precedenza, è anche
possibile spostare la query fuori dal gruppo selezionando Quer y (radice) o un altro gruppo.
Nelle versioni desktop di Power Query, è anche possibile trascinare e rilasciare le query nelle cartelle.
Vista diagramma
07/12/2021 • 13 minutes to read
La visualizzazione diagramma offre un modo visivo per preparare i dati nell Power Query editor. Con questa
interfaccia è possibile creare facilmente query e visualizzare il processo di preparazione dei dati. La
visualizzazione diagramma semplifica l'esperienza di introduzione a data wrangling. Velocizza il processo di
preparazione dei dati e consente di comprendere rapidamente il flusso di dati, sia la "visualizzazione generale"
del modo in cui le query sono correlate che la "visualizzazione dettagliata" dei passaggi specifici di preparazione
dei dati in una query.
Questo articolo offre una panoramica delle funzionalità fornite dalla visualizzazione diagramma.
Questa funzionalità viene abilitata selezionando Vista diagramma nella scheda Visualizza della barra
multifunzione. Con la vista diagramma abilitata, il riquadro dei passaggi e il riquadro delle query verranno
compressi.
NOTE
Attualmente, la vista diagramma è disponibile solo in Power Query Online.
Eseguendo una ricerca e selezionando la trasformazione dal menu di scelta rapida, il passaggio viene aggiunto
alla query, come illustrato nell'immagine seguente.
NOTE
Per altre informazioni su come creare query nell'editor di query usando la barra multifunzione dell'editor di Power Query o
l'anteprima dei dati, vedere Power Query Guida introduttiva.
È possibile eseguire altre azioni a livello di query, ad esempio duplicazione, riferimento e così via, selezionando il
menu di scelta rapida a livello di query (i tre punti verticali). È anche possibile fare clic con il pulsante destro del
mouse nella query e accedere allo stesso menu di scelta rapida.
Espandere o comprimere la query
Per espandere o comprimere una query, fare clic con il pulsante destro del mouse nella query e scegliere
Espandi/Comprimi dal menu di scelta rapida della query. È anche possibile fare doppio clic nella query per
espandere o comprimere una query.
query di eliminazione
Per eliminare una query, fare clic con il pulsante destro del mouse su una query e scegliere Elimina dal menu
di scelta rapida. Verrà visualizzato un popup aggiuntivo per confermare l'eliminazione.
Rinominare la query
Per rinominare una query, fare clic con il pulsante destro del mouse su una query e scegliere Rinomina dal
menu di scelta rapida.
Abilita caricamento
Per assicurarsi che i risultati forniti dalla query siano disponibili per l'uso downstream, ad esempio la creazione
di report, per impostazione predefinita l'opzione Abilita caricamento è impostata su true. Nel caso in cui sia
necessario disabilitare il caricamento per una determinata query, fare clic con il pulsante destro del mouse in
una query e scegliere Abilita caricamento. Le query in cui Abilita caricamento è impostato su false
verranno visualizzate con un contorno grigio.
Duplicare
Per creare una copia di una determinata query, fare clic con il pulsante destro del mouse nella query e scegliere
Duplica. Nella vista diagramma verrà visualizzata una nuova query duplicata.
Riferimento
Facendo riferimento a una query verrà creata una nuova query. La nuova query userà i passaggi della query
precedente senza dover duplicare la query. Inoltre, tutte le modifiche apportate alla query originale verranno
trasferite alla query a cui si fa riferimento. Per fare riferimento a una query, fare clic con il pulsante destro del
mouse nella query e scegliere Riferimento .
Sposta nel gruppo
È possibile creare cartelle e spostare le query in queste cartelle per scopi organizzativi. Queste cartelle sono
denominate gruppi. Per spostare una determinata query in un gruppo di query, fare clic con il pulsante destro
del mouse in una query e scegliere Sposta nel gruppo . È possibile scegliere di spostare le query in un
gruppo esistente o creare un nuovo gruppo di query.
È possibile visualizzare i gruppi di query sopra la casella della query nella vista diagramma.
Creare una funzione
Quando è necessario applicare lo stesso set di trasformazioni in query o valori diversi, la creazione di funzioni
Power Query personalizzate può essere utile. Per altre informazioni sulle funzioni personalizzate, vedere Uso
delle funzioni personalizzate. Per convertire una query in una funzione riutilizzabile, fare clic con il pulsante
destro del mouse su una determinata query e scegliere Crea funzione.
Converti in parametro
Un parametro offre la flessibilità necessaria per modificare dinamicamente l'output delle query in base al
relativo valore e promuovere la riusabilità. Per convertire un valore non strutturato, ad esempio data, testo,
numero e così via, fare clic con il pulsante destro del mouse nella query e scegliere Conver ti in parametro.
NOTE
Per altre informazioni sui parametri, vedere Power Query parametri.
Editor avanzato
Con l'editor avanzato è possibile visualizzare il codice che Power Query'editor crea con ogni passaggio. Per
visualizzare il codice per una determinata query, fare clic con il pulsante destro del mouse nella query e
scegliere Editor avanzato .
NOTE
Per altre informazioni sul codice usato nell'editor avanzato, vedere Power Query specifica del linguaggio M.
Modificare il nome e la descrizione della query
Per modificare il nome di una query o aggiungere una descrizione, fare clic con il pulsante destro del mouse su
una query e scegliere Proprietà .
Verrà visualizzata una finestra di dialogo in cui è possibile modificare il nome della query o aggiungere o
modificare la descrizione della query.
Le query con descrizione della query avranno un affordance (icona i). È possibile visualizzare la descrizione
della query passando il puntatore del mouse accanto al nome della query.
Accoda query/Accoda query come nuove
Per aggiungere o eseguire un'unione di query, fare clic con il pulsante destro del mouse su una query e scegliere
Accoda quer y . Verrà visualizzata la finestra di dialogo Accoda in cui è possibile aggiungere altre tabelle alla
query corrente. Accoda quer y come nuove visualizza anche la finestra di dialogo Accoda , ma consente di
accodare più tabelle in una nuova query.
NOTE
Per altre informazioni su come accodare query in Power Query, vedere Aggiungere query.
È anche possibile eseguire azioni a livello di passaggio passando il puntatore del mouse sul passaggio e
selezionando i puntini di sospensione (tre punti verticali).
Modificare impostazioni
Per modificare le impostazioni a livello di passaggio, fare clic con il pulsante destro del mouse sul passaggio e
scegliere Modifica impostazioni . In alternativa, è possibile fare doppio clic sul passaggio (con le
impostazioni del passaggio) e accedere direttamente alla finestra di dialogo delle impostazioni. Nella finestra di
dialogo delle impostazioni è possibile visualizzare o modificare le impostazioni a livello di passaggio. Ad
esempio, l'immagine seguente mostra la finestra di dialogo delle impostazioni per il passaggio Dividi colonna.
Passaggio Rinomina
Per rinominare un passaggio, fare clic con il pulsante destro del mouse sul passaggio e scegliere Rinomina .
Questa azione apre la finestra di dialogo Proprietà passaggio. Immettere il nome desiderato e quindi
selezionare OK.
Eliminare un passaggio
Per eliminare un passaggio, fare clic con il pulsante destro del mouse sul passaggio e scegliere Elimina. Per
eliminare una serie di passaggi fino alla fine, fare clic con il pulsante destro del mouse sul passaggio e scegliere
Elimina fino alla fine.
Estrai precedente
Per estrarre tutti i passaggi precedenti in una nuova query, fare clic con il pulsante destro del mouse sul primo
passaggio che non si vuole includere nella query e quindi scegliere Estrai precedente.
È anche possibile accedere al menu di scelta rapida a livello di passaggio passando il puntatore del mouse sul
passaggio e selezionando i puntini di sospensione (tre punti verticali).
Verrà visualizzata una finestra di dialogo in cui è possibile aggiungere la descrizione del passaggio. Questa
descrizione del passaggio sarà utile quando si torna alla stessa query dopo alcuni giorni o quando si
condividono le query o i flussi di dati con altri utenti.
Passando il puntatore del mouse su ogni passaggio, è possibile visualizzare una chiamata che mostra l'etichetta
del passaggio, il nome del passaggio e le descrizioni dei passaggi aggiunti.
Selezionando ogni passaggio, è possibile visualizzare l'anteprima dei dati corrispondente per tale passaggio.
È anche possibile espandere o comprimere una query selezionando le azioni a livello di query dal menu di scelta
rapida della query.
Per espandere o comprimere tutte le query, selezionare il pulsante Espandi tutto/Comprimi tutto accanto alle
opzioni di layout nel riquadro della visualizzazione diagramma.
È anche possibile fare clic con il pulsante destro del mouse su qualsiasi spazio vuoto nel riquadro della
visualizzazione diagramma e visualizzare un menu di scelta rapida per espandere tutte le query o comprimervi
tutte.
In modalità compressa è possibile esaminare rapidamente i passaggi della query passando il puntatore del
mouse sul numero di passaggi nella query. È possibile selezionare questi passaggi per passare al passaggio
specifico all'interno della query.
Opzioni di layout
Nella visualizzazione diagramma sono disponibili quattro opzioni di layout: zoom indietro, zoom avanti,
schermo intero, adatta alla visualizzazione e reimpostazione.
Zoom indietro/zoom avanti
Con questa opzione è possibile regolare il livello di zoom e fare zoom indietro o zoom avanti per visualizzare
tutte le query nella vista diagramma.
Schermo intero
Con questa opzione è possibile visualizzare tutte le query e le relative relazioni tramite la modalità schermo
intero. Il riquadro della visualizzazione diagramma si espande a schermo intero e il riquadro di anteprima dei
dati, il riquadro query e il riquadro dei passaggi rimangono compressi.
Reset
Con questa opzione è possibile reimpostare il livello di zoom al 100% e anche ripristinare l'angolo superiore
sinistro del riquadro.
Visualizzare le relazioni tra query
Per visualizzare tutte le query correlate per una determinata query, selezionare il pulsante Evidenzia quer y
correlate. Ad esempio, selezionando il pulsante evidenzia query correlate nella query Top US Customers
(Clienti principali stati Uniti), le query Customers e Orders vengono evidenziate, come illustrato nell'immagine
seguente.
È anche possibile selezionare l'dongle a sinistra di una determinata query per visualizzare le query di
riferimento dirette e indirette.
Analogamente, è possibile selezionare l'dongle destro per visualizzare le query dipendenti dirette e indirette.
È anche possibile passare il mouse sull'icona del collegamento sotto un passaggio per visualizzare un callout
che mostra le relazioni tra query.
È possibile modificare le impostazioni della vista diagramma per visualizzare i nomi dei passaggi in modo che
corrispondano ai passaggi applicati all'interno del riquadro impostazioni quer y.
Visualizzazione compatta
Quando sono presenti query con più passaggi, può essere difficile scorrere orizzontalmente per visualizzare tutti
i passaggi all'interno del viewport.
Per risolvere questo problema, la vista diagramma offre la visualizzazione Compatta, che comprime i passaggi
dall'alto verso il basso anziché da sinistra a destra. Questa vista può essere particolarmente utile quando si
dispone di query con più passaggi, in modo da poter visualizzare il maggior numero possibile di query
all'interno del viewport.
Per abilitare questa visualizzazione, passare alle impostazioni della visualizzazione diagramma e selezionare
Visualizzazione compatta all'interno della scheda Visualizza della barra multifunzione.
È anche possibile espandere o comprimere le query correlate dal menu di scelta rapida a livello di query.
Ridenominazione inline
È possibile fare doppio clic sul nome della query per rinominare la query.
Facendo doppio clic sul nome del passaggio è possibile rinominare il passaggio, a condizione che l'impostazione
della vista diagramma mostri i nomi dei passaggi.
Quando le etichette dei passaggi vengono visualizzate nella visualizzazione diagramma, facendo doppio clic
sull'etichetta del passaggio viene visualizzata la finestra di dialogo per rinominare il nome del passaggio e
fornire una descrizione.
Accessibilità
La visualizzazione diagramma supporta funzionalità di accessibilità come la navigazione tramite tastiera, la
modalità a contrasto elevato e il supporto dell'utilità per la lettura dello schermo. Nella tabella seguente
vengono descritti i tasti di scelta rapida disponibili nella visualizzazione diagramma. Per altre informazioni sui
tasti di scelta rapida disponibili in Power Query Online, vedere tasti di scelta rapida in Power Query.
Spostare lo stato attivo dal livello di query al livello di ALT+tasto freccia GIÙ
passaggio
La vista schema è progettata per ottimizzare il flusso quando si lavora su operazioni a livello di schema
inserendo le informazioni sulle colonne della query in primo piano e al centro. La visualizzazione schema offre
interazioni contestuali per modellare la struttura dei dati e operazioni di latenza più basse perché richiede solo il
calcolo dei metadati della colonna e non i risultati completi dei dati.
Questo articolo illustra la visualizzazione dello schema e le funzionalità offerte.
NOTE
La funzionalità visualizzazione schema è disponibile solo per Power Query Online.
Panoramica
Quando si lavora su set di dati con molte colonne, le attività semplici possono diventare estremamente
complicate perché anche trovare la colonna destra scorrendo orizzontalmente e analizzando tutti i dati è
inefficiente. La visualizzazione Schema visualizza le informazioni sulle colonne in un elenco facile da analizzare e
con cui interagire, rendendo più semplice che mai lavorare sullo schema.
Oltre a un'esperienza ottimizzata di gestione delle colonne, un altro vantaggio chiave della visualizzazione
schema è che le trasformazioni tendono a produrre risultati più velocemente. Questi risultati sono più veloci
perché questa vista richiede solo il calcolo delle informazioni sulle colonne anziché un'anteprima dei dati.
Pertanto, anche l'uso di query con esecuzione di lunga durata con poche colonne può trarre vantaggio dall'uso
della vista schema.
È possibile attivare la visualizzazione schema selezionando Visualizzazione schema nella scheda Visualizza .
Quando si è pronti per lavorare di nuovo sui dati, è possibile selezionare Vista dati per tornare indietro.
Riordinamento delle colonne
Un'attività comune quando si lavora allo schema è il riordinamento delle colonne. In Visualizzazione schema
questa operazione può essere eseguita facilmente trascinando le colonne nell'elenco e rilasciandole nella
posizione corretta fino a ottenere l'ordine desiderato per le colonne.
Applicazione di trasformazioni
Per modifiche più avanzate allo schema, è possibile trovare le trasformazioni a livello di colonna più usate
direttamente nell'elenco e nella scheda Strumenti schema. È anche possibile usare le trasformazioni disponibili
in altre schede della barra multifunzione.
Condividere una query
07/12/2021 • 2 minutes to read
È possibile usare Power Query per estrarre e trasformare i dati da origini dati esterne. Questi passaggi di
estrazione e trasformazione sono rappresentati come query. Le query create con Power Query vengono
espresse usando il linguaggio M ed eseguite tramite il motore M.
È possibile condividere e riutilizzare facilmente le query tra progetti e anche tra Power Query del prodotto.
Questo articolo illustra i meccanismi generali per condividere una query in Power Query.
Copia/Incolla
Nel riquadro delle query fare clic con il pulsante destro del mouse sulla query da copiare. Nel menu a discesa
selezionare l'opzione Copia. La query e la relativa definizione verranno aggiunte agli Appunti.
NOTE
La funzionalità di copia non è attualmente disponibile nelle Power Query Online.
Per incollare la query dagli Appunti, passare al riquadro delle query e fare clic con il pulsante destro del mouse
su qualsiasi spazio vuoto. Scegliere Incolla dal menu.
Quando si incolla questa query in un'istanza che ha già lo stesso nome di query, alla query incollata verrà
aggiunto un suffisso con il formato , dove il segno di cancelletto viene sostituito con un numero per distinguere
le query (#) incollate.
È anche possibile incollare query tra più istanze e integrazioni di prodotti. Ad esempio, è possibile copiare la
query da Power BI Desktop, come illustrato nelle immagini precedenti, e incollarla in Power Query per Excel
come illustrato nell'immagine seguente.
WARNING
La copia e incolla di query tra integrazioni di prodotti non garantisce che tutte le funzioni e le funzionalità trovate nella
query incollata funzioneranno nella destinazione. Alcune funzionalità potrebbero essere disponibili solo nell'integrazione
del prodotto di origine.
Copiare il codice M
È anche possibile copiare il codice completo della query.
1. Selezionare la query che si vuole condividere.
2. Nella barra multifunzione selezionare la scheda Visualizza e quindi selezionare Editor avanzato .
3. Nella finestra Editor avanzato selezionare tutto il codice e copiarlo.
Con il codice della query negli Appunti, è possibile condividere la query con i mezzi di propria scelta. Il
destinatario di questo codice deve creare una query vuota e seguire la stessa procedura descritta in precedenza.
Invece di copiare il codice, il destinatario sostituirà il codice trovato nella query vuota con il codice specificato.
NOTE
Per creare una query vuota, passare alla finestra Ottieni dati e selezionare Quer y vuota dalle opzioni.
Se ci si trova in una situazione in cui è necessario applicare lo stesso set di trasformazioni a query o valori
diversi, la creazione di una funzione personalizzata Power Query che può essere riutilizzata tutte le volte che è
necessario potrebbe essere utile. Una Power Query funzione personalizzata è un mapping da un set di valori di
input a un singolo valore di output e viene creata da funzioni e operatori M nativi.
Sebbene sia possibile creare manualmente una funzione personalizzata Power Query usando il codice come
illustrato in Informazioni sulle funzioni M di Power Query, l'interfaccia utente di Power Query offre funzionalità
per velocizzare, semplificare e migliorare il processo di creazione e gestione di una funzione personalizzata.
Questo articolo si concentra su questa esperienza fornita solo tramite l Power Query'interfaccia utente e su
come ottenere il massimo da questa esperienza.
IMPORTANT
Questo articolo illustra come creare una funzione personalizzata con Power Query usando trasformazioni comuni
accessibili nell'interfaccia utente Power Query utente. Si concentra sui concetti di base per creare funzioni personalizzate e
collegamenti ad altri articoli in Power Query documenation per altre informazioni sulle trasformazioni specifiche a cui si fa
riferimento in questo articolo.
Questa opzione crea in modo efficace una nuova query con un passaggio di navigazione direttamente nel file
come file binario e il nome di questa nuova query sarà il percorso del file selezionato. Rinominare questa query
come File di esempio .
Creare un nuovo parametro con il nome Parametro file . Usare la query File di esempio come valore
corrente , come illustrato nell'immagine seguente.
NOTE
È consigliabile leggere l'articolo parametri per comprendere meglio come creare e gestire i parametri in Power Query.
Le funzioni personalizzate possono essere create usando qualsiasi tipo di parametro. Non è necessario che una funzione
personalizzata abbia un file binario come parametro.
È possibile creare una funzione personalizzata senza un parametro. Ciò si verifica in genere negli scenari in cui è possibile
dedurre un input dall'ambiente in cui viene richiamata la funzione. Ad esempio, una funzione che accetta la data e l'ora
correnti dell'ambiente e crea una stringa di testo specifica da tali valori.
Fare clic con il pulsante destro del mouse su Parametro file nel riquadro Query. Selezionare l'opzione
Riferimento.
Rinominare la query appena creata da Parametro file (2) in Trasforma file di esempio .
Fare clic con il pulsante destro del mouse su questa nuova query trasforma file di esempio e selezionare
l'opzione Crea funzione.
Questa operazione creerà in modo efficace una nuova funzione che verrà collegata alla query trasforma file di
esempio. Tutte le modifiche apportate alla query trasforma file di esempio verranno replicate automaticamente
nella funzione personalizzata. Durante la creazione di questa nuova funzione, usare File di trasformazione
come nome della funzione .
Dopo aver creato la funzione, si noterà che verrà creato automaticamente un nuovo gruppo con il nome della
funzione. Questo nuovo gruppo conterrà:
Tutti i parametri a cui è stato fatto riferimento nella query del file transform sample.
La quer y transform sample file, comunemente nota come query di esempio.
Funzione appena creata, in questo caso File di trasformazione .
Applicazione di trasformazioni a una query di esempio
Dopo la creazione della nuova funzione, selezionare la query con il nome Transform Sample file . Questa
query è ora collegata alla funzione Trasforma file, quindi tutte le modifiche apportate a questa query
verranno riflesse nella funzione. Questo è il concetto di query di esempio collegata a una funzione.
La prima trasformazione che deve essere eseguita a questa query è quella che interpreterà il file binario. È
possibile fare clic con il pulsante destro del mouse sul file binario nel riquadro di anteprima e selezionare
l'opzione CSV per interpretare il file binario come file CSV.
Il formato di tutti i file CSV nella cartella è lo stesso. Tutti hanno un'intestazione che si estende per le prime
quattro righe. Le intestazioni di colonna si trovano nella riga cinque e i dati iniziano dalla riga sei verso il basso,
come illustrato nell'immagine successiva.
Il set successivo di passaggi di trasformazione che devono essere applicati al file di esempio di
trasformazione sono:
1. Rimuovere le prime quattro righe — Questa azione elimina le righe considerate parte della sezione
di intestazione del file.
NOTE
Per altre informazioni su come rimuovere righe o filtrare una tabella in base alla posizione di riga, vedere Filtrare in
base alla posizione della riga.
2. Alzare di livello le intestazioni — Le intestazioni per la tabella finale sono ora nella prima riga della
tabella. È possibile alzarli di livello come illustrato nell'immagine successiva.
Power Query per impostazione predefinita aggiungerà automaticamente un nuovo passaggio Tipo modificato
dopo l'innalzamento di livello delle intestazioni di colonna che rileverà automaticamente i tipi di dati per ogni
colonna. La quer y trasforma file di esempio sarà simile all'immagine successiva.
NOTE
Per altre informazioni su come alzare di livello e abbassare di livello le intestazioni, vedere Alzare o abbassare di livello le
intestazioni di colonna.
Cau t i on
La funzione Trasforma file si basa sui passaggi eseguiti nella query Trasforma file di esempio. Tuttavia, se si
tenta di modificare manualmente il codice per la funzione Trasforma file, verrà visualizzato un avviso che
legge
The definition of the function 'Transform file' is updated whenever query 'Transform Sample file' is updated.
However, updates will stop if you directly modify function 'Transform file'.
Dopo aver selezionato OK, verrà creata una nuova colonna con il nome Tabella di output. Nelle celle di questa
colonna sono presenti valori di tabella, come illustrato nell'immagine successiva. Per semplicità, rimuovere tutte
le colonne da questa tabella, ad eccezione di Nome e Tabella di output .
NOTE
Per altre informazioni su come scegliere o rimuovere colonne da una tabella, vedere Scegliere o rimuovere colonne.
La funzione è stata applicata a ogni singola riga della tabella usando i valori della colonna Content come
argomento per la funzione. Ora che i dati sono stati trasformati nella forma che si sta cercando, è possibile
espandere la colonna Tabella di output, come illustrato nell'immagine seguente, senza usare alcun prefisso per
le colonne espanse.
È possibile verificare la presenza di dati da tutti i file nella cartella controllando i valori nella colonna Nome o
Data. In questo caso, è possibile controllare i valori della colonna Date, in quanto ogni file contiene solo dati per
un singolo mese di un determinato anno. Se ne vengono visualizzati più, significa che i dati di più file sono stati
combinati correttamente in una singola tabella.
NOTE
Quello letto finora è fondamentalmente lo stesso processo che si verifica durante l'esperienza Combina file, ma eseguito
manualmente.
È consigliabile leggere anche l'articolo Combina file overview e Combine CSV files (Combina file CSV) per comprendere
meglio il funzionamento dell'esperienza combina file Power Query e il ruolo delle funzioni personalizzate.
NOTE
Per altre informazioni su come filtrare le colonne in base ai valori, vedere Filtrare i valori.
L'applicazione di questo nuovo passaggio alla query aggiornerà automaticamente la funzione Trasforma file,
che richiederà ora due parametri in base ai due parametri utilizzati dal file transform sample.
Ma accanto alla query dei file CSV è visualizzato un segno di avviso. Ora che la funzione è stata aggiornata,
sono necessari due parametri. Pertanto, il passaggio in cui si richiama la funzione restituisce valori di errore,
poiché solo uno degli argomenti è stato passato alla funzione del file transform durante il passaggio Funzione
personalizzata richiamata.
Per correggere gli errori, fare doppio clic su Invoked Custom Function (Funzione personalizzata richiamata)
in Passaggi applicati per aprire la finestra Richiama funzione personalizzata. Nel parametro Market
immettere manualmente il valore Disa.
È ora possibile controllare la query per verificare che nel set di risultati finale della query di file CSV verranno
visualizzate solo le righe in cui Country è uguale a Quello che è uguale a Countr y.
Creare una funzione personalizzata da una parte della logica
riutilizzabile
Se sono presenti più query o valori che richiedono lo stesso set di trasformazioni, è possibile creare una
funzione personalizzata che funge da elemento logico riutilizzabile. Successivamente, questa funzione
personalizzata può essere richiamata sulle query o i valori di propria scelta. Questa funzione personalizzata
consente di risparmiare tempo e di gestire il set di trasformazioni in una posizione centrale, che è possibile
modificare in qualsiasi momento.
Si supponga, ad esempio, di avere una query con diversi codici come stringa di testo e di voler creare una
funzione che decodifica tali valori.
Iniziare con un parametro con un valore che funge da esempio. In questo caso, sarà il valore PTY-CM1090-
L AX .
Da tale parametro viene creata una nuova query in cui applicare le trasformazioni necessarie. In questo caso, si
vuole suddividere il codice PTY-CM1090-LAX in più componenti:
Origin = PTY
Destinazione = LAX
Airline = CM
FlightID = 1090
NOTE
Per altre informazioni sul linguaggio delle formule Power Query M, vedere Power Query linguaggio delle formule M
È quindi possibile trasformare la query in una funzione facendo clic con il pulsante destro del mouse sulla query
e selezionando Crea funzione. Infine, è possibile richiamare la funzione personalizzata in qualsiasi query o
valore, come illustrato nell'immagine successiva.
Dopo alcune altre trasformazioni, è possibile vedere che è stato raggiunto l'output desiderato e si è sfruttata la
logica per una trasformazione di questo tipo da una funzione personalizzata.
Alzare o abbassare di livello le intestazioni di
colonna
07/12/2021 • 2 minutes to read
Quando si crea una nuova query da origini dati non strutturate, ad esempio file di testo, Power Query analizza il
contenuto del file. Se Power Query un criterio diverso per la prima riga, tenterà di alzare di livello la prima riga
di dati come intestazioni di colonna per la tabella. Tuttavia, Power Query potrebbe non identificare
correttamente il modello al 100% del tempo, quindi questo articolo spiega come alzare di livello o abbassare di
livello manualmente le intestazioni di colonna dalle righe.
Tabella con le colonne (Column1, Column2, Column3 e column 4) tutte impostate sul tipo di dati Text, con
quattro righe contenenti un'intestazione nella parte superiore, un'intestazione di colonna nella riga 5 e sette
righe di dati nella parte inferiore.
Prima di poter alzare di livello le intestazioni, è necessario rimuovere le prime quattro righe della tabella. A tale
fine, selezionare il menu tabella nell'angolo superiore sinistro della finestra di anteprima e quindi selezionare
Rimuovi le prime righe.
Nella finestra Rimuovi righe principali immettere 4 nella casella Numero di righe.
NOTE
Per altre informazioni su Rimuovere le prime righe e altre operazioni della tabella, vedere Filtrare in base alla posizione
della riga.
Il risultato di tale operazione lascia le intestazioni come prima riga della tabella.
Percorsi dell'operazione di innalzamento di livello delle intestazioni
Da qui è possibile selezionare l'operazione alza di livello intestazioni in diverse posizioni:
Nel gruppo Trasforma della scheda Home.
Dopo aver fatto l'operazione di innalzamento di livello delle intestazioni, la tabella avrà un aspetto simile
all'immagine seguente.
Tabella con le intestazioni di colonna Date, Country, Total Units e Total Revenue e sette righe di dati.
L'intestazione di colonna Date ha un tipo di dati Date, l'intestazione di colonna Country ha un tipo di dati Text,
l'intestazione di colonna Total Units ha un tipo di dati Numero intero e l'intestazione di colonna Total Revenue ha
un tipo di dati Numero decimale.
NOTE
I nomi delle colonne della tabella devono essere univoci. Se la riga da alzare di livello a una riga di intestazione contiene
più istanze della stessa stringa di testo, Power Query disambigua le intestazioni di colonna aggiungendo un suffisso
numerico preceduto da un punto a ogni stringa di testo non univoca.
Come ultimo passaggio, selezionare ogni colonna e digitare un nuovo nome. Il risultato finale sarà simile
all'immagine seguente.
Tabella finale dopo la ridenominazione delle intestazioni di colonna in Date, Country, Total Units e Total Revenue,
con colonne rinominate evidenziate nel riquadro Impostazioni query e il codice M visualizzato nella barra della
formula.
Vedi anche
Filtrare in base alla posizione delle righe
Filtrare una tabella in base alla posizione di riga
07/12/2021 • 7 minutes to read
Power Query sono disponibili più opzioni per filtrare una tabella in base alle posizioni delle righe, mantenendo o
rimuovendo tali righe. Questo articolo illustra tutti i metodi disponibili.
Mantenere le righe
Il set di funzioni keep rows selezionerà un set di righe dalla tabella e rimuoverà tutte le altre righe che non
soddisfano i criteri.
I pulsanti Mantieni righe sono disponibili in due posizioni:
Nel gruppo Riduci righe della scheda Home.
Questo report contiene sempre sette righe di dati e sotto i dati è presente una sezione per i commenti con un
numero sconosciuto di righe. In questo esempio si vogliono mantenere solo le prime sette righe di dati. A tale
scopo, selezionare Mantieni le prime righe dal menu tabella. Nella finestra di dialogo Mantieni le prime
righe immettere 7 nella casella Numero di righe .
Il risultato di tale modifica offrirà la tabella di output che si sta cercando. Dopo aver impostato i tipi di dati per le
colonne, la tabella sarà simile all'immagine seguente.
Mantenere le righe in basso
Imagine tabella seguente che esce da un sistema con un layout fisso.
Tabella di esempio iniziale con Column1, Column2 e Column3 come intestazioni di colonna, tutte impostate sul
tipo di dati Text e le prime sette righe contenenti dati e sopra una riga di intestazioni di colonna e un numero
sconosciuto di commenti.
Questo report contiene sempre sette righe di dati alla fine della pagina del report. Sopra i dati, il report include
una sezione per i commenti con un numero sconosciuto di righe. In questo esempio si vogliono mantenere solo
le ultime sette righe di dati e la riga di intestazione.
A tale scopo, selezionare Mantieni le righe in basso dal menu della tabella. Nella finestra di dialogo
Mantieni righe in basso immettere 8 nella casella Numero di righe .
Il risultato di tale operazione offrirà otto righe, ma ora la riga di intestazione fa parte della tabella.
È necessario alzare di livello le intestazioni di colonna dalla prima riga della tabella. A tale scopo, selezionare
Usa la prima riga come intestazioni dal menu tabella. Dopo aver definito i tipi di dati per le colonne, si
creerà una tabella simile all'immagine seguente.
Tabella di esempio finale per Mantenere le righe più in basso dopo aver innalzato di livello la prima riga alle
intestazioni di colonna e aver mantenuto sette righe di dati e quindi aver impostato unità sul tipo di dati
Number.
Altre informazioni: Alzare di livello o abbassare di livello le intestazioni di colonna
Mantenere un intervallo di righe
Imagine tabella seguente che esce da un sistema con un layout fisso.
Tabella di esempio iniziale con le colonne (Column1, Column2 e Column3) tutte impostate sul tipo di dati Text e
contenenti le intestazioni di colonna e sette righe di dati al centro della tabella.
Questo report contiene sempre cinque righe per l'intestazione, una riga di intestazioni di colonna sotto
l'intestazione, sette righe di dati sotto le intestazioni di colonna e quindi un numero sconosciuto di righe per la
sezione dei commenti. In questo esempio si vogliono ottenere le otto righe dopo la sezione di intestazione del
report e solo quelle otto righe.
A tale scopo, selezionare Mantieni inter vallo di righe dal menu tabella. Nella finestra di dialogo Mantieni
intervallo di righe immettere 6 nella casella Prima riga e 8 nella casella Numero di righe .
Analogamente all'esempio precedente per mantenere le righe più in basso, il risultato di questa operazione
fornisce otto righe con le intestazioni di colonna come parte della tabella. Tutte le righe sopra la prima riga
definita (riga 6) vengono rimosse.
È possibile eseguire la stessa operazione descritta in Mantenere le righe in basso per alzare di livello le
intestazioni di colonna dalla prima riga della tabella. Dopo aver impostato i tipi di dati per le colonne, la tabella
sarà simile all'immagine seguente.
Tabella di esempio finale per Mantenere l'intervallo di righe dopo aver promosso la prima riga alle intestazioni
di colonna, impostando la colonna Unità sul tipo di dati Number e mantenendo sette righe di dati.
Rimuovere le righe
Questo set di funzioni selezionerà un set di righe dalla tabella, le rimuoverà e mantenerà le altre righe nella
tabella.
I pulsanti Rimuovi righe sono disponibili in due posizioni:
Nel gruppo Riduci righe della scheda Home.
Tabella di esempio iniziale per Rimuovere le prime righe con le colonne (Column1, Column2 e Column3) tutte
impostate sul tipo di dati Text, un'intestazione nella parte superiore e una riga di intestazione di colonna e sette
righe di dati nella parte inferiore.
Questo report contiene sempre un'intestazione fissa dalla riga 1 alla riga 5 della tabella. In questo esempio si
vogliono rimuovere queste prime cinque righe e mantenere il resto dei dati.
A tale scopo, selezionare Rimuovi le prime righe dal menu tabella. Nella finestra di dialogo Rimuovi righe
principali immettere 5 nella casella Numero di righe .
Come negli esempi precedenti per "Mantieni righe in basso" e "Mantieni un intervallo di righe", il risultato di
questa operazione fornisce otto righe con le intestazioni di colonna come parte della tabella.
È possibile eseguire la stessa operazione descritta negli esempi precedenti per alzare di livello le intestazioni di
colonna dalla prima riga della tabella. Dopo aver impostato i tipi di dati per le colonne, la tabella sarà simile
all'immagine seguente.
Tabella di esempio finale per Rimuovere le prime righe dopo aver innalzato di livello la prima riga alle
intestazioni di colonna e aver impostato la colonna Unità sul tipo di dati Number e aver mantenuto sette righe di
dati.
Rimuovi ultime righe
Imagine tabella seguente che esce da un sistema con un layout fisso.
Tabella di esempio iniziale per Rimuovere le righe in basso, con le colonne di intestazione tutte impostate sul
tipo di dati Text, sette righe di dati e quindi un piè di pagina di lunghezza fissa nella parte inferiore.
Questo report contiene sempre una sezione o un piè di pagina fisso che occupa le ultime cinque righe della
tabella. In questo esempio si vuole rimuovere le ultime cinque righe e mantenere il resto dei dati.
A tale scopo, selezionare Rimuovi le righe in basso dal menu della tabella. Nella finestra di dialogo
Rimuovi righe principali immettere 5 nella casella Numero di righe .
Il risultato di tale modifica offrirà la tabella di output che si sta cercando. Dopo aver impostato i tipi di dati per le
colonne, la tabella sarà simile all'immagine seguente.
In Power Query è possibile includere o escludere righe in base a un valore specifico in una colonna. È possibile
scegliere tra tre metodi per filtrare i valori nella colonna:
Menu Ordina e filtra
Menu di scelta rapida della cella
Filtro specifico del tipo
Dopo aver applicato un filtro a una colonna, nell'intestazione di colonna viene visualizzata una piccola icona di
filtro, come illustrato nella figura seguente.
NOTE
Questo articolo illustra gli aspetti correlati al filtro dei dati. Per altre informazioni sulle opzioni di ordinamento e su come
ordinare le colonne in Power Query, vedere Ordinare le colonne.
Rimuovi vuoto
Il comando Rimuovi vuoto applica due regole di filtro alla colonna. La prima regola elimina tutti i valori Null.
La seconda regola elimina tutti i valori vuoti. Si supponga, ad esempio, che una tabella con una sola colonna di
testo con cinque righe abbia un valore Null e una cella vuota.
NOTE
Un valore Null è un valore specifico nel linguaggio Power Query che non rappresenta alcun valore.
Selezionare quindi Rimuovi vuoto dal menu di ordinamento e filtro, come illustrato nell'immagine seguente.
È anche possibile selezionare questa opzione dalla scheda Home del gruppo Riduci righe nell'elenco a discesa
Rimuovi righe, come illustrato nell'immagine successiva.
Il risultato dell'operazione Remove empty restituisce la stessa tabella senza i valori vuoti.
Cancella filtro
Quando un filtro viene applicato a una colonna, il comando Cancella filtro viene visualizzato nel menu di
ordinamento e filtro.
Filtro automatico
L'elenco nel menu di ordinamento e filtro è denominato elenco di filtri automatici, che mostra i valori univoci
nella colonna. È possibile selezionare o deselezionare manualmente i valori da includere nell'elenco. Tutti i valori
selezionati verranno presi in considerazione dal filtro. Tutti i valori non selezionati verranno ignorati.
Questa sezione del filtro automatico include anche una barra di ricerca che consente di trovare i valori
dell'elenco.
NOTE
Quando si carica l'elenco di filtri automatici, vengono caricati solo i primi 1.000 valori distinct nella colonna. Se sono
presenti più di 1.000 valori distinct nella colonna in cui si sta filtrando, verrà visualizzato un messaggio che indica che
l'elenco di valori nell'elenco di filtri potrebbe essere incompleto e viene visualizzato il collegamento Carica altro. Selezionare
il collegamento Carica altro per caricare altri 1.000 valori distinti.
Se vengono trovati esattamente 1.000 valori distinti, l'elenco viene visualizzato con un messaggio che informa che
l'elenco potrebbe essere ancora incompleto.
Se vengono trovati meno di 1.000 valori distinct, viene visualizzato l'elenco completo dei valori.
Con la modalità di base è possibile implementare fino a due regole di filtro basate su filtri specifici del tipo.
Nell'immagine precedente si noti che il nome della colonna selezionata viene visualizzato dopo l'etichetta
Mantieni righe in cui , per determinare la colonna in cui vengono implementate queste regole di filtro.
Si supponga, ad esempio, che nella tabella seguente si voglia filtrare il codice conto in base a tutti i valori che
iniziano con PA o PTY.
A tale scopo, è possibile passare alla finestra di dialogo Filtra righe per la colonna Codice conto e specificare il
set di regole di filtro desiderato.
In questo esempio selezionare prima di tutto il pulsante Di base. In Keep rows where "Account Code"
(Mantieni righe in cui "Codice account" ) selezionare inizia con e quindi immettere PA . Selezionare quindi il
pulsante o . Sotto il pulsante o selezionare inizia con e quindi immettere PTY. Selezionare OK.
Il risultato di tale operazione offrirà il set di righe che si sta cercando.
A van z at o
Con la modalità avanzata è possibile implementare tutti i filtri specifici del tipo necessari da tutte le colonne
della tabella.
Si supponga, ad esempio, che invece di applicare il filtro precedente in modalità di base, si voglia implementare
un filtro per codice conto per visualizzare tutti i valori che terminano con 4 . Inoltre, si vogliono visualizzare
valori oltre $ 100 nella colonna Sales.
In questo esempio selezionare prima il pulsante Avanzate. Nella prima riga selezionare Codice conto in Nome
colonna , termina con in Operatore e selezionare 4 per Valore. Nella seconda riga selezionare e , quindi
selezionare Sales in Nome colonna , è maggiore di in Operatore e 100 in Valore . Selezionare quindi OK.
Il risultato di tale operazione offrirà una sola riga che soddisfa entrambi i criteri.
NOTE
È possibile aggiungere tutte le clausole che si desiderano selezionando Aggiungi clausola . Tutte le clausole agiscono allo
stesso livello, quindi è consigliabile creare più passaggi di filtro se è necessario implementare filtri che si basano su altri
filtri.
Scegliere o rimuovere colonne
07/12/2021 • 2 minutes to read
Scegliere le colonne e Rimuovi colonne sono operazioni che consentono di definire le colonne che devono
essere conservate nella tabella e quelle da rimuovere. Questo articolo illustra come usare i comandi Scegli
colonne e Rimuovi colonne usando la tabella di esempio seguente per entrambe le operazioni.
Scegliere le colonne
Nel gruppo Gestisci colonne della scheda Home selezionare Scegli colonne.
Verrà visualizzata la finestra di dialogo Scegli colonne contenente tutte le colonne disponibili nella tabella. È
possibile selezionare tutti i campi che si desidera mantenere e rimuovere campi specifici deselezionando la
casella di controllo associata. Per questo esempio, si desidera rimuovere il GUID e il repor t creato dalle
colonne, in modo da deselezionare le caselle di controllo per tali campi.
Dopo aver selezionato OK, si creerà una tabella che contiene solo le colonne Date , Product , SalesPerson e
Units.
Rimuovere le colonne
Quando si seleziona Rimuovi colonne dalla scheda Home sono disponibili due opzioni:
Rimuovi colonne : rimuove le colonne selezionate.
Rimuovi altre colonne: rimuove tutte le colonne dalla tabella ad eccezione di quelle selezionate.
Dopo aver selezionato Rimuovi altre colonne, si creerà una tabella che contiene solo le colonne Date ,
Product , SalesPerson e Units.
Raggruppamento o riepilogo di righe
07/12/2021 • 5 minutes to read
In Power Query è possibile raggruppare i valori di varie righe in un singolo valore raggruppando le righe in
base ai valori in una o più colonne. È possibile scegliere tra due tipi di operazioni di raggruppamento:
Aggregare una colonna usando una funzione di aggregazione.
Eseguire un'operazione di riga.
Per questa esercitazione si usa la tabella di esempio illustrata nell'immagine seguente.
Tabella con colonne che mostrano Anno (2020), Paese (USA, Canada), Prodotto (shirt o shorts), canale di vendita
(online o rivenditore) e unità (vari valori da 55 a 7500) :::image-end:::
Nel menu di scelta rapida fare clic con il pulsante destro del mouse per selezionare le colonne.
Usare una funzione di aggregazione per raggruppare in base a una o
più colonne
In questo esempio l'obiettivo è riepilogare le unità totali vendute a livello di paese e canale di vendita. Si
useranno le colonne Countr y e Sales Channel per eseguire l'operazione group by.
1. Selezionare Raggruppa per nella scheda Home.
2. Selezionare l'opzione Avanzate per poter selezionare più colonne in base alle quali eseguire il
raggruppamento.
3. Selezionare le colonne Countr y e Sales Channel.
4. Nella sezione Nuove colonne creare una nuova colonna in cui il nome è Total units , l'operazione di
aggregazione è Sum e la colonna usata è Units .
5. Fare clic su OK
Questa operazione fornisce la tabella che si sta cercando.
Al termine dell'operazione, si noti che la colonna Products contiene valori di [ tabella ] all'interno di ogni cella.
Ogni valore table contiene tutte le righe raggruppate in base alle colonne Country e [ ] Sales Channel della
tabella originale. È possibile selezionare lo spazio vuoto all'interno della cella per visualizzare un'anteprima del
contenuto della tabella nella parte inferiore della finestra di dialogo.
NOTE
Il riquadro di anteprima dei dettagli potrebbe non visualizzare tutte le righe usate per l'operazione group-by. È possibile
selezionare il [ valore Tabella per visualizzare tutte le righe relative ] all'operazione group-by corrispondente.
Successivamente, è necessario estrarre la riga con il valore più alto nella colonna Units delle tabelle all'interno
della nuova colonna Products e chiamare la nuova colonna Top performer product .
Estrarre le informazioni sui prodotti con prestazioni migliori
Con la nuova colonna Products con valori di tabella, è possibile creare una nuova colonna personalizzata dalla
scheda Aggiungi colonna sulla barra multifunzione e selezionando Colonna personalizzata [ dal ] gruppo
Generale.
Assegnare alla nuova colonna il nome Top performer product . Immettere la formula
Table.Max([Products], "Units" ) in Formula colonna personalizzata .
Il risultato di tale formula crea una nuova colonna con valori [ ] Record. Questi valori di record sono
essenzialmente una tabella con una sola riga. Questi record contengono la riga con il valore massimo per la
colonna Units di ogni valore Table [ nella ] colonna Products.
Con questa nuova colonna prodotto Top performer che contiene valori [ ] Record, è possibile selezionare
l'espansione. espandere l'icona, selezionare i campi Prodotto e Unità e quindi selezionare OK.
Dopo la rimozione della colonna Products e l'impostazione del tipo di dati per entrambe le colonne appena
espanse, il risultato sarà simile all'immagine seguente.
Raggruppamento fuzzy
NOTE
La funzionalità seguente è disponibile solo in Power Query Online.
Per illustrare come eseguire il "raggruppamento fuzzy", si consideri la tabella di esempio illustrata nell'immagine
seguente.
L'obiettivo del raggruppamento fuzzy è eseguire un'operazione group-by che usa un algoritmo di
corrispondenza approssimativo per le stringhe di testo. Power Query usa l'algoritmo di somiglianza Diacard per
misurare la somiglianza tra coppie di istanze. Applica quindi un clustering gerarchico agglomerato per
raggruppare le istanze. L'immagine seguente mostra l'output previsto, in cui la tabella verrà raggruppata in base
alla colonna Person.
Per eseguire il raggruppamento fuzzy, eseguire gli stessi passaggi descritti in precedenza in questo articolo.
L'unica differenza è che questa volta, nella finestra di dialogo Raggruppa per , selezionare la casella di controllo
Usa raggruppamento fuzzy .
Per ogni gruppo di righe, Power Query selezionerà l'istanza più frequente come istanza "canonica". Se si
verificano più istanze con la stessa frequenza, Power Query selezionerà la prima. Dopo aver selezionato OK
nella finestra di dialogo Raggruppa per, si otterrà il risultato previsto.
Tornare alla finestra di dialogo Raggruppa per , espandere Opzioni gruppo fuzzy e quindi selezionare il menu
a discesa Tabella di trasformazione .
Dopo aver selezionato la tabella di trasformazione, selezionare OK. Il risultato di tale operazione offrirà il
risultato illustrato nell'immagine seguente.
In questo esempio è stata abilitata l'opzione Ignora maiuscole/minuscole, pertanto i valori nella colonna Da
della tabella Trasformazione verranno usati per cercare la stringa di testo senza considerare la distinzione tra
maiuscole e minuscole. Questa operazione di trasformazione viene eseguita per prima e quindi viene eseguita
l'operazione di raggruppamento fuzzy.
NOTE
Quando si esegue il raggruppamento in base a più colonne, la tabella di trasformazione eseguirà l'operazione di
sostituzione in tutte le colonne se la sostituzione del valore aumenta il punteggio di somiglianza.
Vedi anche
Aggiungere una colonna personalizzata
Rimuovere duplicati
Trasformare le colonne tramite UnPivot
07/12/2021 • 7 minutes to read
In Power Query è possibile trasformare le colonne in coppie attributo-valore, in cui le colonne diventano righe.
Diagramma che mostra una tabella a sinistra con una colonna e righe vuote e i valori degli attributi A1, A2 e A3
come intestazioni di colonna. La colonna A1 contiene i valori V1, V4 e V7, la colonna A2 contiene i valori V2, V5
e V8 e la colonna A3 contiene i valori V3, V6 e V9. Con le colonne unPivot, una tabella a destra del diagramma
contiene una colonna vuota e righe, una colonna Attributi con nove righe con A1, A2 e A3 ripetute tre volte e
una colonna Valori con valori da V1 a V9.
Ad esempio, data una tabella simile alla seguente, in cui le righe dei paesi e le colonne data creano una matrice
di valori, è difficile analizzare i dati in modo scalabile.
Tabella contenente un set di colonne Country nel tipo di dati Text e colonne 01/06/2020, 01/07/2020 e
1/08/2020 impostate come tipo di dati Numero intero. La colonna Country contiene gli Stati Uniti nella riga 1, il
Canada nella riga 2 e il Canada nella riga 3.
È invece possibile trasformare la tabella in una tabella con colonne trasformate tramite UnPivot, come illustrato
nell'immagine seguente. Nella tabella trasformata è più semplice usare la data come attributo per filtrare.
Tabella contenente una colonna Country impostata come tipo di dati Text, una colonna Attribute impostata come
tipo di dati Text e una colonna Value impostata come tipo di dati Numero intero. La colonna Country contiene gli
Stati Uniti nelle prime tre righe, il Canada nelle tre righe successive e il Canada nelle ultime tre righe. La colonna
Attribute contiene 6/1/2020 nella prima, nella seconda e nella settima riga, 7/1/2020 nella seconda, quinta e
ottava riga e 8/1/2020 nella terza, sesta e nona riga.
La chiave di questa trasformazione è che nella tabella è presente un set di date che devono far parte di una
singola colonna. Il rispettivo valore per ogni data e paese deve essere in una colonna diversa, creando in effetti
una coppia attributo-valore.
Power Query crea sempre la coppia attributo-valore usando due colonne:
Attributo : nome delle intestazioni di colonna che sono state unPivot.
Valore : i valori sottostanti a ognuna delle intestazioni di colonna tramite UnPivot.
Nell'interfaccia utente sono disponibili più posizioni in cui è possibile trovare colonne UnPivot. È possibile fare
clic con il pulsante destro del mouse sulle colonne che si desidera trasformare tramite UnPivot oppure
selezionare il comando dalla scheda Trasforma della barra multifunzione.
Esistono tre modi per eseguire l'unpivot delle colonne da una tabella:
Trasformare le colonne tramite UnPivot
UnPivot per altre colonne
Solo colonne selezionate tramite UnPivot
Tabella con le stesse colonne Country, 1/6/2020, 1/7/2020 e 8/1/2020, con l'aggiunta di una colonna 9/1/2020.
La colonna Country contiene ancora i valori USA, Canada e Country, ma include anche UK aggiunto alla quarta
riga e Mexico aggiunto alla quinta riga.
Si noti che è stata aggiunta una nuova colonna per la data 01/09/2020 (1 settembre 2020) e due nuove righe
per i paesi Regno Unito e Messico.
Se si aggiorna la query, si noterà che l'operazione verrà eseguita sulla colonna aggiornata, ma non influirà sulla
colonna che non è stata selezionata in origine (Countr y , in questo esempio). Ciò significa che anche tutte le
nuove colonne aggiunte alla tabella di origine verranno esportate tramite UnPivot.
L'immagine seguente mostra l'aspetto della query dopo l'aggiornamento con la nuova tabella di origine
aggiornata.
Tabella con colonne Country, Attribute e Value. Le prime quattro righe della colonna Country contengono gli
Stati Uniti, le seconde quattro contengono il Canada, le terze quattro contengono Il Messico, le quarta quattro
contengono il Regno Unito e le cinque quattro contengono il Messico. La colonna Attributo contiene 1/6/2020,
01/07/2020, 01/08/2020 e 01/09/2020 nelle prime quattro righe, che vengono ripetute per ogni paese.
Tabella contenente una colonna Country impostata come tipo di dati Text, una colonna Attribute impostata come
tipo di dati Text e una colonna Value impostata come tipo di dati Numero intero. La colonna Country contiene gli
Stati Uniti nelle prime tre righe, il Canada nelle tre righe successive e il Canada nelle ultime tre righe. La colonna
Attribute contiene 6/1/2020 nella prima, nella seconda e nella settima riga, 7/1/2020 nella seconda, quinta e
ottava riga e 8/1/2020 nella terza, sesta e nona riga.
NOTE
Questa trasformazione è fondamentale per le query con un numero sconosciuto di colonne. L'operazione unpivot di tutte
le colonne della tabella, ad eccezione di quelle selezionate. Si tratta di una soluzione ideale se l'origine dati dello scenario
ha ottenuto nuove colonne data in un aggiornamento, perché tali colonne verranno prelevate e unPivot.
Considerazioni speciali
Analogamente all'operazione UnPivot sulle colonne, se la query viene aggiornata e vengono prelevati più dati
dall'origine dati, tutte le colonne verranno copiate tramite UnPivot ad eccezione di quelle selezionate in
precedenza.
Per illustrare questo aspetto, si immagini di avere una nuova tabella simile a quella illustrata nell'immagine
seguente.
Tabella con colonne Country, 1/6/2020, 01/07/2020, 01/08/2020 e 01/09/2020, con tutte le colonne impostate
sul tipo di dati Text. La colonna Country contiene, dall'alto verso il basso, USA, Canada, Country, Uk e Mexico.
È possibile selezionare la colonna Countr y e quindi selezionare UnPivot per un'altra colonna , che
restituisce il risultato seguente.
Tabella con colonne Country, Attribute e Value. Le colonne Country e Attribute sono impostate sul tipo di dati
Text. La colonna Valore è impostata sul tipo di dati Valore intero. Le prime quattro righe della colonna Country
contengono gli Stati Uniti, le seconde quattro contengono il Canada, le terze quattro contengono Il Messico, le
quarta quattro contengono il Regno Unito e le cinque quattro contengono il Messico. La colonna Attributo
contiene 1/6/2020, 01/07/2020, 01/08/2020 e 01/09/2020 nelle prime quattro righe, che vengono ripetute per
ogni paese.
Solo colonne selezionate tramite UnPivot
Lo scopo di quest'ultima opzione è quello di convertire tramite UnPivot solo colonne specifiche della tabella.
Questo è importante per gli scenari in cui si ha a che fare con un numero sconosciuto di colonne dall'origine
dati e si desidera eseguire il unpivot solo per le colonne selezionate.
Per eseguire questa operazione, selezionare le colonne da convertire tramite UnPivot, che in questo esempio
sono tutte le colonne ad eccezione della colonna Countr y. Fare quindi clic con il pulsante destro del mouse su
una delle colonne selezionate e quindi scegliere Unpivot only selected columns (UnPivot solo colonne
selezionate).
Si noti che questa operazione produce lo stesso output degli esempi precedenti.
Tabella contenente una colonna Country impostata come tipo di dati Text, una colonna Attribute impostata come
tipo di dati Text e una colonna Value impostata come tipo di dati Numero intero. La colonna Country contiene gli
Stati Uniti nelle prime tre righe, il Canada nelle tre righe successive e il Canada nelle ultime tre righe. La colonna
Attribute contiene 6/1/2020 nella prima, nella seconda e nella settima riga, 7/1/2020 nella seconda, quinta e
ottava riga e 8/1/2020 nella terza, sesta e nona riga.
Considerazioni speciali
Dopo l'aggiornamento, se la tabella di origine cambia in modo da avere una nuova colonna 9/1/2020 e nuove
righe per Regno Unito e Messico, l'output della query sarà diverso dagli esempi precedenti. Si immagini che la
tabella di origine, dopo un aggiornamento, cambi alla tabella nell'immagine seguente.
L'operazione unPivot è stata applicata solo alle colonne 01/06/2020 , 01/07/2020 e 1/08/2020, quindi la
colonna con intestazione 01/09/2020 rimane invariata.
Trasformare colonne tramite Pivot
07/12/2021 • 4 minutes to read
In Power Query è possibile creare una tabella contenente un valore aggregato per ogni valore univoco in una
colonna. Power Query raggruppa ogni valore univoco, esegue un calcolo aggregato per ogni valore e trasforma
la colonna in una nuova tabella.
Diagramma che mostra una tabella a sinistra con una colonna e righe vuote. Una colonna Attributes contiene
nove righe con A1, A2 e A3 ripetute tre volte. Una colonna Valori contiene, dall'alto verso il basso, i valori da V1
a V9. Con le colonne pivot, una tabella a destra contiene una colonna vuota e righe, i valori di Attributi A1, A2 e
A3 come intestazioni di colonna, con la colonna A1 contenente i valori V1, V4 e V7, la colonna A2 contenente i
valori V2, V5 e V8 e la colonna A3 contenente i valori V3, V6 e V9.
Imagine una tabella come quella nell'immagine seguente.
Tabella contenente una colonna Country impostata come tipo di dati Text, una colonna Date impostata come
Tipo di dati e una colonna Valore impostata come tipo di dati Numero intero. La colonna Country contiene gli
Stati Uniti nelle prime tre righe, il Canada nelle tre righe successive e il Canada nelle ultime tre righe. La colonna
Date contiene 1/6/2020 nella prima, nella seconda e nella settima riga, 7/1/2020 nella seconda, quinta e ottava
riga e 8/1/2020 nella terza, sesta e nona riga.
Questa tabella contiene i valori per paese e data in una tabella semplice. In questo esempio si vuole trasformare
questa tabella in quella in cui la colonna data viene trasformata con Pivot, come illustrato nell'immagine
seguente.
Tabella contenente un set di colonne Country nel tipo di dati Text e colonne 01/06/2020, 01/07/2020 e
1/08/2020 impostate come tipo di dati Numero intero. La colonna Country contiene il Canada nella riga 1, Il
Paese nella riga 2 e gli Stati Uniti nella riga 3.
NOTE
Durante l'operazione sulle colonne pivot, Power Query la tabella verrà ordinata in base ai valori trovati nella prima colonna
a sinistra della tabella — — in ordine crescente.
3. Nell'elenco Colonna valore della finestra di dialogo Colonna pivot selezionare Valore .
Per impostazione predefinita, Power Query tenterà di eseguire una somma come aggregazione, ma è
possibile selezionare l'opzione Avanzate per visualizzare altre aggregazioni disponibili.
Nella finestra di dialogo Colonna pivot selezionare la colonna Product come colonna valore. Selezionare il
pulsante di opzione Avanzate nella finestra di dialogo Colonne pivot e quindi selezionare Non aggregare .
Il risultato di questa operazione restituisce il risultato illustrato nell'immagine seguente.
Tabella contenente le colonne Country, First Place, Second Place e Third Place, con la colonna Country che
contiene il Canada nella riga 1, la Colonna Della Seconda e gli Stati Uniti nella riga 3.
Errori durante l'uso dell'opzione Non aggregare
L'opzione Non aggregare funziona perché consente di recuperare un singolo valore per l'operazione pivot da
inserire come valore per l'intersezione della coppia di colonne e righe. Si supponga, ad esempio, di avere una
tabella simile a quella nell'immagine seguente.
Tabella con colonne Country, Date e Value. La colonna Country contiene gli Stati Uniti nelle prime tre righe, il
Canada nelle tre righe successive e il Canada nelle ultime tre righe. La colonna Date contiene una data di
1/6/2020 in tutte le righe. La colonna value contiene vari numeri interi compresi tra 20 e 785.
Si vuole convertire tramite Pivot la tabella usando la colonna Data e usare i valori della colonna Valore .
Poiché questo pivot fa in modo che la tabella abbia solo i valori Countr y nelle righe e Le date come colonne, si
otterrà un errore per ogni singolo valore di cella perché sono presenti più righe per ogni combinazione di
Countr y e Date . Il risultato dell'operazione di colonna pivot restituisce i risultati mostrati nell'immagine
seguente.
editor di Power Query che mostra una tabella con le colonne Country e 6/1/2020. La colonna Country contiene
Canada nella prima riga, Country nella seconda riga e USA nella terza riga. Tutte le righe nella colonna 1/6/2020
contengono errori. Nella tabella è presente un altro riquadro che mostra l'errore di espressione con il
messaggio "Sono presenti troppi elementi nell'enumerazione per completare l'operazione".
Si noti il messaggio di errore "Expression.Error: There were too many elements in the enumeration to complete
the operation". Questo errore si verifica perché l'operazione Non aggregare prevede un solo valore per la
combinazione di paese e data.
Trasporre una tabella
07/12/2021 • 2 minutes to read
L'operazione di trasposizione della tabella Power Query ruota la tabella di 90 gradi, trasformando le righe in
colonne e le colonne in righe.
Imagine una tabella come quella nell'immagine seguente, con tre righe e quattro colonne.
Tabella con quattro colonne denominate Da Column1 a Column4, con tutte le colonne impostate sul tipo di dati
Text. Column1 contiene Events nella riga 1, Participants nella riga 2 e Funds nella riga 3. Column2 contiene
l'evento 1 nella riga 1, 150 nella riga 2 e 4000 nella riga 3. Column3 contiene l'evento 2 nella riga 1, 450 nella
riga 2 e 10000 nella riga 3. Column4 contiene l'evento 2 nella riga 1, 1250 nella riga 2 e 15000 nella riga 3.
L'obiettivo di questo esempio è trasporre la tabella in modo da ottenere quattro righe e tre colonne.
Tabella con tre colonne denominate Eventi con tipo di dati Testo, Partecipanti con tipo di dati Numero intero e
Fondi con un tipo di dati numero intero. La colonna Eventi contiene, dall'alto verso il basso, Evento 1, Evento 2
ed Evento 3. La colonna Partecipanti contiene, dall'alto verso il basso, 150, 450 e 1250. La colonna Fondi
contiene, dall'alto verso il basso, 4000, 10000 e 15000.
Nella scheda Trasforma della barra multifunzione selezionare Trasporre .
NOTE
Durante l'operazione di trasposizione verrà trasposto solo il contenuto della tabella. Le intestazioni di colonna della tabella
iniziale andranno perse. Le nuove colonne avranno il nome Column seguito da un numero sequenziale.
Le intestazioni necessarie in questo esempio sono nella prima riga della tabella . Per alzare di livello la prima
riga in intestazioni, selezionare l'icona della tabella nell'angolo superiore sinistro dell'anteprima dei dati e quindi
selezionare Usa la prima riga come intestazioni.
Tabella finale con tre colonne denominate Events con tipo di dati Text, Participants con tipo di dati Whole
number e Funds con un tipo di dati number intero. La colonna Eventi contiene, dall'alto verso il basso, Evento 1,
Evento 2 ed Evento 3. La colonna Partecipanti contiene, dall'alto verso il basso, 150, 450 e 1250. La colonna
Fondi contiene, dall'alto verso il basso, 4000, 10000 e 15000.
NOTE
Per altre informazioni sull'operazione di innalzamento di livello delle intestazioni, nota anche come Usare la prima riga
come intestazioni, passare a Alzare di livello o abbassare di livello le intestazioni di colonna.
Invertire le righe
07/12/2021 • 2 minutes to read
Con Power Query, è possibile invertire l'ordine delle righe in una tabella.
Imagine una tabella con due colonne, ID e Countr y , come illustrato nell'immagine seguente.
Tabella iniziale con le colonne ID e Country. Le righe ID contengono, dall'alto verso il basso, valori da 1 a 7. Le
righe Country contengono, dall'alto verso il basso, Stati Uniti, Canada, Messico, Cina, Spagna, Spagna, e Canada.
Nella scheda Trasforma selezionare Inver ti righe.
Tabella di output con le righe invertte. Le righe ID ora contengono, dall'alto verso il basso, i valori di 7 fino a 1.
Le righe Country contengono, dall'alto verso il basso, Country, Country, Spagna, Cina, Messico, Canada e Stati
Uniti.
Tipi di dati in Power Query
07/12/2021 • 10 minutes to read
I tipi di dati Power Query vengono usati per classificare i valori in modo da avere un set di dati più strutturato. I
tipi di dati vengono definiti a livello di campo i valori all'interno di un campo vengono impostati in modo da
essere conformi al tipo — di dati del campo.
Il tipo di dati di una colonna viene visualizzato sul lato sinistro dell'intestazione di colonna con un'icona che
rappresenta il tipo di dati.
NOTE
Power Query fornisce un set di trasformazioni contestuali e opzioni basate sul tipo di dati della colonna. Ad esempio,
quando si seleziona una colonna con un tipo di dati Date, si ottengono trasformazioni e opzioni applicabili a quel tipo di
dati specifico. Queste trasformazioni e opzioni si verificano in tutta Power Query,ad esempio nelle schede Trasforma e
Aggiungi colonna e nelle opzioni di filtro intelligente.
Nella tabella seguente sono elencati i Power Query di dati più comuni usati nella tabella seguente. Anche se non
si ambito di questo articolo, è possibile trovare l'elenco completo dei tipi di dati nell'articolo Power Query M
formula language Types ( Tipi di linguaggio delleformule M).
Nel gruppo Qualsiasi colonna della scheda Trasforma scegliere Tipo di dati dal menu a discesa Tipo di
dati.
Selezionando l'icona sul lato sinistro dell'intestazione di colonna.
Quando si prova a impostare il tipo di dati della colonna Date su Date , si ottengono valori di errore.
Questi errori si verificano perché le impostazioni locali in uso tentano di interpretare la data nel formato inglese
(Stati Uniti), ovvero mese/giorno/anno. Poiché non è presente alcun mese 22 nel calendario, viene generato un
errore.
Invece di provare a selezionare solo il tipo di dati Date, è possibile fare clic con il pulsante destro del mouse
sull'intestazione di colonna, scegliere Cambia tipo e quindi selezionare Uso delle impostazioni locali.
Nella finestra di dialogo Modifica tipo di colonna con impostazioni locali selezionare il tipo di dati che si
desidera impostare, ma è anche possibile selezionare le impostazioni locali da usare, che in questo caso devono
essere inglese (Regno Unito).
Usando queste impostazioni locali, Power Query sarà in grado di interpretare correttamente i valori e convertirli
nel tipo di dati corretto.
Usando queste colonne, è possibile verificare che il valore di data sia stato convertito correttamente.
—
Nume
ro
decim
ale
—
Valuta
—
Nume
ro
intero
—
Perce
ntuale
—
Data/
ora
—
Data
—
Ora
—
Data/
Ora/F
uso
orario
—
Durat
a
—
Testo
—
Vero/
Falso
IC O N A DESC RIZ IO N E
Possibile
Non consentita
IC O N A DESC RIZ IO N E
Motivo dell'errore: la prima sezione prima dei due punti. Nell'esempio precedente il motivo dell'errore è
Expression.Error .
Messaggio di errore: la sezione direttamente dopo il motivo. Nell'esempio precedente il messaggio di
errore è La colonna 'Column' della tabella non è stata trovata.
Dettagli errore: la sezione subito dopo la stringa Details: . Nell'esempio precedente il dettaglio dell'errore
è Column .
Errori comuni a livello di passaggio
In tutti i casi, è consigliabile esaminare in dettaglio il motivo dell'errore, il messaggio di errore e i dettagli
dell'errore per comprendere la causa dell'errore. È possibile selezionare il pulsante Vai all'errore, se
disponibile, per visualizzare il primo passaggio in cui si è verificato l'errore.
Possibili soluzioni: esistono più soluzioni per questo caso, ma tutte dipendono dall'operazione che si desidera
eseguire. Per questo esempio, poiché l'intestazione di colonna Date corretta proviene già dal file di testo, è
sufficiente rimuovere il passaggio che rinomina la colonna. In questo modo la query verrà eseguita senza
questo errore.
Altri errori comuni a livello di passaggio
Quando si combinano o si uniscono dati tra più origini dati, è possibile che venga visualizzato un errore
Formula.Firewall, ad esempio quello illustrato nell'immagine seguente.
Questo errore può essere causato da diversi motivi, ad esempio i livelli di privacy dei dati tra le origini dati o il
modo in cui queste origini dati vengono combinate o unite. Per altre informazioni su come diagnosticare questo
problema, vedere Firewall della privacy dei dati.
Errori di sostituzione
Se invece di rimuovere righe con errori, è possibile sostituire gli errori con un valore fisso. Per sostituire le righe
con errori, selezionare prima di tutto la colonna contenente gli errori. Nel gruppo Qualsiasi colonna della
scheda Trasforma selezionare Sostituisci valori . Dal menu a discesa selezionare Sostituisci errori .
Nella finestra di dialogo Sostituisci errori immettere il valore 10 perché si desidera sostituire tutti gli errori con
il valore 10.
Possibili soluzioni: dopo aver identificato la riga con l'errore, è possibile modificare l'origine dati in modo che
rifletta il valore corretto anziché NA oppure è possibile applicare un'operazione replace error per fornire un
valore per tutti i valori NA che causano un errore.
Errori dell'operazione
Quando si tenta di applicare un'operazione non supportata, ad esempio moltiplicando un valore di testo per un
valore numerico, si verifica un errore.
Esempio: si vuole creare una colonna personalizzata per la query creando una stringa di testo contenente la
frase "Total Sales: " concatenata al valore della colonna Sales. Si verifica un errore perché l'operazione di
concatenazione supporta solo colonne di testo e non numeriche.
Possibili soluzioni: prima di creare questa colonna personalizzata, modificare il tipo di dati della colonna
Sales in testo.
Utilizzo di valori duplicati
07/12/2021 • 2 minutes to read
È possibile usare set duplicati di valori tramite trasformazioni che possono rimuovere i duplicati dai dati o
filtrare i dati in modo da visualizzare solo i duplicati, in modo da poterli concentrare su di essi.
WARNING
Power Query fa distinzione tra maiuscole e minuscole. Quando si lavora con valori duplicati, Power Query considera la
distinzione tra maiuscole e minuscole del testo, che potrebbe causare risultati indesiderati. Come soluzione alternativa, gli
utenti possono applicare una trasformazione maiuscola o minuscola prima di rimuovere i duplicati.
Per questo articolo, gli esempi usano la tabella seguente con le colonne id , Categor y e Total.
Rimuovere duplicati
Una delle operazioni che è possibile eseguire è rimuovere i valori duplicati dalla tabella.
1. Consente di selezionare le colonne che contengono valori duplicati.
2. Passare alla scheda Home.
3. Nel gruppo Riduci righe selezionare Rimuovi righe .
4. Dal menu a discesa selezionare Rimuovi duplicati.
WARNING
Non è garantito che la prima istanza di un set di duplicati venga scelta quando vengono rimossi i duplicati.
Sono presenti quattro righe duplicate. L'obiettivo è rimuovere le righe duplicate in modo che nella tabella siano
presenti solo righe univoche. Selezionare tutte le colonne della tabella e quindi selezionare Rimuovi
duplicati.
Il risultato di tale operazione offrirà la tabella che si sta cercando.
NOTE
Questa operazione può essere eseguita anche con un subset di colonne.
Si vogliono rimuovere questi duplicati e mantenere solo i valori univoci. Per rimuovere i duplicati dalla colonna
Categoria, selezionarla e quindi selezionare Rimuovi duplicati.
Il risultato di tale operazione offrirà la tabella che si sta cercando.
Mantieni duplicati
Un'altra operazione che è possibile eseguire con i duplicati è mantenere solo i duplicati trovati nella tabella.
1. Consente di selezionare le colonne che contengono valori duplicati.
2. Passare alla scheda Home.
3. Nel gruppo Riduci righe selezionare Mantieni righe .
4. Dal menu a discesa selezionare Mantieni duplicati.
Sono presenti quattro righe duplicate. L'obiettivo in questo esempio è mantenere solo le righe duplicate nella
tabella. Selezionare tutte le colonne della tabella e quindi selezionare Mantieni duplicati.
Il risultato di tale operazione offrirà la tabella che si sta cercando.
Mantenere i duplicati da una singola colonna
In questo esempio si vogliono identificare e mantenere i duplicati usando solo la colonna id della tabella.
In questo esempio sono presenti più duplicati e si vogliono mantenere solo i duplicati dalla tabella. Per
mantenere i duplicati dalla colonna id, selezionare la colonna id e quindi selezionare Mantieni duplicati.
Il risultato di tale operazione offrirà la tabella che si sta cercando.
Vedi anche
Strumenti di Profiling dati
Inserire i valori in una colonna
07/12/2021 • 2 minutes to read
È possibile usare fill up e fill down per sostituire i valori Null con l'ultimo valore non vuoto in una colonna. Si
immagini, ad esempio, la tabella seguente in cui si desidera compilare la colonna Data e compilare la colonna
Commenti.
Copiare
L'operazione di riempimento accetta una colonna e attraversa i valori in essa contenuti per riempire i valori Null
nelle righe successive fino a quando non trova un nuovo valore. Questo processo continua riga per riga fino a
quando non sono presenti altri valori nella colonna.
Nell'esempio seguente si vuole riempire la colonna Date. A tale scopo, è possibile fare clic con il pulsante
destro del mouse per selezionare la colonna Data e quindi scegliere > Riempi.
Il risultato di tale operazione sarà simile all'immagine seguente.
Riempimento
Allo stesso modo dell'operazione di riempimento, il riempimento funziona su una colonna. Al contrario, fill up
trova l'ultimo valore della colonna e inserisce tutti i valori Null nelle righe precedenti fino a quando non trova un
nuovo valore. Si verifica quindi lo stesso processo per tale valore. Questo processo continua fino a quando non
sono presenti altri valori nella colonna.
Nell'esempio seguente si vuole riempire la colonna Commenti dal basso verso l'alto. Si noterà che la colonna
Commenti non ha valori Null. Contiene invece celle vuote. Prima di eseguire l'operazione di riempimento, è
necessario trasformare le celle vuote in valori Null: selezionare la colonna, passare alla scheda Trasforma e
quindi selezionare Sostituisci valori .
Nella finestra di dialogo Sostituisci valori lasciare vuoto Valore. Per Sostituisci con immettere null.
3. Rimuovere i valori Sales Person: dalla colonna Sales Person in modo da ottenere solo i nomi dei
venditori.
A questo punto dovrebbe essere disponibile esattamente la tabella che si stava cercando.
Vedi anche
Sostituire i valori
Ordinare colonne
07/12/2021 • 2 minutes to read
È possibile ordinare una tabella in Power Query in base a una o più colonne. Ad esempio, prendere la tabella
seguente con le colonne denominate Concorrenza , Concorrente e Posizione .
Tabella con le colonne Concorrenza, Concorrente e Posizione. La colonna Competition contiene 1 - Apertura
nelle righe 1 e 6, 2 - Main nelle righe 3 e 5 e 3-Final nelle righe 2 e 4. La riga Position contiene un valore pari a 1
o 2 per ognuno dei valori di Competition.
Per questo esempio, l'obiettivo è ordinare questa tabella in base ai campi Competition e Position in ordine
crescente.
Tabella con le colonne Concorrenza, Concorrente e Posizione. La colonna Competition contiene 1 - Apertura
nelle righe 1 e 2, 2 - Main nelle righe 3 e 4 e 3-Final nelle righe 5 e 6. La riga Position contiene, dall'alto verso il
basso, un valore pari a 1, 2, 1, 2, 1 e 2.
Dal menu a discesa dell'intestazione di colonna. Accanto al nome della colonna è presente un indicatore
del menu a discesa . Quando si seleziona l'icona, viene visualizzata l'opzione per ordinare la colonna.
In questo esempio è prima necessario ordinare la colonna Concorrenza. L'operazione verrà eseguita usando i
pulsanti nel gruppo Ordina della scheda Home. Questa azione crea un nuovo passaggio nella sezione
Passaggi applicati denominata Righe ordinate .
Un indicatore visivo, visualizzato come freccia rivolta verso l'alto, viene aggiunto all'icona del menu a discesa
Concorrente per mostrare che la colonna viene ordinata in ordine crescente.
A questo punto il campo Posizione verrà ordinato anche in ordine crescente, ma questa volta si userà il menu a
discesa Intestazione di colonna Posizione.
Si noti che questa azione non crea un nuovo passaggio Righe ordinate, ma la modifica per eseguire entrambe
le operazioni di ordinamento in un unico passaggio. Quando si ordinano più colonne, l'ordine in cui vengono
ordinate le colonne è basato sull'ordine in cui sono state selezionate le colonne. Un indicatore visivo, visualizzato
come numero a sinistra dell'indicatore del menu a discesa, mostra la posizione che ogni colonna occupa
nell'ordinamento.
In Power Query è possibile rinominare le colonne per formattare il set di dati in modo chiaro e conciso.
Si inizierà ad esempio con un set di dati con due colonne.
C O LO N N A 1 C O LO N N A 2
Panama Panama
Canada Toronto
Le intestazioni di colonna sono Column 1 e Column 2, ma si desidera modificare tali nomi in nomi più
descrittivi per le colonne.
La colonna 1 diventa Countr y
La colonna 2 diventa City
Il risultato finale desiderato in Power Query è simile alla tabella seguente.
Fare clic con il pulsante destro del mouse sulla colonna scelta: viene visualizzato un menu di scelta
rapida ed è possibile selezionare l'opzione Rinomina per rinominare la colonna selezionata.
Opzione Rinomina nella scheda Trasforma : nel gruppo Qualsiasi colonna della scheda Trasforma
selezionare l'opzione Rinomina.
NOTE
Per altre informazioni su come alzare di livello le intestazioni dalla prima riga, vedere Alzare di livello oabbassare di
livello le intestazioni di colonna.
Espansione di una colonna con un nome di campo presente anche nella tabella corrente: ciò può
verificarsi, ad esempio, quando si esegue un'operazione di unione e la colonna con la tabella unita ha
nomi di campo che esistono anche nella tabella. Quando si tenta di espandere i campi di tale colonna,
Power Query cerca automaticamente di evitare errori di conflitto di nomi di colonna.
Spostare colonne
07/12/2021 • 2 minutes to read
Un processo comune durante la preparazione dei dati è lo spostamento di colonne nel set di dati.
Per eseguire questo spostamento, è possibile selezionare l'opzione Sposta o trascinare e rilasciare la colonna.
Opzione Sposta
L'esempio seguente illustra i diversi modi per spostare le colonne. Questo esempio è in particolare lo
spostamento della colonna Nome contatto.
Per spostare la colonna, usare l'opzione Sposta. Questa opzione si trova nel gruppo Qualsiasi colonna nella
scheda Trasforma. Nell'opzione Sposta le opzioni disponibili sono:
Prima
After
All'inizio
Per terminare
È anche possibile trovare questa opzione quando si fa clic con il pulsante destro del mouse su una colonna.
Se si vuole spostare una colonna a sinistra, selezionare Prima di .
La nuova posizione della colonna è ora una colonna a sinistra della posizione originale.
Se si vuole spostare la colonna nello spazio più a sinistra del set di dati, selezionare A par tire da .
La nuova posizione della colonna si trova ora sul lato sinistro della tabella.
Se si vuole spostare la colonna nello spazio più a destra del set di dati, selezionare Per terminare .
La nuova posizione della colonna si trova ora all'estrema destra della tabella.
Con Power Query, è possibile sostituire un valore con un altro valore ovunque tale valore si trova in una
colonna. Il comando Sostituisci valori è disponibile:
Nel menu di scelta rapida della cella. Fare clic con il pulsante destro del mouse sulla cella per sostituire il
valore selezionato nella colonna con un altro valore.
Il valore -1 nella colonna Sales Goal è un errore nell'origine e deve essere sostituito con l'obiettivo di vendita
standard definito dall'azienda per queste istanze, ovvero 250.000. A tale scopo, fare clic con il pulsante destro
del mouse sul valore -1 e quindi scegliere Sostituisci valori . Verrà visualizzata la finestra di dialogo
Sostituisci valori con Valore da trovare impostato su -1. A questo punto è necessario immettere 250000
nella casella Sostituisci con.
In Power Query, è possibile analizzare il contenuto di una colonna con stringhe di testo identificando il
contenuto come stringa di testo JSON o XML.
È possibile eseguire questa operazione di analisi selezionando il pulsante Analizza disponibile nelle posizioni
seguenti nel editor di Power Query:
Scheda Trasforma — Questo pulsante trasformerà la colonna esistente analizzando il relativo
contenuto.
Scheda Aggiungi colonna — Questo pulsante aggiungerà una nuova colonna alla tabella analizzando
il contenuto della colonna selezionata.
Per questo articolo si usa la tabella di esempio seguente che contiene le colonne seguenti che è necessario
analizzare:
SalesPerson — Contiene stringhe di testo JSON non analizzate con informazioni su FirstName e
LastName del venditore, come nell'esempio seguente.
{
"id" : 249319,
"FirstName": "Lesa",
"LastName": "Byrd"
}
Paese — Contiene stringhe di testo XML non analizzate con informazioni sul paese e sulla divisione a cui
è stato assegnato l'account, come nell'esempio seguente.
<root>
<id>1</id>
<Country>USA</Country>
<Division>BI-3316</Division>
</root>
La tabella di esempio è simile alla seguente.
L'obiettivo è analizzare le colonne citate in precedenza ed espandere il contenuto di tali colonne per ottenere
questo output.
Come JSON
Selezionare la colonna SalesPerson. Selezionare quindi JSON dal menu a discesa Analizza all'interno della
scheda Trasforma. Questi passaggi trasformeranno la colonna SalesPerson dalla presenza di stringhe di
testo a valori Record, come illustrato nell'immagine successiva. È possibile selezionare un punto qualsiasi nello
spazio vuoto all'interno della cella del valore Record per ottenere un'anteprima dettagliata del contenuto del
record nella parte inferiore della schermata.
Selezionare l'icona di espansione accanto all'intestazione di colonna SalesPerson. Dal menu Espandi
colonne selezionare solo i campi FirstName e LastName, come illustrato nell'immagine seguente.
Il risultato di tale operazione indica la tabella seguente.
Come XML
Selezionare la colonna Paese. Selezionare quindi il pulsante XML dal menu a discesa Analizza all'interno
della scheda Trasforma. Questi passaggi trasformeranno la colonna Countr y dalla presenza di stringhe di
testo alla presenza di valori Di tabella, come illustrato nell'immagine successiva. È possibile selezionare un
punto qualsiasi nello spazio vuoto all'interno della cella del valore Tabella per ottenere un'anteprima dettagliata
del contenuto della tabella nella parte inferiore della schermata.
Selezionare l'icona di espansione accanto all'intestazione di colonna Paese. Dal menu Espandi colonne
selezionare solo i campi Paese e Divisione, come illustrato nell'immagine seguente.
È possibile definire tutte le nuove colonne come colonne di testo. Il risultato di tale operazione offrirà la tabella
di output che si sta cercando.
Aggiungere una colonna da esempi
07/12/2021 • 3 minutes to read
Quando si aggiungono colonne da esempi, è possibile creare rapidamente e facilmente nuove colonne che
soddisfino le proprie esigenze. Ciò è utile nelle situazioni seguenti:
Si conoscono i dati che si vogliono ottenere nella nuova colonna, ma non si è certi di quale trasformazione, o
raccolta di trasformazioni, consenta di ottenerli.
Si sa già qual è la trasformazione necessaria, ma non si è sicuri di che cosa selezionare nell'interfaccia utente
per eseguirla.
Si conoscono tutte le trasformazioni necessarie usando un'espressione di colonna personalizzata nel
linguaggio M, ma una o più di queste trasformazioni non sono disponibili nell'interfaccia utente.
Il comando Colonna da esempi si trova nella scheda Aggiungi colonna del gruppo Generale.
Nel riquadro di anteprima viene visualizzata una nuova colonna modificabile in cui è possibile immettere gli
esempi. Per il primo esempio, il valore della colonna selezionata è 19500. Nella nuova colonna immettere quindi
il testo da 15000 a 20000, ovvero il contenitore in cui cade il valore.
Quando Power Query trova una trasformazione corrispondente, i risultati della trasformazione vengono riempiti
nelle righe rimanenti usando testo di colore chiaro. È anche possibile visualizzare il testo della formula M per la
trasformazione sopra l'anteprima della tabella.
Dopo aver selezionato OK, la nuova colonna verrà visualizzata come parte della query. Verrà anche aggiunto un
nuovo passaggio alla query.
Dopo aver selezionato OK, la nuova colonna verrà visualizzata come parte della query. Verrà anche aggiunto un
nuovo passaggio alla query.
L'ultimo passaggio consiste nel rimuovere le colonne First Name , Last Name e Monthly Income. La tabella
finale contiene ora le colonne Inter vallo e Nome completo con tutti i dati prodotti nei passaggi precedenti.
Suggerimenti e considerazioni
Quando si forniscono esempi, Power Query un utile elenco di campi, valori e trasformazioni suggerite
disponibili per le colonne selezionate. È possibile visualizzare questo elenco selezionando qualsiasi cella della
nuova colonna.
È importante notare che l'esperienza Colonna da esempi funziona solo nelle prime 100 righe dell'anteprima
dei dati. È possibile applicare passaggi prima del passaggio Colonna da esempi per creare un esempio di
dati personalizzato. Dopo aver creato la colonna Colonna da esempi, è possibile eliminare i passaggi
precedenti. la colonna appena creata non verrà interessata.
NOTE
Tutte le trasformazioni di testo tengono conto dell'eventuale necessità di tagliare, pulire o di applicare una trasformazione
di maiuscole/minuscole al valore della colonna.
Trasformazioni di data
Giorno
Giorno della settimana
Nome giorno della settimana
Giorno dell'anno
Month
Month Name
Trimestre dell'anno
Settimana del mese
Settimana dell'anno
Anno
Età
Inizio dell'anno
Fine dell'anno
Inizio del mese
Fine del mese
Inizio del trimestre
Giorni del mese
Fine del trimestre
Inizio della settimana
Fine della settimana
Giorno del mese
Inizio della giornata
Fine della giornata
Trasformazioni di ora
Hour
Minuto
Second
In Ora Locale
NOTE
Tutte le trasformazioni di data e ora prendono in considerazione la potenziale necessità di convertire il valore della colonna
in Date, Time o DateTime.
Trasformazioni di numero
Valore assoluto
Arcocoseno
Arcoseno
Arcotangente
Converti in numero
Coseno
Cubo
Dividi
Esponente
Fattoriale
Divisione intera
È pari
È dispari
Ri
Logaritmo in base 10
Modulo
Moltiplica
Arrotonda per difetto
Arrotonda per eccesso
Segno
Seno
Radice quadrata
Quadrato
Sottrai
Somma
Tangente
Bucket/Intervalli
Aggiungere una colonna indice
07/12/2021 • 2 minutes to read
Il comando Index column aggiunge una nuova colonna alla tabella con valori di posizione espliciti e viene in
genere creato per supportare altri modelli di trasformazione.
Per impostazione predefinita, l'indice iniziale inizierà dal valore 0 e avrà un incremento di 1 per riga.
Si immagini che l'obiettivo sia trasformare la tabella in quella illustrata nell'immagine seguente, con le colonne
Date , Account e Sale .
Nella finestra di dialogo Modulo immettere il numero da cui trovare il resto per ogni valore nella colonna. In
questo caso, il modello si ripete ogni tre righe, quindi si immette 3 .
Nella finestra di dialogo Divisione numeri interi immettere un numero in base al quale dividere ogni valore
nella colonna. In questo caso, il modello si ripete ogni tre righe, quindi immettere il valore 3 .
Rimuovere la colonna Index perché non è più necessaria. La tabella è ora simile all'immagine seguente.
Se è necessaria una maggiore flessibilità per l'aggiunta di nuove colonne rispetto a quelle fornite in Power
Query, è possibile creare una colonna personalizzata usando il linguaggio della formula Power Query M.
Imagine si dispone di una tabella con il set di colonne seguente.
Usando le colonne Unità, Prezzo unitario e Sconto, si desidera creare due nuove colonne:
Total Sale before Discount : calcolato moltiplicando la colonna Unità per la colonna Prezzo unitario.
Total Sale after Discount : calcolato moltiplicando la colonna Total Sale before Discount per il valore
percentuale netto (uno meno il valore dello sconto).
L'obiettivo è creare una tabella con nuove colonne simili all'immagine seguente.
Verrà visualizzata la finestra di dialogo Colonna personalizzata . Questa finestra di dialogo consente di
definire la formula per creare la colonna.
La finestra di dialogo Colonna personalizzata contiene:
Elenco Colonne disponibili a destra.
Nome iniziale della colonna personalizzata nella casella Nome nuova colonna. È possibile rinominare
la colonna.
Power Query formula M nella casella Formula colonna personalizzata.
Per aggiungere una nuova colonna personalizzata, selezionare una colonna dall'elenco Colonne disponibili sul
lato destro della finestra di dialogo. Selezionare quindi il pulsante Inserisci colonna sotto l'elenco per
aggiungerla alla formula della colonna personalizzata. È anche possibile aggiungere una colonna selezionandola
nell'elenco. In alternativa, è possibile scrivere una formula personalizzata usando il linguaggio della formula
Power Query M nella casella Formula colonna personalizzata.
NOTE
Se si verifica un errore di sintassi durante la creazione della colonna personalizzata, verrà visualizzata un'icona di avviso
gialla, insieme a un messaggio di errore e a un motivo.
Passaggi successivi
È possibile creare una colonna personalizzata in altri modi, ad esempio creando una colonna in base agli
esempi forniti editor di Power Query. Altre informazioni: Aggiungere una colonna da un esempio
Per Power Query informazioni di riferimento su M, vedere Power Query riferimento alla funzione M.
Aggiungere una colonna condizionale
07/12/2021 • 2 minutes to read
Con Power Query, è possibile creare nuove colonne i cui valori saranno basati su una o più condizioni applicate
ad altre colonne della tabella.
Il comando Colonna condizionale si trova nella scheda Aggiungi colonna del gruppo Generale.
In questa tabella è presente un campo che fornisce CustomerGroup . Sono inoltre disponibili prezzi diversi
applicabili a tale cliente nei campi Tier 1 Price (Prezzo di livello 1), Tier 2 Price (Prezzo di livello 2) e Tier 3
Price (Prezzo di livello 3). In questo esempio l'obiettivo è creare una nuova colonna con il nome Final Price
in base al valore presente nel campo CustomerGroup. Se il valore nel campo CustomerGroup è uguale a 1,
è necessario usare il valore del campo Tier 1 Price. In caso contrario, si userà il valore del prezzo di livello 3.
Per aggiungere questa colonna condizionale, selezionare Colonna condizionale . Nella finestra di dialogo
Aggiungi colonna condizionale è possibile definire tre sezioni numerate nell'immagine seguente.
1. Nome nuova colonna: è possibile definire il nome della nuova colonna. In questo esempio si userà il nome
Final Price .
2. Clausole condizionali: qui si definiscono le clausole condizionali. È possibile aggiungere altre clausole
selezionando Aggiungi clausola . Ogni clausola condizionale verrà testata nell'ordine indicato nella finestra
di dialogo, dall'alto verso il basso. Ogni clausola è di quattro parti:
Nome colonna: nell'elenco a discesa selezionare la colonna da usare per il test condizionale. Per
questo esempio selezionare CustomerGroup .
Operatore : selezionare il tipo di test o operatore per il test condizionale. In questo esempio il valore
della colonna CustomerGroup deve essere uguale a 1, quindi selezionare uguale a .
Valore: è possibile immettere un valore o selezionare una colonna da usare per il test condizionale.
Per questo esempio immettere 1 .
Output: se il test è positivo, il valore immesso qui o la colonna selezionata sarà l'output. Per questo
esempio, se il valore CustomerGroup è uguale a 1, il valore output deve essere il valore della
colonna Tier 1 Price.
3. Clausola Else finale: se nessuna delle clausole precedenti restituisce un test positivo, l'output di questa
operazione sarà quello definito qui, come valore immesso manualmente o come valore di una colonna. In
questo caso, l'output sarà il valore della colonna Tier 3 Price.In this case, the output will be the value from
the Tier 3 Price column.
Il risultato di tale operazione offrirà una nuova colonna Prezzo finale.
NOTE
Per le nuove colonne condizionali non sarà definito un tipo di dati. È possibile aggiungere un nuovo passaggio per definire
un tipo di dati per questa colonna appena creata seguendo la procedura descritta in Tipi di dati in Power Query.
I valori cluster creano automaticamente gruppi con valori simili usando un algoritmo di corrispondenza fuzzy e
quindi esegue il mapping del valore di ogni colonna al gruppo con la corrispondenza migliore. Questa
trasformazione è molto utile quando si lavora con dati con molte varianti diverse dello stesso valore ed è
necessario combinare i valori in gruppi coerenti.
Si consideri una tabella di esempio con una colonna ID che contiene un set di ID e una colonna Person
contenente un set di versioni con varie lettere maiuscole e con ortografia diversa dei nomi Mike, Mike, Bill e Bill.
In questo esempio, il risultato che si sta cercando è una tabella con una nuova colonna che mostra i gruppi di
valori appropriati dalla colonna Person e non tutte le diverse varianti delle stesse parole.
NOTE
La funzionalità Valori cluster è disponibile solo per Power Query Online.
NOTE
Per ogni cluster di valori, Power Query l'istanza più frequente dalla colonna selezionata come istanza "canonica". Se si
verificano più istanze con la stessa frequenza, Power Query seleziona la prima.
IMPORTANT
È importante che la tabella di trasformazione abbia le stesse colonne e gli stessi nomi di colonna illustrati nell'immagine
precedente (devono essere denominati "Da" e "A"), in caso contrario Power Query non riconoscerà questa tabella come
tabella di trasformazione e non verrà eseguita alcuna trasformazione.
Usando la query creata in precedenza, fare doppio clic sul passaggio Valori cluster , quindi nella finestra di
dialogo Valori cluster espandere Opzioni cluster fuzzy . In Opzioni cluster fuzzy abilitare l'opzione Mostra
punteggi di somiglianza. Per Tabella di trasformazione (facoltativo) selezionare la query contenente la
tabella di trasformazione.
Dopo aver selezionato la tabella di trasformazione e aver abilitato l'opzione Mostra punteggi di
somiglianza, selezionare OK. Il risultato di tale operazione fornisce una tabella che contiene le stesse colonne
ID e Person della tabella originale, ma include anche due nuove colonne a destra denominate Cluster e
Person_Cluster_Similarity . La colonna Cluster contiene le versioni con ortografia corretta e con lettere
maiuscole dei nomi Delle versioni di Mike e Mike per le versioni di Bill, Bill, e Bill e Bill. La
Person_Cluster_Similarity contiene i punteggi di somiglianza per ognuno dei nomi.
Accodare query
07/12/2021 • 2 minutes to read
L'operazione di accodamento crea una singola tabella aggiungendo il contenuto di una o più tabelle a un'altra e
aggrega le intestazioni di colonna dalle tabelle per creare lo schema per la nuova tabella.
NOTE
Quando vengono aggiunte tabelle che non hanno le stesse intestazioni di colonna, tutte le intestazioni di colonna di tutte
le tabelle vengono aggiunte alla tabella risultante. Se una delle tabelle accodate non ha un'intestazione di colonna di altre
tabelle, la tabella risultante mostra i valori Null nella rispettiva colonna, come illustrato nell'immagine precedente nelle
colonne C e D.
È possibile trovare il comando Accoda query nella scheda Home del gruppo Combina. Nel menu a discesa
sono disponibili due opzioni:
Quer y di accodamento consente di visualizzare la finestra di dialogo Accoda per aggiungere altre
tabelle alla query corrente.
Accoda quer y come nuove visualizza la finestra di dialogo Accoda per creare una nuova query
aggiungendo più tabelle.
L'operazione di accodamento richiede almeno due tabelle. La finestra di dialogo Aggiungi presenta due
modalità:
Due tabelle: combinano due query di tabella. Questa è la modalità predefinita.
Tre o più tabelle: consentono la combinazione di un numero arbitrario di query di tabella.
NOTE
Le tabelle verranno aggiunte nell'ordine in cui sono selezionate, a partire dalla tabella primaria per la modalità Due tabelle
e dalla tabella primaria nell'elenco Tabelle da accodare per la modalità Tre o più tabelle.
Accodare due tabelle
Per l'esempio in questo articolo si useranno le due tabelle seguenti con dati di esempio:
Online Sales : vendite effettuate tramite un canale online.
Per accodare queste tabelle, selezionare prima di tutto la tabella Online Sales. Nella scheda Home
selezionare Accoda quer y per creare un nuovo passaggio nella query Online Sales. La tabella Online Sales
sarà la tabella primaria. La tabella da accodare alla tabella primaria sarà Store Sales.
Power Query esegue l'operazione di accodamento in base ai nomi delle intestazioni di colonna trovate in
entrambe le tabelle e non in base alla relativa posizione nelle sezioni delle intestazioni delle rispettive tabelle.
Nella tabella finale verranno aggiunte tutte le colonne di tutte le tabelle.
Nel caso in cui una tabella non abbia colonne trovate in un'altra tabella, i valori Null verranno visualizzati nella
colonna corrispondente, come illustrato nella colonna Referer della query finale.
Aggiungere tre o più tabelle
In questo esempio si desidera aggiungere non solo le tabelle Online Sales e Store Sales, ma anche una nuova
tabella denominata Vendite all'ingrosso .
Il nuovo approccio per questo esempio consiste nel selezionare Accoda query come nuova e quindi nella
finestra di dialogo Aggiungi selezionare il pulsante di opzione Tre o più tabelle. Nell'elenco Tabelle
disponibili selezionare ogni tabella da accodare e quindi selezionare Aggiungi . Dopo aver visualizzato tutte
le tabelle da visualizzare nell'elenco Tabelle da accodare, selezionare OK.
Dopo aver selezionato OK, verrà creata una nuova query con tutte le tabelle aggiunte.
Panoramica della combinazione di file
07/12/2021 • 4 minutes to read
Con Power Query, è possibile combinare più file con lo stesso schema in una singola tabella logica.
Questa funzionalità è utile quando si vogliono combinare tutti i file presenti nella stessa cartella. Ad esempio, se
si dispone di una cartella che contiene file mensili con tutti gli ordini di acquisto per l'azienda, è possibile
combinare questi file per consolidare gli ordini in un'unica visualizzazione.
I file possono provengono da diverse origini, ad esempio (ma non solo):
Cartelle locali
Siti di SharePoint
Archiviazione BLOB di Azure
Azure Data Lake Storage (Gen1 e Gen2)
Quando si lavora con queste origini, si noterà che condividono lo stesso schema di tabella, comunemente noto
come file system visualizzazione. Lo screenshot seguente mostra un esempio della file system visualizzazione.
Nella vista file system, la colonna Contenuto contiene la rappresentazione binaria di ogni file.
NOTE
È possibile filtrare l'elenco di file nella file system visualizzazione usando uno dei campi disponibili. È consigliabile filtrare
questa visualizzazione in modo da visualizzare solo i file da combinare, ad esempio filtrando campi come Estensione o
Percorso car tella . Altre informazioni: Cartella
La selezione di uno dei valori binari nella colonna Contenuto crea automaticamente una serie di passaggi di [
navigazione per il file ] specifico. Power Query di interpretare il file binario usando uno dei connettori
disponibili, ad esempio Text/CSV, Excel, JSON o XML.
La combinazione dei file avviene nelle fasi seguenti:
Anteprima tabella
Finestra di dialogo Combina file
Output di file combinati
Anteprima tabella
Quando ci si connette a un'origine dati usando uno dei connettori indicati in precedenza, viene visualizzata
un'anteprima della tabella. Se si è certi di voler combinare tutti i file nella cartella, selezionare Combina
nell'angolo inferiore destro della schermata.
In alternativa, è possibile selezionare Trasforma dati per accedere al editor di Power Query e creare un subset
dell'elenco di file, ad esempio usando filtri nella colonna percorso cartella per includere solo i file di una
sottocartella specifica. Combinare quindi i file selezionando la colonna che contiene i file binari nella colonna
Contenuto e quindi selezionando una delle opzioni seguenti:
Comando Combina file nel gruppo Combina della scheda Home.
Icona Combina file nell'intestazione di colonna della colonna che contiene valori [ ] binari.
NOTE
È possibile modificare i passaggi all'interno della query di esempio per modificare la funzione applicata a ogni file binario
nella query. La query di esempio è collegata alla funzione, quindi tutte le modifiche apportate alla query di esempio
verranno riflesse nella query della funzione.
Se una delle modifiche influisce sui nomi di colonna o sui tipi di dati delle colonne, assicurarsi di controllare l'ultimo
passaggio della query di output. L'aggiunta di un passaggio Modifica tipo di colonna può introdurre un errore a livello
di passaggio che impedisce la visualizzazione della tabella. Altre informazioni: Gestione degli errori
Vedi anche
Combinare file CSV
Combinare file CSV
07/12/2021 • 5 minutes to read
In Power Query è possibile combinare più file da una determinata origine dati. Questo articolo descrive il
funzionamento dell'esperienza quando i file da combinare sono file CSV. Altre informazioni: Panoramica della
combinazione di file
TIP
È possibile seguire questo esempio scaricando i file di esempio usati in questo articolo da questo collegamento per il
download. È possibile inserire tali file nell'origine dati scelta, ad esempio una cartella locale, una cartella SharePoint, un
archivio BLOB di Azure, Azure Data Lake Archiviazione o un'altra origine dati che fornisce la visualizzazione file system dati.
Per semplicità, l'esempio in questo articolo usa il connettore Cartella. Altre informazioni: Cartella
Il numero di righe varia da file a file, ma tutti i file hanno una sezione di intestazione nelle prime quattro righe.
Hanno intestazioni di colonna nella quinta riga e i dati per la tabella iniziano nella sesta riga e continuano in
tutte le righe successive.
L'obiettivo è combinare tutti e 12 i file in un'unica tabella. Questa tabella combinata contiene la riga di
intestazione nella parte superiore della tabella e include il nome di origine, la data, il paese, le unità e i dati sui
ricavi per l'intero anno in colonne separate dopo la riga di intestazione.
Anteprima tabella
Quando ci si connette alla cartella che ospita i file da combinare in questo esempio, il nome della cartella è File
CSV. Viene visualizzata la finestra di dialogo di anteprima della tabella, che visualizza il percorso della cartella —
— nell'angolo superiore sinistro. L'anteprima dei dati mostra la file system dati.
NOTE
In una situazione diversa, è possibile selezionare Trasforma dati per filtrare e trasformare ulteriormente i dati prima di
combinare i file. È consigliabile selezionare Combina solo quando si è certi che la cartella contenga solo i file da
combinare.
NOTE
Power Query rileva automaticamente il connettore da usare in base al primo file trovato nell'elenco. Per altre informazioni
sul connettore CSV, vedere Testo/CSV.
Per questo esempio, lasciare tutte le impostazioni predefinite ( File di esempio impostato su Primo file e i valori
predefiniti per Origine file , Delimitatore e Rilevamento del tipo di dati ).
Selezionare ora Trasforma dati nell'angolo inferiore destro per passare alla query di output.
Query di output
Dopo aver selezionato Trasforma dati nella finestra di dialogo Combina file, si tornerà al editor di Power Query
nella query creata inizialmente dalla connessione alla cartella locale. La query di output contiene ora il nome del
file di origine nella colonna più a sinistra, insieme ai dati di ogni file di origine nelle colonne rimanenti.
Tuttavia, i dati non sono nella forma corretta. È necessario rimuovere le prime quattro righe da ogni file prima di
combinarle. Per apportare questa modifica in ogni file prima di combinarli, selezionare la query Trasforma file
di esempio nel riquadro Query sul lato sinistro dello schermo.
Modificare la query del file di esempio di trasformazione
In questa query del file transform sample i valori nella colonna Date indicano che i dati sono relativi al mese di
aprile, che ha il formato anno-mese-giorno (AAAA-MM-GG). April 2019.csv è il primo file visualizzato
nell'anteprima della tabella.
È ora necessario applicare un nuovo set di trasformazioni per pulire i dati. Ogni trasformazione verrà convertita
automaticamente in una funzione all'interno del gruppo di query helper che verrà applicata a ogni file nella
cartella prima di combinare i dati di ogni file.
Le trasformazioni che devono essere aggiunte alla query transform sample file sono:
1. Rimuovi le prime righe: per eseguire questa operazione, selezionare il menu dell'icona della tabella
nell'angolo superiore sinistro della tabella e quindi selezionare Rimuovi le prime righe.
Nella finestra di dialogo Rimuovi le prime righe immettere 4 e quindi selezionare OK.
Dopo aver selezionato OK, la tabella non avrà più le prime quattro righe.
2. Usa la prima riga come intestazioni: selezionare di nuovo l'icona della tabella e quindi selezionare
Usa la prima riga come intestazioni.
Il risultato di tale operazione alza di livello la prima riga della tabella alle nuove intestazioni di colonna.
Al termine di questa operazione, Power Query per impostazione predefinita tenterà di rilevare automaticamente
i tipi di dati delle colonne e di aggiungere un nuovo passaggio Tipo di colonna modificato.
Revisione della query di output
Quando si torna alla query di file CSV, si noterà che l'ultimo passaggio restituisce un errore che indica che la
colonna "Column1" della tabella non è stata trovata. Il motivo di questo errore è che lo stato precedente della
query stava eseguendo un'operazione su una colonna denominata Column1. Tuttavia, a causa delle modifiche
apportate alla query del file transform sample, questa colonna non esiste più. Altre informazioni: Gestione
degli errori in Power Query
È possibile rimuovere l'ultimo passaggio della query dal riquadro Passaggi applicati selezionando l'icona X
elimina sul lato sinistro del nome del passaggio. Dopo aver eliminato questo passaggio, la query mostrerà i
risultati corretti.
Si noti tuttavia che nessuna delle colonne derivate dai file (Date, Country, Units, Revenue) ha un tipo di dati
specifico assegnato. Assegnare il tipo di dati corretto a ogni colonna usando la tabella seguente.
N O M E C O LO N N A T IP O DI DAT I
Data Data
Paese Testo
Ricavi Valuta
Dopo aver definito i tipi di dati per ogni colonna, si sarà pronti per caricare la tabella.
NOTE
Per informazioni su come definire o modificare i tipi di dati delle colonne, vedere Tipi di dati.
Verifica
Per verificare che tutti i file siano stati combinati, è possibile selezionare l'icona del filtro nell'intestazione di
colonna Source.Name, che visualizza tutti i nomi dei file che sono stati combinati. Se viene visualizzato l'avviso
"L'elenco potrebbe essere incompleto", selezionare Carica altro nella parte inferiore del menu per visualizzare
altri valori disponibili nella colonna.
Dopo aver selezionato Carica altro , verranno visualizzati tutti i nomi di file disponibili.
Panoramica delle query di unione
07/12/2021 • 4 minutes to read
Un'operazione di merge esegue il join di due tabelle esistenti in base ai valori corrispondenti di una o più
colonne. È possibile scegliere di usare diversi tipi di join, a seconda dell'output desiderato.
Unione di query
È possibile trovare il comando Merge quer y nella scheda Home del gruppo Combina. Nel menu a discesa
sono disponibili due opzioni:
Merge quer y : consente di visualizzare la finestra di dialogo Merge con la query selezionata come tabella a
sinistra dell'operazione di unione.
Merge di quer y come nuove : consente di visualizzare la finestra di dialogo Merge senza alcuna tabella
preselezionata per l'operazione di unione.
NOTE
Anche se in questo esempio viene illustrata la stessa intestazione di colonna per entrambe le tabelle, questo non è un
requisito per l'operazione di unione. Non è necessario che le intestazioni di colonna corrispondano tra tabelle. È tuttavia
importante notare che le colonne devono essere dello stesso tipo di dati. In caso contrario, l'operazione di unione
potrebbe non produrre risultati corretti.
È anche possibile selezionare più colonne per eseguire il join premendo CTRL mentre si selezionano le colonne.
In questo caso, l'ordine in cui sono state selezionate le colonne viene visualizzato in numeri piccoli accanto alle
intestazioni di colonna, a partire da 1.
Per questo esempio sono disponibili le tabelle Sales e Countries. Ogni tabella include le colonne
Countr yID e StateID, che è necessario associare per il join tra entrambe le colonne.
Selezionare prima di tutto la colonna Countr yID nella tabella Sales, premere CTRL e quindi selezionare la
colonna StateID. Verranno visualizzati i numeri piccoli nelle intestazioni di colonna. Eseguire quindi le stesse
selezioni nella tabella Paesi. L'immagine seguente mostra il risultato della selezione di tali colonne.
! [Finestra di dialogo Merge con la tabella Left per merge impostata su Sales, con le colonne CountryID e StateID
selezionate e la tabella Right per merge impostata su Countries, con le colonne CountryID e StateID selezionate.
Il tipo di join è impostato su Left outer.
Espandere o aggregare la nuova colonna della tabella unita
Dopo aver selezionato OK nella finestra di dialogo Merge, la tabella di base della query conterà tutte le
colonne della tabella a sinistra. Verrà inoltre aggiunta una nuova colonna con lo stesso nome della tabella a
destra. Questa colonna contiene i valori corrispondenti alla tabella di destra riga per riga.
Da qui è possibile scegliere di espandere o aggregare i campi di questa nuova colonna della tabella, che saranno
i campi della tabella a destra.
Tabella che mostra la colonna Countries unita a destra, con tutte le righe contenenti una tabella. L'icona di
espansione a destra dell'intestazione di colonna Paesi è stata selezionata e il menu di espansione è aperto. Nel
menu di espansione sono selezionate le selezioni Seleziona tutto, CountryID, StateID, Country e State. È
selezionata anche l'opzione Usa il nome della colonna originale come prefisso.
NOTE
Attualmente, l'Power Query online offre solo l'operazione di espansione nella relativa interfaccia. L'opzione per
l'aggregazione verrà aggiunta più avanti nel corso dell'anno.
Tipi di join
Un tipo di join specifica come verrà eseguita un'operazione di unione. Nella tabella seguente vengono descritti i
tipi di join disponibili in Power Query.
T IP O DI JO IN IC O N A DESC RIZ IO N E
Corrispondenza fuzzy
L'unione fuzzy viene utilizzata per applicare algoritmi di corrispondenza fuzzy durante il confronto delle
colonne, per tentare di trovare corrispondenze tra le tabelle da unire. È possibile abilitare questa funzionalità
selezionando la casella di controllo Usa corrispondenza fuzzy per eseguire l'unione nella finestra di dialogo
Merge . Espandere Le opzioni di corrispondenza fuzzy per visualizzare tutte le configurazioni disponibili.
NOTE
La corrispondenza fuzzy è supportata solo per le operazioni di unione su colonne di testo.
Left outer join
07/12/2021 • 2 minutes to read
Uno dei tipi di join disponibili nella finestra di dialogo Merge di Power Query è un left outer join, che mantiene
tutte le righe della tabella di sinistra e consente di visualizzare tutte le righe corrispondenti della tabella di
destra. Altre informazioni: Panoramica delle operazioni di unione
La figura mostra una tabella a sinistra con le colonne Date, CountryID e Units. La colonna CountryID evidenziata
contiene i valori 1 nelle righe 1 e 2, 3 nella riga 3 e 4 nella riga 4. Una tabella a destra contiene le colonne ID e
Country. La colonna ID evidenziata contiene i valori 1 nella riga 1 (indica gli Stati Uniti), 2 nella riga 2 (che indica
il Canada) e 3 nella riga 3 (che indica Il Messico). Una tabella sotto le prime due tabelle contiene le colonne Date,
CountryID, Units e Country. La tabella contiene quattro righe, con le prime due righe contenenti i dati per
CountryID 1, una riga per CountryID 3 e una riga per Country ID 4. Poiché la tabella di destra non contiene un ID
pari a 4, il valore della quarta riga nella colonna Country contiene Null.
Questo articolo usa dati di esempio per illustrare come eseguire un'operazione di unione con il left outer join. Le
tabelle di origine di esempio per questo esempio sono:
Sales: questa tabella include i campi Date, Countr yID e Units. Countr yID è un valore numerico intero
che rappresenta l'identificatore univoco della tabella Countries.
Paesi: questa tabella è una tabella di riferimento con i campi id e Countr y . Il campo id rappresenta
l'identificatore univoco per ogni record.
Tabella Countries con ID impostato su 1 nella riga 1, 2 nella riga 2 e 3 nella riga 3 e Country
impostato su USA nella riga 1, Canada nella riga 2 e Country nella riga 3.
In questo esempio si uniranno entrambe le tabelle, con la tabella Sales come tabella a sinistra e la tabella
Countries come tabella a destra. Il join verrà effettuato tra le colonne seguenti.
COUNTRYID id
L'obiettivo è quello di creare una tabella simile alla seguente, in cui il nome del paese viene visualizzato come
nuova colonna Countr y nella tabella Sales purché countr yID sia presente nella tabella Countries. Se non
sono presenti corrispondenze tra le tabelle di sinistra e di destra, il risultato dell'unione per la riga è un valore
Null. Nell'immagine seguente, questo è il caso di Countr yID 4, che è stato portato dalla tabella Sales.
Uno dei tipi di join disponibili nella finestra di dialogo Unisci in Power Query è un right outer join, che mantiene
tutte le righe della tabella di destra e contiene tutte le righe corrispondenti della tabella di sinistra. Altre
informazioni: Panoramica delle operazioni di merge
La figura mostra una tabella a sinistra con le colonne Date, CountryID e Units. La colonna CountryID evidenziata
contiene i valori 1 nelle righe 1 e 2, 3 nella riga 3 e 4 nella riga 4. Una tabella a destra contiene le colonne ID e
Country, con una sola riga. La colonna ID evidenziata contiene il valore 3 nella riga 1 (che indica Panama). Una
tabella sotto le prime due tabelle contiene le colonne Date, CountryID, Units e Country. La tabella include una
riga, con CountryID di 3 e Country of Panama.
Questo articolo usa dati di esempio per illustrare come eseguire un'operazione di unione con il right outer join.
Le tabelle di origine di esempio per questo esempio sono:
Sales: questa tabella include i campi Date , Countr yID e Units . CountryID è un valore numerico intero
che rappresenta l'identificatore univoco della tabella Countries.
Countries : questa tabella è una tabella di riferimento con i campi ID e Countr y . Il campo id
rappresenta l'identificatore univoco per ogni record.
In questo esempio si uniranno entrambe le tabelle, con la tabella Sales come tabella a sinistra e la tabella
Countries come quella destra. Il join verrà effettuato tra le colonne seguenti.
CountryID id
L'obiettivo è creare una tabella simile alla seguente, in cui il nome del paese viene visualizzato come nuova
colonna Countr y nella tabella Sales. A causa del funzionamento right outer join, verranno inserite tutte le
righe della tabella di destra, ma verranno mantenute solo le righe corrispondenti della tabella di sinistra.
Nella colonna Paesi appena creata espandere il campo Paese. Non selezionare la casella di controllo Usa
nome colonna originale come prefisso .
Dopo aver eseguito questa operazione, si creerà una tabella simile all'immagine seguente.
Full outer join
07/12/2021 • 3 minutes to read
Uno dei tipi di join disponibili nella finestra di dialogo Merge di Power Query è un full outer join, che consente di
visualizzare tutte le righe delle tabelle di sinistra e destra. Altre informazioni: Panoramica delle operazioni di
unione
La figura mostra una tabella a sinistra con le colonne Date, CountryID e Units. La colonna CountryID evidenziata
contiene i valori 1 nelle righe 1 e 2, 3 nella riga 3 e 2 nella riga 4. Una tabella a destra contiene le colonne ID e
Country. La colonna ID evidenziata contiene i valori 1 nella riga 1 (indica gli Stati Uniti), 2 nella riga 2 (che indica
il Canada), 3 nella riga 3 (che indica La Spagna) e 4 (che indica la Spagna) nella riga 4. Una tabella sotto le prime
due tabelle contiene le colonne Date, CountryID, Units e Country. Tutte le righe sono state ridisporte in ordine
numerico in base al valore CountryID. Il paese associato al numero CountryID viene visualizzato nella colonna
Country. Poiché l'ID paese per la Spagna non era contenuto nella tabella a sinistra, viene aggiunta una nuova
riga e i valori relativi a data, ID paese e unità per questa riga sono impostati su Null.
Questo articolo usa dati di esempio per illustrare come eseguire un'operazione di unione con il full outer join. Le
tabelle di origine di esempio per questo esempio sono:
Sales: questa tabella include i campi Date, Countr yID e Units. Countr yID è un valore numerico intero
che rappresenta l'identificatore univoco della tabella Countries.
Paesi: si tratta di una tabella di riferimento con i campi id e Countr y . Il campo id rappresenta
l'identificatore univoco per ogni record.
In questo esempio si uniranno entrambe le tabelle, con la tabella Sales come tabella a sinistra e la tabella
Countries come tabella a destra. Il join verrà effettuato tra le colonne seguenti.
COUNTRYID id
L'obiettivo è creare una tabella simile alla seguente, in cui il nome del paese viene visualizzato come nuova
colonna Countr y nella tabella Sales. A causa del funzionamento full outer join, verranno inserite tutte le righe
delle tabelle sinistra e destra, indipendentemente dal fatto che vengano visualizzate solo in una delle tabelle.
Completa outer join tabella finale con Date, CountryID e Units derivati dalla tabella Sales e una colonna Country
derivata dalla tabella Countries. È stata aggiunta una quinta riga per contenere i dati della Spagna, ma tale riga
contiene null nelle colonne Date, CountryID e Units perché tali valori non esistevano per la Spagna nella tabella
Sales.
Per eseguire un'full outer join
1. Selezionare la query Sales e quindi selezionare Merge queries (Unisci quer y).
2. Nella finestra di dialogo Merge selezionare Paesi in Tabella destra per l'unione.
3. Nella tabella Sales selezionare la colonna Countr yID.
4. Nella tabella Paesi selezionare la colonna ID.
5. Nella sezione Tipo di join selezionare Full outer .
6. Selezionare OK .
TIP
Esaminare in dettaglio il messaggio nella parte inferiore della finestra di dialogo che indica che la selezione corrisponde a 4
di 4 righe della prima tabella e 3 di 4 righe della seconda tabella. Questo messaggio è fondamentale per comprendere il
risultato che si ottiene da questa operazione.
Nella tabella Paesi è presente il campo Countr y Spagna con ID 4, ma non sono presenti record per Countr yID
4 nella tabella Sales. Per questo motivo solo tre delle quattro righe della tabella di destra hanno trovato una
corrispondenza. Tutte le righe della tabella di destra che non hanno righe corrispondenti della tabella di sinistra
verranno raggruppate e visualizzate in una nuova riga della tabella di output senza valori per i campi della
tabella di sinistra.
Dalla colonna Paesi appena creata dopo l'operazione di unione espandere il campo Paese. Non selezionare la
casella di controllo Usa il nome della colonna originale come prefisso.
Dopo aver eseguito questa operazione, si creerà una tabella simile all'immagine seguente.
Tabella outer join tabella finale contenente Date, CountryID e Units derivati dalla tabella Sales e una colonna
Country derivata dalla tabella Countries. È stata aggiunta una quinta riga per contenere i dati della Spagna, ma
tale riga contiene null nelle colonne Date, CountryID e Units perché tali valori non esistevano per la Spagna nella
tabella Sales.
Inner join
07/12/2021 • 2 minutes to read
Uno dei tipi di join disponibili nella finestra di dialogo Merge di Power Query è un inner join, che consente di
visualizzare solo le righe corrispondenti delle tabelle di sinistra e destra. Altre informazioni: Panoramica delle
operazioni di unione
La figura mostra una tabella a sinistra con le colonne Date, CountryID e Units. La colonna CountryID evidenziata
contiene i valori 1 nelle righe 1 e 2, 3 nella riga 3 e 2 nella riga 4. Una tabella a destra contiene le colonne ID e
Country. La colonna ID evidenziata contiene i valori 3 nella riga 1 (che indica La Spagna) e 4 nella riga 2 (che
indica la Spagna). Una tabella sotto le prime due tabelle contiene le colonne Date, CountryID, Units e Country,
ma solo una riga di dati per IlVaro.
Questo articolo usa dati di esempio per illustrare come eseguire un'operazione di unione con il inner join. Le
tabelle di origine di esempio per questo esempio sono:
Sales: questa tabella include i campi Date, Countr yID e Units. Countr yID è un valore numerico intero
che rappresenta l'identificatore univoco della tabella Countries.
Paesi: si tratta di una tabella di riferimento con i campi id e Countr y . Il campo id rappresenta
l'identificatore univoco per ogni record.
In questo esempio si uniranno entrambe le tabelle, con la tabella Sales come tabella a sinistra e la tabella
Countries come tabella a destra. Il join verrà effettuato tra le colonne seguenti.
C A M P O DEL L A TA B EL L A SA L ES C A M P O DEL L A TA B EL L A C O UN T RIES
COUNTRYID id
L'obiettivo è creare una tabella simile alla seguente, in cui il nome del paese viene visualizzato come nuova
colonna Countr y nella tabella Sales. A causa del funzionamento inner join, verranno inserite solo le righe
corrispondenti delle tabelle sinistra e destra.
Nella tabella Sales il valore countr yID è 1 e 2, ma nessuno di questi valori è presente nella tabella Countries.
Per questo motivo la corrispondenza ha trovato solo una delle quattro righe nella tabella sinistra (prima).
Nella tabella Paesi è presente il campo Countr y Spagna con ID 4, ma nella tabella Sales non sono presenti
record per countr yID 4. Per questo motivo solo una delle due righe della tabella di destra (seconda) ha trovato
una corrispondenza.
Dalla colonna Paesi appena creata espandere il campo Paese. Non selezionare la casella di controllo Usa il
nome della colonna originale come prefisso.
Dopo aver eseguito questa operazione, si creerà una tabella simile all'immagine seguente.
Left anti-join
07/12/2021 • 3 minutes to read
Uno dei tipi di join disponibili nella finestra di dialogo Merge di Power Query è un join left anti, che consente di
importare solo le righe della tabella di sinistra che non hanno righe corrispondenti dalla tabella di destra. Altre
informazioni: Panoramica delle operazioni di unione
La figura mostra una tabella a sinistra con le colonne Date, CountryID e Units. La colonna CountryID evidenziata
contiene i valori 1 nelle righe 1 e 2, 3 nella riga 3 e 2 nella riga 4. Una tabella a destra contiene le colonne ID e
Country. La colonna ID evidenziata contiene i valori 3 nella riga 1 (che indica La Spagna) e 4 nella riga 2 (che
indica la Spagna). Una tabella sotto le prime due tabelle contiene le colonne Date, CountryID, Units e Country. La
tabella contiene tre righe, con due righe contenenti i dati per CountryID 1 e una riga per CountryID 2. Poiché
nessuno dei CountryID rimanenti corrisponde ad alcuno dei paesi nella tabella di destra, le righe nella colonna
Country della tabella unita contengono tutti Null.
Questo articolo usa dati di esempio per illustrare come eseguire un'operazione di merge con left anti join. Le
tabelle di origine di esempio per questo esempio sono:
Sales: questa tabella include i campi Date, Countr yID e Units. Countr yID è un valore numerico intero
che rappresenta l'identificatore univoco della tabella Countries.
Paesi: questa tabella è una tabella di riferimento con i campi id e Countr y . Il campo id rappresenta
l'identificatore univoco per ogni record.
In questo esempio si uniranno entrambe le tabelle, con la tabella Sales come tabella a sinistra e la tabella
Countries come tabella a destra. Il join verrà effettuato tra le colonne seguenti.
COUNTRYID id
L'obiettivo è creare una tabella simile alla seguente, in cui vengono mantenute solo le righe della tabella di
sinistra che non corrispondono ad alcuna della tabella di destra.
Tabella finale anti join a sinistra con intestazioni di colonna Date, CountryID, Units e Country e tre righe di dati di
cui i valori per la colonna Country sono tutti Null.
Per eseguire un join left anti join
1. Selezionare la query Sales e quindi selezionare Merge queries (Unisci quer y).
2. Nella finestra di dialogo Merge selezionare Paesi in Tabella destra per l'unione.
3. Nella tabella Sales selezionare la colonna Countr yID.
4. Nella tabella Paesi selezionare la colonna ID.
5. Nella sezione Tipo di join selezionare Left anti .
6. Selezionare OK .
TIP
Esaminare in dettaglio il messaggio nella parte inferiore della finestra di dialogo che indica che la selezione esclude 1 di 4
righe dalla prima tabella. Questo messaggio è fondamentale per comprendere il risultato che si ottiene da questa
operazione.
Nella tabella Sales è presente un Countr yID di 1 e 2, ma nessuno dei due è presente nella tabella Countries.
Per questo motivo la corrispondenza ha trovato solo una delle quattro righe nella tabella sinistra (prima).
Nella tabella Paesi è presente il campo Countr y Spagna con ID 4, ma non sono presenti record per Countr yID
4 nella tabella Sales. Per questo motivo solo una delle due righe della tabella di destra (seconda) ha trovato
una corrispondenza.
Dalla colonna Paesi appena creata espandere il campo Paese. Non selezionare la casella di controllo Usa il
nome della colonna originale come prefisso.
Dopo aver fatto questa operazione, si creerà una tabella simile all'immagine seguente. Il campo Countr y
appena espanso non ha valori. Questo perché il join left anti non importa alcun valore dalla tabella di destra,
ma mantiene solo — le righe della tabella di sinistra.
Tabella finale con le intestazioni di colonna Date, CountryID, Units e Country e tre righe di dati di cui i valori per
la colonna Country sono tutti Null.
Right anti-join
07/12/2021 • 2 minutes to read
Uno dei tipi di join disponibili nella finestra di dialogo Merge di Power Query è un join right anti, che consente di
importare solo le righe della tabella di destra che non hanno righe corrispondenti dalla tabella di sinistra. Altre
informazioni: Panoramica delle operazioni di unione
La figura mostra una tabella a sinistra con le colonne Date, CountryID e Units. La colonna CountryID evidenziata
contiene i valori 1 nelle righe 1 e 2, 3 nella riga 3 e 2 nella riga 4. Una tabella a destra contiene le colonne ID e
Country. La colonna ID evidenziata contiene i valori 3 nella riga 1 (che indica La Spagna) e 4 nella riga 2 (che
indica la Spagna). Una tabella sotto le prime due tabelle contiene le colonne Date, CountryID, Units e Country. La
tabella contiene una riga, con Date, CountryID e Units impostati su Null e Country impostato su Spagna.
Questo articolo usa dati di esempio per illustrare come eseguire un'operazione di merge con right anti join. Le
tabelle di origine di esempio per questo esempio sono:
Sales: questa tabella include i campi Date, Countr yID e Units. Countr yID è un valore numerico intero
che rappresenta l'identificatore univoco della tabella Countries.
Paesi: si tratta di una tabella di riferimento con i campi id e Countr y . Il campo id rappresenta
l'identificatore univoco per ogni record.
In questo esempio si uniranno entrambe le tabelle, con la tabella Sales come tabella a sinistra e la tabella
Countries come tabella a destra. Il join verrà effettuato tra le colonne seguenti.
C A M P O DEL L A TA B EL L A SA L ES C A M P O DEL L A TA B EL L A C O UN T RIES
COUNTRYID id
L'obiettivo è creare una tabella simile alla seguente, in cui vengono mantenute solo le righe della tabella di
destra che non corrispondono ad alcuna della tabella di sinistra. Come caso d'uso comune, è possibile trovare
tutte le righe disponibili nella tabella di destra, ma non nella tabella di sinistra.
Tabella finale anti-join a destra con le colonne di intestazione Date, CountryID, Units e Country, contenenti una
riga con null in tutte le colonne, ad eccezione di Country, che contiene la Spagna.
Per eseguire un join right anti join
1. Selezionare la query Sales e quindi selezionare Merge queries (Unisci quer y).
2. Nella finestra di dialogo Merge selezionare Paesi in Tabella destra per l'unione.
3. Nella tabella Sales selezionare la colonna Countr yID.
4. Nella tabella Paesi selezionare la colonna ID.
5. Nella sezione Tipo di join selezionare Right anti .
6. Selezionare OK .
TIP
Esaminare in dettaglio il messaggio nella parte inferiore della finestra di dialogo che indica che la selezione esclude 1 di 2
righe dalla seconda tabella. Questo messaggio è fondamentale per comprendere il risultato che si ottiene da questa
operazione.
Nella tabella Paesi è presente il campo Countr y Spagna con ID 4, ma non sono presenti record per Countr yID
4 nella tabella Sales. Per questo motivo solo una delle due righe della tabella di destra (seconda) ha trovato
una corrispondenza. A causa del funzionamento right anti join, nell'output di questa operazione non verranno
mai visualizzate righe della tabella sinistra (prima).
Dalla colonna Paesi appena creata espandere il campo Paese. Non selezionare la casella di controllo Usa il
nome della colonna originale come prefisso.
Dopo aver eseguito questa operazione, si creerà una tabella simile all'immagine seguente. Il campo Countr y
appena espanso non ha valori. Questo perché il join right anti non importa alcun valore dalla tabella di sinistra,
ma mantiene solo — le righe della tabella di destra.
Tabella finale con le colonne di intestazione Date, CountryID, Units e Country, che contiene una riga con null in
tutte le colonne, ad eccezione di Country, che contiene la Spagna.
Unione fuzzy
07/12/2021 • 5 minutes to read
L'unione fuzzy è una funzionalità di preparazione intelligente dei dati che è possibile usare per applicare
algoritmi di corrispondenza fuzzy durante il confronto delle colonne, per tentare di trovare corrispondenze tra le
tabelle da unire.
È possibile abilitare la corrispondenza fuzzy nella parte inferiore della finestra di dialogo Merge selezionando il
pulsante di opzione Usa corrispondenza fuzzy per eseguire l'unione . Altre informazioni: Panoramica delle
operazioni di unione
NOTE
La corrispondenza fuzzy è supportata solo nelle operazioni di unione su colonne di testo. Power Query usa l'algoritmo di
somiglianza Diacard per misurare la somiglianza tra coppie di istanze.
Scenario di esempio
Un caso d'uso comune per la corrispondenza fuzzy è quello dei campi di testo in formato libero, ad esempio in
un sondaggio. Per questo articolo, la tabella di esempio è stata presa direttamente da un sondaggio online
inviato a un gruppo con una sola domanda: Qual è la torta preferita?
I risultati del sondaggio sono illustrati nell'immagine seguente.
Tabella di output del sondaggio di esempio contenente il grafico di distribuzione delle colonne che mostra nove
risposte distinte con tutte le risposte univoche e le risposte al sondaggio con tutti i problemi di digitazione,
plurale o singolare e caso.
I nove record riflettono gli invii di sondaggi. Il problema con gli invii di sondaggi è che alcuni hanno errori di
digitazione, alcuni sono plurali, altri singolari, altri sono maiuscoli e altri sono minuscoli.
Per standardizzare questi valori, in questo esempio è presente una tabella di riferimento Disartie.
Tabella di riferimento dei fiori contenente il grafico della distribuzione delle colonne che mostra quattro distinti
fiori con tutti i fiori univoci e l'elenco dei fiori: apple,apple, watermelon e banane.
NOTE
Per semplicità, questa tabella di riferimento Distorsio include solo il nome degli elementi che saranno necessari per
questo scenario. La tabella di riferimento può contenere tutte le righe necessarie.
L'obiettivo è creare una tabella simile alla seguente, in cui tutti questi valori sono stati standardizzati in modo da
poter eseguire un'analisi più approfondita.
Tabella di output del sondaggio di esempio con la colonna Domanda contenente il grafico della distribuzione
delle colonne che mostra nove risposte distinte con tutte le risposte univoche e le risposte al sondaggio con tutti
i problemi di digitazione, plurale o singolare e caso, e contiene anche la colonna Fruit contenente il grafico della
distribuzione delle colonne che mostra quattro risposte distinte con una risposta univoca ed elenca tutti i
prodotti digitati correttamente, singolare e maiuscole/minuscole appropriate.
Unione fuzzy
Per eseguire l'unione fuzzy, iniziare eseguendo un'unione. In questo caso, si userà un left outer join, dove la
tabella a sinistra è quella del sondaggio e la tabella a destra è la tabella di riferimento Distorsi. Nella parte
inferiore della finestra di dialogo selezionare la casella di controllo Usa corrispondenza fuzzy per eseguire
l'unione .
Dopo aver selezionato OK , è possibile visualizzare una nuova colonna nella tabella a causa di questa operazione
di unione. Se la si espande, si noterà che è presente una riga che non contiene valori. Questo è esattamente ciò
che il messaggio della finestra di dialogo nell'immagine precedente ha dichiarato quando ha detto "La selezione
corrisponde a 8 di 9 righe della prima tabella".
Colonna Fruit aggiunta alla tabella Survey, con tutte le righe nella colonna Question espanse, ad eccezione della
riga 9, che non è stata espansa e la colonna Fruit contiene Null.
DA A
apls Apple
È possibile tornare alla finestra di dialogo Merge e in Opzioni di corrispondenza fuzzy in Numero di
corrispondenze (facoltativo) immettere 1. In Tabella di trasformazione (facoltativo) selezionare Trasforma
tabella dal menu a discesa.
Dopo aver selezionato OK, si creerà una tabella simile all'immagine seguente, con tutti i valori mappati
correttamente. Si noti come l'esempio sia iniziato con nove valori distinti, ma dopo l'unione fuzzy sono presenti
solo quattro valori distinti.
Tabella di output del sondaggio di unione fuzzy con la colonna Domanda contenente il grafico della
distribuzione delle colonne che mostra nove risposte distinte con tutte le risposte univoche e le risposte al
sondaggio con tutti i problemi di digitazione, plurale o singolare e caso. Contiene anche la colonna Fruit con il
grafico di distribuzione delle colonne che mostra quattro risposte distinte con una risposta univoca ed elenca
tutte le case correttamente digitate, singolari e corrette.
Cross join
07/12/2021 • 2 minutes to read
Un cross join è un tipo di join che restituisce il prodotto cartesiano delle righe delle tabelle nel join. In altre
parole, combina ogni riga della prima tabella con ogni riga della seconda tabella.
Questo articolo illustra, con un esempio pratico, come eseguire un cross join in Power Query.
Colori: una tabella con tutte le varianti di prodotto, come colori, che è possibile avere nell'inventario.
L'obiettivo è eseguire un'operazione di cross join con queste due tabelle per creare un elenco di tutti i prodotti
univoci che è possibile avere nell'inventario, come illustrato nella tabella seguente. Questa operazione è
necessaria perché la tabella Product contiene solo il nome generico del prodotto e non contiene il livello di
dettaglio necessario per vedere quali varianti del prodotto (ad esempio il colore) sono presenti.
Nella finestra di dialogo Colonna personalizzata immettere il nome che si desidera nella casella Nome nuova
colonna e immettere Colors nella casella Formula colonna personalizzata .
IMPORTANT
Se il nome della query contiene spazi, ad esempio Colori prodotto, il testo da immettere nella sezione Formula colonna
personalizzata deve seguire la sintassi #"Query name" . Per Colori prodotto è necessario immettere
#"Product Colors"
È possibile controllare il nome delle query nel riquadro Impostazioni query sul lato destro della schermata o nel riquadro
Quer y a sinistra.
Dopo aver selezionato OK nella finestra di dialogo Colonna personalizzata , viene aggiunta una nuova
colonna alla tabella. Nella nuova intestazione di colonna selezionare Espandi per espandere il contenuto
della colonna appena creata e quindi selezionare OK.
Dopo aver selezionato OK, si raggiungerà l'obiettivo di creare una tabella con tutte le possibili combinazioni di
Prodotto e Colori .
Dividere le colonne in base al delimitatore
07/12/2021 • 2 minutes to read
In Power Query, è possibile dividere una colonna con metodi diversi. In questo caso, le colonne selezionate
possono essere suddivise in base a un delimitatore.
Scheda Trasforma — nel menu a discesa Dividi colonna all'interno del gruppo di colonne Testo.
Fare clic con il pulsante destro del mouse su una colonna — all'interno dell'opzione Dividi
colonna.
Suddividere le colonne in base al delimitatore in colonne
In questo esempio la tabella iniziale sarà quella illustrata nell'immagine seguente, con una sola colonna per
Accounts .
Il risultato di tale operazione offrirà una tabella con le due colonne che si prevede.
NOTE
Power Query la colonna verrà suddivisa in tutte le colonne necessarie. Il nome delle nuove colonne conterrà lo stesso
nome della colonna originale. Al nome delle nuove colonne verrà aggiunto un suffisso che include un punto e un numero
che rappresenta le sezioni di divisione della colonna originale.
La colonna Accounts contiene valori in coppie separate da una virgola. Queste coppie sono separate da un
punto e virgola. L'obiettivo di questo esempio è suddividere questa colonna in nuove righe usando il punto e
virgola come delimitatore.
A tale scopo, selezionare la colonna Account. Selezionare l'opzione per dividere la colonna in base a un
delimitatore. In Dividi colonna per delimitatore applicare la configurazione seguente:
Selezionare o immettere il delimitatore : punto e virgola
Dividi in : ogni occorrenza del delimitatore
Dividi in : righe
Il risultato di tale operazione offrirà una tabella con lo stesso numero di colonne, ma molte altre righe perché i
valori all'interno delle celle sono ora nelle proprie celle.
Suddivisione finale
La tabella richiede comunque un'ultima operazione di divisione della colonna. È necessario dividere la colonna
Accounts in base alla prima virgola trovata. Questa suddivisione creerà una colonna per il nome dell'account e
un'altra colonna per il numero di account.
A tale scopo, selezionare la colonna Account e quindi selezionare Dividi colonna > per delimitatore . Nella
finestra Dividi colonna applicare la configurazione seguente:
Selezionare o immettere il delimitatore : virgola
Dividi in : ogni occorrenza del delimitatore
Il risultato di tale operazione offrirà una tabella con le tre colonne che si prevede. Rinominare quindi le colonne
come indicato di seguito:
N O M E P REC EDEN T E N UO VO N O M E
In Power Query, è possibile dividere una colonna tramite metodi diversi. In questo caso, le colonne selezionate
possono essere suddivise in base al numero di caratteri.
Scheda Trasforma — nel menu a discesa Dividi colonna all'interno del gruppo Colonna di testo.
Fare clic con il pulsante destro del mouse su una colonna — all'interno dell'opzione Dividi
colonna.
Suddividere le colonne in base al numero di caratteri in colonne
La tabella iniziale per questo esempio sarà la seguente, con una sola colonna per Column1 .
NOTE
Power Query la colonna verrà suddivisa in due colonne. Il nome delle nuove colonne conterrà lo stesso nome della
colonna originale. Ai nomi delle nuove colonne verrà aggiunto un suffisso contenente un punto e un numero che
rappresenta la sezione di divisione della colonna.
Continuare ora a eseguire la stessa operazione sulla nuova colonna Column1.2, ma con la configurazione
seguente:
Numero di caratteri : 8
Dividi: una sola volta, il più a sinistra possibile
Il risultato di tale operazione restituisce una tabella con tre colonne. Si notino i nuovi nomi delle due colonne
all'estrema destra. Column1.2.1 e Column1.2.2 sono stati creati automaticamente dall'operazione di divisione
della colonna.
È ora possibile modificare il nome delle colonne e definire anche i tipi di dati di ogni colonna nel modo
seguente:
N O M E C O LO N N A O RIGIN A L E N O M E N UO VA C O LO N N A T IP O DI DAT I
La colonna Account può contenere più valori nella stessa cella. Ogni valore ha la stessa lunghezza in caratteri,
con un totale di sei caratteri. In questo esempio si vogliono dividere questi valori in modo da poter disporre di
ogni valore dell'account nella propria riga.
A tale scopo, selezionare la colonna Account e quindi selezionare l'opzione per dividere la colonna in base al
numero di caratteri. In Dividi colonna per numero di caratteri applicare la configurazione seguente:
Numero di caratteri : 6
Dividi : ripetutamente
Dividi in : righe
Il risultato di tale operazione offrirà una tabella con lo stesso numero di colonne, ma molte altre righe perché i
frammenti all'interno dei valori di cella originali nella colonna Account sono ora suddivisi in più righe.
Dividere le colonne in base alle posizioni
07/12/2021 • 2 minutes to read
In Power Query, è possibile dividere una colonna con metodi diversi. In questo caso, le colonne selezionate
possono essere suddivise in base alle posizioni.
Scheda Trasforma — nel menu a discesa Dividi colonna all'interno del gruppo Colonna di testo.
Fare clic con il pulsante destro del mouse su una colonna — all'interno dell'opzione Dividi
colonna.
Suddividere le colonne in base alle posizioni in colonne
La tabella iniziale per questo esempio sarà quella illustrata nell'immagine seguente, con una sola colonna per
Column1 .
NOTE
Power Query la colonna verrà suddivisa in due colonne. Il nome delle nuove colonne conterrà lo stesso nome della
colonna originale. Un suffisso creato da un punto e un numero che rappresenta la sezione di divisione della colonna
verranno aggiunti al nome delle nuove colonne.
È ora possibile modificare il nome delle colonne e definire anche i tipi di dati di ogni colonna nel modo
seguente:
N O M E C O LO N N A O RIGIN A L E N O M E N UO VA C O LO N N A T IP O DI DAT I
La colonna Account può contenere solo due valori nella stessa cella. Ogni valore ha la stessa lunghezza in
caratteri, con un totale di sei caratteri. In questo esempio si vogliono dividere questi valori in modo da poter
disporre di ogni valore dell'account nella propria riga. A tale scopo, selezionare la colonna Account e quindi
selezionare l'opzione per dividere la colonna in base alle posizioni. In Dividi colonna per posizioni applicare
la configurazione seguente:
Posizioni: 0, 6
Dividi in : righe
NOTE
Questa operazione inizierà prima di tutto a creare una colonna dalla posizione 0 alla posizione 6. Nel contenuto corrente
dell'anteprima dei dati dovrebbe essere presente un'altra colonna con una lunghezza di 8 o più caratteri.
Il risultato di tale operazione offrirà una tabella con lo stesso numero di colonne, ma molte altre righe perché i
valori all'interno delle celle sono ora nelle proprie celle.
Dividere le colonne in lettere minuscole in lettere
maiuscole
07/12/2021 • 2 minutes to read
In Power Query, è possibile dividere una colonna tramite metodi diversi. Se i dati contengono testo CamelCased
o un modello simile, le colonne selezionate possono essere suddivise facilmente in base a ogni istanza
dell'ultima lettera minuscola alla lettera maiuscola successiva.
Scheda Trasforma — nel menu a discesa Dividi colonna all'interno del gruppo Colonna di testo.
Fare clic con il pulsante destro del mouse su una colonna — all'interno dell'opzione Dividi
colonna.
Suddividere le colonne da minuscole a maiuscole in colonne
La tabella iniziale in questo esempio sarà quella illustrata nell'immagine seguente, con una colonna per Word e
una colonna aggiuntiva denominata Syllables . Si concentrerà solo sulla prima colonna.
In Power Query, è possibile dividere una colonna tramite metodi diversi. In questo caso, le colonne selezionate
possono essere suddivise per ogni istanza dell'ultima lettera maiuscola alla lettera minuscola successiva.
Scheda Trasforma — nel menu a discesa Dividi colonna all'interno del gruppo Colonna di testo.
Fare clic con il pulsante destro del mouse su una colonna — all'interno dell'opzione Dividi
colonna.
Suddividere le colonne da maiuscole a minuscole in colonne
La tabella iniziale in questo esempio sarà quella illustrata nell'immagine seguente, con una sola colonna per
Column1 .
In Power Query è possibile suddividere una colonna in diversi metodi. In questo caso, le colonne selezionate
possono essere suddivise in base a ogni istanza di una cifra seguita da una non cifra.
Scheda Trasforma — nel menu a discesa Split Column (Dividi colonna) all'interno del gruppo Text
Column (Colonna di testo).
Fare clic con il pulsante destro del mouse su una colonna — all'interno dell'opzione Dividi
colonna.
Suddividere le colonne per cifra in colonne non di tipo numerico
La tabella iniziale in questo esempio sarà quella illustrata nell'immagine seguente, con una colonna per Animali
domestici e altre colonne aggiuntive. Questo esempio si concentrerà solo sulla colonna Pets.
In Power Query è possibile suddividere una colonna in diversi metodi. In questo caso, le colonne selezionate
possono essere suddivise in base a ogni istanza di una non cifra seguita da una cifra.
Scheda Trasforma — nel menu a discesa Split Column (Dividi colonna) all'interno del gruppo Text
Column (Colonna di testo).
Fare clic con il pulsante destro del mouse su una colonna — all'interno dell'opzione Dividi
colonna.
Dividere le colonne in base a una cifra non da cifrare in colonne
La tabella iniziale in questo esempio sarà quella illustrata nell'immagine seguente, con una colonna per Animali
domestici e altre colonne aggiuntive. In questo esempio ci si concentrerà solo sulla colonna Pets.
NOTE
Valido il 2020 novembre:
Common Data Service è stato rinominato in Microsoft dataverse. Altre informazioni
Una terminologia in Microsoft dataverse è stata aggiornata. Ad esempio, l' entità è ora Table e Field è ora Column.
Altre informazioni
Questo articolo verrà aggiornato a breve per riflettere la terminologia più recente.
I flussi di dati sono una tecnologia di preparazione dei dati self-service, basata sul cloud. I flussi di dati
consentono ai clienti di inserire, trasformare e caricare dati in ambienti Microsoft Dataverse, aree di lavoro
Power BI o nell'account Azure Data Lake Archiviazione dell'organizzazione. I flussi di dati vengono creati usando
Power Query, un'esperienza unificata di preparazione e connettività dei dati già presente in molti prodotti
Microsoft, tra cui Excel e Power BI. I clienti possono attivare flussi di dati per l'esecuzione su richiesta o
automaticamente in base a una pianificazione; i dati vengono sempre aggiornati.
L'immagine precedente mostra una visualizzazione complessiva della definizione di un flusso di dati. Un flusso
di dati ottiene dati da origini dati diverse (sono già supportate più di 80 origini dati). In base alle trasformazioni
configurate con l'esperienza di creazione Power Query, il flusso di dati trasforma i dati usando il motore del
flusso di dati. Infine, i dati vengono caricati nella destinazione di output, che può essere un ambiente Microsoft
Power Platform, un'area di lavoro Power BI o l'account Azure Data Lake Archiviazione dell'organizzazione.
I flussi di dati vengono eseguiti nel cloud
I flussi di dati sono basati sul cloud. Quando un flusso di dati viene creato e salvato, la relativa definizione viene
archiviata nel cloud. Un flusso di dati viene eseguito anche nel cloud. Tuttavia, se un'origine dati è locale, è
possibile usare un gateway dati locale per estrarre i dati nel cloud. Quando viene attivata un'esecuzione del
flusso di dati, la trasformazione e il calcolo dei dati vengono eseguiti nel cloud e la destinazione è sempre nel
cloud.
Integrazione del flusso di dati con Microsoft Power Platform e Dynamics 365
Poiché un flusso di dati archivia le entità risultanti nell'archiviazione basata sul cloud, altri servizi possono
interagire con i dati prodotti dai flussi di dati.
Ad esempio, le applicazioni Power BI, Power Apps, Power Automate, Power Virtual Agents e Dynamics 365
possono ottenere i dati prodotti dal flusso di dati connettendosi a Dataverse, a un connettore del flusso di dati
Power Platform o direttamente attraverso il lake, a seconda della destinazione configurata al momento della
creazione del flusso di dati.
Passaggi successivi
Gli articoli seguenti forniscono altri materiali di studio per i flussi di dati.
Creare e usare flussi di dati in Microsoft Power Platform
Creazione e uso di flussi di dati in Power BI
Informazioni sulle differenze tra i tipi di flusso di dati
07/12/2021 • 7 minutes to read
NOTE
Valido il 2020 novembre:
Common Data Service è stato rinominato in Microsoft dataverse. Altre informazioni
Una terminologia in Microsoft dataverse è stata aggiornata. Ad esempio, l' entità è ora Table e Field è ora Column.
Altre informazioni
Questo articolo verrà aggiornato a breve per riflettere la terminologia più recente.
I flussi di dati vengono usati per estrarre, trasformare e caricare i dati in una destinazione di archiviazione in cui
è possibile sfruttarli per scenari diversi. Poiché non tutte le destinazioni di archiviazione condividono le stesse
caratteristiche, alcune funzionalità e comportamenti del flusso di dati variano a seconda della destinazione di
archiviazione in cui il flusso di dati carica i dati. Prima di creare un flusso di dati, è importante comprendere
come verranno usati i dati e scegliere la destinazione di archiviazione in base ai requisiti della soluzione.
La selezione di una destinazione di archiviazione di un flusso di dati determina il tipo del flusso di dati. Un flusso
di dati che carica i dati in tabelle Dataverse viene categorizzato come flusso di dati standard. I flussi di dati che
caricano dati in entità analitiche vengono categorizzati come flussi di dati analitici.
I flussi di dati creati in Power BI sono sempre flussi di dati analitici. I flussi di dati creati in Power Apps possono
essere standard o analitici, a seconda della selezione effettuata durante la creazione del flusso di dati.
Gli articoli seguenti illustrano come usare le funzioni di intelligenza artificiale in un flusso di dati:
Integrazione di Azure Machine Learning in Power BI
Servizi cognitivi in Power BI
Machine Learning automatizzato in Power BI
Si noti che le funzionalità elencate Power BI specifiche e non sono disponibili quando si crea un flusso di dati nei
portali di Power Apps o Dynamics 365 Customer Insights.
Entità calcolate
Uno dei motivi per cui usare un'entità calcolata è la possibilità di elaborare grandi quantità di dati. L'entità
calcolata è utile in questi scenari. Se si dispone di un'entità in un flusso di dati e un'altra entità nello stesso flusso
di dati usa l'output della prima entità, verrà creata un'entità calcolata.
L'entità calcolata consente di migliorare le prestazioni delle trasformazioni dei dati. Invece di eseguire di nuovo
le trasformazioni necessarie nella prima entità più volte, la trasformazione verrà eseguita una sola volta
nell'entità calcolata. Il risultato verrà quindi usato più volte in altre entità.
Per altre informazioni sulle entità calcolate, vedere Using computed entities on Power BI Premium.
Le entità calcolate sono disponibili solo in un flusso di dati analitici.
O P ERA Z IO N E STA N DA RD A N A L IT IC A
Entità calcolata No Sì
Può essere usato in altre applicazioni Sì, tramite Dataverse Power BI flussi di dati: solo in Power BI
Power Platform flussi di dati o Power BI
flussi di dati esterni: Sì, tramite Azure
Data Lake Archiviazione
NOTE
Valido il 2020 novembre:
Common Data Service è stato rinominato in Microsoft dataverse. Altre informazioni
Una terminologia in Microsoft dataverse è stata aggiornata. Ad esempio, l' entità è ora Table e Field è ora Column.
Altre informazioni
Questo articolo verrà aggiornato a breve per riflettere la terminologia più recente.
L'uso di flussi di Microsoft Power Platform semplifica la preparazione dei dati e consente di riutilizzare le
operazioni di preparazione dei dati nei report, nelle app e nei modelli successivi.
Nel mondo dei dati in continua espansione, la preparazione dei dati può essere difficile e costosa, consumando
fino al 60-80% del tempo e dei costi per un progetto di analisi tipico. Tali progetti possono richiedere la gestione
di dati frammentati e incompleti, un'integrazione complessa del sistema, dati con incoerenza strutturale e una
barriera di set di competenze elevata.
Per semplificare la preparazione dei dati e ottenere più valore sui dati, Power Query e Power Platform flussi di
dati.
Con i flussi di dati, Microsoft introduce le funzionalità di preparazione dei dati self-service di Power Query nei
Power BI e Power Apps Servizi online ed espande le funzionalità esistenti nei modi seguenti:
Preparazione dei dati self-ser vice per Big Data con flussi di dati: i flussi di dati possono essere usati per
inserire, pulire, trasformare, integrare, arricchire e schematizzare facilmente i dati da una matrice di
origini transazionali e osservazionali in continua crescita, che comprende tutta la logica di preparazione
dei dati. In precedenza, la logica di estrazione, trasformazione, caricamento (ETL) poteva essere inclusa
solo nei set di dati in Power BI, copiata più volte tra i set di dati e associata alle impostazioni di gestione
dei set di dati.
Con i flussi di dati, la logica ETL è elevata a un artefatto di prima classe all'interno dei servizi Microsoft
Power Platform e include esperienze di creazione e gestione dedicate. Gli analisti aziendali, i professionisti
di business intelligence e i data scientist possono usare i flussi di dati per gestire le sfide di preparazione
dei dati più complesse e basarsi sul lavoro reciproco, grazie a un motore di calcolo basato su modello,
che si occupa di tutta la logica di trasformazione e dipendenza, riducendo tempo, costi ed esperienza a
una frazione di ciò che tradizionalmente era necessario per tali attività. È possibile creare flussi di dati
usando l'esperienza nota di preparazione dei dati self-service di Power Query. I flussi di dati vengono
creati e gestiti facilmente nelle aree di lavoro per le app o negli ambienti, rispettivamente in Power BI o
Power Apps, con tutte le funzionalità offerte da questi servizi, ad esempio la gestione delle autorizzazioni
e gli aggiornamenti pianificati.
Caricare i dati in Dataverse o Azure Data Lake Archiviazione: a seconda del caso d'uso, è possibile
archiviare i dati preparati da flussi di dati Power Platform in Dataverse o nell'account Azure Data Lake
Archiviazione dell'organizzazione:
Dataverse consente di archiviare e gestire in modo sicuro i dati usati dalle applicazioni aziendali. I
dati all'interno di Dataverse vengono archiviati in un set di tabelle. Una tabella è un set di righe (in
precedenza denominato record) e colonne (precedentemente denominate campi/attributi). Ogni
colonna della tabella è progettata per archiviare un determinato tipo di dati, ad esempio nome, età,
stipendio e così via. Dataverse include un set di base di tabelle standard che coprono scenari tipici,
ma è anche possibile creare tabelle personalizzate specifiche dell'organizzazione e popolarle con i
dati usando flussi di dati. Gli autori di app possono quindi Power Apps e Power Automate creare
applicazioni complesse che usano questi dati.
Azure Data Lake Archiviazione consente di collaborare con gli utenti dell'organizzazione
usando i servizi Power BI, Dati di Azure e intelligenza artificiale oppure usando una linea di
Business Applications personalizzata che legge i dati dal lake. I flussi di dati che caricano dati in un
account Azure Data Lake Archiviazione archiviano i dati in Common Data Model cartelle. le cartelle
Common Data Model contengono dati e metadati schematizzati in un formato standardizzato, per
facilitare lo scambio di dati e per consentire l'interoperabilità completa tra i servizi che producono
o utilizzano i dati archiviati nell'account Azure Data Lake Archiviazione di un'organizzazione come
livello di archiviazione condiviso.
Analisi avanzata e intelligenza artificiale con Azure: i flussi di dati Power Platform archiviano i dati in
Dataverse o Azure Data Lake Archiviazione il che significa che i dati inseriti tramite flussi di dati sono ora
disponibili per i data engineer e i data scientist per sfruttare tutte le funzionalità di Servizi dati di Azure,
ad esempio Azure Machine Learning, Azure Databricks e Azure SQL Data Warehouse per funzionalità
avanzate — analisi e intelligenza artificiale. In questo modo business analyst, data engineer e data
scientist possono collaborare agli stessi dati all'interno dell'organizzazione.
Suppor to per Common Data Model: Common Data Model è un set di schemi di dati standardizzati e
un sistema di metadati per consentire la coerenza dei dati e il relativo significato tra le applicazioni e i
processi aziendali. I flussi di Common Data Model supportano l'Common Data Model offrendo un
semplice mapping da qualsiasi tipo di dati alle entità Common Data Model standard, ad esempio Account
e Contact. I flussi di dati vengono inoltre insoddisfiati, sia per le entità standard che per le entità
personalizzate, Common Data Model schematizzato. I business analyst possono sfruttare lo schema
standard e la coerenza semantica oppure personalizzare le entità in base alle esigenze specifiche.
Common Data Model continua ad evolversi come parte dell'iniziativa Open Data.
Gestione del flusso di dati Nel Power Apps di amministrazione Nel Power BI di amministrazione
Nuovi connettori Sì Sì
Schema standardizzato/supporto Sì Sì
predefinito per l'Common Data Model
Connettore dati flussi di dati in Power Per i flussi di dati con Azure Data Lake Sì
BI Desktop Archiviazione come destinazione
Entità collegate del flusso di dati Per i flussi di dati con Azure Data Lake Sì
Archiviazione come destinazione
Entità calcolate (trasformazioni in Per i flussi di dati con Azure Data Lake Power BI Premium solo
archiviazione con M) Archiviazione come destinazione
Aggiornamento incrementale del Per i flussi di dati con Azure Data Lake Power BI Premium solo
flusso di dati Archiviazione destinazione, è
necessario Power Apps Piano2
Esecuzione in Power BI No Sì
Premium/esecuzione parallela delle
trasformazioni
Passaggi successivi
Gli articoli seguenti descrivono più in dettaglio gli scenari di utilizzo comuni per i flussi di dati.
Uso dell'aggiornamento incrementale con i flussi di dati
Creazione di entità calcolate nei flussi di dati
Connessione alle origini dati per i flussi di dati
Collegare entità tra flussi di dati
Per altre informazioni sui Common Data Model e lo standard Common Data Model cartella, leggere gli articoli
seguenti:
Panoramica del modello CDM (Common Data Model)
Common Data Model cartelle
Common Data Model file del modello di cartella
Creare e usare flussi di dati in Microsoft Teams
(anteprima)
07/12/2021 • 6 minutes to read
NOTE
Sono in fase di implementazione graduali i flussi Microsoft Teams dati. Questa funzionalità potrebbe non essere ancora
disponibile nell'area.
Microsoft Dataverse per Teams offre una piattaforma dati predefinita a basso codice per Microsoft Teams. Offre
archiviazione dei dati relazionali, tipi di dati complessi, governance di livello aziendale e distribuzione di
soluzioni con un solo clic. Dataverse per Teams consente a tutti di compilare e distribuire facilmente le app.
Prima di oggi, il modo per ottenere i dati in Dataverse Teams è stato aggiungendo manualmente i dati
direttamente in una tabella. Questo processo può essere incresciato da errori e non è scalabile. Ma ora, con la
preparazione dei dati self-service è possibile trovare, pulire, modellare e importare i dati in Dataverse per Teams.
Con i dati aziendali già presenti in una posizione diversa, è possibile usare flussi di dati Power Query per
accedere direttamente ai dati tramite i connettori e caricare i dati in Dataverse per Teams. Quando si aggiornano
i dati dell'organizzazione, è possibile aggiornare i flussi di dati con un solo clic e anche i dati in Dataverse Teams
vengono aggiornati. È anche possibile usare le trasformazioni Power Query dati per convalidare e pulire
facilmente i dati e applicare la qualità dei dati per le app.
Sono stati introdotti flussi di dati per consentire alle organizzazioni di recuperare dati da origini diverse e
prepararli per l'utilizzo. È possibile creare facilmente flussi di dati usando l'esperienza Power Query self-service
per inserire, trasformare, integrare e arricchire i dati. Quando si crea un flusso di dati, ci si connette ai dati, si
trasformano i dati e si caricano i dati in Dataverse per Teams tabelle. Dopo aver creato il flusso di dati, inizia il
processo di importazione dei dati nella tabella Dataverse. È quindi possibile iniziare a creare app per sfruttare i
dati.
5. Immettere un indirizzo URL in Percorso file o URL oppure usare il pulsante Sfoglia OneDrive per
spostarsi tra le cartelle OneDrive file. Selezionare il file desiderato e quindi fare clic sul pulsante Avanti.
Per altre informazioni sull'uso della connessione OneDrive o sul recupero di dati, vedere SharePoint e
OneDrive for Business file importati o Recupero di dati da altre origini.
6. In Strumento di navigazione selezionare le tabelle presenti nel file Excel dati. Se il file Excel contiene più
fogli e tabelle, selezionare solo le tabelle a cui si è interessati. Al termine, selezionare Trasforma dati .
7. Pulire e trasformare i dati usando Power Query. È possibile usare le trasformazioni predefiniti per
eliminare valori mancanti, eliminare colonne non necessarie o filtrare i dati. Con Power Query, è possibile
applicare più di 300 trasformazioni diverse ai dati. Per altre informazioni sulle trasformazioni Power
Query, vedere Usare Power Query per trasformare i dati. Al termine della preparazione dei dati,
selezionare Avanti.
8. In Tabelle mappa selezionare Carica nella nuova tabella per creare una nuova tabella in Dataverse per
Teams. È anche possibile scegliere di caricare i dati in una tabella esistente. Nella schermata Tabelle
mappa è anche possibile specificare una colonna Nome primario univoco e una colonna Chiave
alternativa (facoltativa). In questo esempio, lasciare le selezioni con i valori predefiniti. Per altre
informazioni sul mapping dei dati e delle diverse impostazioni, vedere Considerazioni sul mapping dei
campi per i flussi di dati standard.
9. Selezionare Crea per completare il flusso di dati. Dopo aver creato il flusso di dati, i dati iniziano a
caricarsi in Dataverse per Teams. Questo processo può richiedere tempo ed è possibile usare la pagina di
gestione per controllare lo stato. Quando un flusso di dati completa un'esecuzione, i relativi dati sono
disponibili per l'uso.
Nella colonna Ultimo aggiornamento è possibile visualizzare l'ultimo aggiornamento dei dati. Se
l'aggiornamento non è riuscito, viene visualizzata un'indicazione di errore. Se si seleziona l'indicazione di errore,
vengono visualizzati i dettagli dell'errore e i passaggi consigliati per risolvere l'errore.
Nella colonna Stato è possibile visualizzare lo stato corrente del flusso di dati. Gli stati possibili sono elencati di
seguito:
Aggiornamento in corso: il flusso di dati sta estraendo, trasformando e caricando i dati dall'origine alle
tabelle di Dataverse. Questo processo può richiedere alcuni minuti a seconda della complessità delle
trasformazioni e delle prestazioni dell'origine dati. È consigliabile controllare spesso lo stato del flusso di dati.
Per passare alla barra delle azioni, selezionare i tre puntini "..." accanto al flusso di dati.
NOTE
I flussi di dati Teams non supportano origini dati non locali, ad esempio percorsi di file locali.
Nella tabella seguente sono elencate le principali differenze di funzionalità tra i flussi di dati per Dataverse
Teams e i flussi di dati per Dataverse.
Aggiornamento manuale Sì Sì
Aggiornamento pianificato No Sì
Aggiornamento incrementale No Sì
F UN Z IO N A L ITÀ DEL F L USSO DI DAT I DATAVERSE P ER T EA M S DATAVERSE
Tabelle standard No Sì
Tabelle personalizzate Sì Sì
Funzionalità PQ completa Sì Sì
1 Anche se non esiste alcuna limitazione alla quantità di dati che è possibile caricare in Dataverse per
Teams, per
migliorare le prestazioni nel caricamento di grandi quantità di dati, è consigliabile un ambiente Dataverse.
Uso dell'aggiornamento incrementale con i flussi di
dati
07/12/2021 • 10 minutes to read
NOTE
Valido il 2020 novembre:
Common Data Service è stato rinominato in Microsoft dataverse. Altre informazioni
Una terminologia in Microsoft dataverse è stata aggiornata. Ad esempio, l' entità è ora Table e Field è ora Column.
Altre informazioni
Questo articolo verrà aggiornato a breve per riflettere la terminologia più recente.
Con i flussi di dati, è possibile portare grandi quantità di dati in Power BI o nell'archiviazione fornita
dall'organizzazione. In alcuni casi, tuttavia, non è pratico aggiornare una copia completa dei dati di origine
durante ogni aggiornamento. Una valida alternativa è l'aggiornamento incrementale , che offre i vantaggi
seguenti per i flussi di dati:
L'aggiornamento viene eseguito più velocemente: è necessario aggiornare solo i dati modificati. Ad
esempio, è sufficiente aggiornare gli ultimi cinque giorni di un flusso di dati di 10 anni.
L'aggiornamento è più affidabile: ad esempio, non è necessario mantenere connessioni a esecuzione
lunga a sistemi di origine volatili.
L'utilizzo delle risorse è ridotto: un minor numero di dati da aggiornare riduce il consumo complessivo
di memoria e altre risorse.
L'aggiornamento incrementale è disponibile nei flussi di dati creati in Power BI e nei flussi di dati creati in Power
Apps. Questo articolo illustra le schermate Power BI, ma queste istruzioni si applicano ai flussi di dati creati in
Power BI o in Power Apps.
L'uso dell'aggiornamento incrementale nei flussi di dati creati in Power BI richiede che il flusso di dati risieda in
un'area di lavoro Premium capacità. L'aggiornamento incrementale Power Apps richiede Power Apps piano 2.
In entrambi Power BI o Power Apps, l'uso dell'aggiornamento incrementale richiede che i dati di origine inseriti
nel flusso di dati presentino un campo DateTime in cui l'aggiornamento incrementale può filtrare.
TIP
La progettazione corrente richiede che la colonna utilizzata per rilevare le modifiche ai dati sia persistente e
memorizzata nella cache in memoria. È possibile prendere in considerazione una delle tecniche seguenti per ridurre
la cardinalità e l'utilizzo della memoria:
Rendere persistente solo il valore massimo di questa colonna al momento dell'aggiornamento, ad esempio
usando una Power Query predefinita.
Ridurre la precisione a un livello accettabile in base ai requisiti di frequenza di aggiornamento.
Aggiorna solo periodi completi: Imagine l'aggiornamento è pianificato per l'esecuzione alle 4:00 ogni
giorno. Se i dati vengono visualizzati nel sistema di origine durante le prime quattro ore del giorno,
potrebbe non essere necessario conto di tali dati. Alcune metriche aziendali, ad esempio i barili al giorno
nel settore del gas e del greggio, non sono pratiche o ragionevoli da fare in base a giorni parziali.
Un altro esempio in cui solo l'aggiornamento di periodi completi è appropriato è l'aggiornamento dei
dati di un sistema finanziario. Si supponga di avere un sistema finanziario in cui i dati per il mese
precedente vengono approvati il dodicesimo giorno del mese. È possibile impostare l'intervallo
incrementale su un mese e pianificare l'aggiornamento per l'esecuzione il 12° giorno del mese. Se questa
opzione è selezionata, il sistema a refreshrà i dati di gennaio (il periodo mensile completo più recente) il
12 febbraio.
NOTE
L'aggiornamento incrementale del flusso di dati determina le date in base alla logica seguente: se è pianificato un
aggiornamento, l'aggiornamento incrementale per i flussi di dati usa il fuso orario definito nei criteri di aggiornamento. Se
non esiste alcuna pianificazione per l'aggiornamento, l'aggiornamento incrementale usa l'ora del computer che esegue
l'aggiornamento.
Dopo aver configurato l'aggiornamento incrementale, il flusso di dati modifica automaticamente la query per
includere il filtro in base alla data. È possibile modificare la query generata automaticamente usando l'editor
avanzato in Power Query per ottimizzare o personalizzare l'aggiornamento. Per altre informazioni
sull'aggiornamento incrementale e sul suo funzionamento, vedere le sezioni seguenti.
Considerazioni e limitazioni
L'aggiornamento incrementale Microsoft Power Platform flussi di dati è supportato solo nei flussi di dati con un
account Azure Data Lake Archiviazione, non nei flussi di dati con Dataverse come destinazione.
Vedi anche
Questo articolo ha illustrato l'aggiornamento incrementale per i flussi di dati. Di seguito sono riportati altri
articoli che potrebbero essere utili:
Preparazione dei dati self-service in Power BI
Creazione di entità calcolate nei flussi di dati
Connessione alle origini dati per i flussi di dati
Collegare entità tra flussi di dati
Creare e usare flussi di dati in Power BI
Uso di flussi di dati con origini dati locali
Risorse per sviluppatori per i flussi di dati Power BI
Per altre informazioni su Power Query e sull'aggiornamento pianificato, è possibile leggere questi articoli:
Panoramica delle query in Power BI Desktop
Configurazione dell'aggiornamento pianificato
Per altre informazioni sui Common Data Model, è possibile leggere il relativo articolo di panoramica:
Panoramica del modello CDM (Common Data Model)
Connessione alle origini dati per i flussi di dati
07/12/2021 • 4 minutes to read
NOTE
Valido il 2020 novembre:
Common Data Service è stato rinominato in Microsoft dataverse. Altre informazioni
Una terminologia in Microsoft dataverse è stata aggiornata. Ad esempio, l' entità è ora Table e Field è ora Column.
Altre informazioni
Questo articolo verrà aggiornato a breve per riflettere la terminologia più recente.
Con Microsoft Power BI e Power Platform flussi di dati, è possibile connettersi a molte origini dati diverse per
creare nuovi flussi di dati o aggiungere nuove entità a un flusso di dati esistente.
Questo articolo descrive come creare flussi di dati usando queste origini dati. Per una panoramica su come
creare e usare flussi di dati, vedere Creazione di un flusso di dati per il servizio Power BI e Creare e usare flussi
di dati in Power Apps.
Le origini dati per i flussi di dati sono organizzate nelle categorie seguenti, visualizzate come schede nella
finestra di dialogo Scegli origine dati :
Tutte le categorie
File
Database
Power Platform
Azure
Servizi online
Altro
Per un elenco di tutte le origini dati supportate in Power Query, vedere Connettori in Power Query.
Viene visualizzata una finestra di connessione per la connessione dati selezionata. Se sono richieste credenziali,
sarà necessario specificarle. L'immagine seguente mostra un server e un database immessi per connettersi a un
SQL Server database.
Dopo aver specificato l'URL del server o le informazioni di connessione alla risorsa, immettere le credenziali da
usare per l'accesso ai dati. Potrebbe anche essere necessario immettere il nome di un gateway dati locale.
Selezionare quindi Avanti .
Power Query Online avvia e stabilisce la connessione all'origine dati. Presenta quindi le tabelle disponibili di tale
origine dati nella finestra Strumento di navigazione.
È possibile selezionare tabelle e dati da caricare selezionando la casella di controllo accanto a ognuna nel
riquadro sinistro. Per trasformare i dati scelti, selezionare Trasforma dati nella parte inferiore della finestra
Strumento di navigazione. Verrà Power Query finestra di dialogo Online in cui è possibile modificare le query
ed eseguire qualsiasi altra trasformazione desiderata per i dati selezionati.
Connessione a origini dati aggiuntive
Sono disponibili connettori dati aggiuntivi che non vengono visualizzati nell'Power BI utente dei flussi di dati, ma
sono supportati con alcuni passaggi aggiuntivi.
È possibile seguire questa procedura per creare una connessione a un connettore che non viene visualizzata
nell'interfaccia utente:
1. Aprire Power BI Desktop e quindi selezionare Ottieni dati .
2. Aprire editor di Power Query in Power BI Desktop, fare clic con il pulsante destro del mouse sulla query
pertinente e quindi scegliere Editor avanzato , come illustrato nell'immagine seguente. Da qui è
possibile copiare lo script M visualizzato nella finestra Editor avanzato.
3. Aprire il Power BI dati e quindi selezionare Ottieni dati per una query vuota.
4. Incollare la query copiata nella query vuota per il flusso di dati.
Passaggi successivi
Questo articolo ha illustrato le origini dati che è possibile usare per connettersi ai flussi di dati. Gli articoli
seguenti descrivono più in dettaglio gli scenari di utilizzo comuni per i flussi di dati:
Preparazione dei dati self-service in Power BI
Uso dell'aggiornamento incrementale con i flussi di dati
Creazione di entità calcolate nei flussi di dati
Collegare entità tra flussi di dati
Per informazioni sui singoli Power Query connettori, passare all'elenco di riferimento dei connettori di Power
Query eselezionare il connettore su cui si vogliono ottenere altre informazioni.
Altre informazioni sui flussi di dati e sulle informazioni correlate sono disponibili negli articoli seguenti:
Creare e usare flussi di dati in Power BI
Uso di flussi di dati con origini dati locali
Risorse per sviluppatori per i flussi di dati Power BI
Integrazione di flussi di dati e Azure Data Lake (anteprima)
Per altre informazioni su Power Query e sull'aggiornamento pianificato, è possibile leggere questi articoli:
Panoramica delle query in Power BI Desktop
Configurazione dell'aggiornamento pianificato
Per altre informazioni sui Common Data Model, è possibile leggere il relativo articolo di panoramica:
Panoramica del modello CDM (Common Data Model)
Quali licenze sono necessarie per usare i flussi di
dati?
07/12/2021 • 5 minutes to read
NOTE
Valido il 2020 novembre:
Common Data Service è stato rinominato in Microsoft dataverse. Altre informazioni
Una terminologia in Microsoft dataverse è stata aggiornata. Ad esempio, l' entità è ora Table e Field è ora Column.
Altre informazioni
Questo articolo verrà aggiornato a breve per riflettere la terminologia più recente.
I flussi di dati possono essere creati in portali diversi, ad esempio Power BI e Power Apps, e possono essere di
tipo analitico o standard. Inoltre, alcune funzionalità del flusso di dati sono disponibili solo come Premium
funzionalità. Considerando l'ampia gamma di prodotti che possono usare flussi di dati e la disponibilità delle
funzionalità in ogni tipo di prodotto o flusso di dati, è importante conoscere le opzioni di licenza necessarie per
usare i flussi di dati.
Premium funzionalità
Alcune delle funzionalità del flusso di dati sono limitate alle licenze Premium. Se si vuole usare il motore di
calcolo avanzato per velocizzare le prestazioni delle query del flusso di dati rispetto alle entità calcolate o avere
l'opzione di connessione DirectQuery al flusso di dati, è necessario avere capacità Power BI P1 o A3 o superiori.
Le funzionalità di intelligenza artificiale Power BI, l'entità collegata e l'entità calcolata sono tutte funzioni
Premium che non sono disponibili con un account Power BI Pro cliente.
Funzionalità
La tabella seguente contiene un elenco di funzionalità e la licenza necessaria per la loro disponibilità.
F UN Z IO N A L ITÀ P O W ER B I P O W ER A P P S
Archiviare i dati in Azure Data Lake Power BI Pro Sì, uso di flussi di dati analitici
Archiviazione (flusso di dati analitici) Power BI Premium
Archiviare i dati in Azure Data Lake Power BI Pro Per piano di app
Archiviazione (flusso di dati analitici, Power BI Premium Piano per utente
bring your own Azure Data Lake
Archiviazione)
Entità calcolate (trasformazioni in Power BI Premium Sì, uso di flussi di dati analitici
archiviazione con M)
Pianifica aggiornamenti Sì Sì
Nuovi connettori Sì Sì
Connettore dati flussi di dati in Power Sì Sì, uso di flussi di dati analitici
BI Desktop
Aggiornamento incrementale del Power BI Premium Sì, uso di flussi di dati analitici con
flusso di dati piano per utente
Passaggio successivo
Per altre informazioni sui concetti illustrati in questo articolo, seguire uno dei collegamenti seguenti.
Prezzi
Prezzi di Power BI
Power Apps prezzi
Prezzi di Azure Data Lake Archiviazione Gen 2
Funzionalità
Entità calcolate
Entità collegate
Funzionalità di intelligenza artificiale Power BI flussi di dati
Flussi di dati standard e analitici
Motore di calcolo avanzato
Come eseguire la migrazione di query Power Query
nel desktop (Power BI e Excel) ai flussi di dati
07/12/2021 • 3 minutes to read
Se sono già presenti query in Power Query, in Power BI Desktop o in Excel, è possibile eseguire la migrazione
delle query in flussi di dati. Il processo di migrazione è semplice e semplice. In questo articolo si apprenderanno
i passaggi per eseguire questa operazione.
Per informazioni su come creare un flusso di dati in Microsoft Power Platform, vedere Creare e usare flussi di
dati in Power Platform. Per informazioni su come creare un flusso di dati in Power BI, vedere Creazione e uso di
flussi didati in Power BI .
Nella Excel Dati selezionare Get Data > Launch editor di Power Quer y .
2. Copiare le query:
Se le query sono organizzate in cartelle, denominate gruppi in Power Query:
a. Nel riquadro Quer y premere CTRL mentre si selezionano le cartelle di cui si vuole eseguire la
migrazione al flusso di dati.
b. Premere CTRL+C.
b. Aprire il flusso di dati editor di Power Query e nel riquadro Quer y selezionare CTRL+V per
incollare le cartelle o le query copiate.
L'immagine seguente mostra un esempio di cartelle copiate correttamente.
6. Verificare la connessione:
Se tutti i passaggi sono stati evasi correttamente, verrà visualizzata un'anteprima dei dati nel editor di
Power Query.
Se si verifica uno scenario come questo, sono disponibili due opzioni. È possibile configurare il gateway per
l'origine dati oppure aggiornare la query nel editor di Power Query per il flusso di dati usando un set di
passaggi supportati senza la necessità del gateway.
Installare un gateway dati locale per trasferire i dati in modo rapido e sicuro tra un flusso di dati di Power
Platform e un'origine dati non presente nel cloud, ad esempio un database SQL Server locale o un sito
SharePoint locale. È possibile visualizzare tutti i gateway per cui si dispone di autorizzazioni amministrative e
gestire le autorizzazioni e le connessioni per tali gateway.
Con un gateway è possibile connettersi ai dati locali tramite queste connessioni:
SharePoint
SQL Server
Oracle
Informix
File System
DB2
Prerequisiti
Servizio Power BI
Un account del servizio Power BI. Non se ne ha uno? Iscriversi gratuitamente per 60 giorni.
Autorizzazioni amministrative per un gateway. Queste autorizzazioni vengono fornite per impostazione
predefinita per i gateway installati. Gli amministratori possono concedere ad altri utenti le autorizzazioni
per i gateway.
Power Apps
Un Power Apps account. Non se ne ha uno? Iscriversi gratuitamente per 30 giorni.
Autorizzazioni amministrative per un gateway. Queste autorizzazioni vengono fornite per impostazione
predefinita per i gateway installati. Gli amministratori possono concedere ad altri utenti le autorizzazioni
per i gateway.
Una licenza che supporta l'accesso ai dati locali usando un gateway locale. Altre informazioni:
"Connessione ai dati" della tabella "Explore Power Apps plans" (Esplorare i piani di Power Apps) nella
pagina Power Apps prezzi.
È possibile creare e usare gateway e connessioni locali sono nell'ambiente predefinito dell'utente. Altre
informazioni: Uso degli ambienti e di Microsoft Power Apps.
Installare un gateway
È possibile installare un gateway dati locale direttamente dal servizio online.
Installare un gateway dal Power BI servizio
Per installare un gateway da Power BI servizio:
1. Selezionare il pulsante download nell'angolo superiore destro del Power BI e scegliere Gateway dati.
2. Installare il gateway usando le istruzioni fornite in Installare un gateway dati locale.
Installare un gateway da Power Apps
Per installare un gateway da Power Apps:
1. Nel riquadro di spostamento sinistro powerapps.comselezionare > Gateway dati.
2. Selezionare Nuovo gateway.
3. Specificare i dettagli di connessione per il gateway aziendale che verrà usato per accedere ai dati locali. È
necessario selezionare il gateway stesso e fornire le credenziali per il gateway selezionato. Nell'elenco
vengono visualizzati solo i gateway di cui si è amministratore.
È possibile modificare il gateway aziendale usato per un determinato flusso di dati e modificare il gateway
assegnato a tutte le query usando lo strumento di creazione del flusso di dati.
NOTE
Il flusso di dati tenterà di trovare o creare le origini dati necessarie usando il nuovo gateway. In caso contrario, non sarà
possibile modificare il gateway fino a quando non saranno disponibili tutti i flussi di dati necessari dal gateway selezionato.
Visualizzare e gestire le autorizzazioni dei gateway
Power BI del gateway di servizio
1. Selezionare il pulsante di configurazione nell'angolo superiore destro del servizio Power BI, scegliere
Gestisci gateway e quindi selezionare il gateway desiderato.
NOTE
È possibile condividere solo alcuni tipi di connessioni, ad esempio una SQL Server connessione. Per altre
informazioni, vedere Condividere risorse di app canvas in Power Apps.
Per altre informazioni su come gestire una connessione, vedere Gestire le connessioni di app canvas in
Power Apps.
Limitazioni
Esistono alcune limitazioni note quando si usano gateway e flussi di dati aziendali.
Ogni flusso di dati può usare un solo gateway. Di conseguenza, tutte le query devono essere configurate
usando lo stesso gateway.
La modifica del gateway influisce sull'intero flusso di dati.
Se sono necessari più gateway, la procedura consigliata consiste nel creare diversi flussi di dati (uno per
ogni gateway) e usare le funzionalità di calcolo o di riferimento alla tabella per unificare i dati.
I flussi di dati sono supportati solo con i gateway aziendali. I gateway personali non saranno disponibili
per la selezione negli elenchi a discesa e nelle schermate delle impostazioni.
La creazione di nuove origini dati con un gateway nei flussi di dati è supportata solo per gli utenti con
autorizzazioni di amministratore. I livelli can use e Can use + share permissions non sono attualmente
supportati.
Questo errore si verifica in genere perché si sta tentando di connettersi a un endpoint di Azure Data Lake
Archiviazione tramite un proxy, ma non sono state configurate correttamente le impostazioni proxy per il
gateway dati locale. Per altre informazioni su come configurare queste impostazioni proxy, vedere Configurare
le impostazioni proxy per il gateway dati locale.
Per altre informazioni sulla risoluzione dei problemi relativi ai gateway o sulla configurazione del servizio
gateway per la rete, vedere la documentazione del gateway dati locale.
Passaggi successivi
Creare e usare flussi di dati in Power Apps
Aggiungere dati a una tabella in Microsoft Dataverse usando Power Query
Connettere Azure Data Lake Storage Gen2 per l'archiviazione dei flussi di dati
Uso dell'output Microsoft Power Platform flussi di
dati da altre Power Query esperienze
07/12/2021 • 2 minutes to read
È possibile usare l'output Microsoft Power Platform flussi di dati dall'esperienza Power Query in altri prodotti.
Ad esempio, in Power BI Desktop o anche in un altro flusso di dati è possibile ottenere dati — — dall'output di
un flusso di dati. In questo articolo si apprenderà come eseguire questa operazione.
Quando si ottengono dati da un flusso di dati, i dati vengono importati nel set Power BI dati. Il set di dati deve
quindi essere aggiornato. È possibile scegliere se eseguire un aggiornamento una sola volta o un
aggiornamento automatico in base a una pianificazione specificata. Gli aggiornamenti pianificati per il set di dati
possono essere configurati in Power BI.
DirectQuery da flussi di dati
Power BI flussi di dati supportano anche una connessione DirectQuery. Se le dimensioni dei dati sono così
grandi da non voler importare tutti i dati nel set di dati Power BI, è possibile creare una connessione
DirectQuery. DirectQuery non copia i dati nel set di Power BI dati. Le tabelle nel set di dati Power BI che
ottengono i dati da un flusso di dati basato su DirectQuery non necessitano di un aggiornamento pianificato,
perché i dati verranno recuperati in tempo reale dal flusso di dati.
Per usare DirectQuery per i flussi di dati, è necessario abilitare il motore di calcolo nella capacità di Power BI
Premium e quindi aggiornare il flusso di dati prima che possa essere utilizzato in modalità DirectQuery. Per altre
informazioni, vedere l'Power BI DirectQuery dei flussi di dati.
Quando si riceveranno dati dall'output di un altro flusso di dati, verrà creata un'entità collegata. Le entità
collegate consentono di rendere disponibili i dati creati in un flusso di dati upstream in un flusso di dati
downstream, senza copiare i dati nel flusso di dati downstream. Poiché le entità collegate sono solo puntatori a
entità create in altri flussi di dati, vengono mantenute aggiornate dalla logica di aggiornamento del flusso di dati
upstream. Se entrambi i flussi di dati si trovano nella stessa area di lavoro o nello stesso ambiente, tali flussi di
dati verranno aggiornati insieme per mantenere sempre aggiornati i dati in entrambi i flussi di dati. Altre
informazioni: Collegare entità tra flussi di dati
Passaggi successivi
Gli articoli seguenti forniscono altri dettagli sugli articoli correlati.
Creazione e uso di flussi di dati in Power BI
Collegare entità tra flussi di dati in Power BI
Connettersi ai dati creati da flussi di dati di Power BI in Power BI Desktop (versione beta)
Creare e usare flussi di dati in Power Platform
Collegare entità tra flussi di dati (Power Platform)
Creazione di entità calcolate nei flussi di dati
07/12/2021 • 4 minutes to read
È possibile eseguire calcoli in archivio quando si usano i flussi di dati con una sottoscrizione di Power BI
Premium. In questo modo è possibile eseguire calcoli sui flussi di dati esistenti e restituire risultati che
consentono di concentrarsi sulla creazione e sull'analisi dei report.
Per eseguire i calcoli in archivio, è prima di tutto necessario creare il flusso di dati e inserire i dati nell'archivio
del flusso di dati di Power BI. Dopo aver creato un flusso di dati che contiene dati, è possibile creare entità
calcolate, ovvero entità che eseguono calcoli nell'archiviazione.
Ci sono due modi per connettere i dati del flusso di dati a Power BI:
Usando la creazione self-service di un flusso di dati
Usando un flusso di dati esterno
Le sezioni seguenti descrivono come creare entità calcolate sui dati del flusso di dati.
Qualsiasi trasformazione eseguita su questa entità appena creata verrà eseguita sui dati già presenti nell'Power
BI del flusso di dati. Ciò significa che la query non verrà eseguita sull'origine dati esterna da cui sono stati
importati i dati(ad esempio, il database SQL da cui sono stati estratti i dati).
Casi d'uso di esempio
Quale tipo di trasformazioni è possibile eseguire con le entità calcolate? Qualsiasi trasformazione specificata in
genere tramite l'interfaccia utente di trasformazione in Power BI o nell'editor M è supportata durante
l'esecuzione del calcolo in archiviazione.
Si consideri l'esempio seguente. Si dispone di un'entità Account che contiene i dati non elaborati per tutti i clienti
della sottoscrizione di Dynamics 365. Sono inoltre disponibili dati non elaborati di ServiceCalls dal centro
servizi, con i dati delle chiamate di supporto eseguite dai diversi account in ogni giorno dell'anno.
Imagine si vuole arricchire l'entità Account con i dati di ServiceCalls.
Prima di tutto, è necessario aggregare i dati di ServiceCalls per calcolare il numero di chiamate al supporto
tecnico per ogni account nell'anno precedente.
Successivamente, si unirà l'entità Account all'entità ServiceCallsAggregated per calcolare la tabella Account
arricchita.
Considerazioni e limitazioni
È importante notare che se si rimuove l'area di lavoro Power BI Premium capacità, il flusso di dati associato non
verrà più aggiornato.
Quando si lavora con flussi di dati creati in modo specifico nell'account Azure Data Lake Archiviazione di
un'organizzazione, le entità collegate e le entità calcolate funzionano correttamente solo quando le entità
risiedono nello stesso account di archiviazione. Altre informazioni: Connessione Azure Data Lake Archiviazione
Gen2 per l'archiviazione del flusso di dati
Le entità collegate sono disponibili solo per i flussi di dati creati in Power BI e Power Apps. Quando si eseguono
calcoli su dati uniti da origini dati locali e cloud, è consigliabile creare una nuova entità per eseguire tali calcoli.
Ciò offre un'esperienza migliore rispetto all'uso di un'entità esistente per i calcoli, ad esempio un'entità che
esegue anche query sui dati da entrambe le origini ed esegue trasformazioni nell'archiviazione.
Vedi anche
Scenari di entità calcolate e casi d'uso
Questo articolo descrive le entità calcolate e i flussi di dati. Di seguito sono riportati altri articoli che potrebbero
essere utili:
Preparazione dei dati self-service in Power BI
Uso dell'aggiornamento incrementale con i flussi di dati
Connessione alle origini dati per i flussi di dati
Collegare entità tra flussi di dati
I collegamenti seguenti forniscono informazioni aggiuntive sui flussi di dati in Power BI e altre risorse:
Creare e usare flussi di dati in Power BI
Uso di flussi di dati con origini dati locali
Risorse per sviluppatori per i flussi di dati Power BI
Configurare le impostazioni del flusso di dati dell'area di lavoro (anteprima)
Aggiungere una cartella CDM a Power BI come flusso di dati (anteprima)
Connettere Azure Data Lake Storage Gen2 per l'archiviazione dei flussi di dati (anteprima)
Per altre informazioni su Power Query e sull'aggiornamento pianificato, è possibile leggere questi articoli:
Panoramica delle query in Power BI Desktop
Configurazione dell'aggiornamento pianificato
Per altre informazioni sui Common Data Model, è possibile leggere l'articolo di panoramica:
Common Data Model (CDM)
Collegare entità tra flussi di dati
07/12/2021 • 6 minutes to read
Con i flussi di dati in Microsoft Power Platform, è possibile avere una singola origine di archiviazione dati
aziendale in cui i business analyst possono preparare e gestire i dati una sola volta e quindi riutilizzarli tra app di
analisi diverse nell'organizzazione.
Quando si collegano entità tra flussi di dati, è possibile riutilizzare le entità che sono già state inserite, pulite e
trasformate da flussi di dati di proprietà di altri utenti, senza la necessità di gestire i dati. Le entità collegate
puntano semplicemente alle entità in altri flussi di dati e non copiano o duplicano i dati.
Le entità collegate sono di sola lettura, quindi se si vogliono creare trasformazioni per un'entità collegata, è
necessario creare una nuova entità calcolata con un riferimento all'entità collegata.
NOTE
Le entità variano a seconda che si tratta di entità standard o di entità calcolate. Le entità standard (spesso denominate
semplicemente entità) eseguono query su un'origine dati esterna, ad esempio un database SQL. Le entità calcolate
richiedono Premium di archiviazione Power BI ed eseguire le trasformazioni sui dati già presenti Power BI archiviazione.
Se il flusso di dati non si trova in un'area di lavoro della capacità di Premium, è comunque possibile fare riferimento a una
singola query o combinare due o più query, purché le trasformazioni non siano definite come trasformazioni — —
nell'archiviazione. Tali riferimenti vengono considerati entità standard. A tale scopo, disattivare l'opzione Abilita
caricamento per le query a cui si fa riferimento per impedire che i dati vengano materializzati e inseriti nell'archiviazione.
Da qui è possibile fare riferimento a tali query Enable load = false e impostare Enable load (Abilita caricamento) su On
solo per le query risultanti da materializzare.
È anche possibile selezionare Aggiungi entità collegate dal menu Aggiungi entità nel Power BI servizio.
Viene visualizzata una finestra Strumento di navigazione a cui è possibile scegliere un set di entità a cui è
possibile connettersi. La finestra visualizza le entità per cui si hanno le autorizzazioni per tutte le aree di lavoro e
gli ambienti dell'organizzazione.
Dopo aver selezionato le entità collegate, queste vengono visualizzate nell'elenco delle entità per il flusso di dati
nello strumento di creazione, con un'icona speciale che le identifica come entità collegate.
È anche possibile visualizzare il flusso di dati di origine dalle impostazioni del flusso di dati dell'entità collegata.
NOTE
Viene eseguito il commit dell'intero processo di aggiornamento contemporaneamente. Per questo problema, se
l'aggiornamento dei dati per il flusso di dati di destinazione ha esito negativo, anche l'aggiornamento dei dati per il
flusso di dati di origine ha esito negativo.
Limitazioni e considerazioni
Esistono alcune limitazioni da tenere presenti quando si lavora con le entità collegate:
Un altro flusso di dati può fare riferimento a un'entità. Tale entità di riferimento può anche fare riferimento ad
altri flussi di dati e così via, fino a 5 volte.
Le dipendenze cicliche delle entità collegate non sono consentite.
Il flusso di dati deve essere in una nuova area Power BI lavoro o in un Power Apps di lavoro.
Un'entità collegata non può essere unita a un'entità normale che ottiene i dati da un'origine dati locale.
Quando si usano parametri M per risolvere le entità collegate, se il flusso di dati di origine viene aggiornato,
non influisce automaticamente sui dati nel flusso di dati di destinazione.
Passaggi successivi
Gli articoli seguenti possono essere utili quando si creano o si lavora con i flussi di dati:
Preparazione dei dati self-service in Power BI
Uso dell'aggiornamento incrementale con i flussi di dati
Creazione di entità calcolate nei flussi di dati
Connessione alle origini dati per i flussi di dati
Gli articoli seguenti forniscono altre informazioni sui flussi di dati e sui Power BI:
Creare e usare flussi di dati in Power BI
Uso delle entità calcolate in Power BI Premium
Uso di flussi di dati con origini dati locali
Risorse per sviluppatori per i flussi di dati Power BI
Per altre informazioni su Power Query e sull'aggiornamento pianificato, è possibile leggere questi articoli:
Panoramica delle query in Power BI Desktop
Configurazione dell'aggiornamento pianificato
Per altre informazioni sui Common Data Model, è possibile leggere l'articolo di panoramica:
Panoramica del modello CDM (Common Data Model)
Connettere Azure Data Lake Storage Gen2 per
l'archiviazione dei flussi di dati
07/12/2021 • 6 minutes to read
È possibile configurare i flussi di dati per archiviare i dati nell'account Azure Data Lake Archiviazione Gen2
dell'organizzazione. Questo articolo descrive i passaggi generali necessari a tale scopo, oltre a presentare linee
guida e procedure consigliate.
IMPORTANT
La funzionalità Flusso di dati con tabelle analitiche usa il servizio Azure Synapse Link for Dataverse, che può offrire diversi
livelli di conformità, privacy, sicurezza e impegno per la posizione dei dati. Per altre informazioni su Azure Synapse per
Dataverse, vedere l'articolo del blog.
La configurazione dei flussi di dati per archiviare le definizioni e i file di dati nell'data lake, ad esempio:
Azure Data Lake Archiviazione Gen2 offre una struttura di archiviazione estremamente scalabile per i dati.
I dati del flusso di dati e i file di definizione possono essere sfruttati dagli sviluppatori del reparto IT per
sfruttare i servizi di intelligenza artificiale e dati di Azure, come illustrato negli esempi GitHub dei servizi dati
di Azure.
Consente agli sviluppatori dell'organizzazione di integrare i dati dei flussi di dati in applicazioni interne e
soluzioni line-of-business, usando risorse per sviluppatori per flussi di dati e Azure.
Requisiti
Per usare Azure Data Lake Storage Gen2 per i flussi di dati, è necessario quanto segue:
Un Power Apps ambiente. Qualsiasi Power Apps consente di creare flussi di dati con Azure Data Lake
Archiviazione Gen2 come destinazione. È necessario essere autorizzati nell'ambiente come creatore.
Una sottoscrizione di Azure. È necessaria una sottoscrizione di Azure per usare Azure Data Lake Archiviazione
Gen2.
Un gruppo di risorse. Usare un gruppo di risorse già esistente o crearne uno nuovo.
Un account di archiviazione di Azure. Per l'account di archiviazione deve essere abilitata la funzionalità Data
Lake Archiviazione Gen2.
TIP
Se non si ha una sottoscrizione di Azure, creare un account di valutazione gratuito prima di iniziare.
3. Nell'elenco visualizzato selezionare Flussi di dati e quindi sulla barra dei comandi selezionare Nuovo
flusso di dati .
4. Selezionare le tabelle analitiche desiderate. Queste tabelle indicano i dati da archiviare nell'account Azure
Data Lake Store Gen2 dell'organizzazione.
Considerazioni e limitazioni
Quando si usa l'archiviazione dei flussi di dati è necessario tenere presenti alcune considerazioni e limitazioni:
Il collegamento di un account Azure Data Lake Store Gen2 per l'archiviazione del flusso di dati non è
supportato nell'ambiente predefinito.
Dopo aver configurato un percorso di archiviazione del flusso di dati per un flusso di dati, non può essere
modificato.
Per impostazione predefinita, qualsiasi membro dell'ambiente può accedere ai dati del flusso di dati usando
Power Platform Connettore flussi di dati. Tuttavia, solo i proprietari di un flusso di dati possono accedere ai
file direttamente in Azure Data Lake Archiviazione Gen2. Per autorizzare più utenti ad accedere ai dati dei
flussi di dati direttamente nel lake, è necessario autorizzarli nella cartella CDM del flusso di dati nel data lake
o nel data lake stesso.
Quando un flusso di dati viene eliminato, viene eliminata anche la relativa cartella CDM nel lake.
IMPORTANT
Non è consigliabile modificare i file creati dai flussi di dati nel lake dell'organizzazione o aggiungere file alla cartella CDM
di un flusso di dati. La modifica dei file potrebbe danneggiare i flussi di dati o modificarne il comportamento e non è
supportata. Power Platform flussi di dati concede solo l'accesso in lettura ai file creati nel lake. Se si autorizzano altri utenti
o servizi al file system usato Power Platform flussi di dati, concedere loro solo l'accesso in lettura ai file o alle cartelle in tale
file system.
Domande frequenti
Cosa succede se in precedenza sono stati creati flussi di dati in Azure Data Lake Archiviazione Gen2
dell'organizzazione e si vuole modificare la posizione di archiviazione?
Non è possibile modificare il percorso di archiviazione di un flusso di dati dopo la creazione.
Quando è possibile modificare il percorso di archiviazione del flusso di dati di un ambiente?
La modifica del percorso di archiviazione del flusso di dati dell'ambiente non è attualmente supportata.
Passaggi successivi
Questo articolo ha fornito indicazioni su come connettere un account Azure Data Lake Archiviazione Gen2 per
l'archiviazione dei flussi di dati.
Per altre informazioni sui flussi di dati, Common Data Model e Azure Data Lake Archiviazione Gen2, vedere gli
articoli seguenti:
Preparazione dei dati self-service con flussi di dati
Creazione e uso di flussi di dati in Power Apps
Aggiungere dati a una tabella in Microsoft Dataverse
Per altre informazioni sull'archiviazione di Azure, vedere questo articolo:
Guida alla sicurezza di Archiviazione di Azure
Per altre informazioni sul Common Data Model, vedere gli articoli seguenti:
Panoramica del modello CDM (Common Data Model)
Common Data Model cartelle
Definizione del file del modello CDM
È possibile porre domande nellaPower Apps Community .
Qual è la struttura di archiviazione per i flussi di dati
analitici?
07/12/2021 • 4 minutes to read
NOTE
Valido il 2020 novembre:
Common Data Service è stato rinominato in Microsoft dataverse. Altre informazioni
Una terminologia in Microsoft dataverse è stata aggiornata. Ad esempio, l' entità è ora Table e Field è ora Column.
Altre informazioni
Questo articolo verrà aggiornato a breve per riflettere la terminologia più recente.
I flussi di dati analitici archiviano sia i dati che i metadati in Azure Data Lake Archiviazione. I flussi di dati
sfruttano una struttura standard per archiviare e descrivere i dati creati nel lake, denominato Common Data
Model cartelle. In questo articolo si apprenderanno altre informazioni sullo standard di archiviazione che i flussi
di dati usano in background.
È possibile usare questo file JSON per eseguire la migrazione (o importare) il flusso di dati in un'altra area di
lavoro o ambiente.
Per informazioni esattamente sul file di metadati model.json incluso, passare al file di metadati (model.json)
perCommon Data Model .
File di dati
Oltre al file di metadati, la cartella del flusso di dati include altre sottocartelle. Un flusso di dati archivia i dati per
ogni entità in una sottocartella con il nome dell'entità. I dati per un'entità possono essere suddivisi in più
partizioni di dati, archiviati in formato CSV.
Per informazioni sul funzionamento dei flussi di dati e dell'integrazione interna di Data Lake Archiviazione,
vedere Flussi di dati e Integrazione di Azure Data Lake (anteprima).
Se l'organizzazione ha abilitato i flussi di dati per sfruttare il proprio account Data Lake Archiviazione ed è stata
selezionata come destinazione di caricamento per i flussi di dati, è comunque possibile ottenere dati dal flusso di
dati usando il connettore del flusso di dati Power Platform, come accennato in precedenza. Tuttavia, è anche
possibile accedere alla cartella Common Data Model del flusso di dati direttamente attraverso il lake, anche
all'esterno Power Platform strumenti e servizi. L'accesso al lake è possibile tramite portale di Azure, Microsoft
Azure Storage Explorer o qualsiasi altro servizio o esperienza che supporti Azure Data Lake Archiviazione. Altre
informazioni: Connessione Azure Data Lake Archiviazione Gen2 per l'archiviazione dei flussi di dati
Passaggi successivi
Usare il Common Data Model per ottimizzare Azure Data Lake Archiviazione Gen2
File di metadati (model.json) per l'Common Data Model
Aggiungere una cartella CDM a Power BI come flusso di dati (anteprima)
Connettere Azure Data Lake Storage Gen2 per l'archiviazione dei flussi di dati
Flussi di dati e integrazione di Azure Data Lake (anteprima)
Configurare le impostazioni del flusso di dati dell'area di lavoro (anteprima)
Opzioni di archiviazione dei flussi di dati
07/12/2021 • 3 minutes to read
NOTE
Valido il 2020 novembre:
Common Data Service è stato rinominato in Microsoft dataverse. Altre informazioni
Una terminologia in Microsoft dataverse è stata aggiornata. Ad esempio, l' entità è ora Table e Field è ora Column.
Altre informazioni
Questo articolo verrà aggiornato a breve per riflettere la terminologia più recente.
I flussi di dati standard caricano sempre i dati nelle tabelle Dataverse in un ambiente. I flussi di dati analitici
caricano sempre i dati negli account Archiviazione Azure Data Lake. Per entrambi i tipi di flusso di dati, non è
necessario effettuare il provisioning o gestire l'archiviazione. L'archiviazione del flusso di dati, per impostazione
predefinita, viene fornita e gestita dai prodotti in cui viene creato il flusso di dati.
I flussi di dati analitici consentono un'opzione di archiviazione aggiuntiva: l'account azure data lake
Archiviazione dell'organizzazione. Questa opzione consente l'accesso ai dati creati da un flusso di dati
direttamente tramite le interfacce Archiviazione Azure Data Lake. Fornire un account di archiviazione
personalizzato per i flussi di dati analitici consente ad altre applicazioni di Azure o line-of-business di sfruttare i
dati connettendosi direttamente al lake.
Passaggi successivi
Gli articoli seguenti forniscono altre informazioni utili.
Connessione Azure Data Lake Archiviazione Gen2 per l'archiviazione dei flussi di dati (Power BI flussi di dati)
Connessione Azure Data Lake Archiviazione Gen2 per l'archiviazione dei flussi di dati (Power Platform flussi
di dati)-->
Creazione di entità calcolate nei flussi di dati
Motore di calcolo avanzato
Informazioni sulle differenze tra flussi di dati standard e analitici
Scenari di entità calcolate e casi d'uso
07/12/2021 • 5 minutes to read
L'uso di entità calcolate in un flusso di dati offre vantaggi. Questo articolo descrive i casi d'uso per le entità
calcolate e descrive come funzionano in background.
Un'entità calcolata fornisce un'unica posizione come codice sorgente per la trasformazione e velocizza la
trasformazione perché deve essere eseguita una sola volta anziché più volte. Anche il carico sull'origine dati è
ridotto.
Immagine che illustra come creare un'entità calcolata dall'entità Orders. Fare prima clic con il pulsante destro del
mouse sull'entità Orders nel riquadro Query, selezionare l'opzione Riferimento dal menu a discesa, che crea
l'entità calcolata, rinominata in Orders aggregated.
L'entità calcolata può avere altre trasformazioni. Ad esempio, è possibile usare Group By per aggregare i dati a
livello di cliente.
Ciò significa che l'entità Orders Aggregated oserà nuovamente i dati dall'entità Orders e non dall'origine dati.
Poiché alcune delle trasformazioni che devono essere eseguite sono già state eseguite nell'entità Orders, le
prestazioni sono migliori e la trasformazione dei dati è più veloce.
Image enfatizza il connettore Power Platform flussi di dati dalla finestra dell'origine dati choos di Power Query,
con una descrizione che indica che un'entità del flusso di dati può essere compilata in base ai dati di un'altra
entità del flusso di dati, che è già persistente nell'archiviazione.
Il concetto dell'entità calcolata è rendere persistente una tabella nell'archiviazione e altre tabelle da essa
derivate, in modo da ridurre il tempo di lettura dall'origine dati e condividere alcune delle trasformazioni
comuni. A tale scopo, è possibile ottenere dati da altri flussi di dati tramite il connettore del flusso di dati o fare
riferimento a un'altra query nello stesso flusso di dati.
Se il flusso di dati in fase di sviluppo è sempre più grande e complesso, ecco alcune operazioni che è possibile
eseguire per migliorare la progettazione originale.
Immagine che mostra i dati estratti da un'origine dati nei flussi di dati di staging, in cui le enities vengono
archiviate in Dataverse o In Azure Data Lake Storage, quindi i dati vengono spostati nei flussi di dati di
trasformazione in cui i dati vengono trasformati e convertiti nella struttura data warehouse e quindi i dati
vengono spostati nel set di dati.
Usare funzioni personalizzate
Le funzioni personalizzate sono utili negli scenari in cui è necessario eseguire un certo numero di passaggi per
diverse query provenienti da origini diverse. Le funzioni personalizzate possono essere sviluppate tramite
l'interfaccia grafica in editor di Power Query o usando uno script M. Le funzioni possono essere riutilizzate in un
flusso di dati in tutte le entità necessarie.
La presenza di una funzione personalizzata consente di avere una sola versione del codice sorgente, quindi non
è necessario duplicare il codice. Di conseguenza, la gestione della logica Power Query trasformazione e
dell'intero flusso di dati sarà molto più semplice. Per altre informazioni, vedere il post di blog seguente: Funzioni
personalizzate rese più semplici in Power BI Desktop.
NOTE
Valido il 2020 novembre:
Common Data Service è stato rinominato in Microsoft dataverse. Altre informazioni
Una terminologia in Microsoft dataverse è stata aggiornata. Ad esempio, l' entità è ora Table e Field è ora Column.
Altre informazioni
Questo articolo verrà aggiornato a breve per riflettere la terminologia più recente.
Questo articolo illustra una raccolta di procedure consigliate per riutilizzare i flussi di dati in modo efficace ed
efficiente. Leggere questo articolo per evitare problemi di progettazione e potenziali problemi di prestazioni
durante lo sviluppo di flussi di dati per il riutilizzo.
NOTE
Valido il 2020 novembre:
Common Data Service è stato rinominato in Microsoft dataverse. Altre informazioni
Una terminologia in Microsoft dataverse è stata aggiornata. Ad esempio, l' entità è ora Table e Field è ora Column.
Altre informazioni
Questo articolo verrà aggiornato a breve per riflettere la terminologia più recente.
La progettazione di un modello dimensionale è una delle attività più comuni che è possibile eseguire con un
flusso di dati. Questo articolo illustra alcune delle procedure consigliate per la creazione di un modello
dimensionale usando un flusso di dati.
Nell'immagine precedente l'entità calcolata ottiene i dati direttamente dall'origine. Tuttavia, nell'architettura dei
flussi di dati di staging e trasformazione, è probabile che le entità calcolate siano provenienti dai flussi di dati di
staging.
<a name="use -a-unique -key-value -for-dimensions">Usare un valore di chiave univoca per le dimensioni
Quando si compilano tabelle delle dimensioni, assicurarsi di avere una chiave per ognuna. Questa chiave
garantisce che non siano presenti relazioni molti-a-molti (o, in altre parole, "deboli") tra le dimensioni. È
possibile creare la chiave applicando una trasformazione per assicurarsi che una colonna o una combinazione di
colonne restituirà righe univoche nella dimensione. Tale combinazione di colonne può quindi essere
contrassegnata come chiave nell'entità nel flusso di dati.
Una delle procedure consigliate per le implementazioni dei flussi di dati è la separazione delle responsabilità dei
flussi di dati in due livelli: inserimento dei dati e trasformazione dei dati. Questo modello è particolarmente utile
quando si gestiscono più query di origini dati più lente in un flusso di dati o più flussi di dati che esere query
sulle stesse origini dati. Invece di ottenere dati da un'origine dati lenta più volte per ogni query, il processo di
inserimento dei dati può essere eseguito una sola volta e la trasformazione può essere eseguita su tale
processo. Questo articolo illustra il processo.
L'uso di flussi di dati analitici per l'inserimento dei dati riduce al minimo il processo di recuperare dati
dall'origine e si concentra sul caricamento dei dati in Azure Data Lake Archiviazione. Dopo l'archiviazione, è
possibile creare altri flussi di dati che sfruttano l'output del flusso di dati di inserimento. Il motore del flusso di
dati può leggere i dati ed eseguire le trasformazioni direttamente dal data lake, senza contattare l'origine dati o
il gateway originale.
Origine dati lenta
Lo stesso processo è valido quando un'origine dati è lenta. Alcune delle origini dati SaaS (Software as a Service)
vengono eseguite lentamente a causa delle limitazioni delle chiamate API.
NOTE
Valido il 2020 novembre:
Common Data Service è stato rinominato in Microsoft dataverse. Altre informazioni
Una terminologia in Microsoft dataverse è stata aggiornata. Ad esempio, l' entità è ora Table e Field è ora Column.
Altre informazioni
Questo articolo verrà aggiornato a breve per riflettere la terminologia più recente.
A seconda dello spazio di archiviazione per l'output Microsoft Power Platform flussi di dati, è possibile usare tale
output in altri servizi di Azure.
NOTE
Valido il 2020 novembre:
Common Data Service è stato rinominato in Microsoft dataverse. Altre informazioni
Una terminologia in Microsoft dataverse è stata aggiornata. Ad esempio, l' entità è ora Table e Field è ora Column.
Altre informazioni
Questo articolo verrà aggiornato a breve per riflettere la terminologia più recente.
Nel flusso di dati standard è possibile eseguire facilmente il mapping dei campi dalla query del flusso di dati alle
tabelle Dataverse. Tuttavia, se la tabella Dataverse include campi di ricerca o relazione, è necessario considerare
in modo aggiuntivo per assicurarsi che questo processo funzioni.
In Dataverse esistono diversi modi per creare una relazione. Un modo è creare una tabella e quindi creare un
campo in una tabella che sia una relazione (o ricerca) con un'altra tabella, come descritto nella sezione
successiva.
Nell'immagine precedente il campo Region è un campo di ricerca in un'altra tabella denominata Region Lookup.
Per altre informazioni sui diversi tipi di relazioni, vedere Creare una relazione tra tabelle.
Dopo aver impostato il campo chiave, è possibile visualizzare il campo nel mapping del flusso di dati.
Limitazioni note
Il mapping ai campi di ricerca polimorfica non è attualmente supportato.
Il mapping a un campo di ricerca multi-livello, una ricerca che punta al campo di ricerca di un'altra tabella,
non è attualmente supportato.
Considerazioni sul mapping dei campi per i flussi di
dati standard
07/12/2021 • 2 minutes to read
NOTE
Valido il 2020 novembre:
Common Data Service è stato rinominato in Microsoft dataverse. Altre informazioni
Una terminologia in Microsoft dataverse è stata aggiornata. Ad esempio, l' entità è ora Table e Field è ora Column.
Altre informazioni
Questo articolo verrà aggiornato a breve per riflettere la terminologia più recente.
Quando si creano flussi di dati che scrivono l'output in Dataverse, è possibile seguire alcune linee guida e
procedure consigliate per ottenere il risultato migliore. In questo articolo vengono trattate alcune di queste
procedure consigliate.
Il campo del nome primario visualizzato nel mapping dei campi è per un campo etichetta. Questo campo non
deve essere univoco. Il campo usato nell'entità per controllare la duplicazione sarà il campo impostato nel
campo Chiave alternativa.
La presenza di una chiave primaria nell'entità garantisce che anche se sono presenti righe di dati duplicate con
lo stesso valore nel campo mappato alla chiave primaria, le voci duplicate non verranno caricate nell'entità e
l'entità avrà sempre una qualità elevata dei dati. La disponibilità di un'entità con un'elevata qualità dei dati è
essenziale per la creazione di soluzioni di creazione di report basate sull'entità.
Campo del nome primario
Il campo del nome primario è un campo di visualizzazione usato in Dataverse. Questo campo viene usato nelle
visualizzazioni predefinite per visualizzare il contenuto dell'entità in altre applicazioni. Questo campo non è il
campo chiave primaria e non deve essere considerato come tale. Questo campo può avere duplicati, perché è un
campo di visualizzazione. La procedura consigliata, tuttavia, consiste nell'usare un campo concatenato per
eseguire il mapping al campo del nome primario, in modo che il nome sia completamente esplicativo.
Il campo chiave alternativo viene usato come chiave primaria.
NOTE
Valido il 2020 novembre:
Common Data Service è stato rinominato in Microsoft dataverse. Altre informazioni
Una terminologia in Microsoft dataverse è stata aggiornata. Ad esempio, l' entità è ora Table e Field è ora Column.
Altre informazioni
Questo articolo verrà aggiornato a breve per riflettere la terminologia più recente.
Se un utente del team ha creato un flusso di dati e vuole condividerlo con altri membri del team, come
funziona? Quali sono i ruoli e le opzioni del livello di autorizzazione disponibili? Questo articolo illustra i ruoli e i
livelli di autorizzazione correlati ai flussi di dati standard.
Accesso all'ambiente
Un flusso di dati standard archivia i dati in Dataverse. Dataverse si trova in un ambiente. Prima di accedere ai
dati archiviati in Dataverse e anche ai flussi di dati, è necessario avere accesso all'ambiente.
Ruoli
Sono disponibili più ruoli usati per configurare il livello di sicurezza per i flussi di dati standard. La tabella
seguente descrive ogni ruolo, insieme al livello di autorizzazione associato a tale ruolo.
Autore dell'ambiente Creare flussi di dati Obbligatorio per creare qualsiasi flusso
di dati. I flussi di dati standard
richiedono ruoli aggiuntivi a seconda
delle autorizzazioni per le tabelle di
Dataverse
Utente principiante Scrivere in entità non personalizzate Ha tutti i diritti per lavorare con le
entità non personalizzate
Membri dell'ambiente Ottenere dati dai flussi di dati Ogni membro dell'ambiente può
ottenere dati dai flussi di dati in tale
ambiente
6. SelezionareOK .
Sincronizzare l Excel'origine dati con Dataverse
usando un flusso di dati
07/12/2021 • 3 minutes to read
NOTE
Valido il 2020 novembre:
Common Data Service è stato rinominato in Microsoft dataverse. Altre informazioni
Una terminologia in Microsoft dataverse è stata aggiornata. Ad esempio, l' entità è ora Table e Field è ora Column.
Altre informazioni
Questo articolo verrà aggiornato a breve per riflettere la terminologia più recente.
Uno degli scenari comuni che si verificano quando si integrano i dati in Dataverse è mantenerlo sincronizzato
con l'origine. Usando il flusso di dati standard, è possibile caricare i dati in Dataverse. Questo articolo illustra
come mantenere i dati sincronizzati con il sistema di origine.
La presenza di una colonna chiave è importante per la tabella in Dataverse. La colonna chiave è l'identificatore di
riga. questa colonna contiene valori univoci in ogni riga. La presenza di una colonna chiave consente di evitare
righe duplicate e consente anche di sincronizzare i dati con il sistema di origine. Se una riga viene rimossa dal
sistema di origine, la presenza di una colonna chiave è utile per trovarla e rimuoverla anche da Dataverse.
L'impostazione è semplice, è sufficiente impostare la chiave alternativa. Tuttavia, se si dispone di più file o
tabelle, è necessario prendere in considerazione un altro passaggio.
Se sono presenti più file
Se è presente un solo file Excel (o foglio o tabella), i passaggi della procedura precedente sono sufficienti per
impostare la chiave alternativa. Tuttavia, se si dispone di più file (o fogli o tabelle) con la stessa struttura (ma con
dati diversi), è necessario accodarli insieme.
Se si stanno ottenendo dati da più file Excel, l'opzione Combina file di Power Query accoderà automaticamente
tutti i dati e l'output sarà simile all'immagine seguente.
Come illustrato nell'immagine precedente, oltre al risultato di accodamento, Power Query anche la colonna
Source.Name, che contiene il nome del file. Il valore index in ogni file potrebbe essere univoco, ma non è
univoco in più file. Tuttavia, la combinazione della colonna Index e della colonna Source.Name è una
combinazione univoca. Scegliere una chiave alternativa composta per questo scenario.
In questa procedura si creerà una tabella in Dataverse e si riempirà la tabella con i dati di un feed OData usando
Power Query. È possibile usare le stesse tecniche per integrare i dati delle origini online e locali seguenti:
SQL Server
Salesforce
IBM DB2
Access
Excel
API Web
Feed OData
File di testo
È anche possibile filtrare, trasformare e combinare i dati prima di caricarli in una tabella nuova o esistente.
Se non si ha una licenza per Power Apps, è possibile registrarsi gratuitamente.
Prerequisiti
Prima di iniziare a seguire questo articolo:
Passare a un ambiente in cui è possibile creare tabelle.
È necessario disporre di un Power Apps per piano utente o Power Apps per piano di app.
6. Nell'elenco delle tabelle selezionare la casella di controllo Clienti e quindi selezionare Trasforma dati .
7. (facoltativo) Modificare lo schema in base alle proprie esigenze scegliendo le colonne da includere,
modificando la tabella, aggiungendo un indice o una colonna condizionale o apportando altre modifiche.
8. Nell'angolo inferiore destro selezionare Avanti.
È possibile assegnare alla nuova tabella un nome o un nome visualizzato diverso, ma lasciare i valori
predefiniti per seguire esattamente questa esercitazione.
2. Nell'elenco Colonna nome primario univoco selezionare ContactName e quindi selezionare
Avanti.
È possibile specificare una colonna con nome primario diversa, eseguire il mapping di una colonna
diversa nella tabella di origine a ogni colonna della tabella che si sta creando o a entrambe. È anche
possibile specificare se le colonne Di testo nell'output della query devono essere create come testo su più
righe o Single-Line testo nel dataverse. Per seguire questa esercitazione, lasciare il mapping delle colonne
predefinito.
3. Selezionare Aggiorna manualmente per Power Query - Aggiorna Impostazioni e quindi selezionare
Crea .
4. In Dati (vicino al bordo sinistro) selezionare Tabelle per visualizzare l'elenco delle tabelle nel database.
La tabella Customers creata da un feed OData viene visualizzata come tabella personalizzata.
WARNING
Se si usa Power Query per aggiungere dati a una tabella esistente, tutti i dati in tale tabella verranno sovrascritti.
Se si seleziona Carica nella tabella esistente , è possibile specificare una tabella in cui aggiungere dati dalla
tabella Customers. È possibile, ad esempio, aggiungere i dati alla tabella Account con cui viene fornito
Dataverse. In Mapping colonne è possibile specificare ulteriormente che i dati nella colonna ContactName
della tabella Customers devono essere aggiunti alla colonna Nome della tabella Account.
Se viene visualizzato un messaggio di errore sulle autorizzazioni, contattare l'amministratore.
Come Microsoft Power Platform tra flussi di dati e
Azure Data Factory flussi di dati wrangling
07/12/2021 • 2 minutes to read
NOTE
Valido il 2020 novembre:
Common Data Service è stato rinominato in Microsoft dataverse. Altre informazioni
Una terminologia in Microsoft dataverse è stata aggiornata. Ad esempio, l' entità è ora Table e Field è ora Column.
Altre informazioni
Questo articolo verrà aggiornato a breve per riflettere la terminologia più recente.
Microsoft Power Platform flussi di dati e Azure Data Factory di dati sono spesso considerati come operazioni
uguali: estrazione dei dati dai sistemi di origine, trasformazione dei dati e caricamento dei dati trasformati in una
destinazione. Tuttavia, esistono differenze in questi due tipi di flussi di dati ed è possibile avere una soluzione
implementata che funziona con una combinazione di queste tecnologie. Questo articolo descrive questa
relazione in modo più dettagliato.
Qual è la differenza?
Il punto principale è conoscere le differenze, perché è quindi possibile pensare agli scenari in cui si vuole usare
uno o l'altro.
Destinazioni Dataverse o Azure Data Lake Molte destinazioni (vedere l'elenco qui)
Archiviazione
Power Query trasformazione Tutte Power Query sono supportate È supportato un set limitato di funzioni
(vedere l'elenco qui)
Origini Sono supportate molte origini Solo alcune origini (vedere l'elenco qui)
Al termine dell'aggiornamento del flusso di dati, l'utente o altri utenti che gestiscono o dipendono dal flusso di
dati potrebbero voler ricevere una notifica per avvisare l'utente dello stato di aggiornamento del flusso di dati.
In questo modo, si sa che i dati sono aggiornati ed è possibile iniziare a ottenere nuove informazioni dettagliate.
Un altro scenario comune seguito da questa esercitazione è la notifica in caso di errore di un flusso di dati. Una
notifica consente di avviare l'analisi del problema e avvisare gli utenti che dipendono dai dati aggiornati
correttamente.
Per configurare una notifica Power Automate che verrà inviata quando un flusso di dati ha esito negativo:
1. Passare a Power Automate.
2. Selezionare Crea > flusso cloud automatizzato .
3. Immettere un nome di flusso e quindi cercare il connettore "Al termine dell'aggiornamento di un flusso di
dati". Selezionare questo connettore nell'elenco e quindi selezionare Crea .
4. Personalizzare il connettore. Immettere le informazioni seguenti nel flusso di dati:
Tipo di gruppo: selezionare Ambiente durante la connessione a Power Apps e All'area di lavoro
durante la connessione a Power BI.
Gruppo: selezionare l'Power Apps o l'area Power BI in cui si trova il flusso di dati.
Flusso di dati: selezionare il flusso di dati in base al nome.
5. Selezionare Nuovo passaggio per aggiungere un'azione al flusso.
6. Cercare il connettore Condizione e quindi selezionarlo.
7. Personalizzare il connettore Condizione. Immettere le informazioni seguenti:
a. Nella prima cella aggiungere Stato aggiornamento dal connettore del flusso di dati.
b. Lasciare la seconda cella uguale a .
c. Nella terza cella immettere False .
Quando l'aggiornamento del flusso di dati viene completato o richiede più tempo del previsto, è consigliabile
che il team di supporto analiti l'analisi. Con questa esercitazione è possibile aprire automaticamente un ticket di
supporto, creare un messaggio in una coda o in un bus di servizio oppure aggiungere un elemento a Azure
DevOps per inviare una notifica al team di supporto.
In questa esercitazione si userà Azure bus di servizio. Per istruzioni su come configurare un'istanza di Azure bus
di servizio creare una coda, vedere Usare portale di Azure per creare uno spazio dei nomi bus di servizio e una
coda.
Per creare automaticamente una coda in Azure bus di servizio:
1. Passare a Power Automate.
2. Selezionare Crea > flusso cloud automatizzato.
3. Immettere un nome per il flusso e quindi cercare il connettore "Al termine dell'aggiornamento di un
flusso di dati". Selezionare questo connettore nell'elenco e quindi selezionare Crea.
4. Personalizzare il connettore. Immettere le informazioni seguenti sul flusso di dati:
Tipo di gruppo: selezionare Ambiente quando ci si connette a Power Apps e all'area di lavoro
quando ci si connette Power BI.
Gruppo: selezionare l'ambiente Power Apps o l'Power BI di lavoro in cui si trova il flusso di dati.
Flusso di dati: selezionare il flusso di dati in base al nome.
5. Selezionare Nuovo passaggio per aggiungere un'azione al flusso.
6. Cercare il connettore Condizione e quindi selezionarlo.
7. Personalizzare il connettore Condizione. Immettere le informazioni seguenti:
a. Nella prima cella aggiungere Stato aggiornamento dal connettore del flusso di dati.
b. Lasciare la seconda cella uguale a .
c. Nella terza cella immettere False .
8. Nella sezione Se sì selezionare Aggiungi un'azione.
9. Cercare il connettore "Send message" (Invia messaggio) bus di servizio e quindi selezionarlo.
10. Immettere un Nome connessione per questo messaggio. In Stringa di connessione immettere la
stringa di connessione generata durante la creazione dello spazio dei nomi bus di servizio dati.
Selezionare quindi Crea .
11. Aggiungere informazioni sul flusso di dati al contenuto del messaggio selezionando il campo accanto a
Contenuto , quindi selezionare il contenuto dinamico da Contenuto dinamico .
Attivare flussi di dati e set di dati Power BI in
sequenza
07/12/2021 • 2 minutes to read
Esistono due scenari comuni in cui è possibile usare questo connettore per attivare più flussi di dati e Power BI
set di dati in sequenza.
Attivare l'aggiornamento di un flusso di dati standard dopo il completamento di un aggiornamento del
flusso di dati analitico.
Se un singolo flusso di dati esegue ogni azione, è difficile riutilizzare le entità in altri flussi di dati o per
altri scopi. I flussi di dati migliori da riutilizzare sono i flussi di dati che eserezionano solo alcune azioni,
specializzata in un'attività specifica. Se si dispone di un set di flussi di dati come flussi di dati di staging e
l'unica azione è estrarre i dati "così come sono" dal sistema di origine, questi flussi di dati possono essere
riutilizzati in più altri flussi di dati. Altre informazioni: Procedure consigliate per il riutilizzo dei flussi di
dati tra ambienti e aree di lavoro
Attivare l'aggiornamento di un Power BI di dati quando un aggiornamento del flusso di dati viene
completato correttamente.
Per assicurarsi che il dashboard sia aggiornato dopo l'aggiornamento dei dati da parte di un flusso di
dati, è possibile usare il connettore per attivare l'aggiornamento di un set di dati Power BI dopo
l'aggiornamento corretto del flusso di dati.
Questa esercitazione illustra il primo scenario.
Per attivare i flussi di dati in sequenza:
1. Passare a Power Automate.
2. Selezionare Crea > flusso cloud automatizzato .
3. Immettere un nome di flusso e quindi cercare il connettore "Al termine dell'aggiornamento di un flusso di
dati". Selezionare questo connettore nell'elenco e quindi selezionare Crea .
4. Personalizzare il connettore. Immettere le informazioni seguenti nel flusso di dati:
Tipo di gruppo: selezionare Ambiente durante la connessione a Power Apps e All'area di lavoro
durante la connessione a Power BI.
Gruppo: selezionare l'Power Apps o l'area Power BI in cui si trova il flusso di dati.
Flusso di dati: selezionare il flusso di dati in base al nome.
5. Selezionare Nuovo passaggio per aggiungere un'azione al flusso.
6. Cercare il connettore Condizione e quindi selezionarlo.
7. Personalizzare il connettore Condizione. Immettere le informazioni seguenti:
a. Nella prima cella aggiungere Stato aggiornamento dal connettore del flusso di dati.
b. Lasciare la seconda cella uguale a .
c. Nella terza cella immettere Success .
8. Nella sezione Se sì selezionare Aggiungi un'azione.
9. Cercare il connettore "Aggiorna un flusso di dati" e quindi selezionarlo.
10. Personalizzare il connettore:
Tipo di gruppo: selezionare Ambiente durante la connessione a Power Apps e All'area di lavoro
durante la connessione a Power BI.
Gruppo: selezionare l'Power Apps o l'area Power BI in cui si trova il flusso di dati.
Flusso di dati: selezionare il flusso di dati in base al nome.
Caricare i dati in una tabella Dataverse e compilare
un report di monitoraggio dei flussi di dati con
Power BI
07/12/2021 • 2 minutes to read
Questa esercitazione illustra come caricare dati in una tabella Dataverse per creare un report di monitoraggio
dei flussi di dati in Power BI.
È possibile usare questo dashboard per monitorare la durata e il numero di errori dei flussi di dati. Con questo
dashboard è possibile tenere traccia di eventuali problemi relativi alle prestazioni dei flussi di dati e condividere i
dati con altri utenti.
In primo luogo, si creerà una nuova tabella Dataverse che archivia tutti i metadati dell'esecuzione del flusso di
dati. Per ogni aggiornamento di un flusso di dati, viene aggiunto un record a questa tabella. È anche possibile
archiviare i metadati per più esecuzioni di flussi di dati nella stessa tabella. Dopo aver creato la tabella, si
connetterà il file Power BI alla tabella Dataverse.
Prerequisiti
Power BI Desktop.
Ambiente Dataverse con autorizzazioni per creare nuove tabelle personalizzate.
Una Premium Power Automate licenza .
Un Power BI di dati o Power Platform flusso di dati.
Questa esercitazione illustra come usare un file Excel e il connettore flussi di dati in Power Automate per creare
un report di monitoraggio dei flussi di dati in Power BI.
Prima di tutto, scaricare il file Excel e salvarlo in OneDrive for Business o SharePoint. Si creerà quindi un
connettore Power Automate che carica i metadati dal flusso di dati nel file Excel in OneDrive for Business o
SharePoint. Infine, si connetterà un file Power BI al file Excel per visualizzare i metadati e avviare il monitoraggio
dei flussi di dati.
È possibile usare questo dashboard per monitorare la durata dell'aggiornamento e il numero di errori dei flussi
di dati. Con questo dashboard è possibile tenere traccia di eventuali problemi relativi alle prestazioni dei flussi di
dati e condividere i dati con altri utenti.
Prerequisiti
Microsoft Excel
Power BI Desktop.
Una Premium Power Automate licenza
OneDrive for Business.
Oggetto Power BI flusso di dati o Power Platform flusso di dati.
Questa esercitazione illustra come caricare dati in un set di Power BI di streaming per creare un report di
monitoraggio dei flussi di dati in Power BI.
In primo luogo, si creerà un nuovo set di dati di streaming in Power BI. Questo set di dati raccoglie tutti i
metadati dall'esecuzione del flusso di dati e per ogni aggiornamento di un flusso di dati viene aggiunto un
record a questo set di dati. È possibile eseguire più flussi di dati tutti nello stesso set di dati. Infine, è possibile
compilare un report Power BI sui dati per visualizzare i metadati e iniziare a monitorare i flussi di dati.
È possibile usare questo dashboard per monitorare la durata e il numero di errori dei flussi di dati. Con questo
dashboard è possibile tenere traccia di eventuali problemi relativi alle prestazioni dei flussi di dati e condividere i
dati con altri utenti.
Prerequisiti
Una Power BI Pro licenza .
Una Premium Power Automate licenza
Un Power BI di dati o Power Platform flusso di dati.
4. In Nuovo set di dati di streaming selezionare il riquadro API e quindi selezionare Avanti.
5. Nel nuovo riquadro attivare l'analisi dei dati storici.
6. Immettere i valori seguenti e quindi selezionare Crea .
Nome set di dati: "Monitoraggio del flusso di dati".
Valore:"Nome flusso di dati", Tipo di dati : Testo.
Valore:"ID flusso di dati", Tipo di dati : Testo.
Valore:"Stato aggiornamento", Tipo di dati : Testo.
Valore:"Tipo di aggiornamento", Tipo di dati : Testo.
Valore:"Ora di inizio", Tipo di dati : Data e ora.
Valore:"Ora di fine", Tipo di dati : Data e ora.
Creare un flusso di dati
Se non è già disponibile, creare un flusso di dati. È possibile creare un flusso di dati Power BI flussi di dati o
Power Apps flussi di dati.
Questo articolo illustra alcuni degli errori e dei problemi più comuni che possono verificarsi quando si vuole
creare un flusso di dati e come risolverli.
Motivo:
La creazione di flussi di dati nell'area di lavoro personale non è supportata.
Risoluzione:
Creare i flussi di dati nelle aree di lavoro dell'organizzazione. Per informazioni su come creare un'area di lavoro
aziendale, vedere Creare le nuove aree di lavoro in Power BI.
NOTE
Valido il 2020 novembre:
Common Data Service è stato rinominato in Microsoft dataverse. Altre informazioni
Una terminologia in Microsoft dataverse è stata aggiornata. Ad esempio, l' entità è ora Table e Field è ora Column.
Altre informazioni
Questo articolo verrà aggiornato a breve per riflettere la terminologia più recente.
È possibile che sia stato creato un flusso di dati, ma che sia stato difficile ottenere dati da esso (usando Power
Query in Power BI Desktop o da altri flussi di dati). Questo articolo illustra alcuni dei problemi più comuni
relativi al recupero di dati da un flusso di dati.
Dopo l'aggiornamento di un flusso di dati, i dati nelle entità saranno visibili nella finestra Strumento di
navigazione di altri strumenti e servizi.
Altre informazioni: Aggiornamento di un flusso di dati in Power BI e Impostazione della frequenza di
aggiornamento in Power Apps
Motivo:
In un'operazione Get data from a dataflow è possibile usare solo flussi di dati analitici.
Risoluzione:
Se è stato creato un flusso di dati che archivia i dati in Dataverse, un flusso di dati standard non può essere
visualizzato usando — l'operazione Get data from a dataflow (Ottieni dati da — un flusso di dati). Tuttavia, è
possibile usare Get data from Dataverse per accedervi. In alternativa, è possibile creare un flusso di dati
analitici e quindi accedervi usando Ottenere dati da un flusso di dati.
Quando si crea un flusso di dati, a volte viene visualizzato un errore di connessione all'origine dati. Questo
errore può essere causato dal gateway, dalle credenziali o da altri motivi. Questo articolo illustra gli errori e i
problemi di connessione più comuni e la relativa risoluzione.
Motivo:
Quando l'entità nel flusso di dati ottiene dati da un'origine dati locale, è necessario un gateway per la
connessione, ma il gateway non è stato selezionato.
Risoluzione:
Selezionare Selezionare il gateway. Se il gateway non è ancora stato configurato, vedere Installare un
gateway dati locale.
Motivo:
I moduli disabilitati sono correlati a funzioni che richiedono una connessione gateway dati locale per funzionare.
Anche se la funzione riceve dati da una pagina Web, a causa di alcuni requisiti di conformità alla sicurezza, deve
passare attraverso una connessione gateway.
Risoluzione:
Per prima cosa, installare e configurare un gateway locale. Aggiungere quindi un'origine dati Web per l'URL
Web a cui ci si connette.
Dopo aver aggiunto l'origine dati Web, è possibile selezionare il gateway nel flusso di dati in Opzioni Project >
opzioni .
Potrebbe essere richiesto di configurare le credenziali. Dopo aver configurato correttamente il gateway e le
credenziali, i moduli non verranno più disabilitati."
Tasti di scelta rapida in Power Query
07/12/2021 • 2 minutes to read
I tasti di scelta rapida offrono un modo rapido per spostarsi e consentire agli utenti di lavorare in modo più
efficiente. Per gli utenti con mobilità o disabilità di visione, i tasti di scelta rapida possono essere più semplici
rispetto all'uso del touchscreen e sono un'alternativa essenziale all'uso del mouse. La tabella di questo articolo
elenca tutti i collegamenti disponibili in Power Query Online.
Quando si usa Editor di query in Power Query Online, è possibile premere CTRL+? oppure passare al pulsante
Tasti di scelta rapida nella scheda Guida per visualizzare l'elenco dei tasti di scelta rapida.
Editor di query
A Z IO N E TA STO DI SC ELTA RA P IDA
Aggiorna ALT+F5
Anteprima dati
A Z IO N E TA STO DI SC ELTA RA P IDA
Q u a n d o l o st a t o a t t i v o è su l l ' i n t e st a z i o n e d i c o l o n n a
Q u a n d o l o st a t o a t t i v o è su l l a c e l l a
Vista Diagramma
A Z IO N E TA STO DI SC ELTA RA P IDA
Riquadro Query
A Z IO N E TA STO DI SC ELTA RA P IDA
Questo articolo contiene alcuni suggerimenti e consigli per ottenere il massimo dall'esperienza data wrangling
in Power Query.
Filtrare in anticipo
È sempre consigliabile filtrare i dati nelle prime fasi della query o il prima possibile. Alcuni connettori sfruttano i
filtri tramite la funzionalità di folding della query, come descritto in Power Query query folding. È anche
consigliabile filtrare i dati non rilevanti per il caso specifico. In questo modo sarà possibile concentrarsi meglio
sull'attività da eseguire visualizzando solo i dati rilevanti nella sezione di anteprima dei dati.
È possibile usare il menu filtro automatico che visualizza un elenco distinto dei valori trovati nella colonna per
selezionare i valori da mantenere o filtrare. È anche possibile usare la barra di ricerca per trovare i valori nella
colonna.
È anche possibile sfruttare i filtri specifici del tipo, ad esempio In the previous per una colonna date, datetime o
even date timezone.
Questi filtri specifici del tipo consentono di creare un filtro dinamico che recupererà sempre i dati del precedente
x numero di secondi, minuti, ore, giorni, settimane, mesi, trimestri o anni, come illustrato nell'immagine
seguente.
NOTE
Per altre informazioni sul filtro dei dati in base ai valori di una colonna, vedere Filtrare in base ai valori.
Una situazione simile si verifica per i filtri specifici del tipo, perché sono specifici di determinati tipi di dati. Se per
la colonna non è definito il tipo di dati corretto, questi filtri specifici del tipo non saranno disponibili.
È fondamentale usare sempre i tipi di dati corretti per le colonne. Quando si lavora con origini dati strutturate,
ad esempio i database, le informazioni sul tipo di dati verranno derivate dallo schema della tabella presente nel
database. Tuttavia, per le origini dati non strutturate, ad esempio i file TXT e CSV, è importante impostare i tipi di
dati corretti per le colonne provenienti da tale origine dati. Per impostazione predefinita, Power Query
rilevamento automatico dei tipi di dati per le origini dati non strutturate. Per altre informazioni su questa
funzionalità e su come può essere utile, vedere Tipi di dati.
NOTE
Per altre informazioni sull'importanza dei tipi di dati e su come lavorare con essi, vedere Tipi di dati.
Esplorare i dati
Prima di iniziare a preparare i dati e aggiungere nuovi passaggi di trasformazione, è consigliabile abilitare gli
strumenti di profilatura dei dati di Power Query per individuare facilmente le informazioni sui dati.
Questi strumenti di profilatura dei dati consentono di comprendere meglio i dati. Gli strumenti offrono piccole
visualizzazioni che mostrano le informazioni in base alle colonne, ad esempio:
Qualità delle colonne — Fornisce un piccolo grafico a barre e tre indicatori con la rappresentazione del
numero di valori nella colonna che rientrano nelle categorie di valori validi, di errore o vuoti.
Distribuzione delle colonne — Fornisce un set di oggetti visivi sotto i nomi delle colonne che illustrano la
frequenza e la distribuzione dei valori in ognuna delle colonne.
Profilo colonna — Fornisce una visualizzazione più completa della colonna e delle statistiche associate.
È anche possibile interagire con queste funzionalità, che consentono di preparare i dati.
NOTE
Per altre informazioni sugli strumenti di profilatura dei dati, vedere Strumenti di profilatura dati.
Documentare il lavoro
È consigliabile documentare le query rinominando o aggiungendo una descrizione ai passaggi, alle query o ai
gruppi in base alle esigenze.
Anche Power Query crea automaticamente un nome di passaggio nel riquadro dei passaggi applicati, è anche
possibile rinominare i passaggi o aggiungere una descrizione a uno di essi.
NOTE
Per altre informazioni su tutte le funzionalità e i componenti disponibili nel riquadro dei passaggi applicati, vedere Uso
dell'elenco Passaggi applicati.
È possibile suddividere questa query in due nel passaggio della tabella Merge with Prices . In questo modo
è più facile comprendere i passaggi applicati alla query di vendita prima dell'unione. Per eseguire questa
operazione, fare clic con il pulsante destro del mouse sul passaggio della tabella Merge with Prices e
selezionare l'opzione Estrai precedente.
Verrà quindi visualizzata una finestra di dialogo per assegnare un nome alla nuova query. In questo modo la
query verrà suddivisa in due query. Una query avrà tutte le query prima dell'unione. L'altra query avrà un
passaggio iniziale che farà riferimento alla nuova query e al resto dei passaggi della query originale dal
passaggio Merge con la tabella Prices verso il basso.
È anche possibile sfruttare l'uso dei riferimenti alle query nel modo più adatto. È tuttavia una buona idea
mantenere le query a un livello che a prima vista non sembra osare con così tanti passaggi.
NOTE
Per altre informazioni sui riferimenti alle query, vedere Informazioni sul riquadro delle query.
Creare i gruppi
Un ottimo modo per organizzare il lavoro è sfruttare l'uso dei gruppi nel riquadro delle query.
L'unico scopo dei gruppi è quello di mantenere il lavoro organizzato fungendo da cartelle per le query. Se
necessario, è possibile creare gruppi all'interno dei gruppi. Lo spostamento di query tra gruppi è semplice come
il trascinamento della selezione.
Provare a assegnare ai gruppi un nome significativo che sia sensato per l'utente e per il caso specifico.
NOTE
Per altre informazioni su tutte le funzionalità e i componenti disponibili disponibili nel riquadro delle query, vedere
Informazioni sul riquadro delle query.
NOTE
Per altre informazioni sul filtro dei dati in base alla posizione di riga, vedere Filtrare una tabella in base alla
posizione di riga.
Se la query ha un numero dinamico di colonne, ma è necessario selezionare solo colonne specifiche dal
set di dati, è possibile usare la funzionalità Scegli colonne.
NOTE
Per altre informazioni sulla scelta o la rimozione di colonne, vedere Scegliere o rimuovere colonne.
Se la query ha un numero dinamico di colonne ed è necessario eseguire il unpivot solo di un subset delle
colonne, è possibile usare la funzionalità UnPivot solo colonne selezionate.
NOTE
Per altre informazioni sulle opzioni per l'unpivot delle colonne, vedere UnPivot columns.
Se la query include un passaggio che modifica il tipo di dati di una colonna, ma alcune celle generano
errori perché i valori non sono conformi al tipo di dati desiderato, è possibile rimuovere le righe che
hanno restituito valori di errore.
NOTE
Per altre informazioni sull'uso e sulla gestione degli errori, vedere Gestione degli errori.
Usare i parametri
La creazione di query dinamiche e flessibili è una procedura consigliata. I parametri Power Query consentono di
rendere le query più dinamiche e flessibili. Un parametro consente di archiviare e gestire facilmente un valore
che può essere riutilizzato in molti modi diversi. Ma viene usato più comunemente in due scenari:
Argomento passaggio — È possibile usare un parametro come argomento di più trasformazioni
guidate dall'interfaccia utente.
Argomento della funzione personalizzata — È possibile creare una nuova funzione da una query e
fare riferimento ai parametri come argomenti della funzione personalizzata.
I vantaggi principali della creazione e dell'uso dei parametri sono:
Visualizzazione centralizzata di tutti i parametri tramite la finestra Gestisci parametri.
Riutilizzabilità del parametro in più passaggi o query.
Semplifica e semplifica la creazione di funzioni personalizzate.
È anche possibile usare i parametri in alcuni argomenti dei connettori dati. Ad esempio, è possibile creare un
parametro per il nome del server durante la connessione al database SQL Server database. È quindi possibile
usare tale parametro nella finestra di dialogo SQL Server database.
Se si modifica il percorso del server, è necessario aggiornare il parametro per il nome del server e le query
verranno aggiornate.
NOTE
Per altre informazioni sulla creazione e sull'uso dei parametri, vedere Uso dei parametri.
È quindi possibile trasformare la query in una funzione facendo clic con il pulsante destro del mouse sulla query
e scegliendo Crea funzione . Infine, è possibile richiamare la funzione personalizzata in qualsiasi query o valore,
come illustrato nell'immagine seguente.
Dopo alcune altre trasformazioni, è possibile vedere che è stato raggiunto l'output desiderato e si è sfruttata la
logica per una trasformazione di questo tipo da una funzione personalizzata.
NOTE
Per altre informazioni su come creare e usare funzioni personalizzate in Power Query dall'articolo Funzioni personalizzate.
Power Query feedback
07/12/2021 • 2 minutes to read
Questo articolo descrive come ottenere supporto o inviare commenti e suggerimenti per Power Query.
Per Power Quer y connettori, passare a Feedback e supporto per Power Query connettori.
Per Power Quer y documentazione, è possibile inviare commenti e suggerimenti tramite il collegamento
Invia e visualizza commenti e suggerimenti per - Questa pagina nella parte inferiore di ogni articolo.
Questo articolo è destinato ai modeler di dati che sviluppano modelli in Power Pivot o Power BI Desktop.
Descrive qual è la Power Query della query e il motivo per cui è importante nelle progettazioni del modello di
dati. Questo articolo descrive anche le origini dati e le trasformazioni che possono ottenere la ripiegatura delle
query e come determinare che le query Power Query possono essere ripiegate, indipendentemente dal fatto che
siano completamente o parzialmente.
La funzionalità di ripiegamento delle query consente a una query Power Query generare una singola istruzione
di query per recuperare e trasformare i dati di origine. Il Power Query mashup si impegna per ottenere la
folding delle query quando possibile per motivi di efficienza.
La riduzione della query è un argomento importante per la modellazione dei dati per diversi motivi:
Impor tare tabelle del modello: L'aggiornamento dei dati avviene in modo efficiente per le tabelle del
modello di importazione (Power Pivot o Power BI Desktop), in termini di utilizzo delle risorse e durata
dell'aggiornamento.
Tabelle DirectQuer y e Modalità di archiviazione doppia: Ogni tabella directquery e doppia modalità di
archiviazione (solo Power BI) deve essere basata su una query Power Query che può essere ripiegata.
Aggiornamento incrementale: L'aggiornamento incrementale dei Power BI sarà efficiente, in termini di
utilizzo delle risorse e durata dell'aggiornamento. La finestra di configurazione Power BI aggiornamento
incrementale segnalerà infatti un avviso nel caso in cui non sia possibile ottenere la ripiega delle query per
la tabella. Se non è possibile raggiungerlo, l'obiettivo dell'aggiornamento incrementale viene raggiunto. Il
motore Mashup dovrà quindi recuperare tutte le righe di origine e poi applicare i filtri per determinare le
modifiche incrementali.
La riduzione della query può verificarsi per un'intera query di Power Query o per un subset dei passaggi.
Quando non è possibile ottenere la ripiego delle query, parzialmente o completamente, il motore Power Query
mashup deve compensare elaborando le trasformazioni dei dati. Questo processo può comportare il recupero
dei risultati delle query di origine, che per set di dati di grandi dimensioni è molto intensivo e lento.
È consigliabile cercare di raggiungere l'efficienza nelle progettazioni del modello assicurando che la folding delle
query si verifichi ogni volta che è possibile.
Date.Year([OrderDate])
Date.ToText([OrderDate], "yyyy")
Per visualizzare la query ripiegata, selezionare l'opzione Visualizza quer y nativa. Verrà quindi visualizzata la
query nativa che verrà Power Query per l'origine dati.
Se l'opzione Visualizza quer y nativa non è abilitata (disattivata), è evidente che non tutti i passaggi della
query possono essere ripiegati. Tuttavia, potrebbe significare che è comunque possibile ridurre un subset di
passaggi. A partire dall'ultimo passaggio, è possibile controllare ogni passaggio per verificare se l'opzione
Visualizza quer y nativa è abilitata. In tal caso, si è appreso dove, nella sequenza di passaggi, non è più
possibile ottenere la folding delle query.
Passaggi successivi
Per altre informazioni sul ripiegamento delle query e sugli articoli correlati, vedere le risorse seguenti:
Indicazioni sulle procedure consigliate per la visualizzazione delle query
Usare modelli compositi in Power BI Desktop
Aggiornamento incrementale in Power BI Premium
Uso di Table.View per implementare la riduzione della query
Come funziona la corrispondenza fuzzy in Power
Query?
07/12/2021 • 3 minutes to read
Power Query funzionalità quali l'unione fuzzy,i valori del clustere il raggruppamento fuzzy usano gli stessi
meccanismi per funzionare come corrispondenza fuzzy.
Questo articolo illustra molti scenari che illustrano come sfruttare le opzioni disponibili per la corrispondenza
fuzzy con l'obiettivo di rendere "fuzzy" chiaro.
Questo perché la parola nella seconda stringa è solo una piccola parte dell'intera stringa di testo che Apples
restituisce un punteggio di somiglianza inferiore.
Esaminare il set di dati seguente costituito dalle risposte di un sondaggio con una sola domanda "Qual è il tuo
frutto preferito?".
F RUT TA
Mirtilli
Fragole
Strawberries = <3
Mele
'sples
4ppl3s
Banane
Bonaparte
Il sondaggio ha fornito una singola casella di testo per immettere il valore e senza convalida.
A questo punto si ha l'attività di clustering dei valori. A tale scopo, caricare la tabella precedente di frutta in
Power Query, selezionare la colonna e quindi selezionare l'opzione che legge Valori cluster nel menu Aggiungi
colonna nella barra multifunzione.
Verrà visualizzata la finestra di dialogo Valori cluster in cui è possibile specificare il nome della nuova
colonna. Assegnare a questa nuova colonna il nome Cluster e selezionare OK.
Per impostazione predefinita, Power Query una soglia di somiglianza pari a 0,8 (o 80%) e il risultato
dell'operazione precedente restituisce la tabella seguente con una nuova colonna Cluster:
Anche se il clustering è stato eseguito, non vengono restituiti i risultati previsti per tutte le righe. La riga numero
due (2) ha ancora il valore , ma deve essere raggruppata in cluster in e accade qualcosa di simile alle stringhe di
testo Blue berries are simply the best Blueberries , e Strawberries = <3 fav fruit is bananas
My favorite fruit, by far, is Apples. I simply love them! .
Si vuole determinare la causa di questo clustering. A tale scopo, è possibile fare doppio clic sul passaggio Valori
cluster per tornare alla finestra Valori cluster. All'interno di questa finestra espandere il testo che legge le
opzioni del cluster Fuzzy e abilitare l'opzione Mostra punteggi di somiglianza come illustrato nell'immagine
seguente e fare clic sul pulsante OK:
Se si abilita l'opzione Mostra punteggi di somiglianza, nella tabella verrà visualizzata una nuova colonna che
mostra esattamente il punteggio di somiglianza tra il cluster definito e il valore originale.
A un'analisi più a più a Power Query possibile trovare altri valori entro la soglia di somiglianza per le stringhe di
testo Blue berries are simply the best Strawberries = <3 , , e fav fruit is bananas
My favorite fruit, by far, is Apples. I simply love them! .
È possibile tornare alla finestra di dialogo Valori cluster ancora una volta facendo doppio clic sul passaggio
Valori cluster e modificando la soglia di somiglianza da 0,8 a 0,6, come illustrato nell'immagine seguente:
Questa modifica consente di avvicinarsi al risultato che si sta cercando, ad eccezione della stringa di testo
My favorite fruit, by far, is Apples. I simply love them! . Questo perché modificando il valore della soglia di
somiglianza da 0,8 a 0,6 Power Query è ora possibile usare i valori con un punteggio di somiglianza che iniziano
da 0,6 fino a 1.
NOTE
Power Query usa sempre il valore più vicino alla soglia per definire i cluster. La soglia definisce il limite inferiore del
punteggio di somiglianza accettabile per creare assegnare il valore a un cluster.
È possibile riprovare modificando il punteggio di somiglianza da 0,6 a un numero inferiore fino a ottenere i
risultati previsti. In questo caso, modificare il punteggio di somiglianza su 0,5, che restituisce il risultato esatto
previsto con la stringa di testo ora assegnata al cluster, come illustrato nell'immagine
My favorite fruit, by far, is Apples. I simply love them! Apples successiva:
NOTE
Attualmente solo la funzionalità Valori cluster in Power Query Online fornirà una nuova colonna con il punteggio di
somiglianza.
Dietro le quinte del firewall per la privacy dei dati
07/12/2021 • 14 minutes to read
Se si è usato Power Query per un periodo di tempo, è probabile che sia stato riscontrato. In questo caso, quando
improvvisamente si verifica un errore che non può essere corretto da nessuna quantità di ricerca online,
modifica delle query o bashing della tastiera. Un errore simile al seguente:
Formula.Firewall: Query 'Query1' (step 'Source') references other queries or steps, so it may not directly
access a data source. Please rebuild this data combination.
O forse:
Formula.Firewall: Query 'Query1' (step 'Source') is accessing data sources that have privacy levels which
cannot be used together. Please rebuild this data combination.
Questi errori sono il risultato del Firewall sulla privacy dei dati di Power Query (noto anche come Firewall), che a
volte può sembrare che esista esclusivamente per frustrare gli analisti dei dati in tutto il Formula.Firewall
mondo. Che ci si creda o meno, tuttavia, il firewall ha uno scopo importante. In questo articolo verrà illustrato
come funziona meglio. Grazie a una maggiore comprensione, si spera di poter diagnosticare e correggere
meglio gli errori del firewall in futuro.
Che cos'è?
Lo scopo del Firewall sulla privacy dei dati è semplice: esiste per impedire Power Query perdita involontaria di
dati tra le origini.
Perché è necessario? Voglio dire, si potrebbe sicuramente creare una M che passerebbe un SQL valore a un feed
OData. Ma si tratta di una perdita intenzionale di dati. L'autore del mashup saprebbe (o almeno dovrebbe)
eseguire questa operazione. Perché quindi la necessità di protezione da perdite di dati non intenzionali?
La risposta? Pieghevole.
Pieghevole?
La folding è un termine che si riferisce alla conversione di espressioni in M (ad esempio filtri, ridenominazioni,
join e così via) in operazioni su un'origine dati non elaborata (ad esempio SQL, OData e così via). Una parte
notevole della potenza di Power Query deriva dal fatto che PQ può convertire le operazioni eseguite da un
utente tramite la relativa interfaccia utente in linguaggi di origine dati SQL complessi o in altri linguaggi di
origine dati back-end, senza che l'utente abbia bisogno di conoscere queste lingue. Gli utenti ottengono il
vantaggio in termini di prestazioni delle operazioni sulle origini dati native, con la facilità d'uso di un'interfaccia
utente in cui tutte le origini dati possono essere trasformate usando un set comune di comandi.
Come parte del folding, PQ può talvolta determinare che il modo più efficiente per eseguire un determinato
mashup è quello di prendere dati da un'origine e passarlo a un'altra. Ad esempio, se si unisce un file CSV di
piccole dimensioni a una tabella SQL di grandi dimensioni, probabilmente non si vuole che PQ levi il file CSV,
levi l'intera tabella SQL e quindi li uni insieme nel computer locale. È probabile che PQ inline i dati CSV in
un'istruzione SQL e chiedere al database SQL di eseguire il join.
Questo è il modo in cui può verificarsi una perdita di dati non intenzionale.
Imagine se si univano dati SQL che includevano i numeri di previdenza sociale dei dipendenti con i risultati di un
feed OData esterno e improvvisamente si è scoperto che i numeri di previdenza sociale di SQL venivano inviati
al servizio OData. Brutte notizie, giusto?
Questo è il tipo di scenario che il firewall ha lo scopo di evitare.
Come funziona?
Il firewall esiste per impedire l'invio involontario di dati provenienti da un'origine a un'altra origine. Abbastanza
semplice.
In che modo viene quindi eseguita questa missione?
A tale scopo, suddividere le query M in un elemento denominato partizioni e quindi rispettare la regola
seguente:
Una partizione può accedere a origini dati compatibili o fare riferimento ad altre partizioni, ma non a
entrambe.
Semplice... ma confondere. Che cos'è una partizione? Cosa rende due origini dati "compatibili"? E perché il
firewall deve occuparsi se una partizione vuole accedere a un'origine dati e fare riferimento a una partizione?
Si esamini la regola precedente un elemento alla volta.
Che cos'è una partizione?
Al livello più semplice, una partizione è solo una raccolta di uno o più passaggi di query. La partizione più
granulare possibile (almeno nell'implementazione corrente) è un singolo passaggio. Le partizioni più grandi
possono talvolta includere più query. Altre informazioni più avanti.
Se non si ha familiarità con i passaggi, è possibile visualizzarli a destra della finestra editor di Power Query dopo
aver selezionato una query nel riquadro Passaggi applicati. I passaggi tengono traccia di tutto ciò che è stato
fatto per trasformare i dati nella forma finale.
Partizioni che fanno riferimento ad altre partizioni
Quando una query viene valutata con firewall attivato, il firewall divide la query e tutte le relative dipendenze in
partizioni, ovvero gruppi di passaggi. Ogni volta che una partizione fa riferimento a un elemento in un'altra
partizione, il firewall sostituisce il riferimento con una chiamata a una funzione speciale denominata
Value.Firewall . In altre parole, il firewall non consente alle partizioni di accedere a vicenda in modo casuale.
Tutti i riferimenti vengono modificati per passare attraverso il firewall. Si pensi al firewall come a un gatekeeper.
Una partizione che fa riferimento a un'altra partizione deve ottenere l'autorizzazione del firewall a tale scopo e il
firewall controlla se i dati a cui si fa riferimento saranno consentiti o meno nella partizione.
Tutto questo può sembrare piuttosto astratto, quindi si esamini un esempio.
Si supponga di avere una query denominata Employees, che esegue il pull di alcuni dati da un database SQL
database. Si supponga di avere anche un'altra query (EmployeesReference), che fa semplicemente riferimento a
Employees.
Queste query verranno suddivise in due partizioni: una per la query Employees e una per la query
EmployeesReference (che farà riferimento alla partizione Employees). Quando vengono valutate con il firewall
attivato, queste query verranno riscritte in questo modo:
shared Employees = let
Source = Sql.Database(…),
EmployeesTable = …
in
EmployeesTable;
Si noti che il semplice riferimento alla query Employees è stato sostituito da una chiamata a , a cui viene fornito
il Value.Firewall nome completo della query Employees.
Quando employeesReference viene valutato, la chiamata a viene intercettata dal firewall, che ora ha la possibilità
di controllare se (e come) i dati richiesti passano alla Value.Firewall("Section1/Employees") partizione
EmployeesReference. Può eseguire un numero qualsiasi di operazioni: negare la richiesta, eseguire il buffer dei
dati richiesti (impedendo che si verifichi un'ulteriore ripiegamento nell'origine dati originale) e così via.
Questo è il modo in cui il firewall mantiene il controllo sul flusso dei dati tra le partizioni.
Partizioni che accedono direttamente alle origini dati
Si supponiamo di definire una query Query1 con un solo passaggio (si noti che questa query a passaggio
singolo corrisponderà a una partizione del firewall) e che questo singolo passaggio accede a due origini dati:
una tabella di database SQL e un file CSV. In che modo il firewall si occupa di questo problema, poiché non
esiste alcun riferimento alla partizione e quindi nessuna chiamata a Value.Firewall per intercettarlo?
Esaminare la regola indicata in precedenza:
Una partizione può accedere a origini dati compatibili o fare riferimento ad altre partizioni, ma non a
entrambe.
Per consentire l'esecuzione della query a partizione singola ma a due origini dati, le due origini dati devono
essere "compatibili". In altre parole, deve essere possibile condividere i dati tra di essi. In termini di interfaccia
Power Query, ciò significa che i livelli di privacy delle origini dati SQL e CSV devono essere entrambi pubblici o
entrambi essere aziendali. Se entrambi sono contrassegnati come Privati o se uno è contrassegnato come
Pubblico e uno è contrassegnato come Aziendale o è contrassegnato con un'altra combinazione di livelli di
privacy, non è sicuro che entrambi siano valutati nella stessa partizione. In questo modo si verificherebbe una
perdita di dati non sicura (a causa della ripiegamento) e il firewall non avrebbe alcun modo per impedirlo.
Cosa accade se si tenta di accedere a origini dati incompatibili nella stessa partizione?
Formula.Firewall: Query 'Query1' (step 'Source') is accessing data sources that have privacy levels which
cannot be used together. Please rebuild this data combination.
Si spera ora di comprendere meglio uno dei messaggi di errore elencati all'inizio di questo articolo.
Si noti che questo requisito di compatibilità si applica solo all'interno di una determinata partizione. Se una
partizione fa riferimento ad altre partizioni, le origini dati delle partizioni a cui si fa riferimento non devono
essere compatibili tra loro. Ciò è dovuto al fatto che il firewall può bufferare i dati, impedendo qualsiasi ulteriore
ripiegamento sull'origine dati originale. I dati verranno caricati in memoria e trattati come se provenivano da
nessuna parte.
Perché non eseguire entrambe le operazioni?
Si supponiamo di definire una query con un solo passaggio (che corrisponderà di nuovo a una partizione) che
accede ad altre due query, ovvero altre due partizioni. Cosa succede se si vuole, nello stesso passaggio, anche
accedere direttamente a un database SQL database? Perché una partizione non può fare riferimento ad altre
partizioni e accedere direttamente a origini dati compatibili?
Come si è visto in precedenza, quando una partizione fa riferimento a un'altra partizione, il firewall funge da
gatekeeper per tutti i dati che fluivano nella partizione. A tale scopo, deve essere in grado di controllare i dati
consentiti. Se sono presenti origini dati a cui si accede all'interno della partizione, nonché dati che fluiranno da
altre partizioni, perde la possibilità di essere il gatekeeper, poiché i dati che fluivano in potrebbero essere persi in
una delle origini dati a cui si accede internamente senza che ne sia a conoscenza. Il firewall impedisce quindi a
una partizione che accede ad altre partizioni di accedere direttamente alle origini dati.
Cosa accade quindi se una partizione prova a fare riferimento ad altre partizioni e ad accedere direttamente alle
origini dati?
Formula.Firewall: Query 'Query1' (step 'Source') references other queries or steps, so it may not directly
access a data source. Please rebuild this data combination.
Si spera ora di comprendere meglio l'altro messaggio di errore elencato all'inizio di questo articolo.
Partizioni approfondite
Come si può immaginare dalle informazioni precedenti, il modo in cui le query vengono partizionate è
estremamente importante. Se sono presenti alcuni passaggi che fanno riferimento ad altre query e altri
passaggi che accedono alle origini dati, è ora possibile riconoscere che il disegno dei limiti di partizione in
determinate posizioni causerà errori del firewall, mentre il disegno in altre posizioni consentirà l'esecuzione
della query.
In che modo le query vengono partizionate esattamente?
Questa sezione è probabilmente la più importante per comprendere il motivo per cui vengono visualizzati gli
errori del firewall, nonché per capire come risolverli (laddove possibile).
Ecco un riepilogo di alto livello della logica di partizionamento.
Partizionamento iniziale
Crea una partizione per ogni passaggio in ogni query
Fase statica
Questa fase non dipende dai risultati della valutazione. Si basa invece sulla struttura delle query.
Rimozione dei parametri
Taglia le partizioni parameter-esque, cio? qualsiasi partizione che:
Non fa riferimento ad altre partizioni
Non contiene chiamate di funzione
Non è ciclico(ovvero non fa riferimento a se stesso)
Si noti che la "rimozione" di una partizione la include in modo efficace in qualsiasi altra
partizione che la fa riferimento.
Il trimming delle partizioni dei parametri consente il funzionamento dei riferimenti ai parametri
usati nelle chiamate di funzione dell'origine dati (ad esempio , ) anziché generare errori di tipo
"la partizione non può fare riferimento a origini dati e altri Web.Contents(myUrl) passaggi".
Raggruppamento (statico)
Le partizioni vengono unite, mantenendo la separazione tra:
Partizioni in query diverse
Partizioni che fanno riferimento ad altre partizioni rispetto a quelle che non lo fanno
Fase dinamica
Questa fase dipende dai risultati della valutazione, incluse le informazioni sulle origini dati accessibili
da varie partizioni.
Taglio
Taglia le partizioni che soddisfano tutti i requisiti seguenti:
Non accede ad alcuna origine dati
Non fa riferimento ad alcuna partizione che accede alle origini dati
Non è ciclico
Raggruppamento (dinamico)
Ora che le partizioni non necessarie sono state rimosse, provare a creare partizioni di origine il
più grandi possibili.
Unire tutte le partizioni con le partizioni di input se ognuno dei relativi input:
Fa parte della stessa query
Non fa riferimento ad altre partizioni
Fa riferimento solo alla partizione corrente
Non è il risultato (ovvero il passaggio finale) di una query
Non è ciclico
in
#"Changed Type";
shared Employees = let
Source = Sql.Databases(DbServer),
AdventureWorks = Source{[Name="AdventureWorks"]}[Data],
HumanResources_Employee = AdventureWorks{[Schema="HumanResources",Item="Employee"]}[Data],
in
#"Expanded Contacts";
Partizionare
Ingrandiamo un po' e includiamo i passaggi nell'immagine e iniziamo a scorrere la logica di partizionamento.
Ecco un diagramma delle tre query, che mostra le partizioni del firewall iniziali in verde. Si noti che ogni
passaggio inizia nella propria partizione.
Successivamente, si tagliano le partizioni dei parametri. Di conseguenza, DbServer viene incluso in modo
implicito nella partizione di origine.
A questo punto si esegue il raggruppamento statico. In questo modo viene mantenuta la separazione tra le
partizioni in query separate (si noti ad esempio che gli ultimi due passaggi di Employees non vengono
raggruppati con i passaggi di Contacts), nonché tra le partizioni che fanno riferimento ad altre partizioni (ad
esempio, gli ultimi due passaggi di Employees) e quelle che non lo fanno (ad esempio, i primi tre passaggi di
Employees).
A questo punto si entra nella fase dinamica. In questa fase vengono valutate le partizioni statiche precedenti. Le
partizioni che non accedono ad alcuna origine dati vengono tagliate. Le partizioni vengono quindi raggruppate
per creare partizioni di origine il più grandi possibili. In questo scenario di esempio, tuttavia, tutte le partizioni
rimanenti accedono alle origini dati e non è possibile eseguire altri raggruppamenti. Le partizioni nell'esempio
non cambieranno pertanto durante questa fase.
Finiamo di fingere
A scopo illustrativo, tuttavia, si esamini cosa accadrebbe se la query Contacts, anziché proveniente da un file di
testo, fosse hard-coded in M (ad esempio tramite la finestra di dialogo Immetti dati).
In questo caso, la query Contacts non accede ad alcuna origine dati. Di conseguenza, verrebbe tagliato durante
la prima parte della fase dinamica.
Con la partizione Contacts rimossa, gli ultimi due passaggi di Employees non fareranno più riferimento ad
alcuna partizione tranne quella contenente i primi tre passaggi di Employees. Di conseguenza, le due partizioni
verrebbero raggruppate.
La partizione risultante sarà simile alla seguente.
Esempio: Passaggio di dati da un'origine dati a un'altra
Ok, una spiegazione astratta sufficiente. Si esamini uno scenario comune in cui è probabile che si verifichi un
errore del firewall e i passaggi per risolverlo.
Imagine cercare il nome di una società dal servizio Northwind OData e quindi usare il nome della società per
eseguire una ricerca Bing ricerca.
Creare prima di tutto una query Company per recuperare il nome della società.
let
Source = OData.Feed("https://services.odata.org/V4/Northwind/Northwind.svc/", null,
[Implementation="2.0"]),
Customers_table = Source{[Name="Customers",Signature="table"]}[Data],
CHOPS = Customers_table{[CustomerID="CHOPS"]}[CompanyName]
in
CHOPS
Successivamente, si crea una query di ricerca che fa riferimento a Company e la passa a Bing.
let
Source = Text.FromBinary(Web.Contents("https://www.bing.com/search?q=" & Company))
in
Source
A questo punto si hanno problemi. La valutazione della ricerca genera un errore del firewall.
Formula.Firewall: Query 'Search' (step 'Source') references other queries or steps, so it may not directly
access a data source. Please rebuild this data combination.
Questo perché il passaggio Origine della ricerca fa riferimento a un'origine dati (bing.com) e fa anche
riferimento a un'altra query/partizione (Company ). Viola la regola indicata in precedenza ("una partizione può
accedere a origini dati compatibili o fare riferimento ad altre partizioni, ma non a entrambe).
Cosa fare? Un'opzione è disabilitare completamente il firewall (tramite l'opzione Privacy etichettata Ignora i
livelli di privacy e potenzialmente migliorare le prestazioni ). Ma cosa succede se si vuole lasciare il
firewall abilitato?
Per risolvere l'errore senza disabilitare il firewall, è possibile combinare Company e Search in una singola query,
come la seguente:
let
Source = OData.Feed("https://services.odata.org/V4/Northwind/Northwind.svc/", null,
[Implementation="2.0"]),
Customers_table = Source{[Name="Customers",Signature="table"]}[Data],
CHOPS = Customers_table{[CustomerID="CHOPS"]}[CompanyName],
Search = Text.FromBinary(Web.Contents("https://www.bing.com/search?q=" & CHOPS))
in
Search
Tutto è ora in corso all'interno di una singola partizione. Supponendo che i livelli di privacy per le due origini
dati siano compatibili, il firewall dovrebbe ora essere soddisfatto e non si otterrà più un errore.
Diagnostica query consente di comprendere meglio le Power Query in fase di creazione e di aggiornamento in
Power BI Desktop. Anche se questa funzionalità verrà espansa in futuro, inclusa la possibilità di usarla durante
gli aggiornamenti completi, in questo momento è possibile usarla per comprendere il tipo di query che si sta
emettendo, i rallentamenti che potrebbero verificarsi durante la creazione dell'aggiornamento e il tipo di eventi
in background in corso.
Per usare Diagnostica query, passare alla scheda Strumenti nella barra editor di Power Query barra
multifunzione.
Per impostazione predefinita, Diagnostica query potrebbe richiedere diritti amministrativi per l'esecuzione (a
seconda dei criteri IT). Se non si riesce a eseguire Diagnostica query, aprire la pagina delle opzioni Power BI e
nella scheda Diagnostica selezionare Abilita in Editor di quer y (non richiede l'esecuzione come
amministratore). Questa selezione vincola l'utente dalla possibilità di tracciare la diagnostica quando si esegue
un aggiornamento completo in Power BI anziché nell'editor di Power Query, ma consente comunque di usarla
durante l'anteprima, la creazione e così via.
Ogni volta che si avvia la diagnostica, Power Query inizia a tracciare le valutazioni causate. La valutazione che la
maggior parte degli utenti pensa è quando si preme aggiorna o quando si recuperano i dati per la prima volta,
ma esistono molte azioni che possono causare valutazioni, a seconda del connettore. Ad esempio, con il
connettore SQL, quando si recupera un elenco di valori da filtrare, viene anche avviata una valutazione, ma non
viene associata a una query utente, rappresentata nella — diagnostica. Altre query generate dal sistema
possono includere lo strumento di navigazione o l'esperienza di ottenere dati.
Quando si preme Diagnose Step (Diagnostica passaggio), Power Query esegue una valutazione speciale solo
del passaggio che si sta esaminando. Mostra quindi la diagnostica per tale passaggio, senza visualizzare la
diagnostica per gli altri passaggi della query. In questo modo è molto più semplice ottenere una visione più
stretta di un problema.
È importante che, se si registrano tutte le tracce da Avvia diagnostica, premere Arresta diagnostica. L'arresto
della diagnostica consente al motore di raccogliere le tracce registrate e analizzarle nell'output corretto. Senza
questo passaggio si perderanno le tracce.
Tipi di diagnostica
Attualmente sono disponibili tre tipi di diagnostica, uno dei quali con due livelli di dettaglio.
Il primo di questi dati di diagnostica è la diagnostica primaria, che ha una visualizzazione dettagliata e una
visualizzazione riepilogata. La visualizzazione riepilogata ha lo scopo di offrire informazioni immediate sulla
posizione in cui viene impiegato il tempo nella query. La visualizzazione dettagliata è molto più approfondita,
riga per riga ed è, in generale, necessaria solo per una diagnosi grave da parte degli utenti esperti.
Per questa vista, alcune funzionalità, ad esempio la colonna Query origine dati, sono attualmente disponibili solo
per determinati connettori. Stiamo lavorando per estendere l'ampiezza di questa copertura in futuro.
Le partizioni per la privacy dei dati offrono una migliore comprensione delle partizioni logiche usate per la
privacy dei dati.
NOTE
Power Query possibile eseguire valutazioni che potrebbero non essere state attivate direttamente. Alcune di queste
valutazioni vengono eseguite per recuperare i metadati in modo da ottimizzare al meglio le query o per offrire
un'esperienza utente migliore, ad esempio il recupero dell'elenco di valori distinti all'interno di una colonna visualizzata
nell'esperienza Filtro righe. Altri potrebbero essere correlati al modo in cui un connettore gestisce le valutazioni parallele.
Allo stesso tempo, se nella diagnostica delle query vengono ripetute le query che non si ritiene più sensato, è possibile
contattare i normali canali di supporto per inviare commenti e suggerimenti su come migliorare il — prodotto.
Schema di diagnostica
Id
Quando si analizzano i risultati di una registrazione, è importante filtrare la sessione di registrazione in base
all'ID, in modo che le colonne come Exclusive Duration % (% durata esclusiva) hanno senso.
Id è un identificatore composto. È costituito da due numeri uno — prima del punto e uno dopo. Il primo numero
è lo stesso per tutte le valutazioni risultanti da una singola azione dell'utente. In altre parole, se si preme
aggiorna due volte, saranno presenti due numeri diversi che portano il punto, uno per ogni attività utente
eseguita. Questa numerazione è sequenziale per una determinata registrazione diagnostica.
Il secondo numero rappresenta una valutazione da parte del motore. Questo numero è sequenziale per la
durata del processo in cui la valutazione viene accodata. Se si eseguono più sessioni di registrazione diagnostica,
si può vedere che questo numero continua ad aumentare nelle diverse sessioni.
Per riepilogare, se si avvia la registrazione, si preme una sola volta la valutazione e si arresta la registrazione,
nella diagnostica sarà presente un certo numero di ID. Ma poiché è stata eseguita una sola azione, saranno tutte
1.1, 1.2, 1.3 e così via.
La combinazione di activityId e evaluationId, separati dal punto, fornisce un identificatore univoco per una
valutazione di una singola sessione di registrazione.
Query
Nome della query nel riquadro sinistro dell'editor Power Query dati.
Passaggio
Nome del passaggio nel riquadro di destra dell'editor di Power Query. Elementi come gli elenchi a discesa dei
filtri in genere si associano al passaggio in base al cui filtro si sta filtrando, anche se non si aggiorna il passaggio.
Category
Categoria dell'operazione.
Tipo di origine dati
Ciò indica il tipo di origine dati a cui si sta accedendo, ad esempio SQL o Oracle.
Operazione
Operazione effettiva eseguita. Questa operazione può includere il lavoro dell'analizzatore, l'apertura di
connessioni, l'invio di query all'origine dati e molto altro ancora.
Ora di Inizio
Ora di inizio dell'operazione.
Ora fine
Ora di fine dell'operazione.
Durata esclusiva (%)
La colonna Durata esclusiva di un evento è la quantità di tempo in cui l'evento è stato attivo. Questo valore è in
contrasto con il valore "duration" che risulta dalla sottrazione dei valori nella colonna Ora di inizio e ora di fine di
un evento. Questo valore di "durata" rappresenta il tempo totale trascorso tra l'inizio e la fine di un evento, che
può includere gli orari in cui l'evento era sospeso o inattivo e un altro evento utilizzava risorse.
La % di durata esclusiva aggiunge circa il 100% all'interno di una determinata valutazione, come rappresentato
dalla colonna Id. Ad esempio, se si filtrano le righe con ID 1.x, le percentuali di Durata esclusiva verranno
sommate a circa il 100%. Ciò non si verifica se si sommano i valori exclusive duration % di tutte le righe in una
determinata tabella di diagnostica.
Durata esclusiva
Tempo assoluto, anziché %, della durata esclusiva. La durata totale (ovvero durata esclusiva + tempo in cui
l'evento era inattivo) di una valutazione può essere calcolata in uno dei due modi seguenti:
Trovare l'operazione denominata "Evaluation". La differenza tra l'ora – di inizio dell'ora di fine determina
la durata totale di un evento.
Sottrae l'ora di inizio minima di tutte le operazioni in un evento dall'ora di fine massima. Si noti che nei
casi in cui le informazioni raccolte per un evento non tengano conto della durata totale, viene generata
un'operazione denominata "Gap di traccia" per tenere conto di questo intervallo di tempo.
Risorsa
Risorsa a cui si accede per i dati. Il formato esatto di questa risorsa dipende dall'origine dati.
Query origine dati
Power Query esegue un'attività denominata Folding, ovvero l'azione di eseguire il maggior numero possibile di
parti della query sull'origine dati back-end. In modalità Direct Query (over Power Query), dove abilitata,
verranno eseguite solo le trasformazioni che vengono rilevate. In modalità di importazione, le trasformazioni
che non possono essere rilevate verranno invece eseguite in locale.
La colonna Query origine dati consente di visualizzare la query o la richiesta/risposta HTTP inviata sull'origine
dati back-end. Quando si crea la query nell'editor, verranno generate molte query sull'origine dati. Alcune di
queste sono l'effettiva query finale dell'origine dati per il rendering dell'anteprima, mentre altre possono essere
per la profilatura dei dati, gli elenchi a discesa dei filtri, le informazioni sui join, il recupero di metadati per gli
schemi e qualsiasi altro numero di altre query di piccole dimensioni.
In generale, non è necessario preoccuparsi del numero di query sull'origine dati generate, a meno che non vi
siano motivi specifici per cui preoccuparsi. È invece necessario assicurarsi che venga recuperato il contenuto
appropriato. Questa colonna può essere utile anche per determinare se la Power Query è stata completamente
coniata.
Informazioni aggiuntive
I connettori recuperano molte informazioni. La maggior parte di questi elementi è invasa e non è adatta a una
gerarchia di colonne standard. Queste informazioni vengono inserite in un record nella colonna informazioni
aggiuntive. Anche le informazioni registrate dai connettori personalizzati vengono visualizzate qui.
Row Count
Numero di righe restituite da una query sull'origine dati. Non abilitato in tutti i connettori.
Lunghezza del contenuto
Lunghezza del contenuto restituita dalle richieste HTTP, come comunemente definito. Questa opzione non è
abilitata in tutti i connettori e non sarà accurata per i connettori che recuperano le richieste in blocchi.
Query utente
Valore booleano che indica se si tratta di una query eseguita dall'utente e presente nel riquadro a sinistra o se è
stata generata da un'altra azione dell'utente. Altre azioni dell'utente possono includere elementi come la
selezione del filtro o l'uso dello strumento di navigazione nell'esperienza di ottenere i dati.
Percorso
Path rappresenta la route relativa dell'operazione quando viene visualizzata come parte di un albero di intervalli
per tutte le operazioni all'interno di una singola valutazione. Nella parte superiore (radice) dell'albero è presente
una singola operazione denominata Evaluation con percorso "0". L'ora di inizio di questa valutazione
corrisponde all'inizio di questa valutazione nel suo complesso. L'ora di fine di questa valutazione indica quando
è terminata l'intera valutazione. Questa operazione di primo livello ha una durata esclusiva di 0, perché l'unico
scopo è fungere da radice dell'albero.
Altre operazioni si dirama dalla radice. Ad esempio, un'operazione potrebbe avere "0/1/5" come percorso.
Questo percorso viene riconosciuto come:
0: radice dell'albero
1: padre dell'operazione corrente
5: indice dell'operazione corrente
L'operazione "0/1/5" potrebbe avere un nodo figlio, nel qual caso il percorso ha il formato "0/1/5/8", con 8 che
rappresenta l'indice dell'elemento figlio.
ID gruppo
La combinazione di due o più operazioni non si verificherà se causa una perdita di dettagli. Il raggruppamento è
progettato per approssimare i "comandi" eseguiti durante la valutazione. Nella visualizzazione dettagliata più
operazioni condividono un ID gruppo, corrispondente ai gruppi aggregati nella visualizzazione Riepilogo.
Come per la maggior parte delle colonne, l'ID gruppo è rilevante solo all'interno di una valutazione specifica,
come filtrato dalla colonna Id.
Altre letture
Come registrare la diagnostica in vari casi d'uso
Altre informazioni sulla lettura e la visualizzazione delle tracce registrate
Come comprendere quali operazioni di query si stanno rilevando usando Diagnostica query
Registrazione della diagnostica delle query in Power
BI
07/12/2021 • 6 minutes to read
Quando si crea in Power Query, il flusso di lavoro di base è la connessione a un'origine dati, l'applicazione di
alcune trasformazioni, l'aggiornamento potenziale dei dati nell'editor Power Query e il caricamento nel modello
Power BI. Una volta nel modello Power BI, è possibile aggiornarlo di volta in volta in Power BI Desktop (se si usa
Desktop per visualizzare l'analisi), a parte eventuali aggiornamenti nel servizio.
Anche se è possibile ottenere un risultato simile alla fine di un flusso di lavoro di creazione, aggiornamento
nell'editor o aggiornamento in Power BI appropriato, valutazioni molto diverse vengono eseguite dal software
per le diverse esperienze utente fornite. È importante sapere cosa aspettarsi quando si esegue la diagnostica
delle query in questi diversi flussi di lavoro, in modo da non sorprendersi dei dati di diagnostica molto diversi.
Per avviare Diagnostica query, passare alla scheda "Strumenti" nella barra editor di Power Query barra
multifunzione. Qui vengono presentate alcune opzioni diverse.
Sono disponibili due opzioni principali, 'Diagnose Step' e 'Start Diagnostics' (abbinate a 'Stop Diagnostics'). Il
primo consente di ottenere informazioni su una query fino a un passaggio selezionato ed è particolarmente
utile per comprendere quali operazioni vengono eseguite in locale o in remoto in una query. Quest'ultimo offre
informazioni più dettagliate su un'ampia gamma di altri casi, illustrati di seguito.
Avviare/arrestare la diagnostica
"Avvia diagnostica" e "Arresta diagnostica" sono più applicabili rispetto a "Passaggio di diagnosi", ma offrono
anche molte più informazioni che è necessario ordinare. Ad esempio, l'avvio della diagnostica, l'aggiornamento
di un'anteprima e quindi l'arresto offrono informazioni equivalenti all'esecuzione di Diagnose Step in ogni
passaggio (a causa del funzionamento di Power Query nell'editor per aggiornare ogni passaggio in modo
indipendente).
Per avviare la registrazione, fare clic su "Avvia diagnostica", eseguire le valutazioni desiderate (creazione,
aggiornamento in anteprima, aggiornamento completo) e quindi fare clic su "Arresta diagnostica".
Creazione
La differenza principale del flusso di lavoro di creazione è che genererà in genere più valutazioni singole rispetto
ad altri flussi di lavoro. Come illustrato nell'articolo primario Diagnostica query, questi sono il risultato del
popolamento di varie interfacce utente, ad esempio gli elenchi a discesa dello strumento di navigazione o del
filtro.
Verrà illustrato un esempio. In questo esempio viene utilizzato il connettore OData, ma durante la revisione
dell'output verrà esaminata anche la versione SQL dello stesso database. Per entrambe le origini dati, ci si
connetterà all'origine dati tramite "Nuova origine", "Origini recenti" o "Ottieni dati". Per la SQL è necessario
inserire le credenziali per il server, ma per l'endpoint OData pubblico è possibile inserire l'endpoint collegato in
precedenza.
Dopo aver scelto l'autenticazione, selezionare la tabella "Customers" dal servizio OData.
Verrà mostrata la tabella Customers nell'interfaccia Power Query. Si noti che si vuole conoscere il numero di
rappresentanti di vendita presenti in paesi diversi. In primo luogo, fare clic con il pulsante destro del mouse su
"Sales Representative" nella colonna "Contact Title" (Titolo contatto), posizionare il puntatore del mouse su "Filtri
di testo" e selezionare "Uguale a".
A questo punto, selezionare "Raggruppa per" dalla barra multifunzione ed eseguire un raggruppamento per
"Paese", con l'aggregazione "Count".
Questa operazione dovrebbe presentare gli stessi dati visualizzati di seguito.
Tornare infine alla scheda "Strumenti" della barra multifunzione e fare clic su "Arresta diagnostica". La traccia
verrà interrotta e il file di diagnostica verrà compilato automaticamente e sul lato sinistro verranno visualizzate
le tabelle di riepilogo e dettagliate.
Se si traccia un'intera sessione di creazione, in genere si prevede di vedere qualcosa di simile a una valutazione
della query di origine, quindi le valutazioni correlate allo strumento di spostamento pertinente, quindi almeno
una query emessa per ogni passaggio applicato (con potenzialmente più a seconda delle azioni UX esatte
eseguite). In alcuni connettori si verificano valutazioni parallele per motivi di prestazioni che producono set di
dati molto simili.
Aggiorna anteprima
Al termine della trasformazione dei dati, è presente una sequenza di passaggi in una query. Quando si preme
"Anteprima aggiornamento" o "Aggiorna tutto" nell'editor Power Query, non verrà visualizzato un solo
passaggio nella diagnostica delle query. Il motivo è che l'aggiornamento nel editor di Power Query aggiorna in
modo esplicito la query che termina con l'ultimo passaggio applicato, quindi esegue nuovamente i passaggi
applicati e aggiorna la query fino a quel punto, fino all'origine.
Ciò significa che se nella query sono presenti cinque passaggi, tra cui Origine e Strumento di navigazione, si
prevede di visualizzare cinque diverse valutazioni nella diagnostica. Il primo, cronologicamente, spesso (ma non
sempre) avrà il tempo più lungo. Ciò è dovuto a due diversi motivi:
Può potenzialmente memorizzare nella cache i dati di input che le query eseguono dopo di esso (che
rappresentano i passaggi precedenti nella query utente) possono accedere più velocemente in locale.
È possibile che siano state applicate trasformazioni che troncano significativamente la quantità di dati da
restituire.
Si noti che quando si parla di "Aggiorna tutto" si aggiornano tutte le query ed è necessario filtrare in base a
quelle a cui si è a cuore, come ci si potrebbe aspettare.
Aggiornamento completo
Diagnostica query può essere usato per diagnosticare la cosiddetta "query finale" generata durante
l'aggiornamento in Power BI, anziché solo l'esperienza Power Query editor. A tale scopo, è prima necessario
caricare i dati nel modello una sola volta. Se si prevede di eseguire questa operazione, assicurarsi di tenere
presente che se si preme "Chiudi e applica" la finestra dell'editor verrà chiusa (interrompendo la traccia), quindi
è necessario eseguire questa operazione al secondo aggiornamento oppure fare clic sull'icona a discesa in
"Chiudi e applica" e premere "Applica".
In entrambi i modi, assicurarsi di premere "Avvia diagnostica" nella sezione Diagnostica della scheda
"Strumenti" nell'editor. Dopo aver eseguito questa operazione, aggiornare il modello o anche solo la tabella a cui
si è a cuore.
Al termine del caricamento dei dati nel modello, premere "Arresta" diagnostica.
È possibile prevedere una combinazione di metadati e query di dati. Le chiamate ai metadati afferrano le
informazioni che è possibile ottenere sull'origine dati. Il recupero dei dati riguarda l'accesso all'origine dati,
l'emissione della query dell'origine dati predefinita finale con operazioni di tipo folded down e quindi
l'esecuzione delle valutazioni mancanti in locale.
È importante notare che, solo perché nella diagnostica viene visualizzata una risorsa (database, endpoint Web e
così via) o una query sull'origine dati, non significa necessariamente che sta eseguendo necessariamente
un'attività di rete. Power Query recuperare queste informazioni dalla cache. Negli aggiornamenti futuri si
indicherà se le informazioni vengono recuperate o meno dalla cache per semplificare la diagnosi.
Passaggio di diagnosi
'Diagnose Step' è più utile per ottenere informazioni dettagliate sulle valutazioni eseguite fino a un singolo
passaggio, che consente di identificare, fino a tale passaggio, le prestazioni e le parti della query eseguite in
locale o in remoto.
Se si è usato 'Diagnose Step' nella query creata in precedenza, si scoprirà che restituisce solo 10 righe e, se si
osserva l'ultima riga con una query sull'origine dati, è possibile ottenere un'idea piuttosto chiara di quale sarà la
query finale generata nell'origine dati. In questo caso, è possibile vedere che il rappresentante di vendita è stato
filtrato in remoto, ma il raggruppamento (in base al processo di eliminazione) si è verificato in locale.
Se si avvia e si arresta la diagnostica e si aggiorna la stessa query, si ottengono 40 righe a causa del fatto che,
come accennato in precedenza, Power Query sta ricevendo informazioni su ogni passaggio, non solo sul
passaggio finale. Questo rende più difficile quando si sta cercando di ottenere informazioni dettagliate su una
particolare parte della query.
Altre letture
Introduzione alla funzionalità
Altre informazioni sulla lettura e la visualizzazione delle tracce registrate
Come comprendere le operazioni di query che si stanno ripiegando usando Diagnostica query
Visualizzazione e interpretazione della diagnostica
delle query in Power BI
07/12/2021 • 4 minutes to read
Introduzione
Dopo aver registrato la diagnostica che si vuole usare, il passaggio successivo consiste nel comprendere le
informazioni che pronunciano.
È utile avere una buona conoscenza del significato esatto di ogni colonna nello schema di diagnostica delle
query, cosa che non verrà ripetuta in questa breve esercitazione. Di seguito è presente una descrizione completa.
In generale, quando si compilano visualizzazioni, è meglio usare la tabella dettagliata completa perché,
indipendentemente dal numero di righe, è probabile che si consideri una rappresentazione del tempo impiegato
in risorse diverse o della query nativa generata.
Come accennato nell'articolo sulla registrazione della diagnostica, sto lavorando con le tracce OData e SQL per
la stessa tabella (o quasi), ovvero la tabella Customers di Northwind. In particolare, mi concentrerò sulla
domanda comune dei clienti, nonché su uno dei set di tracce più facili da interpretare: l'aggiornamento
completo del modello di dati.
Se si fa clic sulla tabella Origine dati, ad esempio con la diagnostica ODATA, è possibile vedere che la prima
valutazione (2.3 in questa immagine) genera query sui metadati, con la seconda valutazione che recupera
effettivamente i dati a cui si è a cuore. Poiché in questo caso vengono recuperati pochissimi dati, il recupero dei
dati richiede molto poco tempo (meno di un decimo di secondo per l'esecuzione dell'intera seconda valutazione,
con meno di un ventesimo di secondo per il recupero dei dati), ma questo non sarà vero in tutti i casi.
Come sopra, è possibile fare clic sulla categoria "Origine dati" nella legenda per visualizzare le query generate.
Scavo nei dati
Ricerca dei percorsi
Quando si esamina questo aspetto, se sembra che il tempo dedicato sia strano, ad esempio nella query OData è
possibile che sia presente una query sull'origine dati con il valore seguente:
https://services.odata.org/V4/Northwind/Northwind.svc/Customers?
$filter=ContactTitle%20eq%20%27Sales%20Representative%27&$select=CustomerID%2CCountry HTTP/1.1
Content-Type:
application/json;odata.metadata=minimal;q=1.0,application/json;odata=minimalmetadata;q=0.9,application/atoms
vc+xml;q=0.8,application/atom+xml;q=0.8,application/xml;q=0.7,text/plain;q=0.7
<Content placeholder>
Response:
Content-Type:
application/json;odata.metadata=minimal;q=1.0,application/json;odata=minimalmetadata;q=0.9,application/atoms
vc+xml;q=0.8,application/atom+xml;q=0.8,application/xml;q=0.7,text/plain;q=0.7
Content-Length: 435
<Content placeholder>
Questa query sull'origine dati è associata a un'operazione che occupa solo l'1% della durata esclusiva. Nel
frattempo, ce ne è uno molto simile:
Request:
GET https://services.odata.org/V4/Northwind/Northwind.svc/Customers?$filter=ContactTitle eq 'Sales
Representative'&$select=CustomerID%2CCountry HTTP/1.1
Response:
https://services.odata.org/V4/Northwind/Northwind.svc/Customers?$filter=ContactTitle eq 'Sales
Representative'&$select=CustomerID%2CCountry
HTTP/1.1 200 OK
Questa query sull'origine dati è associata a un'operazione che occupa quasi il 75% della durata esclusiva. Se si
attiva path ,si scopre che quest'ultimo è in realtà un elemento figlio del primo. Ciò significa che la prima query
ha sostanzialmente aggiunto pochissimo tempo di per sé, con il recupero effettivo dei dati monitorato dalla
query "interna".
Si tratta di valori estremi, ma sono entro i limiti di ciò che potrebbe essere visto.
Informazioni sulla riduzione con diagnostica query
07/12/2021 • 2 minutes to read
Uno dei motivi più comuni per usare Diagnostica query è avere una migliore comprensione delle operazioni di
cui Power Query ha eseguito il push da parte dell'origine dati back-end, nota anche come "folding". Se si vuole
vedere quale query è stata coniata, è possibile esaminare qual è la query più specifica, o query, che viene inviata
all'origine dati back-end. È possibile esaminare questo aspetto sia per ODATA che per SQL.
L'operazione descritta nell'articolo registrazione diagnostica esegue essenzialmente quattro operazioni:
Si connette all'origine dati
Afferra la tabella dei clienti
Filtra il ruolo CUSTOMER ID (ID cliente) in "Sales Representative"
Gruppi per 'Paese'
Poiché il connettore ODATA attualmente non supporta la folding di COUNT() per l'endpoint e poiché anche
questo endpoint è leggermente limitato nelle operazioni, non è previsto che il passaggio finale si ripeta. D'altra
parte, il filtro è relativamente semplice. Questo è esattamente ciò che si vede se si osserva la query più specifica
emessa in precedenza:
Request:
GET https://services.odata.org/V4/Northwind/Northwind.svc/Customers?$filter=ContactTitle eq 'Sales
Representative'&$select=CustomerID%2CCountry HTTP/1.1
Response:
https://services.odata.org/V4/Northwind/Northwind.svc/Customers?$filter=ContactTitle eq 'Sales
Representative'&$select=CustomerID%2CCountry
HTTP/1.1 200 OK
Si può vedere che si sta filtrando la tabella per ContactTitle equamente "Sales Representative" e vengono
restituite solo due colonne, Customer ID e Country. Il paese, naturalmente, è necessario per l'operazione di
raggruppamento, che poiché non viene eseguita dall'endpoint ODATA deve essere eseguita in locale. È possibile
concludere quali sono le parti che vengono escludono in questo caso.
Analogamente, se si osserva la query specifica e finale generata nella diagnostica SQL, si può osservare
qualcosa di leggermente diverso:
count(1) as [Count]
from
(
select [_].[Country]
from [dbo].[Customers] as [_]
where [_].[ContactTitle] = 'Sales Representative' and [_].[ContactTitle] is not null
) as [rows]
group by [Country]
Qui è possibile vedere che Power Query una sottoselezione in cui ContactTitle viene filtrato in base a "Sales
Representative" e quindi raggruppa per Paese in questa sottoselezione. Tutte le operazioni sono rilevate.
Con La diagnostica delle query è possibile esaminare il tipo di operazioni che si sono verificate. In futuro, ci
auguriamo di semplificare l'uso di questa funzionalità.
Perché la query viene eseguita più volte?
07/12/2021 • 5 minutes to read
Quando si esegue l'aggiornamento in Power Query, c'è molto da fare dietro le quinte per provare a offrire
un'esperienza utente uniforme ed eseguire le query in modo efficiente e sicuro. Tuttavia, in alcuni casi è possibile
notare che più richieste di origine dati vengono attivate Power Query quando i dati vengono aggiornati. A volte
queste richieste sono normali, ma altre volte possono essere evitate.
In questo esempio sarà disponibile una sola valutazione M che si verifica quando si aggiorna l'anteprima dell
Power Query dell'editor. Se le richieste duplicate si verificano a questo punto, sono in qualche modo intrinseche
nel modo in cui viene eseguita la query. In caso contrario, e se si abilitano le impostazioni precedenti una alla
volta, è possibile osservare a quale punto iniziano a verificarsi le richieste duplicate.
Le sezioni seguenti descrivono questi passaggi in modo più dettagliato.
Configurare l Power Query editor
Non è necessario riconnettersi o ricreare la query, è sufficiente aprire la query da testare nell'editor Power
Query dati. È possibile duplicare la query nell'editor se non si vuole creare confusione con la query esistente.
Disabilitare il firewall sulla privacy dei dati
Il passaggio successivo consiste nel disabilitare il firewall sulla privacy dei dati. Questo passaggio presuppone
che non si sia interessati alla perdita di dati tra le origini, quindi la disabilitazione del firewall sulla privacy dei
dati può essere eseguita usando le impostazioni Ignora sempre il livello di privacy descritte nell'opzione Imposta
combinazione rapida in Excel o l'impostazione Ignora i livelli di privacy e potenzialmente migliorare le
prestazioni descritte nei livelli di privacy di Power BI Desktop in Power BI Desktop.
Assicurarsi di annullare questo passaggio prima di riprendere il normale test.
Disabilitare l'analisi in background
Il passaggio successivo consiste nel disabilitare l'analisi in background. L'analisi in background è controllata
dall'impostazione Consenti il download dell'anteprima dei dati in background descritta in Disabilitare Power
Query'aggiornamento in background per Power BI. È anche possibile disabilitare questa opzione in Excel.
Memorizzazione nel buffer della tabella
Facoltativamente, è anche possibile usare per forzare la lettura di tutti i dati, che Table.Buffer simula ciò che
accade durante un caricamento. Da usare Table.Buffer nell'editor Power Query:
1. Nella barra Power Query della formula dell'editor di codice selezionare il pulsante fx per aggiungere un
nuovo passaggio.
2. Nella barra della formula racchiudere il nome del passaggio precedente con Table.Buffer( <previous step
name goes here> ). Ad esempio, se il passaggio precedente è stato denominato Source , la barra della
formula visualizza = Source . Modificare il passaggio nella barra della formula per pronunciare
= Table.Buffer(Source) .
Altre informazioni: Table.Buffer
Eseguire il test
Per eseguire il test, eseguire un aggiornamento nell'editor Power Query test.
Indicatori di ripiegamento dei passaggi
07/12/2021 • 4 minutes to read
NOTE
Prima di leggere questo articolo, è consigliabile leggere La Power Query query per comprendere meglio il funzionamento
della Power Query.
Gli indicatori di ripiegamento dei passaggi consentono di comprendere i passaggi che si ripiegano o meno.
Usando gli indicatori di ripiegamento dei passaggi, quando si apporta una modifica che interrompe la folding,
diventa ovvio. In questo modo è possibile risolvere più facilmente i problemi rapidamente, evitare problemi di
prestazioni e ottenere informazioni più dettagliate sulle query. Nella maggior parte dei casi, i passaggi verranno
o meno ripiegati. Esistono molti casi in cui il risultato non è così ovvio, descritto nella sezione indicatori di
diagnostica dei passaggi (dinamica, opaca e sconosciuta) più avanti in questo articolo.
NOTE
La funzionalità degli indicatori di ripiegamento dei passaggi è disponibile solo per Power Query Online.
let
Source = Sql.Database("ServerName", "AdventureWorks"),
Navigation = Source{[Schema = "Production", Item = "Product"]}[Data]
in
Navigation
Se si osserva come questo viene visualizzato negli indicatori di ripiegamento dei passaggi, è possibile vedere
che il primo passaggio non si riduce, il secondo passaggio è inconcludente e il terzo passaggio si riduce.
È possibile vedere che i passaggi iniziali non si ripiegano, ma il passaggio finale generato quando si caricano i
dati inizialmente si ripiega. La modalità di gestione dei primi passaggi (Origine e talvolta altri passaggi di
spostamento) dipende dal connettore. Con SQL, ad esempio, viene gestito come valore della tabella del
catalogo, che non viene ripiegato. Tuttavia, non appena si selezionano i dati per il connettore, lo farà.
Al contrario, questo può anche significare che la query si ripiega fino a un punto e quindi smette di essere
ripiegata. A differenza del caso in cui si dispone di un indicatore di ripiegamento per il passaggio, che mostra
che tutto si ripiega quando si ha un indicatore di non ripiegamento, non significa che tutto non si ripieghi.
Significa invece che "non tutto" si ripiega. In genere, tutto fino all'ultimo indicatore di ripiegamento verrà
ripiegato, con più operazioni che si verificano dopo.
Modificando l'esempio dall'esempio precedente, è possibile assegnare una trasformazione che non si ripieghi
mai, in maiuscolo per ogni parola.
let
Source = Sql.Database("ServerName", "AdventureWorks"),
Navigation = Source{[Schema = "Production", Item = "Product"]}[Data],
#"Capitalized each word" = Table.TransformColumns(Navigation, {{"Name", each Text.Proper(_), type text}})
in
#"Capitalized each word"
Negli indicatori di ripiegamento dei passaggi si può vedere che sono presenti gli stessi indicatori indicati in
precedenza, ad eccezione del fatto che il passaggio finale non si ripiega. Tutti gli elementi fino a questo
passaggio finale verranno eseguiti nell'origine dati, mentre il passaggio finale verrà eseguito in locale.
Analisi di esempio
È possibile visualizzare un esempio connettendosi alla tabella Products in Adventure Works (SQL). Il carico
iniziale, simile al precedente, sarà simile al seguente:
L'aggiunta di altri passaggi che si ripiegeranno estenderà la linea verde. Questo perché anche questo passaggio
si ripiega.
Se si aggiunge un passaggio che non si ripiega, verrà visualizzato un indicatore, ad esempio, l'opzione
Maiuscole/minuscole per ogni parola non verrà mai ripiegata. Si può vedere che l'indicatore cambia,
dimostrando che a questo punto è stato interrotto il folding. Come accennato in precedenza, i passaggi
precedenti verranno comunque ripiegati.
L'aggiunta di altri passaggi a valle che dipendono dalla capitalizzazione di ogni passaggio continuerà a non
essere ripiegata.
Tuttavia, se si rimuove la colonna a cui è stata applicata la maiuscola in modo che il piano di query ottimizzato
possa essere nuovamente ripiegato, si otterrà un risultato simile al seguente. anche se qualcosa di simile è
insolito. Questo mostra come non sia solo l'ordine dei passaggi, ma anche le trasformazioni effettive che si
applicano.
Piano di query per Power Query (anteprima)
07/12/2021 • 7 minutes to read
Il piano Power Query query è una funzionalità che offre una visualizzazione migliore della valutazione della
query. È utile per determinare il motivo per cui una determinata query potrebbe non essere in un determinato
passaggio.
Tramite un esempio pratico, questo articolo illustra il caso d'uso principale e i potenziali vantaggi dell'uso della
funzionalità del piano di query per esaminare i passaggi della query. Gli esempi usati in questo articolo sono
stati creati usando il database di esempio AdventureWorksLT per Azure SQL Server, che è possibile scaricare dai
database di esempio AdventureWorks.
NOTE
La funzionalità del piano di query Power Query è disponibile solo in Power Query Online.
Questo articolo è stato suddiviso in una serie di passaggi consigliati per interpretare il piano di query. Questi
passaggi sono:
1. Esaminare gli indicatori di folding dei passaggi.
2. Selezionare il passaggio della query per esaminare il relativo piano di query.
3. Implementare le modifiche alla query.
Usare la procedura seguente per creare la query nel proprio ambiente Power Query Online.
1. In Power Quer y - Scegliere l'origine dati selezionare Query vuota.
2. Sostituire lo script della query vuota con la query seguente.
let
Source = Sql.Database("servername", "database"),
Navigation = Source{[Schema = "Sales", Item = "SalesOrderHeader"]}[Data],
#"Removed other columns" = Table.SelectColumns(Navigation, {"SalesOrderID", "OrderDate",
"SalesOrderNumber", "PurchaseOrderNumber", "AccountNumber", "CustomerID", "TotalDue"}),
#"Filtered rows" = Table.SelectRows(#"Removed other columns", each [TotalDue] > 1000),
#"Kept bottom rows" = Table.LastN(#"Filtered rows", 5)
in
#"Kept bottom rows"
NOTE
Per altre informazioni sulla connessione a un SQL Server, vedere SQL Server database.
Dopo aver seguito questi passaggi, la query sarà simile a quella illustrata nell'immagine seguente.
Questa query si connette alla tabella SalesOrderHeader e seleziona alcune colonne degli ultimi cinque ordini
con un valore TotalDue superiore a 1000.
NOTE
Questo articolo usa un esempio semplificato per illustrare questa funzionalità, ma i concetti descritti in questo articolo si
applicano a tutte le query. Prima di leggere il piano di query, è consigliabile avere una buona conoscenza della
configurazione della query. Per altre informazioni sulla configurazione della query, vedere Nozioni di base sulla funzionalità
di folding della query.
Il primo passaggio di questo processo consiste nell'esaminare la query e prestare particolare attenzione agli
indicatori di folding dei passaggi. L'obiettivo è esaminare i passaggi contrassegnati come non ripiegati. È quindi
possibile verificare se apportare modifiche alla query complessiva potrebbe determinare la completa
trasformazione.
Per questo esempio, l'unico passaggio che non può essere ripiegato è Mantenuto le righe più in basso, che è
facile da identificare tramite l'indicatore del passaggio non ripiegato. Questo passaggio è anche l'ultimo
passaggio della query.
L'obiettivo è ora esaminare questo passaggio e comprendere cosa viene ripiegato nell'origine dati e cosa non
può essere ripiegato.
La query illustrata di seguito potrebbe non essere esattamente la stessa inviata all'origine dati, ma si tratta di
un'approssimazione buona. In questo caso, indica esattamente le colonne su cui verrà eseguita una query dalla
tabella SalesOrderHeader e quindi come filtra la tabella usando il campo TotalDue per ottenere solo le righe in
cui il valore di tale campo è maggiore di 1000. Il nodo accanto, Table.LastN,viene calcolato in locale dal motore
Power Query, perché non può essere ripiegato.
NOTE
Gli operatori potrebbero non corrispondere esattamente alle funzioni usate nello script della query.
Questa alternativa equivale alla query originale. Anche se questa alternativa in teoria sembra valida, è
necessario apportare le modifiche per verificare se questa alternativa renderà il nodo completamente ripiegato
sull'origine dati.
4. Selezionare l'icona della tabella nell'angolo superiore sinistro della visualizzazione di anteprima dei dati e
selezionare l'opzione Mantieni le prime righe. Nella finestra di dialogo passare il numero cinque come
argomento e fare clic su OK.
Dopo aver implementato le modifiche, controllare di nuovo gli indicatori di ripiegamento del passaggio e
verificare se si sta fornendo un indicatore di ripiegamento.
A questo punto è possibile esaminare il piano di query dell'ultimo passaggio, che ora è Mantieni le prime
righe . Ora sono presenti solo nodi ripiegati. Selezionare Visualizza dettagli in per verificare quale query viene
inviata al Value.NativeQuery database.
Anche se questo articolo suggerisce l'alternativa da applicare, l'obiettivo principale è imparare a usare il piano di
query per esaminare la funzionalità di folding della query. Questo articolo offre anche visibilità su ciò che viene
inviato all'origine dati e su quali trasformazioni verranno eseguite in locale.
È possibile modificare il codice per verificare l'impatto che ha sulla query. Usando gli indicatori di ripiegamento
dei passaggi, è anche possibile avere un'idea migliore dei passaggi che impediscono la ripiega della query.
Utilizzo di parametri
07/12/2021 • 5 minutes to read
Un parametro consente di archiviare e gestire facilmente un valore che può essere riutilizzato.
I parametri offrono la flessibilità necessaria per modificare dinamicamente l'output delle query a seconda del
relativo valore e possono essere usati per:
Modifica dei valori degli argomenti per trasformazioni specifiche e funzioni dell'origine dati
Input nelle funzioni personalizzate
È possibile gestire facilmente i parametri all'interno della finestra Gestisci parametri. È possibile accedere alla
finestra Gestisci parametri selezionando l'opzione Gestisci parametri all'interno di Gestisci parametri nella
scheda Home.
Creazione di un parametro
Power Query offre due semplici modi per creare parametri:
Da una quer y esistente — È possibile fare clic con il pulsante destro del mouse su una query il cui
valore è una semplice costante non strutturata, ad esempio, ma non limitata a, una data, un testo o un
numero e selezionare Converti in parametro .
NOTE
È anche possibile convertire un parametro in una query facendo clic con il pulsante destro del mouse sul
parametro e quindi scegliendo Converti in quer y , come illustrato nell'immagine seguente.
Uso della finestra Gestisci parametri — È possibile selezionare l'opzione Nuovo parametro dal
menu a discesa Gestisci parametri nella scheda Home oppure avviare la finestra Gestisci parametri e
selezionare il pulsante Nuovo nella parte superiore per creare un parametro. È possibile compilare
questo modulo e selezionare OK per creare un nuovo parametro.
Dopo aver creato il parametro, è sempre possibile tornare alla finestra Gestisci parametri per modificare i
parametri in qualsiasi momento.
Proprietà parametro
Un parametro archivia un valore che può essere usato per le trasformazioni in Power Query. Oltre al nome del
parametro e al valore archiviato, include anche altre proprietà che forniscono metadati. Le proprietà di un
parametro sono le seguenti.
Nome — Specificare un nome per questo parametro che consenta di riconoscerlo e differenziarlo
facilmente dagli altri parametri che è possibile creare.
Descrizione — La descrizione viene visualizzata accanto al nome del parametro quando vengono
visualizzate le informazioni sui parametri, consentendo agli utenti che specificano il valore del parametro
di comprenderne lo scopo e la semantica.
Obbligatorio — La casella di controllo indica se gli utenti successivi possono specificare se è necessario
specificare un valore per il parametro .
Tipo — È consigliabile configurare sempre il tipo di dati del parametro. Per altre informazioni
sull'importanza dei tipi di dati, vedere l'articolo Tipi di dati.
Valori suggeriti — Fornisce all'utente suggerimenti per selezionare un valore per Valore corrente tra
le opzioni disponibili:
Qualsiasi valore — Il valore corrente può essere qualsiasi valore immesso manualmente.
Elenco di valori — Offre un'esperienza semplice simile a una tabella in modo da poter definire
un elenco di valori suggeriti che è possibile selezionare in un secondo momento per Valore
corrente. Quando questa opzione è selezionata, verrà resa disponibile una nuova opzione
denominata Valore predefinito. Da qui è possibile selezionare il valore predefinito per questo
parametro, che sarà il valore predefinito visualizzato all'utente quando fa riferimento al parametro.
Questo valore non corrisponde al valore corrente, ovvero il valore archiviato all'interno del
parametro e che può essere passato come argomento nelle trasformazioni. L'uso dell'elenco di
valori consentirà la visualizzazione di un menu a discesa nei campi Valore predefinito e Valore
corrente, in cui è possibile selezionare uno dei valori dall'elenco di valori suggerito.
NOTE
È comunque possibile digitare manualmente qualsiasi valore da passare al parametro . L'elenco di valori
suggeriti serve solo come suggerimenti semplici.
Quer y — Usa una query di elenco (una query il cui output è un elenco) per fornire l'elenco di
valori suggeriti che è possibile selezionare in un secondo momento per Valore corrente .
Valore corrente — Valore che verrà archiviato in questo parametro.
NOTE
Questa funzionalità non è attualmente disponibile in Power Query Online.
A scopo di esempio, è possibile visualizzare la query Orders seguente con i campi OrderID , Units e Margin .
È possibile creare un nuovo parametro con il nome Minimum Margin con tipo Numero decimale e Valore
corrente pari a 0,2, come illustrato nell'immagine successiva.
È possibile passare alla query Orders e nel campo Margin (Margine) selezionare l'opzione di filtro
Greater Than (Maggiore di).
Nella finestra Filtra righe verrà visualizzato un pulsante con un tipo di dati per il campo selezionato. È possibile
selezionare l'opzione Parametro dal menu a discesa per questo pulsante. Dalla selezione del campo accanto al
pulsante tipo di dati è possibile selezionare il parametro che si vuole passare a questo argomento. In questo
caso, è il parametro Minimum Margin.
Dopo aver selezionato OK, è possibile vedere che la tabella è stata filtrata usando il valore corrente per il
parametro.
Se si modifica il valore corrente del parametro Minimum Margin in modo che sia 0,3, è possibile vedere
immediatamente come viene aggiornata la query degli ordini e vengono visualizzate solo le righe in cui margin
è superiore al 30%.
TIP
Più trasformazioni in Power Query questa esperienza in cui è possibile selezionare il parametro da un elenco a discesa. È
quindi consigliabile cercarlo sempre e sfruttare i parametri che possono offrire.
È possibile assegnare a questa nuova funzione il nome desiderato. A scopo dimostrativo, il nome di questa
nuova funzione sarà MyFunction . Dopo aver selezionato OK, nel riquadro Query verrà creato un nuovo
gruppo usando il nome della nuova funzione. In questo gruppo sono presenti i parametri usati per la funzione,
la query usata per creare la funzione e la funzione stessa.
È possibile testare questa nuova funzione immettendo un valore, ad esempio 0,4, nel campo sotto l'etichetta
Minimum Margin . Selezionare quindi il pulsante Richiama. Verrà creata una nuova query con il nome
Invoked Function , passando in effetti il valore 0,4 da usare come argomento per la funzione e fornendo solo le
righe in cui il margine è superiore al 40%.
Per altre informazioni su come creare funzioni personalizzate, vedere l'articolo Creazione di una funzione
personalizzata.
Gestione degli errori
07/12/2021 • 4 minutes to read
Analogamente a come Excel e il linguaggio DAX hanno una funzione, Power Query ha la propria sintassi per
IFERROR testare e rilevare gli errori.
Come indicato nell'articolo sulla gestione degli errori in Power Query, gli errori possono essere visualizzati a
livello di passaggio o di cella. Questo articolo illustra come rilevare e gestire gli errori in base alla logica
specifica.
NOTE
Per illustrare questo concetto, questo articolo userà una Excel di lavoro come origine dati. I concetti illustrati qui si
applicano a tutti i valori in Power Query e non solo a quelli provenienti da una cartella Excel lavoro.
Questa tabella di una Excel contiene Excel errori, ad esempio #NULL! , #REF! e #DIV/0! nella colonna Tariffa
standard. Quando si importa questa tabella nel editor di Power Query, l'immagine seguente mostra l'aspetto.
Si noti come gli errori della Excel cartella di lavoro vengono visualizzati con [Error] il valore in ognuna delle
celle.
In questo caso, l'obiettivo è creare una nuova colonna Tasso finale che userà i valori della colonna Tariffa
standard. Se sono presenti errori, verrà utilizzato il valore della colonna Frequenza speciale corrispondente.
Aggiungere una colonna personalizzata con la try sintassi otherwise e
Per creare una nuova colonna personalizzata, passare al menu Aggiungi colonna e selezionare Colonna
personalizzata. Nella finestra Colonna personalizzata immettere la formula
try [Standard Rate] otherwise [Special Rate] . Assegnare alla nuova colonna il nome Final Rate .
La formula precedente tenterà di valutare la colonna Frequenza standard e restituirà il relativo valore se non
vengono trovati errori. Se vengono rilevati errori nella colonna Frequenza standard , l'output sarà il valore
definito dopo l'istruzione , che in questo caso è otherwise la colonna Frequenza speciale .
Dopo aver aggiunto i tipi di dati corretti a tutte le colonne della tabella, l'immagine seguente mostra l'aspetto
della tabella finale.
NOTE
L'unico scopo dell'esclusione #REF! dell'errore è a scopo dimostrativo. Con i concetti illustrati in questo articolo, è
possibile scegliere come destinazione qualsiasi motivo di errore, messaggio o dettagli di propria scelta.
Quando si seleziona uno degli spazi vuoti accanto al valore di errore, viene visualizzato il riquadro dei dettagli
nella parte inferiore della schermata. Il riquadro dei dettagli contiene sia il motivo dell'errore, DataFormat.Error ,
sia il messaggio di Invalid cell value '#REF!' errore:
È possibile selezionare una sola cella alla volta, in modo da visualizzare in modo efficace solo i componenti di
errore di un valore di errore alla volta. In questa posizione si creerà una nuova colonna personalizzata e si userà
try l'espressione .
È possibile espandere questa colonna appena creata con i valori dei record ed esaminare i campi disponibili da
espandere selezionando l'icona accanto all'intestazione di colonna.
Altre risorse
Informazioni e uso degli errori in Power Query
Aggiungere una colonna personalizzata in Power Query
Aggiungere una colonna Condizionale in Power Query
Importare dati da un database usando una query di
database nativa
07/12/2021 • 4 minutes to read
Power Query offre la flessibilità necessaria per importare dati da un'ampia gamma di database supportati. Può
eseguire query di database native, risparmiando il tempo necessario per creare query usando l'Power Query
dati. Questa funzionalità è particolarmente utile per l'uso di query complesse già esistenti e che potrebbe non
essere utile o sapere come ricompilare usando l'interfaccia Power Query — dati.
NOTE
Una finalità delle query di database native è l'effetto non collaterale. Tuttavia, Power Query non garantisce che la query
non influisca sul database. Se si esegue una query di database nativa scritta da un altro utente, verrà richiesto di
assicurarsi di essere a conoscenza delle query che verranno valutate con le credenziali. Per altre informazioni, vedere
Sicurezza delle query native del database.
Power Query consente di specificare la query di database nativa in una casella di testo in Opzioni avanzate
durante la connessione a un database. Nell'esempio seguente si importerà dati da un database SQL Server
usando una query di database nativa immessa nella casella di testo SQL istruzione. La procedura è simile in
tutti gli altri database con query di database native Power Query supporta.
1. Connessione a un SQL Server database usando Power Query. Selezionare l'SQL Ser ver database nella
selezione del connettore.
2. Nella finestra SQL Ser ver popup del database:
a. Specificare il ser ver e il database da cui si desidera importare i dati usando una query di
database nativa.
b. In Opzioni avanzate selezionare il campo SQL istruzione e incollare o immettere la query del
database nativo, quindi selezionare OK.
3. Se questa è la prima volta che ci si connette a questo server, verrà visualizzata una richiesta di selezionare
la modalità di autenticazione per connettersi al database. Selezionare una modalità di autenticazione
appropriata e continuare.
NOTE
Se non si ha accesso all'origine dati (server e database), verrà visualizzato un prompt per richiedere l'accesso al
server e al database (se le informazioni sulla richiesta di accesso sono specificate nel Power BI per l'origine dati).
4. Se viene stabilita la connessione, i dati dei risultati vengono restituiti nel editor di Power Query.
Modellare i dati come si preferisce, quindi selezionare Applica & Chiudi per salvare le modifiche e
importare i dati.
DataWorld.Dataset dwSQL
Limitazioni e problemi
Prima di usare query di database native, è necessario tenere presenti le limitazioni e i problemi che possono
verificarsi.
Riduzione della query
La funzionalità di folding delle query durante l'uso di una query di database nativa è limitata solo al connettore
PostgreSQL. Nessun altro connettore supporta la funzionalità di folding delle query se si usa una query di
database nativa. Inoltre, per il funzionamento del folding nel connettore PostgreSQL, la query del database
nativo immessa deve funzionare come sottoquery.
Sicurezza delle query native del database
In alcuni casi, quando si tenta di usare una query creata da un altro utente o tramite la barra della formula o
Editor avanzato essenzialmente qualsiasi altro percorso all'esterno delle finestre di dialogo del connettore in cui
viene visualizzata la casella di input della query nativa, è possibile che venga visualizzato un messaggio che —
— indica:
Se viene visualizzato questo messaggio, selezionare Modifica autorizzazione . Questa selezione aprirà la
finestra di dialogo Quer y database nativo . Sarà possibile eseguire la query del database nativo o annullare
la query.
Per impostazione predefinita, se si esegue una query di database nativa all'esterno delle finestre di dialogo del
connettore, verrà richiesto ogni volta che si esegue un testo di query diverso per assicurarsi che il testo della
query che verrà eseguito venga approvato dall'utente.
NOTE
Le query di database native inserite nell'operazione get data non chiederà se si vuole eseguire o meno la query. Verranno
eseguiti.
È possibile disattivare i messaggi di sicurezza delle query del database nativo se la query del database nativo
viene eseguita in Power BI Desktop o Excel. Per disattivare i messaggi di sicurezza:
1. Se si usa Power BI Desktop, nella scheda File selezionare Opzioni e impostazioni > Opzioni .
Se si usa Excel, nella scheda Dati selezionare Ottieni dati > opzioni quer y .
2. In Impostazioni globali selezionare Sicurezza .
3. Deselezionare Richiedi l'approvazione dell'utente per le nuove quer y di database native.
4. Selezionare OK .
È anche possibile revocare l'approvazione di qualsiasi query di database nativa approvata in precedenza per una
determinata origine dati in Power BI Desktop o Excel. Per revocare l'approvazione:
1. Se si usa il Power BI Desktop, nella scheda File selezionare Opzioni e impostazioni > Impostazioni
origine dati .
Se si usa un Excel, nella scheda Dati selezionare > origine dati Impostazioni .
2. Nella finestra di dialogo Impostazioni origine dati selezionare Autorizzazioni globali. Selezionare
quindi l'origine dati contenente le query native del database di cui si vuole revocare l'approvazione.
3. Selezionare Modifica autorizzazioni .
4. Nella finestra di dialogo Modifica autorizzazioni in Query di database native selezionare Revoca
Approvazioni .
Creare flussi di dati della piattaforma Power
Microsoft da query in Microsoft Excel (anteprima)
07/12/2021 • 2 minutes to read
NOTE
La funzionalità di anteprima per la creazione Power Query modelli di query è disponibile solo per i Office Insider. Per altre
informazioni sul programma Office Insider, vedere Office Insider.
Panoramica
L'uso di set di dati di grandi dimensioni o query a esecuzione lunga può essere complicato ogni volta che è
necessario attivare manualmente un aggiornamento dei dati in Excel perché a tale scopo sono necessarie risorse
dal computer ed è necessario attendere il completamento del calcolo per ottenere i dati più recenti. Lo
spostamento di queste operazioni sui dati in un flusso di dati di Power Platform è un modo efficace per liberare
le risorse del computer e avere i dati più recenti facilmente disponibili per l'uso in Excel.
A tale scopo, sono necessari solo due passaggi rapidi:
1. Esportazione di query in Excel in un modello Power Query dati
2. Creazione di Power Platform flusso di dati dal modello Power Query dati
3. Il modello richiede informazioni di base, ad esempio un nome e una descrizione, prima di poter essere
salvato localmente nel computer.
Creazione di Power Platform flusso di dati dal modello Power Query
dati
1. Accedere a Power Apps.
2. Nel riquadro di spostamento a sinistra selezionare Flussi > di dati .
3. Sulla barra degli strumenti selezionare Nuovo modello di impor tazione del flusso di > dati.
4. Selezionare il modello Power Query creato in precedenza. Il nome del flusso di dati verrà prepopolato
con il nome del modello specificato. Al termine della schermata di creazione del flusso di dati, selezionare
Avanti per visualizzare le query Excel nell'editor di query.
5. A questo punto, eseguire il normale processo di creazione e configurazione del flusso di dati in modo da
poter trasformare ulteriormente i dati, impostare pianificazioni degli aggiornamenti nel flusso di dati e
qualsiasi altra operazione possibile sul flusso di dati. Per altre informazioni su come configurare e creare
flussi di Power Platform, vedere Creare e usare flussi di dati.
Vedi anche
Creare e usare flussi di dati in Power Apps
Ottimizzare Power Query durante l'espansione di
colonne di tabella
07/12/2021 • 3 minutes to read
La semplicità e la facilità d'uso che consentono agli utenti Power BI di raccogliere rapidamente dati e generare
report interessanti e potenti per prendere decisioni aziendali intelligenti consente anche agli utenti di generare
facilmente query con prestazioni scarse. Ciò si verifica spesso quando sono presenti due tabelle correlate nel
modo in cui una chiave esterna mette in relazione SQL tabelle o SharePoint tabella. Per il record, questo
problema non è specifico di SQL o SharePoint e si verifica in molti scenari di estrazione dei dati back-end, in
particolare quando lo schema è fluido e personalizzabile. Non c'è nulla di intrinsecamente sbagliato
nell'archiviazione di dati in tabelle separate che condividono una chiave comune, in realtà si tratta di una rete
fondamentale per la progettazione — e la normalizzazione del database. Ma implica un modo migliore per
espandere la relazione.
Si consideri l'esempio seguente di un SharePoint di clienti.
Quando ci si connette per la prima volta all'elenco, il percorso viene visualizzato come record.
Questi dati di primo livello vengono raccolti tramite una singola chiamata HTTP all'API SharePoint (ignorando la
chiamata ai metadati), che è possibile visualizzare in qualsiasi debugger Web.
Quando si espande il record, vengono visualizzati i campi uniti in join dalla tabella secondaria.
Quando si espandono righe correlate da una tabella a un'altra, il comportamento predefinito di Power BI è
generare una chiamata a Table.ExpandTableColumn . È possibile visualizzare questo valore nel campo della
formula generato. Sfortunatamente, questo metodo genera una singola chiamata alla seconda tabella per ogni
riga della prima tabella.
In questo modo il numero di chiamate HTTP aumenta di una per ogni riga nell'elenco primario. Questo potrebbe
non sembrare molto nell'esempio precedente di cinque o sei righe, ma nei sistemi di produzione in cui gli
elenchi di SharePoint raggiungono centinaia di migliaia di righe, ciò può causare una riduzione significativa
dell'esperienza.
Quando le query raggiungono questo collo di bottiglia, la soluzione migliore è evitare il comportamento di
chiamata per riga usando un join di tabella classico. In questo modo si garantisce che sia presente una sola
chiamata per recuperare la seconda tabella e che il resto dell'espansione possa verificarsi in memoria usando la
chiave comune tra le due tabelle. La differenza di prestazioni può essere notevole in alcuni casi.
Per prima cosa, iniziare con la tabella originale, annotando la colonna che si vuole espandere e verificando di
avere l'ID dell'elemento in modo che sia possibile associarlo. In genere la chiave esterna viene denominata in
modo simile al nome visualizzato della colonna con l'ID aggiunto. In questo esempio è LocationId .
Caricare quindi la tabella secondaria, assicurando di includere l'ID , che è la chiave esterna. Fare clic con il
pulsante destro del mouse sul pannello Query per creare una nuova query.
Infine, unire le due tabelle usando i rispettivi nomi di colonna corrispondenti. È in genere possibile trovare
questo campo espandendo prima la colonna e quindi cercando le colonne corrispondenti nell'anteprima.
In questo esempio è possibile vedere che LocationId nell'elenco primario corrisponde a ID nell'elenco
secondario. L'interfaccia utente lo rinomina in Location.Id per rendere univoco il nome della colonna. A questo
punto è possibile usare queste informazioni per unire le tabelle.
Facendo clic con il pulsante destro del mouse sul pannello delle query e scegliendo Nuova query combina query
di merge come Nuovo , viene visualizzata un'interfaccia utente semplice che consente di > > combinare queste
due query.
Selezionare ogni tabella dall'elenco a discesa per visualizzare un'anteprima della query.
Dopo aver selezionato entrambe le tabelle, selezionare la colonna che unisce le tabelle in modo logico(in questo
esempio, è LocationId dalla tabella primaria e ID dalla tabella secondaria). La finestra di dialogo indica il
numero di righe corrispondenti usando la chiave esterna. È probabile che si voglia usare il tipo di join
predefinito (left outer) per questo tipo di dati.
Selezionare OK per visualizzare una nuova query, ovvero il risultato del join. L'espansione del record ora non
implica chiamate aggiuntive al back-end.
L'aggiornamento di questi dati comporta solo due chiamate SharePoint una per l'elenco primario e una per —
l'elenco secondario. Il join verrà eseguito in memoria, riducendo in modo significativo il numero di chiamate
SharePoint.
Questo approccio può essere usato per due tabelle in PowerQuery con una chiave esterna corrispondente.
NOTE
SharePoint elenchi utenti e tassonomia sono accessibili anche come tabelle e possono essere uniti esattamente come
descritto in precedenza, purché l'utente abbia privilegi adeguati per accedere a questi elenchi.
Abilitazione Microsoft Edge (Chromium) per
l'autenticazione OAuth in Power BI Desktop
07/12/2021 • 2 minutes to read
Se si usa l'autenticazione OAuth per connettersi ai dati, la finestra di dialogo OAuth in Power Query usa il
browser di controllo incorporato di Microsoft Internet Explorer 11. Tuttavia, alcuni servizi Web, ad esempio
QuickBooks Online, Salesforce Reports e Salesforce Objects, non supportano più Internet Explorer 11.
A partire da ottobre 2021, Power BI Desktop ora usa Microsoft Edge WebView2,per impostazione predefinita,
per l'autenticazione OAuth per tutti i connettori. Tuttavia, è possibile modificare il comportamento predefinito
usando le variabili di ambiente.
Per disabilitare l'uso di WebView2 per connettori specifici, impostare con i nomi dei connettori da
PQ_ExtendEdgeChromiumOAuthDenyList disabilitare. Più connettori sono separati da punti e virgola.
Per abilitare WebView2 per connettori specifici, impostare con i nomi dei connettori
PQ_ExtendEdgeChromiumOAuthAllowList da abilitare. Più connettori sono separati da punti e virgola.
La tabella seguente contiene un elenco di tutti i connettori attualmente disponibili per Power Query. Per i
connettori che hanno una pagina di riferimento in questo documento viene indicato un collegamento sotto
l'icona e il nome del connettore.
Un segno di spunta indica che il connettore è attualmente supportato nel servizio elencato; una X indica che il
connettore non è attualmente supportato nel servizio elencato.
I connettori sono elencati in ordine alfabetico in tabelle separate per ogni lettera dell'alfabeto. Usare l'elenco In
questo articolo sul lato destro di questo articolo per passare a una delle tabelle in ordine alfabetico.
NOTE
La Excel nella tabella seguente indica tutti i connettori disponibili in almeno una versione di Excel. Tuttavia, non tutte Excel
supportano tutti questi connettori Power Query indicati. Per un elenco completo dei connettori Power Query supportati
da tutte le versioni di Excel, vedere Power Query origini dati nelle versioni Excel.
A
C USTO M ER
P O W ER B I P O W ER A P P S IN SIGH T S
P O W ER B I ( F L USSI DI ( F L USSI DI ( F L USSI DI A N A LY SIS
C O N N ET TO RE EXC EL ( SET DI DAT I) DAT I) DAT I) DAT I) SERVIC ES
Database di
Access
di Microsoft
Active
Director y
di Microsoft
Acter ys
(Beta)
Di Acterys
C USTO M ER
P O W ER B I P O W ER A P P S IN SIGH T S
P O W ER B I ( F L USSI DI ( F L USSI DI ( F L USSI DI A N A LY SIS
C O N N ET TO RE EXC EL ( SET DI DAT I) DAT I) DAT I) DAT I) SERVIC ES
Actian
(Beta)
Di Actian
Adobe
Analytics
di Microsoft
Amazon
Athena
By Amazon
Amazon
Redshift
di Microsoft
Anaplan
Di Anaplan
appFigures
(Beta)
di Microsoft
Asana
di Asana
Assemblare
le viste
Di Autodesk
C USTO M ER
P O W ER B I P O W ER A P P S IN SIGH T S
P O W ER B I ( F L USSI DI ( F L USSI DI ( F L USSI DI A N A LY SIS
C O N N ET TO RE EXC EL ( SET DI DAT I) DAT I) DAT I) DAT I) SERVIC ES
Cubi
AtScale
(Beta)
di Microsoft
Automazion
e
ovunque
Per
automazione
Ovunque
Automy
Data
Analytics
(Beta)
Di
ACEROYALTY
Database di
Azure
Analysis
Ser vices
di Microsoft
Archiviazion
e BLOB
di Azure
di Microsoft
C USTO M ER
P O W ER B I P O W ER A P P S IN SIGH T S
P O W ER B I ( F L USSI DI ( F L USSI DI ( F L USSI DI A N A LY SIS
C O N N ET TO RE EXC EL ( SET DI DAT I) DAT I) DAT I) DAT I) SERVIC ES
Azure
CosmosDB
v1
(Beta)
di Microsoft
Azure
CosmosDB
v2
(Beta)
di Microsoft
Gestione
costi
di Azure
di Microsoft
Azure
Databricks
Di Databricks
Esplora dati
di Azure
(Beta)
di Microsoft
Azure Data
Lake
Storage
Gen1
di Microsoft
C USTO M ER
P O W ER B I P O W ER A P P S IN SIGH T S
P O W ER B I ( F L USSI DI ( F L USSI DI ( F L USSI DI A N A LY SIS
C O N N ET TO RE EXC EL ( SET DI DAT I) DAT I) DAT I) DAT I) SERVIC ES
Azure Data
Lake
Archiviazion
e Gen2
(Beta)
di Microsoft
Azure
DevOps
(Beta)
di Microsoft
Azure
DevOps
Ser ver
(Beta)
di Microsoft
Azure
HDInsight
(HDFS)
di Microsoft
Azure
HDInsight
Spark
di Microsoft
Azure
Synapse
Analytics
(SQL DW)
di Microsoft
C USTO M ER
P O W ER B I P O W ER A P P S IN SIGH T S
P O W ER B I ( F L USSI DI ( F L USSI DI ( F L USSI DI A N A LY SIS
C O N N ET TO RE EXC EL ( SET DI DAT I) DAT I) DAT I) DAT I) SERVIC ES
Azure
Synapse
Area di
lavoro
Analytics
(Beta)
di Microsoft
Database
SQL
Azure
di Microsoft
Archiviazion
e tabelle
di Azure
di Microsoft
Azure Time
Series
Insights
(Beta)
di Microsoft
B
C USTO M ER
P O W ER B I P O W ER A P P S IN SIGH T S
P O W ER B I ( F L USSI DI ( F L USSI DI ( F L USSI DI A N A LY SIS
C O N N ET TO RE EXC EL ( SET DI DAT I) DAT I) DAT I) DAT I) SERVIC ES
Connettore
BI
di Guidanz
C USTO M ER
P O W ER B I P O W ER A P P S IN SIGH T S
P O W ER B I ( F L USSI DI ( F L USSI DI ( F L USSI DI A N A LY SIS
C O N N ET TO RE EXC EL ( SET DI DAT I) DAT I) DAT I) DAT I) SERVIC ES
BI360
di Solver
Global
Dati e
analisi di
Bloomberg
Di Bloomberg
BQE Core
(Beta)
Di BQE
C
C USTO M ER
P O W ER B I P O W ER A P P S IN SIGH T S
P O W ER B I ( F L USSI DI ( F L USSI DI ( F L USSI DI A N A LY SIS
C O N N ET TO RE EXC EL ( SET DI DAT I) DAT I) DAT I) DAT I) SERVIC ES
Cognite
Data Fusion
(Beta)
di Cognite
Cher well
(Beta)
Di Cherwell
C USTO M ER
P O W ER B I P O W ER A P P S IN SIGH T S
P O W ER B I ( F L USSI DI ( F L USSI DI ( F L USSI DI A N A LY SIS
C O N N ET TO RE EXC EL ( SET DI DAT I) DAT I) DAT I) DAT I) SERVIC ES
Common
Data
Ser vice
(legacy)
di Microsoft
D
C USTO M ER
P O W ER B I P O W ER A P P S IN SIGH T S
P O W ER B I ( F L USSI DI ( F L USSI DI ( F L USSI DI A N A LY SIS
C O N N ET TO RE EXC EL ( SET DI DAT I) DAT I) DAT I) DAT I) SERVIC ES
Data.World
-
Get Dataset
(Beta)
di Microsoft
Data
Vir tuality
(Beta)
di Data
Virtuality
Dataverse
di Microsoft
Condivision
e
differenziale
(Beta)
Di Databricks
C USTO M ER
P O W ER B I P O W ER A P P S IN SIGH T S
P O W ER B I ( F L USSI DI ( F L USSI DI ( F L USSI DI A N A LY SIS
C O N N ET TO RE EXC EL ( SET DI DAT I) DAT I) DAT I) DAT I) SERVIC ES
Denodo
di Denodo
Dremio
di Dremio
Dynamics
365
(online)
di Microsoft
Dynamics
365
Business
Central
di Microsoft
Dynamics
365
Business
Central
(locale)
di Microsoft
Dynamics
365
Customer
Insights
(Beta)
di Microsoft
C USTO M ER
P O W ER B I P O W ER A P P S IN SIGH T S
P O W ER B I ( F L USSI DI ( F L USSI DI ( F L USSI DI A N A LY SIS
C O N N ET TO RE EXC EL ( SET DI DAT I) DAT I) DAT I) DAT I) SERVIC ES
Dynamics
NAV
di Microsoft
E
C USTO M ER
P O W ER B I P O W ER A P P S IN SIGH T S
P O W ER B I ( F L USSI DI ( F L USSI DI ( F L USSI DI A N A LY SIS
C O N N ET TO RE EXC EL ( SET DI DAT I) DAT I) DAT I) DAT I) SERVIC ES
eWay-CRM
Di eWay-CRM
Emigo Data
Source
di Sagra
Entersoft
Business
Suite
(Beta)
di Entersoft
EQuiS
(beta)
Di EarthSoft
Essbase
di Microsoft
C USTO M ER
P O W ER B I P O W ER A P P S IN SIGH T S
P O W ER B I ( F L USSI DI ( F L USSI DI ( F L USSI DI A N A LY SIS
C O N N ET TO RE EXC EL ( SET DI DAT I) DAT I) DAT I) DAT I) SERVIC ES
Exasol
di Exasol
Excel
di Microsoft
F
C USTO M ER
P O W ER B I P O W ER A P P S IN SIGH T S
P O W ER B I ( F L USSI DI ( F L USSI DI ( F L USSI DI A N A LY SIS
C O N N ET TO RE EXC EL ( SET DI DAT I) DAT I) DAT I) DAT I) SERVIC ES
FactSet
Analytics
(Beta)
di By FactSet
FHIR
di Microsoft
Car tella
di Microsoft
G
C USTO M ER
P O W ER B I P O W ER A P P S IN SIGH T S
P O W ER B I ( F L USSI DI ( F L USSI DI ( F L USSI DI A N A LY SIS
C O N N ET TO RE EXC EL ( SET DI DAT I) DAT I) DAT I) DAT I) SERVIC ES
Github
(Beta)
di Microsoft
Google
Analytics
di Microsoft
Google
BigQuer y
di Microsoft
Fogli
Google
(Beta)
di Microsoft
H
C USTO M ER
P O W ER B I P O W ER A P P S IN SIGH T S
P O W ER B I ( F L USSI DI ( F L USSI DI ( F L USSI DI A N A LY SIS
C O N N ET TO RE EXC EL ( SET DI DAT I) DAT I) DAT I) DAT I) SERVIC ES
File Hadoop
(HDFS)
di Microsoft
HDInsight
Interactive
Quer y
di Microsoft
C USTO M ER
P O W ER B I P O W ER A P P S IN SIGH T S
P O W ER B I ( F L USSI DI ( F L USSI DI ( F L USSI DI A N A LY SIS
C O N N ET TO RE EXC EL ( SET DI DAT I) DAT I) DAT I) DAT I) SERVIC ES
API
intelligente
PPM
esagonale
Di hexagon
PPM
Hive LL AP
di Microsoft
I
C USTO M ER
P O W ER B I P O W ER A P P S IN SIGH T S
P O W ER B I ( F L USSI DI ( F L USSI DI ( F L USSI DI A N A LY SIS
C O N N ET TO RE EXC EL ( SET DI DAT I) DAT I) DAT I) DAT I) SERVIC ES
Database
IBM DB2
di Microsoft
Database
Informix
IBM
(Beta)
di Microsoft
IBM
Netezza
di Microsoft
C USTO M ER
P O W ER B I P O W ER A P P S IN SIGH T S
P O W ER B I ( F L USSI DI ( F L USSI DI ( F L USSI DI A N A LY SIS
C O N N ET TO RE EXC EL ( SET DI DAT I) DAT I) DAT I) DAT I) SERVIC ES
Impala
di Microsoft
Indexima
(Beta)
di Indexima
Industrial
App Store
di Intelligent
Plant
Information
Grid (Beta)
di Luminis
InterSystem
s
IRIS (Beta)
di
Intersystems
Intune Data
Warehouse
(Beta)
di Microsoft
J
C USTO M ER
P O W ER B I P O W ER A P P S IN SIGH T S
P O W ER B I ( F L USSI DI ( F L USSI DI ( F L USSI DI A N A LY SIS
C O N N ET TO RE EXC EL ( SET DI DAT I) DAT I) DAT I) DAT I) SERVIC ES
Jamf Pro
(Beta)
di Jamf
Jethro
(Beta)
di JethroData
JSON
di Microsoft
K
C USTO M ER
P O W ER B I P O W ER A P P S IN SIGH T S
P O W ER B I ( F L USSI DI ( F L USSI DI ( F L USSI DI A N A LY SIS
C O N N ET TO RE EXC EL ( SET DI DAT I) DAT I) DAT I) DAT I) SERVIC ES
Kognitwin
(Beta)
di Kongsberg
Kyligence
di Kyligence
L
C USTO M ER
P O W ER B I P O W ER A P P S IN SIGH T S
P O W ER B I ( F L USSI DI ( F L USSI DI ( F L USSI DI A N A LY SIS
C O N N ET TO RE EXC EL ( SET DI DAT I) DAT I) DAT I) DAT I) SERVIC ES
Linkar PICK
Style/MultiV
alue
Databases
(Beta)
di Kosday
Solutions
LinkedIn
Sales
Navigator
(Beta)
di Microsoft
M
C USTO M ER
P O W ER B I P O W ER A P P S IN SIGH T S
P O W ER B I ( F L USSI DI ( F L USSI DI ( F L USSI DI A N A LY SIS
C O N N ET TO RE EXC EL ( SET DI DAT I) DAT I) DAT I) DAT I) SERVIC ES
Marketo
(Beta)
di Microsoft
MarkLogic
di MarkLogic
MariaDB
Di MariaDB
C USTO M ER
P O W ER B I P O W ER A P P S IN SIGH T S
P O W ER B I ( F L USSI DI ( F L USSI DI ( F L USSI DI A N A LY SIS
C O N N ET TO RE EXC EL ( SET DI DAT I) DAT I) DAT I) DAT I) SERVIC ES
Microsoft
Azure
consumptio
n
Insights
(Beta)
(deprecato)
di Microsoft
Microsoft
Exchange
di Microsoft
Microsoft
Exchange
Online
di Microsoft
Microsoft
Graph
Security
(deprecato)
di Microsoft
MicroStrate
gy
for Power BI
di
MicroStrategy
Mixpanel
(Beta)
di Microsoft
C USTO M ER
P O W ER B I P O W ER A P P S IN SIGH T S
P O W ER B I ( F L USSI DI ( F L USSI DI ( F L USSI DI A N A LY SIS
C O N N ET TO RE EXC EL ( SET DI DAT I) DAT I) DAT I) DAT I) SERVIC ES
Database
MySQL
di Microsoft
O
C USTO M ER
P O W ER B I P O W ER A P P S IN SIGH T S
P O W ER B I ( F L USSI DI ( F L USSI DI ( F L USSI DI A N A LY SIS
C O N N ET TO RE EXC EL ( SET DI DAT I) DAT I) DAT I) DAT I) SERVIC ES
Feed OData
di Microsoft
ODBC
di Microsoft
OLE DB
di Microsoft
Database
Oracle
di Microsoft
P
C USTO M ER
P O W ER B I P O W ER A P P S IN SIGH T S
P O W ER B I ( F L USSI DI ( F L USSI DI ( F L USSI DI A N A LY SIS
C O N N ET TO RE EXC EL ( SET DI DAT I) DAT I) DAT I) DAT I) SERVIC ES
Parquet
di Microsoft
Palantir
Foundr y
di Palantir
Paxata
di Paxata
2 2 1
PDF
di Microsoft
Planview
Enterprise
One - CTM
(Beta)
Di Planview
Planview
Enterprise
One - PRM
(Beta)
Di Planview
Database
PostgreSQL
di Microsoft
C USTO M ER
P O W ER B I P O W ER A P P S IN SIGH T S
P O W ER B I ( F L USSI DI ( F L USSI DI ( F L USSI DI A N A LY SIS
C O N N ET TO RE EXC EL ( SET DI DAT I) DAT I) DAT I) DAT I) SERVIC ES
Flussi di
dati Power
BI
(Beta)
di Microsoft
Set di dati
Power BI
di Microsoft
Flussi di
dati
Power
Platform
di Microsoft
Product
Insights
(Beta)
di Microsoft
Projectplace
per Power
BI
(Beta)
Di Planview
Script
Python
di Microsoft
QubolePres
to Beta
di Qubole
Quickbooks
Online
(Beta)
di Microsoft
Quick Base
di Quick Base
R
C USTO M ER
P O W ER B I P O W ER A P P S IN SIGH T S
P O W ER B I ( F L USSI DI ( F L USSI DI ( F L USSI DI A N A LY SIS
C O N N ET TO RE EXC EL ( SET DI DAT I) DAT I) DAT I) DAT I) SERVIC ES
Script R
di Microsoft
Roamler
(Beta)
di Roamler
S
C USTO M ER
P O W ER B I P O W ER A P P S IN SIGH T S
P O W ER B I ( F L USSI DI ( F L USSI DI ( F L USSI DI A N A LY SIS
C O N N ET TO RE EXC EL ( SET DI DAT I) DAT I) DAT I) DAT I) SERVIC ES
Oggetti
Salesforce
di Microsoft
Repor t di
Salesforce
di Microsoft
SAP
Business
Ser ver
applicazioni
del
warehouse
di Microsoft
SAP
Business
Ser ver
messaggi
del
warehouse
di Microsoft
SAP HANA
database
di Microsoft
SIS-CC
SDMX
By SIS-CC
C USTO M ER
P O W ER B I P O W ER A P P S IN SIGH T S
P O W ER B I ( F L USSI DI ( F L USSI DI ( F L USSI DI A N A LY SIS
C O N N ET TO RE EXC EL ( SET DI DAT I) DAT I) DAT I) DAT I) SERVIC ES
SharePoint
car tella
di Microsoft
SharePoint
elenco
di Microsoft
SharePoint
Online
di Microsoft
Shor tcuts
Business
Insights
(Beta)
di Shortcuts
SiteImprove
di
SiteImprove
Smar tsheet
di Microsoft
Fiocco
di Microsoft
C USTO M ER
P O W ER B I P O W ER A P P S IN SIGH T S
P O W ER B I ( F L USSI DI ( F L USSI DI ( F L USSI DI A N A LY SIS
C O N N ET TO RE EXC EL ( SET DI DAT I) DAT I) DAT I) DAT I) SERVIC ES
SoftOneBI
(Beta)
Di SoftOne
Solver
di BI360
Spark
di Microsoft
SparkPost
(Beta)
di Microsoft
Spigit (Beta)
Di Spigit
Starburst
Enterprise
(Beta)
Di Starburst
Data
Database di
SQL Ser ver
Analysis
Ser vices
di Microsoft
C USTO M ER
P O W ER B I P O W ER A P P S IN SIGH T S
P O W ER B I ( F L USSI DI ( F L USSI DI ( F L USSI DI A N A LY SIS
C O N N ET TO RE EXC EL ( SET DI DAT I) DAT I) DAT I) DAT I) SERVIC ES
SumTotal
(Beta)
Per SumTotal
Sur veyMon
key (Beta)
di
SurveyMonke
y
SweetIQ
(beta)
di Microsoft
Database
Sybase
di Microsoft
T
C USTO M ER
P O W ER B I P O W ER A P P S IN SIGH T S
P O W ER B I ( F L USSI DI ( F L USSI DI ( F L USSI DI A N A LY SIS
C O N N ET TO RE EXC EL ( SET DI DAT I) DAT I) DAT I) DAT I) SERVIC ES
TeamDesk
(beta)
di ForeSoft
C USTO M ER
P O W ER B I P O W ER A P P S IN SIGH T S
P O W ER B I ( F L USSI DI ( F L USSI DI ( F L USSI DI A N A LY SIS
C O N N ET TO RE EXC EL ( SET DI DAT I) DAT I) DAT I) DAT I) SERVIC ES
Tenforce
(Smar t)List
di Tenforce
Database
Teradata
di Microsoft
Testo/CSV
di Microsoft
Dati
TIBCO(R)
Vir tualizzazi
one
(beta)
di TIBCO
Twilio (Beta)
di Microsoft
U
C USTO M ER
P O W ER B I P O W ER A P P S IN SIGH T S
P O W ER B I ( F L USSI DI ( F L USSI DI ( F L USSI DI A N A LY SIS
C O N N ET TO RE EXC EL ( SET DI DAT I) DAT I) DAT I) DAT I) SERVIC ES
Usercube
(Beta)
Per
utentecube
V
C USTO M ER
P O W ER B I P O W ER A P P S IN SIGH T S
P O W ER B I ( F L USSI DI ( F L USSI DI ( F L USSI DI A N A LY SIS
C O N N ET TO RE EXC EL ( SET DI DAT I) DAT I) DAT I) DAT I) SERVIC ES
Vena (beta)
di Vena
Ver tica
di Microsoft
Vessel
Insights
(Beta)
di Kongsberg
W
C USTO M ER
P O W ER B I P O W ER A P P S IN SIGH T S
P O W ER B I ( F L USSI DI ( F L USSI DI ( F L USSI DI A N A LY SIS
C O N N ET TO RE EXC EL ( SET DI DAT I) DAT I) DAT I) DAT I) SERVIC ES
Web
di Microsoft
C USTO M ER
P O W ER B I P O W ER A P P S IN SIGH T S
P O W ER B I ( F L USSI DI ( F L USSI DI ( F L USSI DI A N A LY SIS
C O N N ET TO RE EXC EL ( SET DI DAT I) DAT I) DAT I) DAT I) SERVIC ES
Webtrends
Analytics
(Beta)
di Microsoft
Witivio
(Beta)
di Witivio
Workforce
Dimensions
(Beta)
(deprecato)
di Kronos
Workplace
Analytics
(Beta)
di Microsoft
X
C USTO M ER
P O W ER B I P O W ER A P P S IN SIGH T S
P O W ER B I ( F L USSI DI ( F L USSI DI ( F L USSI DI A N A LY SIS
C O N N ET TO RE EXC EL ( SET DI DAT I) DAT I) DAT I) DAT I) SERVIC ES
XML
di Microsoft
Z
C USTO M ER
P O W ER B I P O W ER A P P S IN SIGH T S
P O W ER B I ( F L USSI DI ( F L USSI DI ( F L USSI DI A N A LY SIS
C O N N ET TO RE EXC EL ( SET DI DAT I) DAT I) DAT I) DAT I) SERVIC ES
Zendesk
(Beta)
di Microsoft
Zoho
Creater
(Beta)
di Zoho
Zucchetti
HR
Infinity
(Beta)
di Zucchetti
Passaggi successivi
Origini dati di Power BI (set di dati)
Connettersi a origini dati per i flussi di dati di Power BI
Origini dati disponibili (Dynamics 365 Customer Insights)
Origini dati supportate in Azure Analysis Services
Database di Access
07/12/2021 • 2 minutes to read
Riepilogo
EL EM EN TO DESC RIZ IO N E
NOTE
Alcune funzionalità possono essere presenti in un prodotto, ma non in altre a causa di pianificazioni della distribuzione e
funzionalità specifiche dell'host.
Prerequisiti
Se ci si connette a un database di Access da Power Query Online, nel sistema che contiene il gateway dati locale
deve essere installata la versione a 64 bit del provider OLEDB di Access motore di database 2010.
Se si carica un database di Access in Power BI Desktop, le versioni del provider OLEDB di Access motore di
database 2010 e del Power BI Desktop in tale computer devono corrispondere, ovvero a 32 bit o a 64 bit. Per
altre informazioni, vedere Importare un database di Access Power BI Desktop.
Funzionalità supportate
Importa
NOTE
È necessario selezionare un gateway dati locale per questo connettore, indipendentemente dal fatto che il
database di Access si trova nella rete locale o in un sito Web.
Riepilogo
EL EM EN TO DESC RIZ IO N E
Prerequisiti
Prima di poter accedere ad Adobe Analytics, è necessario avere un account Adobe Analytics (nome
utente/password).
Funzionalità supportate
Importa
4. Nella finestra di Adobe Analytics visualizzata specificare le credenziali per accedere all'account Adobe
Analytics. È possibile specificare un nome utente ,che in genere è un indirizzo di posta elettronica, oppure
selezionare Continua con Google o Continua con Facebook .
Se è stato immesso un indirizzo di posta elettronica, selezionare Continua.
5. Immettere la password di Adobe Analytics e selezionare Continua.
6. Dopo aver eseguito l'accesso, selezionare Connessione .
Dopo aver stabilito la connessione, è possibile visualizzare in anteprima e selezionare più dimensioni e misure
all'interno della finestra di dialogo Strumento di navigazione per creare un singolo output tabulare.
È anche possibile specificare qualsiasi parametro di input facoltativo necessario per gli elementi selezionati. Per
altre informazioni su questi parametri, vedere Parametri di input facoltativi.
È possibile caricare la tabella selezionata, che porta l'intera tabella in Power BI Desktop, oppure è possibile
selezionare Trasforma dati per modificare la query, che apre editor di Power Query. È quindi possibile filtrare e
perfezionare il set di dati da usare e quindi caricare il set di dati perfezionato in Power BI Desktop.
Top — consente di filtrare i dati in base agli elementi principali per la dimensione. È possibile immettere
un valore nella casella di testo In alto oppure selezionare i puntini di sospensione accanto alla casella di
testo per selezionare alcuni valori predefiniti. Per impostazione predefinita, vengono selezionati tutti gli
elementi.
La — dimensione filtra i dati in base alla dimensione selezionata. Tutte le dimensioni sono selezionate per
impostazione predefinita. I filtri delle dimensioni Adobe personalizzati non sono attualmente supportati
nell'interfaccia utente di Power Query, ma possono essere definiti manualmente come parametri M nella
query. Per altre informazioni, vedere Uso dei parametri di query in Power BI Desktop.
Limitazioni e problemi
È necessario tenere presenti le limitazioni e i problemi seguenti associati all'accesso ai dati di Adobe Analytics.
Adobe Analytics ha un limite predefinito di 50.000 righe restituite per ogni chiamata API.
Se il numero di chiamate API supera quattro al secondo, verrà generato un avviso. Se il numero supera
cinque al secondo, verrà restituito un messaggio di errore. Per altre informazioni su questi limiti e sui
messaggi associati, vedere Codici di errore dei servizi Web.
Il timeout della richiesta API adobe.io è attualmente di 60 secondi.
Il limite di frequenza predefinito per un'azienda Adobe Analytics è 120 richieste al minuto per utente (il
limite viene applicato come 12 richieste ogni 6 secondi).
L'importazione da Adobe Analytics verrà interrotta e verrà visualizzato un messaggio di errore ogni volta che il
connettore Adobe Analytics raggiunge uno dei limiti dell'API elencati in precedenza.
Quando si accede ai dati usando il connettore Adobe Analytics, seguire le linee guida fornite nell'intestazione
Procedure consigliate.
Per altre linee guida sull'accesso ai dati di Adobe Analytics, vedere Linee guida per l'utilizzo consigliate.
Passaggi successivi
È anche possibile trovare utili le informazioni di Adobe Analytics seguenti:
API di Adobe Analytics 1.4
API di creazione report di Adobe Analytics
Metriche
Elementi
Segmenti
GetReportSuites
Supporto di Adobe Analytics
Amazon Athena
07/12/2021 • 2 minutes to read
NOTE
L'articolo seguente sul connettore è fornito da Amazon, il proprietario di questo connettore e un membro del programma
di certificazione microsoft Power Query Connector. In caso di domande sul contenuto di questo articolo o di modifiche da
apportare a questo articolo, visitare il sito Web Amazon e usare i canali di supporto.
Riepilogo
EL EM EN TO DESC RIZ IO N E
Prerequisiti
Un account Amazon Web Services (AWS)
Autorizzazioni per l'uso di Athena
I clienti devono installare il driver ODBC di Amazon Athena prima di usare il connettore
Funzionalità supportate
Comando Importa
DirectQuery
6. Selezionare OK .
7. Quando viene richiesto di configurare l'autenticazione dell'origine dati, selezionare Usa configurazione
origine dati o Autenticazione AAD. Immettere le informazioni di accesso necessarie. Selezionare
Connetti .
Il catalogo dati, i database e le tabelle vengono visualizzati nella finestra di dialogo Strumento di
navigazione.
8. Nel riquadro Opzioni di visualizzazione selezionare la casella di controllo per il set di dati che si vuole
usare.
9. Se si vuole trasformare il set di dati prima di importarlo, passare alla parte inferiore della finestra di
dialogo e selezionare Trasforma dati. Questa selezione apre il editor di Power Query in modo che sia
possibile filtrare e perfezionare il set di dati che si vuole usare.
10. In caso contrario, selezionare Carica . Al termine del caricamento, è possibile creare visualizzazioni simili
a quella nell'immagine seguente. Se è stato selezionato DirectQuer y, Power BI esegue una query ad
Athena per la visualizzazione richiesta.
Amazon Redshift
07/12/2021 • 4 minutes to read
Riepilogo
EL EM EN TO DESC RIZ IO N E
NOTE
Alcune funzionalità possono essere presenti in un prodotto, ma non in altre a causa di pianificazioni della distribuzione e
funzionalità specifiche dell'host.
Prerequisiti
Un account Amazon Web Services (AWS)
Funzionalità supportate
Importa
DirectQuery (solo Power BI Desktop)
Advanced Options
Ruoli
Dimensioni dei batch
Dopo aver abilitato l'Azure AD SSO per tutte le origini dati, abilitare l'accesso SSO Azure AD per Amazon
Redshift:
3. Abilitare anche l'opzione SSO di Redshift.
4. Selezionare Gestisci gateway nell'elenco delle impostazioni.
NOTE
L'articolo sul connettore seguente viene fornito da Anaplan, il proprietario del connettore e membro del programma di
certificazione microsoft Power Query Connector. In caso di domande sul contenuto di questo articolo o di modifiche da
apportare a questo articolo, visitare il sito Web Di Anaplan e usare i canali di supporto.
Riepilogo
EL EM EN TO DESC RIZ IO N E
Funzionalità supportate
Il connettore viene eseguito tramite le API di integrazione dati pubbliche di Anaplan e consente di caricare tutti i
modelli Anaplan (oltre a quelli archiviati) e le azioni di esportazione salvate in Power BI.
Power Query'espressione
Se si verifica un errore Power Query'espressione, selezionare Aggiorna anteprima per aggiornare i dati.
NOTE
L'articolo seguente sul connettore è fornito da Autodesk, il proprietario di questo connettore e un membro del
programma di certificazione microsoft Power Query Connector. In caso di domande relative al contenuto di questo
articolo o in caso di modifiche da apportare a questo articolo, visitare il sito Web Autodesk e usare i canali di supporto.
Riepilogo
EL EM EN TO DESC RIZ IO N E
Stato di rilascio GA
Prerequisiti
Per usare il connettore Assemble Views, è necessario avere un account Autodesk con un nome utente e una
password ed essere un membro di almeno un progetto in Assemble.
È anche necessaria almeno una vista associata al progetto Assemble.
Funzionalità supportate
Importa
a. Deselezionare Usa il nome della colonna originale come prefisso e selezionare OK per ogni query
di dati della vista selezionata.
b. Selezionare Chiudi & Applica per caricare i set di dati.
6. (Facoltativo) Se si è scelto di caricare le immagini, è necessario aggiornare la categoria Dati per il
campo dell'immagine.
a. Espandere la tabella [Your Project] View Thumbnails (Visualizza anteprime) e quindi
selezionare il campo Image (Immagine). Questa selezione apre la scheda Strumenti colonna.
b. Aprire l'elenco a discesa Categoria di dati e selezionare URL immagine. È ora possibile trascinare e
rilasciare il campo Immagine negli oggetti visivi del report.
Limitazioni e problemi noti
Le viste con più di 100.000 righe potrebbero non essere caricate a seconda del numero di campi inclusi
nella vista. Per evitare questa limitazione, è consigliabile suddividere le viste di grandi dimensioni in più
viste più piccole e aggiungere le query nel report o creare relazioni nel modello di dati.
La funzionalità delle immagini di visualizzazione supporta attualmente solo immagini con dimensioni
di anteprima a causa di una limitazione delle dimensioni delle righe in Power BI.
Automy Data Analytics (Beta)
07/12/2021 • 2 minutes to read
NOTE
L'articolo seguente sul connettore è fornito da ACEROYALTY, il proprietario del connettore e un membro del programma
di certificazione microsoft Power Query Connector. In caso di domande sul contenuto di questo articolo o di modifiche da
apportare a questo articolo, visitare il sito Web ACEROYALTY e usare i canali di supporto.
Riepilogo
EL EM EN TO DESC RIZ IO N E
Prerequisiti
Prima di poter accedere ad Automy Data Analytics, è necessario disporre di un token di report automy.
Funzionalità supportate
Importa
5. Nella finestra di dialogo Strumento di navigazione selezionare le tabelle Automy desiderate. È quindi
possibile caricare o trasformare i dati.
Se si selezionano le funzioni, assicurarsi di selezionare Trasforma dati per poter aggiungere parametri
alle funzioni selezionate. Altre informazioni: Uso dei parametri
Limitazioni e problemi
Gli utenti devono essere a conoscenza delle limitazioni e dei problemi seguenti associati all'accesso ai dati di
Analisi dei dati di Automy.
Automy Data Analytics ha un limite predefinito di 100.000 righe restituite per ogni connessione.
Il limite di frequenza predefinito per un'azienda di analisi dei dati automy è di 120 richieste al minuto per
utente.
L'importazione da Automy Data Analytics verrà interrotta e verrà visualizzato un messaggio di errore ogni volta
che il connettore Automy Data Analytics raggiunge uno dei limiti elencati in precedenza.
Per altre linee guida sull'accesso ad Automy Data Analytics, contattare support@automy.global .
Errore delle credenziali nello strumento di navigazione
Se si verifica un errore di credenziale nello Strumento di navigazione, cancellare le impostazioni recenti
dell'origine dati.
1. In Power BI Desktop selezionare File > Data source settings (Impostazioni origine dati file).
Riepilogo
EL EM EN TO DESC RIZ IO N E
NOTE
La versione del connettore azure Cosmos DB V2 è stata posticipata. È consigliabile continuare a usare il connettore Azure
Cosmos DB V1.
Prerequisiti
Un account azure Cosmos DB
Funzionalità supportate
Comando Importa
DirectQuery
NOTE
Per configurare correttamente la modalità di importazione, è necessario che entrambe le opzioni
avanzate Passdown avanzato e Modalità PBI siano impostate su 0. Altre informazioni: Connessione
opzioni avanzate
Per set di dati più grandi, scegliere DirectQuer y. In modalità DirectQuery non viene scaricato
alcun dato nella workstation. Durante la creazione o l'interazione con una visualizzazione,
Microsoft Power BI interagisce con Cosmos DB per eseguire query in modo dinamico sull'origine
dati sottostante in modo da visualizzare sempre i dati correnti. Altre informazioni: Usare
DirectQuery in Power BI Desktop
NOTE
Per configurare correttamente la modalità DirectQuer y, è necessario che entrambe le opzioni avanzate
Passdown avanzato e Modalità PBI siano impostate su 1. Altre informazioni: Connessione opzioni
avanzate
6. Selezionare OK .
7. Quando viene richiesto di configurare l'autenticazione dell'origine dati, immettere la chiave dell'account.
Selezionare Connetti .
Il catalogo dati, i database e le tabelle vengono visualizzati nella finestra di dialogo Strumento di
navigazione.
8. Nel riquadro Opzioni di visualizzazione selezionare la casella di controllo per il set di dati che si vuole
usare.
9. Se si vuole trasformare il set di dati prima di importarlo, passare alla parte inferiore della finestra di
dialogo e selezionare Trasforma dati. Questa selezione apre l'editor Power Query in modo che sia
possibile filtrare e perfezionare il set di dati da usare. È anche possibile ottimizzare le opzioni del
connettore modificando gli argomenti passati.
10. In caso contrario, selezionare Carica . Al termine del caricamento, è possibile creare visualizzazioni. Se è
stato selezionato DirectQuer y, Power BI esegue una query Cosmos database per la visualizzazione
richiesta.
Flag che indica se lo schema della raccolta viene dichiarato in Altre informazioni: Schema in un documento
modo esplicito come documento
Nome del database contenente il documento dello schema, Altre informazioni: Schema in un documento
se specificato in modo esplicito
Nome della raccolta contenente il documento dello schema, Altre informazioni: Schema in un documento
se specificato in modo esplicito
Nome della proprietà JSON da usare nella ricerca del Altre informazioni: Schema in un documento
documento dello schema
Valore della proprietà JSON da usare nella ricerca del Altre informazioni: Schema in un documento
documento dello schema
Nome della proprietà JSON nel documento dello schema Altre informazioni: Schema in un documento
contenente lo schema della raccolta
Flag che indica se deve essere generato un errore se si tenta Rileva se la raccolta di destinazione ha un indice composto
di ordinare più colonne rispetto al limite dell'indice corrispondente alla sequenza ordinata di colonne. Il valore
composito predefinito è 1 (true).
Flag per indicare se l'esperienza di assistive experience deve Quando si rileva un errore nelle opzioni schema in un
essere inserita se non sono definiti indici compositi ottimali documento, richiedere se il codice JSON della definizione
per il passdown di ordinamento dell'indice composito verrà copiato negli Appunti. Il
contenuto degli Appunti può quindi essere incollato nella
definizione dell'indice composito nel portale Cosmos
DATABASE. Usare questa opzione nella fase di sviluppo. Il
valore predefinito è 0 (false).
Flag per indicare se tutti i campi nella clausola di Indica se tutti i campi nella clausola di ordinamento devono
ordinamento devono essere passati essere passati. In caso contrario, solo il campo ordinato in
base a in un report Power BI o il primo campo specificato in
M verrà passato come ottimizzazione. L'ordinamento
dipende dagli indici compositi definiti per la raccolta.
Attualmente i Cosmos database di database hanno un
massimo di otto indici compositi che possono essere definiti.
Il valore predefinito è 0 (false).
Versione dell'API Rest Imposta la versione dell'API REST da usare. I possibili valori
sono 2015-12-16 o 2018-12-31 . Il valore predefinito è
2018-12-31 . Questo valore può essere impostato solo in
una query avanzata.
Schema in un documento
NOTE
Attualmente, questa sezione contiene informazioni preliminari. Verranno aggiunte altre informazioni prima del rilascio
ufficiale del connettore.
Flag che indica se lo schema della raccolta viene dichiarato in modo esplicito come documento (valore
predefinito 0, ovvero nessun schema come documento)
Nome del database contenente il documento dello schema, se specificato in modo esplicito
Nome della raccolta contenente il documento dello schema, se specificato in modo esplicito
Nome della proprietà JSON da usare nella ricerca del documento dello schema
Valore della proprietà JSON da usare nella ricerca del documento dello schema
Nome della proprietà JSON nel documento dello schema contenente lo schema della raccolta
Limitazioni
I report devono essere filtrati in base alle chiavi di partizione definite nel contenitore Cosmos database
sottostante.
Se è necessario eseguire l'ordinamento in base a più colonne ( ), è necessario considerare che l'ordinamento
verrà delegato Cosmos DB, che non ordina in base ai campi che non fanno parte degli indici
FULL_SORTING_ON="1" compositi.
Per facilitare la creazione degli indici compositi necessari, durante la progettazione del report in PBI Desktop,
è necessario che sia abilitata la modalità sviluppatore report ( ), che richiede di copiare negli Appunti il testo
JSON che potrebbe essere incollato nel portale di database di Cosmos quando si specifica l'indice composito
della raccolta di database REPORT_DEVELOPER_MODE_ON="1" Cosmos.
Problemi noti in modalità DirectQuery
I report con più di otto colonne non funzioneranno in modalità DirectQuery.
Le funzioni di aggregazione non vengono passate. L'effetto è SQL le espressioni Passing Down COUNT, SUM
e così via, avranno esito negativo e non visualizzano un numero.
Database SQL di Azure
07/12/2021 • 3 minutes to read
Riepilogo
EL EM EN TO DESC RIZ IO N E
Tipi di autenticazione supportati Windows (Power BI Desktop, Excel, Power Query Online con
gateway)
Database (Power BI Desktop, Excel)
Account Microsoft (tutti)
Basic (Power Query Online)
NOTE
Alcune funzionalità possono essere presenti in un prodotto, ma non in altre a causa di pianificazioni della distribuzione e
funzionalità specifiche dell'host.
Prerequisiti
Per impostazione predefinita, Power BI un driver di OLE DB per il database SQL Azure. Tuttavia, per prestazioni
ottimali, è consigliabile che il cliente installi il SQL Server Native Client prima di usare il connettore di database
SQL Azure. SQL Server Native Client 11.0 e SQL Server Native Client 10.0 sono entrambi supportati nella
versione più recente.
Funzionalità supportate
Importa
DirectQuery (solo Power BI)
Advanced Options
Timeout del comando in minuti
Istruzione SQL nativa
Colonne di relazione
Esplora con gerarchia completa
SQL Server di failover
Connessione al database SQL Azure da Power Query Desktop
Per connettersi a un database SQL Azure da Power Query Desktop, seguire questa procedura:
1. Selezionare l'opzione SQL database di Azure nella selezione del connettore.
2. Nel SQL Ser ver database specificare il nome del server e del database (facoltativo).
Per altre informazioni sui metodi di autenticazione, vedere Autenticazione con un'origine dati.
NOTE
Se la connessione non è crittografata, verrà visualizzato il messaggio seguente.
Selezionare OK per connettersi al database usando una connessione non crittografata oppure seguire le
istruzioni in Abilitare le connessioni crittografate al motore di database per configurare connessioni
crittografate al database di Azure SQL.
7. In Strumento di spostamento selezionare le informazioni del database desiderate, quindi selezionare
Carica per caricare i dati o Trasforma dati per continuare a trasformare i dati in editor di Power Query.
Abilita il supporto per il failover di SQL Server Se selezionata, quando un nodo nel gruppo di failover di
Azure SQL non è disponibile, Power Query si sposta da tale
nodo a un altro quando si verifica il failover. Se l'opzione è
deselezionata, non si verifica alcun failover.
Dopo aver selezionato le opzioni avanzate necessarie, selezionare OK in Power Query Desktop o Avanti in
Power Query Online per connettersi al database di Azure SQL.
Riepilogo
EL EM EN TO DESC RIZ IO N E
Tipi di autenticazione supportati Windows (Power BI Desktop, Excel, servizio online con
gateway)
Database (Power BI Desktop, Excel)
Account Microsoft (tutti)
Basic (servizio online)
NOTE
Alcune funzionalità possono essere presenti in un prodotto, ma non in altre a causa di pianificazioni della distribuzione e
funzionalità specifiche dell'host.
Prerequisiti
Per impostazione predefinita, Power BI un driver OLE DB per Azure Synapse Analytics (SQL DW). Tuttavia, per
prestazioni ottimali, è consigliabile che il cliente installi il SQL Server Native Client prima di usare il connettore
Azure Synapse Analytics (SQL DW). SQL Server Native Client 11.0 e SQL Server Native Client 10.0 sono
entrambi supportati nella versione più recente.
Funzionalità supportate
Importa
DirectQuery (solo Power BI)
Advanced Options
Timeout del comando in minuti
Istruzione SQL nativa
Colonne di relazione
Esplora con gerarchia completa
SQL Server di failover
Connessione da Azure Synapse Analytics (SQL DW) da Power Query
Desktop
Per stabilire la connessione da Power Query Desktop:
1. Selezionare l'Azure Synapse Analytics (SQL DW) nella selezione del connettore.
2. Nella finestra SQL Ser ver database visualizzata specificare il nome del server e del database
(facoltativo). In questo esempio è TestAzureSQLServer il nome del server e è il database
AdventureWorks2012 .
Per altre informazioni sui metodi di autenticazione, vedere Autenticazione con un'origine dati.
NOTE
Se la connessione non è crittografata, verrà visualizzata la finestra di dialogo seguente.
Selezionare OK per connettersi al database usando una connessione non crittografata oppure seguire le
istruzioni in Abilitare le connessioni crittografate al motore di database per configurare connessioni
crittografate a Azure Synapse Analytics (SQL DW).
6. In Strumento di navigazione selezionare le informazioni del database desiderate, quindi selezionare
Carica per caricare i dati o Trasforma dati per continuare a trasformare i dati in editor di Power Query.
Abilita il supporto per il failover di SQL Server Se selezionata, quando un nodo nel gruppo di failover di
Azure SQL non è disponibile, Power Query si sposta da tale
nodo a un altro quando si verifica il failover. Se l'opzione è
deselezionata, non si verifica alcun failover.
Dopo aver selezionato le opzioni avanzate necessarie, selezionare OK in Power Query Desktop o Avanti in
Power Query Online per connettersi al database di Azure SQL.
Riepilogo
EL EM EN TO DESC RIZ IO N E
NOTE
Questo Azure Synapse Analytics dell'area di lavoro non sostituisce il connettore Azure Synapse Analytics (SQL DW).
Questo connettore rende più accessibile l'esplorazione dei dati nelle aree di lavoro di Synapse. Alcune funzionalità non
sono presenti in questo connettore, tra cui il supporto per le query native e DirectQuery.
NOTE
Questo connettore supporta l'accesso a tutti i dati nell'area di lavoro Synapse, incluse le tabelle Synapse Serverless,
Synapse su richiesta e Spark.
Prerequisiti
Prima di poter accedere alle aree di lavoro di Synapse, è necessario avere accesso a Azure Synapse Analytics
workspace.
Funzionalità supportate
Importa
NOTE
L'articolo seguente sul connettore viene fornito da Bloomberg, il proprietario del connettore e membro del programma di
certificazione microsoft Power Query Connector. In caso di domande relative al contenuto di questo articolo o di
modifiche che si desidera visualizzare, visitare il sito Web di Bloomberg e usare i canali di supporto.
Riepilogo
EL EM EN TO DESC RIZ IO N E
Prerequisiti
L'organizzazione deve sottoscrivere Bloomberg PORT Enterprise ed è necessario essere un utente di Bloomberg
Anywhere e avere un dispositivo di autenticazione biometrica Bloomberg (B-Unit).
Funzionalità supportate
Importa
Dopo aver stabilito la connessione, i dati saranno disponibili per l'anteprima in Strumento di navigazione.
È possibile caricare la tabella selezionata oppure selezionare Trasforma dati per modificare la query, che viene
aperta editor di Power Query. È quindi possibile filtrare e perfezionare il set di dati da usare e quindi caricare il
set di dati perfezionato in Power BI Desktop.
BQE Core (Beta)
07/12/2021 • 2 minutes to read
NOTE
L'articolo seguente sul connettore è fornito da BQE, il proprietario di questo connettore e un membro del programma di
certificazione microsoft Power Query Connector. In caso di domande sul contenuto di questo articolo o in caso di
modifiche che si desidera visualizzare, visitare il sito Web BQE e usare i canali di supporto.
Riepilogo
EL EM EN TO DESC RIZ IO N E
Prerequisiti
Per usare il connettore BQE Core Power BI, è necessario disporre di un account BQE Core con nome utente e
password.
Funzionalità supportate
Importa
4. Nella schermata di accesso immettere l'indirizzo di posta elettronica e la password core. Selezionare
Accedi .
5. Verrà quindi richiesto di selezionare il file aziendale core.
a. Selezionare il file aziendale core che si vuole usare.
b. (Facoltativo) Se si seleziona Memorizza il consenso, la volta successiva che ci si connette a questo
file aziendale core non sarà necessario concedere nuovamente l'autorizzazione.
c. Selezionare Concedi autorizzazione.
6. Selezionare Connessione e quindi selezionare un modulo. Per informazioni di riferimento, vedere le
informazioni di riferimento sulle API nella documentazione dell'API Core.
7. Nello Strumento di navigazione selezionare le tabelle da caricare e quindi selezionare Trasforma dati per
trasformare i dati in Power Query.
Dataverse
07/12/2021 • 6 minutes to read
Riepilogo
EL EM EN TO DESC RIZ IO N E
NOTE
Alcune funzionalità possono essere presenti in un prodotto, ma non in altre a causa di pianificazioni della distribuzione e
funzionalità specifiche dell'host.
Prerequisiti
È necessario disporre di un ambiente Dataverse con autorizzazioni di creazione per accedere al portale e
autorizzazioni di lettura per accedere ai dati all'interno delle tabelle.
Per usare il connettore Dataverse, è necessario che l'impostazione dell'endpoint TDS sia abilitata
nell'ambiente. Altre informazioni: Gestire le impostazioni delle funzionalità
Per usare il connettore Dataverse, le porte TCP 1433 e/o 5558 devono essere aperte per la connessione. Se è
abilitata solo la porta 5558, è necessario aggiungere tale numero di porta all'URL dell'ambiente Dataverse, ad
esempio yourenvironmentid.crm.dynamics.com:5558. Altre informazioni: SQL Server problema di connessione
a causa di porte chiuse
Funzionalità supportate
URL server
Avanzato
Riordinare le colonne
Aggiungere una colonna di visualizzazione
3. Se necessario, immettere un gateway dati locale se si usano dati locali. Ad esempio, se si desidera
combinare i dati di Dataverse e un database SQL Server locale.
4. Accedere all'account aziendale.
5. Dopo aver eseguito l'accesso, selezionare Avanti.
6. Nella pagina di spostamento selezionare i dati necessari e quindi selezionare Trasforma dati .
Limitazioni e problemi
Quando usare il connettore Common Data Service (legacy)
Dataverse è la sostituzione diretta del connettore Common Data Service. Tuttavia, in alcuni casi può essere
necessario scegliere il connettore Common Data Service (legacy) anziché il connettore Dataverse:
Se ci si connette ai dati usando Power Apps, sarà comunque necessario usare il connettore Common Data
Service (legacy).
Se si accede a set di dati di grandi dimensioni maggiori di 80 MB, sarà comunque necessario usare il
connettore Common Data Service (legacy).
Se si vuole eseguire il paging dei risultati della query e si vogliono compilare report che usano il tipo di dati
image, sarà comunque necessario usare il connettore Common Data Service (legacy).
Esistono anche alcuni tipi di dati TDS (Tabular Data Stream) supportati in OData quando si usa Common Data
Service (legacy) che non sono supportati in Dataverse. I tipi di dati supportati e non supportati sono elencati in
Differenze tra SQL dataverse e Transact-SQL (anteprima).
Tutte queste funzionalità verranno aggiunte al connettore Dataverse in futuro, in cui il connettore Common Data
Service (legacy) verrà deprecato.
Limiti relativi alle prestazioni e alla limitazione dei dati
Per informazioni sui limiti di prestazioni e limitazione per le connessioni Dataverse, vedere Limiti e allocazioni
delle richieste. Queste limitazioni si applicano sia al connettore Dataverse che al connettore feed OData quando
accedono allo stesso endpoint.
Frequenza di recupero delle tabelle
Come linea guida, la maggior parte delle tabelle predefinite verrà recuperata a una velocità di circa 500 righe al
secondo usando il connettore Dataverse. Prendere in considerazione questa frequenza quando si decide se
connettersi a Dataverse o esportare in data lake. Se sono necessarie velocità di recupero più veloci, è
consigliabile usare la funzionalità Esporta in data lake o l'endpoint TDS (Tabular Data Stream). Per altre
informazioni, vedere Connessioni alternative dataverse.
Connessioni dataverse alternative
Esistono diversi modi alternativi per estrarre e migrare i dati da Dataverse:
Usare il connettore OData per spostare i dati da e verso Dataverse. Per altre informazioni su come
eseguire la migrazione dei dati tra ambienti Dataverse usando il connettore OData dei flussi di dati,
vedere Eseguire la migrazione dei dati tra ambienti Dataverse usando il connettore OData dei flussi di
dati.
Usare la funzionalità Espor ta in data lake in Power Apps per estrarre dati da Dataverse in Azure Data
Lake Archiviazione, che può quindi essere usata per eseguire analisi. Per altre informazioni
sull'esportazione in data lake, vedere Esportazione di dati in Azure Data Lake è disponibile a livello
generale.
Usare l'endpoint del protocollo TDS (Tabular Data Stream) per accedere ai dati di sola lettura in Dataverse.
Per altre informazioni su questa funzionalità di anteprima e un video sul funzionamento, vedere Endpoint
del protocollo TDS (Tabular Data Stream) per Dataverse.
NOTE
Sia il connettore Dataverse che le API OData sono pensati per gestire scenari analitici in cui i volumi di dati sono
relativamente piccoli. L'approccio consigliato per l'estrazione bulk dei dati è "Esporta in Data Lake". L'endpoint TDS è
un'opzione migliore rispetto al connettore Dataverse e all'endpoint OData, ma è attualmente in anteprima.
Dopo aver definito un'origine del database, è possibile specificare una query nativa usando la funzione
Value.NativeQuery.
myQuery = Value.NativeQuery(Source, [QUERY], null, [EnableFolding=true])
let
Source = CommonDataService.Database("[DATABASE]"),
myQuery = Value.NativeQuery(Source, "[QUERY]", null, [EnableFolding=true])
in
myQuery
Si noti che l'ortografia errata di un nome di colonna può comportare la visualizzazione di un messaggio di
errore sulla query in caso di folding anziché di colonna mancante.
Analizzare i dati in Azure Data Lake Archiviazione
Gen2 usando Power BI
07/12/2021 • 4 minutes to read
Questo articolo illustra come usare Power BI Desktop per analizzare e visualizzare i dati archiviati in un account
di archiviazione con uno spazio dei nomi gerarchico (Azure Data Lake Archiviazione Gen2).
Prerequisiti
Prima di iniziare questa esercitazione, sono necessari i prerequisiti seguenti:
Una sottoscrizione di Azure. Vedere Ottenere una versione di prova gratuita di Azure.
Account di archiviazione con uno spazio dei nomi gerarchico. Per crearne uno, seguire queste istruzioni.
Questo articolo presuppone che sia stato creato un account di archiviazione denominato myadlsg2 .
Per l'account di archiviazione viene concesso uno dei ruoli seguenti: Lettore dati BLOB, Collaboratore dati
BLOB o Proprietario dati BLOB.
Un file di dati di esempio denominato Drivers.txt che si trova nell'account di archiviazione. È possibile
scaricare questo esempio dal repository Git di Azure Data Lakee quindi caricare il file nell'account di
archiviazione.
Power BI Desktop . È possibile scaricare questo elemento dall' Area download Microsoft.
È anche possibile scegliere se usare la visualizzazione file system o la visualizzazione Common Data
Model cartella.
Selezionare OK per continuare.
5. Se è la prima volta che si usa questo indirizzo URL, verrà chiesto di selezionare il metodo di
autenticazione.
Se si seleziona il metodo dell'account aziendale, selezionare Accedi per accedere all'account di
archiviazione. Si verrà reindirizzati alla pagina di accesso dell'organizzazione. Seguire le istruzioni per
accedere all'account. Dopo aver eseguito l'accesso, selezionare Connetti .
Se si seleziona il metodo Chiave account, immettere la chiave dell'account e quindi selezionare
Connessione .
6. La finestra di dialogo successiva mostra tutti i file sotto l'URL specificato nel passaggio 4 precedente,
incluso il file caricato nell'account di archiviazione. Verificare le informazioni e quindi selezionare Carica .
7. Dopo aver caricato correttamente i dati in Power BI, nella scheda Campi verranno visualizzati i campi
seguenti.
Tuttavia, per visualizzare e analizzare i dati, è preferibile che i dati siano disponibili usando i campi
seguenti.
Nei passaggi successivi si aggiornerà la query per convertire i dati importati nel formato desiderato.
8. Nella scheda Home della barra multifunzione selezionare Modifica quer y .
9. Nella colonna Editor di quer y selezionare Binario nella colonna Contenuto . Il file verrà rilevato
automaticamente come CSV e verrà visualizzato un output come illustrato di seguito. I dati ora sono
disponibili in un formato che può essere usato per creare visualizzazioni.
10. Nella scheda Home della barra multifunzione selezionare Chiudi & Applica .
11. Dopo l'aggiornamento della query, la scheda Campi contiene i nuovi campi disponibili per la
visualizzazione.
12. È ora possibile creare un grafico a torta per rappresentare i driver in ogni città per un determinato paese.
Per eseguire questa operazione, effettuare le selezioni seguenti.
Nella scheda Visualizzazioni selezionare il simbolo per un grafico a torta.
In questo esempio le colonne da usare sono Column 4 (nome della città) e Column 7 (nome del paese).
Trascinare queste colonne dalla scheda Campi alla scheda Visualizzazioni, come illustrato di seguito.
14. Il grafico a torta viene automaticamente aggiornato in modo da visualizzare i conducenti delle città del
Brasile.
15. Scegliere Salva dal menu File per salvare la visualizzazione come Power BI Desktop file.
Riepilogo
EL EM EN TO DESC RIZ IO N E
NOTE
Alcune funzionalità possono essere presenti in un prodotto, ma non in altre a causa di pianificazioni della distribuzione e
funzionalità specifiche dell'host.
Prerequisiti
È necessario disporre di un ambiente Dataverse con autorizzazioni di creazione per accedere al portale e
autorizzazioni di lettura per accedere ai dati all'interno delle tabelle.
Per usare il connettore Dataverse, è necessario che l'impostazione dell'endpoint TDS sia abilitata
nell'ambiente. Altre informazioni: Gestire le impostazioni delle funzionalità
Per usare il connettore Dataverse, le porte TCP 1433 e/o 5558 devono essere aperte per la connessione. Se è
abilitata solo la porta 5558, è necessario aggiungere tale numero di porta all'URL dell'ambiente Dataverse, ad
esempio yourenvironmentid.crm.dynamics.com:5558. Altre informazioni: SQL Server problema di connessione
a causa di porte chiuse
Funzionalità supportate
URL server
Avanzato
Riordinare le colonne
Aggiungere una colonna di visualizzazione
3. Se necessario, immettere un gateway dati locale se si usano dati locali. Ad esempio, se si desidera
combinare i dati di Dataverse e un database SQL Server locale.
4. Accedere all'account aziendale.
5. Dopo aver eseguito l'accesso, selezionare Avanti.
6. Nella pagina di spostamento selezionare i dati necessari e quindi selezionare Trasforma dati .
Limitazioni e problemi
Quando usare il connettore Common Data Service (legacy)
Dataverse è la sostituzione diretta del connettore Common Data Service. Tuttavia, in alcuni casi può essere
necessario scegliere il connettore Common Data Service (legacy) anziché il connettore Dataverse:
Se ci si connette ai dati usando Power Apps, sarà comunque necessario usare il connettore Common Data
Service (legacy).
Se si accede a set di dati di grandi dimensioni maggiori di 80 MB, sarà comunque necessario usare il
connettore Common Data Service (legacy).
Se si vuole eseguire il paging dei risultati della query e si vogliono compilare report che usano il tipo di dati
image, sarà comunque necessario usare il connettore Common Data Service (legacy).
Esistono anche alcuni tipi di dati TDS (Tabular Data Stream) supportati in OData quando si usa Common Data
Service (legacy) che non sono supportati in Dataverse. I tipi di dati supportati e non supportati sono elencati in
Differenze tra SQL dataverse e Transact-SQL (anteprima).
Tutte queste funzionalità verranno aggiunte al connettore Dataverse in futuro, in cui il connettore Common Data
Service (legacy) verrà deprecato.
Limiti relativi alle prestazioni e alla limitazione dei dati
Per informazioni sui limiti di prestazioni e limitazione per le connessioni Dataverse, vedere Limiti e allocazioni
delle richieste. Queste limitazioni si applicano sia al connettore Dataverse che al connettore feed OData quando
accedono allo stesso endpoint.
Frequenza di recupero delle tabelle
Come linea guida, la maggior parte delle tabelle predefinite verrà recuperata a una velocità di circa 500 righe al
secondo usando il connettore Dataverse. Prendere in considerazione questa frequenza quando si decide se
connettersi a Dataverse o esportare in data lake. Se sono necessarie velocità di recupero più veloci, è
consigliabile usare la funzionalità Esporta in data lake o l'endpoint TDS (Tabular Data Stream). Per altre
informazioni, vedere Connessioni alternative dataverse.
Connessioni dataverse alternative
Esistono diversi modi alternativi per estrarre e migrare i dati da Dataverse:
Usare il connettore OData per spostare i dati da e verso Dataverse. Per altre informazioni su come
eseguire la migrazione dei dati tra ambienti Dataverse usando il connettore OData dei flussi di dati,
vedere Eseguire la migrazione dei dati tra ambienti Dataverse usando il connettore OData dei flussi di
dati.
Usare la funzionalità Espor ta in data lake in Power Apps per estrarre dati da Dataverse in Azure Data
Lake Archiviazione, che può quindi essere usata per eseguire analisi. Per altre informazioni
sull'esportazione in data lake, vedere Esportazione di dati in Azure Data Lake è disponibile a livello
generale.
Usare l'endpoint del protocollo TDS (Tabular Data Stream) per accedere ai dati di sola lettura in Dataverse.
Per altre informazioni su questa funzionalità di anteprima e un video sul funzionamento, vedere Endpoint
del protocollo TDS (Tabular Data Stream) per Dataverse.
NOTE
Sia il connettore Dataverse che le API OData sono pensati per gestire scenari analitici in cui i volumi di dati sono
relativamente piccoli. L'approccio consigliato per l'estrazione bulk dei dati è "Esporta in Data Lake". L'endpoint TDS è
un'opzione migliore rispetto al connettore Dataverse e all'endpoint OData, ma è attualmente in anteprima.
Dopo aver definito un'origine del database, è possibile specificare una query nativa usando la funzione
Value.NativeQuery.
myQuery = Value.NativeQuery(Source, [QUERY], null, [EnableFolding=true])
let
Source = CommonDataService.Database("[DATABASE]"),
myQuery = Value.NativeQuery(Source, "[QUERY]", null, [EnableFolding=true])
in
myQuery
Si noti che l'ortografia errata di un nome di colonna può comportare la visualizzazione di un messaggio di
errore sulla query in caso di folding anziché di colonna mancante.
Condivisione differenziale (Beta)
07/12/2021 • 2 minutes to read
NOTE
L'articolo seguente sul connettore è fornito da Databricks, il proprietario di questo connettore e un membro del
programma di certificazione microsoft Power Query Connector. In caso di domande sul contenuto di questo articolo o in
caso di modifiche che si desidera visualizzare, visitare il sito Web di Databricks e usare i canali di supporto.
Riepilogo
EL EM EN TO DESC RIZ IO N E
Prerequisiti
Se si usa Power BI Desktop è necessario installare la versione di novembre di Power BI Desktop o versione
successiva. Scaricare la versione più recente .
Il provider di dati invia un URL di attivazione da cui è possibile scaricare un file di credenziali che concede
l'accesso ai dati condivisi.
Dopo aver scaricato il file delle credenziali, aprirlo con un editor di testo per recuperare l'URL dell'endpoint e il
token.
Per informazioni dettagliate sulla condivisione differenziale, vedere Accedere ai dati condivisi con l'utente
usando la condivisione differenziale.
Funzionalità supportate
Importa
Limitazioni e considerazioni
Questa sezione descrive eventuali limitazioni o considerazioni relative al connettore delta sharing.
È necessario assicurarsi che i dati caricati con il connettore Delta Sharing si adattino alla memoria del computer.
A tale scopo, il connettore limita il numero di righe importate al limite di righe impostato dall'utente.
EQuis (beta)
07/12/2021 • 2 minutes to read
NOTE
L'articolo sul connettore seguente viene fornito da EarthSoft, il proprietario del connettore e membro del programma di
certificazione microsoft Power Query Connector. In caso di domande sul contenuto di questo articolo o di modifiche che si
desidera visualizzare, visitare il sito Web di EarthSoft e usare i canali di supporto.
Riepilogo
EL EM EN TO DESC RIZ IO N E
Prerequisiti
Per usare il connettore EQuIS, è necessario avere un account utente valido in un sito EQuIS Enterprise (versione
7.0.0.19300 o successiva) che include una licenza API REST. L'account utente deve essere membro del ruolo API
REST. Per verificare la configurazione dell'account utente, passare alla scheda Ruoli nel profilo utente e
verificare di essere membri del ruolo API REST.
Funzionalità supportate
Importa
Informazioni aggiuntive
Per prestazioni e funzionalità ottimali, EarthSoft consiglia di usare il connettore EQuIS con la build più
recente di EQuIS Enterprise.
Quando si usano report in un gruppo di strutture, gli utenti non amministratori devono disporre
dell'autorizzazione per tutte le strutture contenute nel gruppo di strutture.
Nello strumento di navigazione saranno disponibili solo i report "griglia".
Tutti i set di dati utilizzati dal connettore EQuIS useranno camelCase per i nomi di colonna.
La versione corrente del connettore EQuIS recupererà un set di dati in una singola richiesta ed è limitata a
1.048.576 righe in un singolo set di dati (questa limitazione potrebbe essere rimossa in una versione futura
del connettore).
Essbase
07/12/2021 • 17 minutes to read
Riepilogo
EL EM EN TO DESC RIZ IO N E
Prerequisiti
Nessuno
Funzionalità supportate
Importa
DirectQuery
Advanced Options
Timeout del comando in minuti
Server
Applicazione
Istruzione MDX
L'ultima parte dell'URL, ovvero /aps/XML A, fa distinzione tra maiuscole e minuscole e deve
essere specificata esattamente come illustrato.
Di seguito sono riportati alcuni URL di esempio:
http://apsserver.company.com:19000/aps/XMLA —Uso del nome host completo con la porta predefinita
19000.
http://hypserver01:13080/aps/XMLA—Uso di un nome host non completo e della porta 13080.
http://10.10.10.10/aps/XMLA —L'uso di un indirizzo IP e della porta 80 – è stato modificato rispetto al
valore predefinito 19000.
3. Selezionare la modalità di connettività dei dati Impor ta o DirectQuer y. Altre informazioni: Usare
DirectQuery in Power BI Desktop
Facoltativamente, immettere i valori nelle opzioni avanzate che si desidera utilizzare per modificare la
query di connessione. Altre informazioni: Usare Connessione opzioni avanzate
4. La prima volta che ci si connette a un'origine dati (identificata da ogni URL univoco), verrà richiesto di
immettere le credenziali dell'account. Immettere il nome utente e la password per la connessione.
Altre informazioni: Autenticazione con un'origine dati
5. In Strumento di navigazione selezionare i dati necessari. Selezionare quindi Trasforma dati per
trasformare i dati in editor di Power Query o Carica per caricare i dati in Power BI.
Connessione le opzioni avanzate
Power Query fornisce un set di opzioni avanzate che è possibile aggiungere alla query, se necessario. Nella
tabella seguente sono elencate tutte le opzioni avanzate che è possibile impostare in Power Query.
Server Nome del server in cui deve essere eseguita l'istruzione MDX
facoltativa. Questo valore fa distinzione tra maiuscole e
minuscole.
Tenere presente che questo aspetto è una decisione stilistica e che non esistono differenze nei dati. I livelli nello
strumento Power Query navigazione corrispondono al livello gerarchico.
Nell'esempio precedente, il livello 1 contiene "R_ReportingUnits", "Input entità di rettifica" e "No_Entity". Il livello
2 contiene "R_Americas", "R_EMEA", "R_AsiaPacific", "1_ReportingUnits_Adjustment", "CALA_HFM_Input",
"CALA_Total" e così via.
Il motivo è che lo strumento di Power Query è limitato a 10.000 membri da visualizzare e possono essere
presenti milioni o miliardi di membri sotto una gerarchia. Anche nel caso di nessun limite di visualizzazione dei
membri (ad esempio con Power Query Online), la navigazione e la selezione di ogni singolo membro in un
formato albero con così tanti valori possibili diventa rapidamente noiosa e difficile da usare.
Pertanto, il raggruppamento dei livelli gerarchici semplifica la selezione degli elementi da importare e la
generazione di report successiva può usare i filtri solo per i membri che l'utente finale desidera.
Limitazioni note
Il connettore Essbase non supporta le gerarchie di misure. Tutte le misure vengono visualizzate allo stesso
livello. È comunque possibile selezionare tutte le misure necessarie. Il campo di ricerca può essere usato per
restringere le misure visualizzate se sono presenti un numero elevato di misure.
NOTE
Queste opzioni si applicano solo al file corrente su cui si sta lavorando. Le impostazioni correnti dell'opzione File
vengono salvate con il file e ripristinate all'apertura dello stesso file.
Applicazione di filtri iterativi quando si aggiungono livelli di
dimensione in modalità di importazione
Quando si interagisce in modalità di importazione con un'origine dati del cubo multidimensionale come Oracle
Essbase, Power Query visualizza inizialmente le misure, le dimensioni e i livelli delle dimensioni nella finestra di
dialogo Strumento di navigazione database. Tuttavia, Power BI consente di selezionare e visualizzare facilmente i
dati che possono, a volte, causare il recupero di una quantità troppo grande di dati dal server.
La procedura seguente illustra come ridurre le probabilità di recupero di più dati di quanto sia necessario
quando si importano dati in Power BI applicando in modo iterativo filtri ai membri della dimensione a ogni
livello.
Connessione all'origine dati Oracle Essbase
1. Seguire le istruzioni in Connessione a Essbase da Power Query Desktop per connettersi a un server
Essbase usando la modalità di importazione.
2. Espandere l'albero per eseguire il drill-down nel server, nell'applicazione e nel database desiderati fino a
quando non vengono espore le misure e le dimensioni per il database. Per il momento, selezionare le
misure e un solo livello di dimensione. Selezionare il livello di dimensione più importante. Nei passaggi
successivi il risultato verrà compilato aggiungendo in modo incrementale altri livelli di dimensioni.
2. Se si dispone di membri in base ai quale si vuole applicare un filtro nella dimensione iniziale, selezionare
il pulsante Proprietà colonna Pulsante Proprietà colonna per visualizzare l'elenco dei membri della
dimensione disponibili a questo livello. Selezionare solo i membri della dimensione necessari a
questo livello e quindi selezionare OK per applicare il filtro.
3. I dati risultanti vengono ora aggiornati con il filtro applicato. Passaggi applicati contiene ora un nuovo
passaggio (Righe filtrate ) per il filtro impostato. È possibile selezionare il pulsante Impostazioni per
modificare il filtro in un secondo momento.
4. A questo punto si aggiungerà un nuovo livello di dimensione. In questo caso, si aggiungerà il livello
successivo verso il basso per la stessa dimensione scelta inizialmente. Selezionare Aggiungi elementi
sulla barra multifunzione per visualizzare la finestra di dialogo Strumento di navigazione.
5. Passare alla stessa dimensione, ma questa volta selezionare il livello successivo sotto il primo livello.
Selezionare quindi OK per aggiungere il livello di dimensione al risultato.
6. La griglia dei risultati include ora i dati del nuovo livello di dimensione. Si noti che, poiché è stato
applicato un filtro al livello superiore, vengono restituiti solo i membri correlati nel secondo livello.
7. È ora possibile applicare un filtro alla dimensione di secondo livello come per il primo livello.
8. In questo modo, ogni passaggio successivo garantisce che dal server siano recuperati solo i membri e i
dati necessari.
9. Aggiungere ora un nuovo livello di dimensione ripetendo i passaggi precedenti. Selezionare di nuovo
Aggiungi elementi sulla barra multifunzione.
10. Passare al livello di dimensione desiderato, selezionarlo e quindi selezionare OK per aggiungere il livello
di dimensione al risultato.
11. Il nuovo livello di dimensione viene aggiunto al risultato.
2. Quando il livello di una dimensione è nel riquadro Filtro e il tipo di filtro è impostato su Filtro di base , si
noterà che i membri del livello della dimensione vengono visualizzati come elenco di filtri disponibili.
3. È possibile controllare i membri da includere nel risultato.
In caso contrario, è possibile selezionare l'opzione Seleziona tutto e quindi deselezionare i membri che
non si desidera includere nel risultato.
Digitare alcuni caratteri nel campo di ricerca per il filtro per trovare i membri nell'elenco.
4. Quando si dispone di filtri per due o più livelli della stessa dimensione, si noterà che la selezione di
membri da un livello superiore nella dimensione modifica i membri disponibili nei livelli inferiori di tale
dimensione.
Questo comportamento di evidenziazione/filtro incrociato può essere disabilitato selezionando l'opzione
Disabilita evidenziazione/filtro incrociato per impostazione predefinita, come descritto in Opzioni di
riduzione delle query.
5. Dopo aver scelto i membri desiderati nel filtro a livello di dimensione, è possibile aggiungere tale livello
di dimensione alla visualizzazione. Controllare il livello della dimensione corrispondente nel riquadro
Campi e quindi viene aggiunto alla visualizzazione corrente.
Per altre informazioni sull'aggiunta di filtri, vedere Aggiungere un filtro a un report in Power BI.
Riepilogo
EL EM EN TO DESC RIZ IO N E
NOTE
Alcune funzionalità possono essere presenti in un prodotto, ma non in altre a causa di pianificazioni della distribuzione e
funzionalità specifiche dell'host.
Prerequisiti
Per connettersi a una cartella di lavoro legacy ,ad esempio .xls o xlsb, è necessario il provider OLEDB (o ACE) di
Access motore di database. Per installare questo provider, passare alla pagina di download e installare la
versione pertinente (32 bit o 64 bit). Se non è installato, durante la connessione alle cartelle di lavoro legacy
verrà visualizzato l'errore seguente:
The 'Microsoft.ACE.OLEDB.12.0' provider is not registered on the local machine. The 32-bit (or 64-bit)
version of the Access Database Engine OLEDB provider may be required to read this type of file. To download
the client software, visit the following site: https://go.microsoft.com/fwlink/?LinkID=285987.
ACE non può essere installato negli ambienti del servizio cloud. Quindi, se viene visualizzato questo errore in un
host cloud (ad esempio Power Query Online), è necessario usare un gateway con ACE installato per connettersi
ai file Excel legacy.
Funzionalità supportate
Importa
Se la Excel cartella di lavoro è online, usare il connettore Web per connettersi alla cartella di lavoro.
3. In Strumento di spostamento selezionare le informazioni della cartella di lavoro desiderate, quindi
selezionare Carica per caricare i dati o Trasforma dati per continuare a trasformare i dati in editor di
Power Query.
Se il file ha un attributo dimensione che punta a una singola cella (ad esempio ), Power Query usa questo
attributo per trovare la riga e la colonna iniziale dei <dimension ref="A1" /> dati nel foglio.
Tuttavia, se il file ha un attributo di dimensione che punta a più celle (ad esempio ), Power Query usa questo
intervallo per trovare la riga e la colonna iniziale, nonché la riga e la colonna <dimension ref="A1:AJ45000"/>
finali. Se questo intervallo non contiene tutti i dati nel foglio, alcuni dei dati non verranno caricati.
Come correggere dimensioni non corrette
È possibile risolvere i problemi causati da dimensioni non corrette eseguendo una delle azioni seguenti:
Aprire e salvare nuovamente il documento in Excel. Questa azione sovrascriverà le dimensioni non
corrette archiviate nel file con il valore corretto.
Verificare che lo strumento che ha generato il file Excel sia fisso per generare correttamente le
dimensioni.
Aggiornare la query M per ignorare le dimensioni non corrette. A partire dalla versione di dicembre 2020
Power Query ora Excel.Workbook supporta InferSheetDimensions un'opzione . Se true, questa opzione fa
in modo che la funzione ignori le dimensioni archiviate nella cartella di lavoro e le determinerà invece
esaminando i dati.
Ecco un esempio di come fornire questa opzione:
Excel.Workbook(File.Contents("C:\MyExcelFile.xlsx"), [DelayTypes = true, InferSheetDimensions = true])
Fast Healthcare Interoperability Resources (FHIR ® ) è un nuovo standard per l'interoperabilità dei dati sanitari.
I dati sanitari sono rappresentati come risorse come , , e così via e un'API REST viene usata per eseguire query
sui dati sanitari serviti Patient Observation da un server Encounter FHIR. Il Power Query per FHIR può essere
usato per importare e modellare i dati da un server FHIR.
Se non si ha un server FHIR, è possibile effettuare il provisioning del API di Azure per FHIR.
Riepilogo
EL EM EN TO DESC RIZ IO N E
NOTE
Alcune funzionalità possono essere presenti in un prodotto, ma non in altre a causa di pianificazioni della distribuzione e
funzionalità specifiche dell'host.
Funzionalità supportate
Importa
Facoltativamente, è possibile immettere una query iniziale per il server FHIR, se si conoscono
esattamente i dati che si stanno cercando.
Selezionare OK per procedere.
4. Decidere lo schema di autenticazione.
Il connettore supporta "Anonymous" per i server FHIR senza controlli di accesso,ad esempio server di
test pubblici(ad esempio, o Azure Active Directory http://test.fhir.org/r4) autenticazione. Per informazioni
dettagliate, vedere Autenticazione del connettore FHIR.
5. Selezionare le risorse a cui si è interessati.
8. Creare dashboard con dati, ad esempio, creare un tracciato delle posizioni dei pazienti in base al codice
postale.
Connessione a un server FHIR da Power Query Online
Per stabilire una connessione a un server FHIR, seguire questa procedura:
1. In Power Quer y - Scegliere l'origine dati selezionare la categoria Altro e quindi FHIR.
NOTE
In alcuni casi, la definizione della query non può essere ottenuta esclusivamente tramite il data shaping con
l'interfaccia utente grafica (GUI), come illustrato nell'immagine precedente. Per altre informazioni sulla funzionalità
di folding della query quando si usa il connettore FHIR, vedere FHIR query folding (FHIR query folding).
Passaggi successivi
In questo articolo si è appreso come usare il connettore Power Query FHIR per accedere ai dati FHIR. Esplorare
quindi le funzionalità di autenticazione del connettore Power Query per FHIR.
Autenticazione del connettore FHIR
FHIR e l'icona FHIR Icon sono i marchi registrati di HL7 e vengono usati con ® l'autorizzazione di HL7.
L'uso del marchio FHIR non costituisce l'approvazione del prodotto da parte di HL7.
Autenticazione del connettore FHIR
07/12/2021 • 2 minutes to read
Questo articolo illustra l'accesso autenticato ai server FHIR usando il connettore Power Query per FHIR. Il
connettore supporta l'accesso anonimo ai server FHIR accessibili pubblicamente e l'accesso autenticato ai
server FHIR usando Azure Active Directory autenticazione. Il API di Azure per FHIR è protetto con Azure Active
Directory.
NOTE
Se ci si connette a un server FHIR da un servizio online, ad esempio Power BI, è possibile usare solo un account aziendale.
Accesso anonimo
Sono disponibili molti server FHIR accessibili pubblicamente. Per abilitare i test con questi server pubblici, il
connettore Power Query per FHIR supporta lo schema di autenticazione "Anonimo". Ad esempio, per accedere al
https://vonk.fire.ly server pubblico:
1. Immettere l'URL del server Vonk pubblico.
Passaggi successivi
In questo articolo si è appreso come usare il connettore Power Query per le funzionalità di autenticazione FHIR.
Esplorare quindi la funzione di folding delle query.
FHIR Power Query di ripiegamento
Query folding FHIR
07/12/2021 • 4 minutes to read
Power Query di dati è il meccanismo usato da un connettore Power Query per trasformare le trasformazioni dei
dati in query inviate all'origine dati. In questo Power Query possibile eseguire l'off load della maggior parte
della selezione dei dati nell'origine dati anziché recuperare grandi quantità di dati non necessario solo per
eliminarli nel client. Il connettore Power Query per FHIR include funzionalità di folding della query, ma a causa
della natura della ricerca FHIR,è necessario prestare particolare attenzione alle espressioni Power Query per
garantire che la query si ripeta quando possibile. Questo articolo illustra le nozioni di base di FHIR Power Query
e fornisce linee guida ed esempi.
let
Source = Fhir.Contents("https://myfhirserver.azurehealthcareapis.com", null),
Patient1 = Source{[Name="Patient"]}[Data],
#"Filtered Rows" = Table.SelectRows(Patient1, each [birthDate] < #date(1980, 1, 1))
in
#"Filtered Rows"
Anziché recuperare tutte le risorse patient dal server FHIR e filtrarle nel client (Power BI), è più efficiente inviare
una query con un parametro di ricerca al server FHIR:
GET https://myfhirserver.azurehealthcareapis.com/Patient?birthdate=lt1980-01-01
Con una query di questo tipo, il client riceverà solo i pazienti di interesse e non dovrà eliminare i dati nel client.
Nell'esempio di una data di nascita, la query di tipo folding è semplice, ma in generale è difficile in FHIR perché i
nomi dei parametri di ricerca non corrispondono sempre ai nomi dei campi dati e spesso più campi dati
contribuiscono a un singolo parametro di ricerca.
Si considerino ad esempio la Observation risorsa e il campo category . Il Observation.category campo è in
CodeableConcept FHIR, che include un campo , che include i campi e coding system code (tra gli altri campi).
Si supponga di essere interessati solo ai segni vitali, di essere interessati alle osservazioni in cui , ma la ricerca
FHIR sarà Observation.category.coding.code = "vital-signs" simile a
https://myfhirserver.azurehealthcareapis.com/Observation?category=vital-signs .
Per poter ottenere la conversione della query nei casi più complessi, il connettore Power Query per FHIR
corrisponde alle espressioni Power Query con un elenco di modelli di espressione e le converte in parametri di
ricerca appropriati. I modelli di espressione vengono generati dalla specifica FHIR.
Questa corrispondenza con i modelli di espressione funziona meglio quando qualsiasi espressione di selezione
(filtro) viene eseguita il prima possibile nei passaggi di trasformazione dei dati prima di qualsiasi altra forma dei
dati.
NOTE
Per offrire al motore Power Query la migliore possibilità di eseguire la query di folding, è necessario eseguire tutte le
espressioni di selezione dei dati prima di qualsiasi data shaping.
Sfortunatamente, il motore Power Query non lo ha più riconosciuto come criterio di selezione che esegue il
mapping al parametro di ricerca, ma se si ristruttura la category query per:
La query di ricerca verrà inviata al server FHIR, riducendo la quantità di dati che il
/Observation?category=vital-signs client riceverà dal server.
Mentre la prima e la seconda espressione Power Query genereranno lo stesso set di dati, quest'ultimo genererà,
in generale, prestazioni di query migliori. È importante notare che la seconda versione, più efficiente, della query
non può essere ottenuta esclusivamente tramite la modellazione dei dati con l'interfaccia utente grafica (GUI). È
necessario scrivere la query in "Editor avanzato".
L'esplorazione iniziale dei dati può essere eseguita con l'editor di query GUI, ma è consigliabile eseguire il
refactoring della query con la visualizzazione della query. In particolare, le query selettive (filtro) devono essere
eseguite il prima possibile.
Riepilogo
La funzionalità di folding della query offre Power Query espressioni. Un'operazione correttamente Power Query
consente di eseguire la folding della query e quindi di off-load gran parte del carico di filtro dei dati per l'origine
dati.
Passaggi successivi
In questo articolo si è appreso come usare la funzionalità di folding della query nel connettore Power Query per
FHIR. Esaminare quindi l'elenco dei modelli di Power Query FHIR.
Modelli di Power Query FHIR
Modelli di folding della query FHIR
07/12/2021 • 10 minutes to read
Questo articolo descrive i Power Query che consentiranno una efficace folding delle query in FHIR. Si
presuppone che si abbia familiarità con l'uso del connettore Power Query per FHIR e si conoscano la
motivazione e i principi di base per la Power Query in FHIR.
let
Patients = Fhir.Contents("https://myfhirserver.azurehealthcareapis.com", null){[Name = "Patient" ]}
[Data],
// Fold: "birthdate=lt1980-01-01"
FilteredPatients = Table.SelectRows(Patients, each [birthDate] < #date(1980, 1, 1))
in
FilteredPatients
Filtrare i pazienti in base all'intervallo di date di nascita usando , solo gli anni and '70:
let
Patients = Fhir.Contents("https://myfhirserver.azurehealthcareapis.com", null){[Name = "Patient" ]}
[Data],
// Fold: "birthdate=ge1970-01-01&birthdate=lt1980-01-01"
FilteredPatients = Table.SelectRows(Patients, each [birthDate] < #date(1980, 1, 1) and [birthDate] >=
#date(1970, 1, 1))
in
FilteredPatients
Filtro dei pazienti per data di nascita con , non negli anni or '70:
let
Patients = Fhir.Contents("https://myfhirserver.azurehealthcareapis.com", null){[Name = "Patient" ]}
[Data],
// Fold: "birthdate=ge1980-01-01,lt1970-01-01"
FilteredPatients = Table.SelectRows(Patients, each [birthDate] >= #date(1980, 1, 1) or [birthDate] <
#date(1970, 1, 1))
in
FilteredPatients
let
Patients = Fhir.Contents("https://myfhirserver.azurehealthcareapis.com", null){[Name = "Patient" ]}
[Data],
// Fold: "active=true"
FilteredPatients = Table.SelectRows(Patients, each [active])
in
FilteredPatients
Ricerca alternativa per i pazienti in cui attivo non è true (potrebbe includere mancante):
let
Patients = Fhir.Contents("https://myfhirserver.azurehealthcareapis.com", null){[Name = "Patient" ]}
[Data],
// Fold: "active:not=true"
FilteredPatients = Table.SelectRows(Patients, each [active] <> true)
in
FilteredPatients
let
Patients = Fhir.Contents("https://myfhirserver.azurehealthcareapis.com", null){[Name = "Patient" ]}
[Data],
// Fold: "gender=male"
FilteredPatients = Table.SelectRows(Patients, each [gender] = "male")
in
FilteredPatients
Filtro per mantenere solo i pazienti che non sono uomini (include altri):
let
Patients = Fhir.Contents("https://myfhirserver.azurehealthcareapis.com", null){[Name = "Patient" ]}
[Data],
// Fold: "gender:not=male"
FilteredPatients = Table.SelectRows(Patients, each [gender] <> "male")
in
FilteredPatients
let
Observations = Fhir.Contents("https://myfhirserver.azurehealthcareapis.com", null){[Name = "Observation"
]}[Data],
// Fold: "status=final"
FilteredObservations = Table.SelectRows(Observations, each [status] = "final")
in
FilteredObservations
let
Patients = Fhir.Contents("https://myfhirserver.azurehealthcareapis.com", null){[Name = "Patient" ]}
[Data],
// Fold: "_lastUpdated=2010-12-31T11:56:02.000+00:00"
FilteredPatients = Table.SelectRows(Patients, each [meta][lastUpdated] = #datetimezone(2010, 12, 31, 11,
56, 2, 0, 0))
in
FilteredPatients
let
Encounters = Fhir.Contents("https://myfhirserver.azurehealthcareapis.com", null){[Name = "Encounter" ]}
[Data],
// Fold: "class=s|c"
FilteredEncounters = Table.SelectRows(Encounters, each [class][system] = "s" and [class][code] = "c")
in
FilteredEncounters
let
Encounters = Fhir.Contents("https://myfhirserver.azurehealthcareapis.com", null){[Name = "Encounter" ]}
[Data],
// Fold: "class=c"
FilteredEncounters = Table.SelectRows(Encounters, each [class][code] = "c")
in
FilteredEncounters
// Fold: "class=s|"
FilteredEncounters = Table.SelectRows(Encounters, each [class][system] = "s")
in
FilteredEncounters
let
Observations = Fhir.Contents("https://myfhirserver.azurehealthcareapis.com", null){[Name = "Observation"
]}[Data],
// Fold: "subject=Patient/1234"
FilteredObservations = Table.SelectRows(Observations, each [subject][reference] = "Patient/1234")
in
FilteredObservations
let
Observations = Fhir.Contents("https://myfhirserver.azurehealthcareapis.com", null){[Name = "Observation"
]}[Data],
// Fold: "subject=1234,Patient/1234,https://myfhirservice/Patient/1234"
FilteredObservations = Table.SelectRows(Observations, each [subject][reference] = "1234" or [subject]
[reference] = "Patient/1234" or [subject][reference] = "https://myfhirservice/Patient/1234")
in
FilteredObservations
let
ChargeItems = Fhir.Contents("https://myfhirserver.azurehealthcareapis.com", null){[Name = "ChargeItem"
]}[Data],
// Fold: "quantity=1"
FilteredChargeItems = Table.SelectRows(ChargeItems, each [quantity][value] = 1)
in
FilteredChargeItems
let
ChargeItems = Fhir.Contents("https://myfhirserver.azurehealthcareapis.com", null){[Name = "ChargeItem"
]}[Data],
// Fold: "quantity=gt1.001"
FilteredChargeItems = Table.SelectRows(ChargeItems, each [quantity][value] > 1.001)
in
FilteredChargeItems
// Fold: "quantity=lt1.001|s|c"
FilteredChargeItems = Table.SelectRows(ChargeItems, each [quantity][value] < 1.001 and [quantity]
[system] = "s" and [quantity][code] = "c")
in
FilteredChargeItems
let
Consents = Fhir.Contents("https://myfhirserver.azurehealthcareapis.com", null){[Name = "Consent" ]}
[Data],
// Fold: "period=sa2010-01-01T00:00:00.000+00:00"
FiltertedConsents = Table.SelectRows(Consents, each [provision][period][start] > #datetimezone(2010, 1,
1, 0, 0, 0, 0, 0))
in
FiltertedConsents
let
Consents = Fhir.Contents("https://myfhirserver.azurehealthcareapis.com", null){[Name = "Consent" ]}
[Data],
// Fold: "period=eb2010-01-01T00:00:00.000+00:00"
FiltertedConsents = Table.SelectRows(Consents, each [provision][period][end] < #datetimezone(2010, 1, 1,
0, 0, 0, 0, 0))
in
FiltertedConsents
let
Observations = Fhir.Contents("https://myfhirserver.azurehealthcareapis.com", null){[Name = "Observation"
]}[Data],
// Fold: "code:text=t"
FilteredObservations = Table.SelectRows(Observations, each [code][text] = "t")
in
FilteredObservations
let
Observations = Fhir.Contents("https://myfhirserver.azurehealthcareapis.com", null){[Name = "Observation"
]}[Data],
// Fold: "code:text=t"
FilteredObservations = Table.SelectRows(Observations, each Text.StartsWith([code][text], "t"))
in
FilteredObservations
let
Patients = Fhir.Contents("https://myfhirserver.azurehealthcareapis.com", null){[Name = "Patient" ]}
[Data],
// Fold: "_profile=http://myprofile"
FilteredPatients = Table.SelectRows(Patients, each List.MatchesAny([meta][profile], each _ =
"http://myprofile"))
in
FilteredPatients
let
AllergyIntolerances = Fhir.Contents("https://myfhirserver.azurehealthcareapis.com", null){[Name =
"AllergyIntolerance" ]}[Data],
// Fold: "category=food"
FilteredAllergyIntolerances = Table.SelectRows(AllergyIntolerances, each List.MatchesAny([category],
each _ = "food"))
in
FilteredAllergyIntolerances
let
AllergyIntolerances = Fhir.Contents("https://myfhirserver.azurehealthcareapis.com", null){[Name =
"AllergyIntolerance" ]}[Data],
// Fold: "category:missing=true"
FilteredAllergyIntolerances = Table.SelectRows(AllergyIntolerances, each List.MatchesAll([category],
each _ = null))
in
FilteredAllergyIntolerances
let
AllergyIntolerances = Fhir.Contents("https://myfhirserver.azurehealthcareapis.com", null){[Name =
"AllergyIntolerance" ]}[Data],
// Fold: "category:missing=true"
FilteredAllergyIntolerances = Table.SelectRows(AllergyIntolerances, each [category] = null)
in
FilteredAllergyIntolerances
// Fold: "family:exact=Johnson"
FilteredPatients = Table.SelectRows(Patients, each Table.MatchesAnyRows([name], each [family] =
"Johnson"))
in
FilteredPatients
let
Patients = Fhir.Contents("https://myfhirserver.azurehealthcareapis.com", null){[Name = "Patient" ]}
[Data],
// Fold: "family=John"
FilteredPatients = Table.SelectRows(Patients, each Table.MatchesAnyRows([name], each
Text.StartsWith([family], "John")))
in
FilteredPatients
L'applicazione di filtri ai pazienti in base al nome della famiglia John inizia con o Paul :
let
Patients = Fhir.Contents("https://myfhirserver.azurehealthcareapis.com", null){[Name = "Patient" ]}
[Data],
// Fold: "family=John,Paul"
FilteredPatients = Table.SelectRows(Patients, each Table.MatchesAnyRows([name], each
Text.StartsWith([family], "John") or Text.StartsWith([family], "Paul")))
in
FilteredPatients
Filtrare i pazienti in base al nome della famiglia John inizia con e dato inizia con Paul :
let
Patients = Fhir.Contents("https://myfhirserver.azurehealthcareapis.com", null){[Name = "Patient" ]}
[Data],
// Fold: "family=John&given=Paul"
FilteredPatients = Table.SelectRows(
Patients,
each
Table.MatchesAnyRows([name], each Text.StartsWith([family], "John")) and
Table.MatchesAnyRows([name], each List.MatchesAny([given], each Text.StartsWith(_, "Paul"))))
in
FilteredPatients
let
Goals = Fhir.Contents("https://myfhirserver.azurehealthcareapis.com", null){[Name = "Goal" ]}[Data],
// Fold: "target-date=gt2020-03-01"
FilteredGoals = Table.SelectRows(Goals, each Table.MatchesAnyRows([target], each [due][date] >
#date(2020,3,1)))
in
FilteredGoals
Filtro del paziente in base all'identificatore:
let
Patients = Fhir.Contents("https://myfhirserver.azurehealthcareapis.com", null){[Name = "Patient" ]}
[Data],
// Fold: "identifier=s|v"
FilteredPatients = Table.SelectRows(Patients, each Table.MatchesAnyRows([identifier], each [system] =
"s" and _[value] = "v"))
in
FilteredPatients
let
Observations = Fhir.Contents("https://myfhirserver.azurehealthcareapis.com", null){[Name = "Observation"
]}[Data],
// Fold: "code=s|c"
FilteredObservations = Table.SelectRows(Observations, each Table.MatchesAnyRows([code][coding], each
[system] = "s" and [code] = "c"))
in
FilteredObservations
let
Observations = Fhir.Contents("https://myfhirserver.azurehealthcareapis.com", null){[Name = "Observation"
]}[Data],
// Fold: "code:text=t&code=s|c"
FilteredObservations = Table.SelectRows(Observations, each Table.MatchesAnyRows([code][coding], each
[system] = "s" and [code] = "c") and [code][text] = "t")
in
FilteredObservations
let
Patients = Fhir.Contents("https://myfhirserver.azurehealthcareapis.com", null){[Name = "Patient" ]}
[Data],
// Fold: "family=John&given=Paul"
FilteredPatients =
Table.SelectRows(
Patients,
each
Table.MatchesAnyRows([name], each Text.StartsWith([family], "John")) and
Table.MatchesAnyRows([name], each List.MatchesAny([given], each Text.StartsWith(_,
"Paul"))))
in
FilteredPatients
// Fold: "category=vital-signs"
FilteredObservations = Table.SelectRows(Observations, each Table.MatchesAnyRows([category], each
Table.MatchesAnyRows([coding], each [code] = "vital-signs")))
in
FilteredObservations
let
Observations = Fhir.Contents("https://myfhirserver.azurehealthcareapis.com", null){[Name = "Observation"
]}[Data],
// Fold: "category=s|c"
FilteredObservations = Table.SelectRows(Observations, each Table.MatchesAnyRows([category], each
Table.MatchesAnyRows([coding], each [system] = "s" and [code] = "c")))
in
FilteredObservations
let
Observations = Fhir.Contents("https://myfhirserver.azurehealthcareapis.com", null){[Name = "Observation"
]}[Data],
// Fold: "category=s1|c1,s2|c2"
FilteredObservations =
Table.SelectRows(
Observations,
each
Table.MatchesAnyRows(
[category],
each
Table.MatchesAnyRows(
[coding],
each
([system] = "s1" and [code] = "c1") or
([system] = "s2" and [code] = "c2"))))
in
FilteredObservations
let
AuditEvents = Fhir.Contents("https://myfhirserver.azurehealthcareapis.com", null){[Name = "AuditEvent"
]}[Data],
// Fold: "policy=http://mypolicy"
FilteredAuditEvents = Table.SelectRows(AuditEvents, each Table.MatchesAnyRows([agent], each
List.MatchesAny([policy], each _ = "http://mypolicy")))
in
FilteredAuditEvents
let
Observations = Fhir.Contents("https://myfhirserver.azurehealthcareapis.com", null){[Name = "Observation"
]}[Data],
// Fold: "code-value-quantity=http://loinc.org|8302-2$gt150"
FilteredObservations = Table.SelectRows(Observations, each Table.MatchesAnyRows([code][coding], each
[system] = "http://loinc.org" and [code] = "8302-2") and [value][Quantity][value] > 150)
in
FilteredObservations
Filtro in base al codice del componente di osservazione e alla quantità di valore, pressione sistolica maggiore di
140:
let
Observations = Fhir.Contents("https://myfhirserver.azurehealthcareapis.com", null){[Name = "Observation"
]}[Data],
// Fold: "component-code-value-quantity=http://loinc.org|8480-6$gt140"
FilteredObservations = Table.SelectRows(Observations, each Table.MatchesAnyRows([component], each
Table.MatchesAnyRows([code][coding], each [system] = "http://loinc.org" and [code] = "8480-6") and [value]
[Quantity][value] > 140))
in
FilteredObservations
Applicazione di filtri in base a quantità di valori di codice di più componenti (AND), pressione diastolica del
globo maggiore di 90 e pressione sistolica maggiore di 140:
let
Observations = Fhir.Contents("https://myfhirserver.azurehealthcareapis.com", null){[Name = "Observation"
]}[Data],
// Fold: "component-code-value-quantity=http://loinc.org|8462-4$gt90&component-code-value-
quantity=http://loinc.org|8480-6$gt140"
FilteredObservations =
Table.SelectRows(
Observations,
each
Table.MatchesAnyRows(
[component],
each
Table.MatchesAnyRows([code][coding], each [system] = "http://loinc.org" and [code] =
"8462-4") and [value][Quantity][value] > 90) and
Table.MatchesAnyRows([component], each Table.MatchesAnyRows([code][coding], each
[system] = "http://loinc.org" and [code] = "8480-6") and [value][Quantity][value] > 140))
in
FilteredObservations
Applicazione di filtri in base a quantità di valori di codice di più componenti (OR), pressione diastolica maggiore
di 90 o pressione sistolica maggiore di 140:
let
Observations = Fhir.Contents("https://myfhirserver.azurehealthcareapis.com", null){[Name = "Observation"
]}[Data],
// Fold: "component-code-value-quantity=http://loinc.org|8462-4$gt90,http://loinc.org|8480-6$gt140"
FilteredObservations =
Table.SelectRows(
Observations,
each
Table.MatchesAnyRows(
[component],
each
(Table.MatchesAnyRows([code][coding], each [system] = "http://loinc.org" and [code]
= "8462-4") and [value][Quantity][value] > 90) or
Table.MatchesAnyRows([code][coding], each [system] = "http://loinc.org" and [code]
= "8480-6") and [value][Quantity][value] > 140 ))
in
FilteredObservations
Filtro delle osservazioni sulle quantità di valori di codice nella radice della risorsa o nella matrice di componenti:
let
Observations = Fhir.Contents("https://myfhirserver.azurehealthcareapis.com", null){[Name = "Observation"
]}[Data],
// Fold: "combo-code-value-quantity=http://loinc.org|8302-2$gt150"
FilteredObservations =
Table.SelectRows(
Observations,
each
(Table.MatchesAnyRows([code][coding], each [system] = "http://loinc.org" and [code] = "8302-
2") and [value][Quantity][value] > 150) or
(Table.MatchesAnyRows([component], each Table.MatchesAnyRows([code][coding], each [system] =
"http://loinc.org" and [code] = "8302-2") and [value][Quantity][value] > 150)))
in
FilteredObservations
Riepilogo
La funzionalità di folding della query Power Query le espressioni di filtro in parametri di ricerca FHIR. Il Power
Query per FHIR riconosce determinati modelli e tenta di identificare i parametri di ricerca corrispondenti. Il
riconoscimento di questi modelli consente di scrivere espressioni Power Query efficienti.
Passaggi successivi
In questo articolo sono stati esaminati alcuni tipi di espressioni di filtro che verranno rilevate nei parametri di
ricerca FHIR. Leggere quindi informazioni su come stabilire relazioni tra le risorse FHIR.
Relazioni tra Power Query FHIR
Relazioni FHIR
07/12/2021 • 2 minutes to read
Questo articolo descrive come stabilire relazioni tra tabelle importate usando il connettore Power Query per
FHIR.
Introduzione
Le risorse FHIR sono correlate tra loro, ad esempio un oggetto che Observation fa riferimento a un oggetto (
Patient ):
{
"resourceType": "Observation",
"id": "1234",
"subject": {
"reference": "Patient/456"
}
Alcuni campi di riferimento alle risorse in FHIR possono fare riferimento a più tipi diversi di risorse , ad esempio
Practitioner o Organization . Per facilitare la risoluzione dei riferimenti, il connettore Power Query per FHIR
aggiunge un campo sintetico a tutte le risorse importate denominate , che contiene una concatenazione del tipo
di risorsa e <referenceId> dell'ID risorsa.
Per stabilire una relazione tra due tabelle, è possibile connettere un campo di riferimento specifico di una risorsa
al campo corrispondente nella risorsa a cui <referenceId> si vuole collegarla. In casi semplici, Power BI anche
automaticamente.
5. Stabilire la relazione. In questo semplice esempio, Power BI probabilmente la relazione sarà stata rilevata
automaticamente:
In caso contrario, è possibile aggiungerlo manualmente:
Passaggi successivi
In questo articolo si è appreso come stabilire relazioni tra tabelle importate con il connettore Power Query per
FHIR. Esaminare quindi il folding delle query con il connettore Power Query per FHIR.
FHIR Power Query di ripiegamento
Cartella
07/12/2021 • 2 minutes to read
Riepilogo
EL EM EN TO DESC RIZ IO N E
NOTE
Alcune funzionalità possono essere presenti in un prodotto, ma non in altre a causa di pianificazioni della distribuzione e
funzionalità specifiche dell'host.
Funzionalità supportate
Percorso della cartella
Combina
Combinare e caricare
Combinare e trasformare
3. Selezionare Combina & Trasforma dati per combinare i dati nei file della cartella selezionata e caricare
i dati nel editor di Power Query per la modifica. Selezionare Combina & carica per caricare i dati da
tutti i file nella cartella direttamente nell'app. Oppure selezionare Trasforma dati per caricare i dati della
cartella così come sono nel editor di Power Query.
NOTE
I pulsanti Combina & Trasforma dati e Combina & carica sono i modi più semplici per combinare i dati presenti nei file
della cartella specificata. È anche possibile usare il pulsante Carica (solo Power BI Desktop) o i pulsanti Trasforma dati per
combinare i file, ma ciò richiede passaggi più manuali.
Connessione a una cartella da Power Query Online
Per connettersi a una cartella da Power Query Online:
1. Selezionare l'opzione Cartella nella selezione del connettore.
2. Immettere il percorso della cartella da caricare.
3. Immettere il nome di un gateway dati locale che verrà utilizzato per accedere alla cartella.
4. Selezionare il tipo di autenticazione per connettersi alla cartella. Se si seleziona il tipo Windows di
autenticazione, immettere le credenziali.
5. Selezionare Avanti .
6. Nella finestra di dialogo Strumento di navigazione selezionare Combina per combinare i dati nei file della
cartella selezionata e caricarli nel editor di Power Query per la modifica. Oppure selezionare Trasforma
dati per caricare i dati della cartella così come sono nel editor di Power Query.
Riepilogo
EL EM EN TO DESC RIZ IO N E
NOTE
Alcune funzionalità possono essere presenti in un prodotto, ma non in altre a causa di pianificazioni della distribuzione e
funzionalità specifiche dell'host.
NOTE
A partire da luglio 2021, Google interromperà il supporto per gli account Google da framework browser incorporati. A
causa di questa modifica, sarà necessario aggiornare la versione Power BI Desktop a giugno 2021 per supportare l'accesso
a Google.
NOTE
Questo connettore usa la versione 4 dell'API Google Analytics.
Prerequisiti
Prima di poter accedere a Google Analytics, è necessario avere un account Google Analytics (nome
utente/password).
Funzionalità supportate
Importa
4. Nella finestra Accedi con Google visualizzata specificare le credenziali per accedere all'account Google
Analytics. È possibile specificare un indirizzo di posta elettronica o un numero di telefono. Selezionare
quindi Avanti .
5. Immettere la password di Google Analytics e selezionare Avanti.
6. Quando viene chiesto se si vuole Power BI Desktop accedere all'account Google, selezionare Consenti.
7. Dopo aver eseguito l'accesso, selezionare Connessione .
Dopo aver stabilito la connessione, verrà visualizzato un elenco degli account a cui si ha accesso. Eseguire il drill-
through dell'account, delle proprietà e delle viste per visualizzare una selezione di valori, suddivisi in categorie
nelle cartelle di visualizzazione.
È possibile caricare la tabella selezionata, che porta l'intera tabella in Power BI Desktop, oppure è possibile
selezionare Trasforma dati per modificare la query, che apre editor di Power Query. È quindi possibile filtrare e
perfezionare il set di dati da usare e quindi caricare il set di dati perfezionato in Power BI Desktop.
Connessione dati di Google Analytics da Power Query Online
Per connettersi ai dati di Google Analytics:
1. Selezionare Google Analytics nella pagina Power Query - Scegliere l'origine dati.
2. Nella pagina di connessione immettere un nome di connessione e scegliere un gateway dati locale, se
necessario.
NOTE
Attualmente, le finestre di dialogo di accesso di Google Analytics indicano che si sta accedendo a Power Query
Desktop. Questa formulazione verrà modificata in futuro.
5. Immettere la password di Google Analytics e selezionare Avanti.
6. Quando viene chiesto se si vuole Power BI Desktop accedere all'account Google, selezionare Consenti.
7. Dopo aver eseguito l'accesso, selezionare Avanti.
Dopo aver stabilito la connessione, verrà visualizzato un elenco degli account a cui si ha accesso. Eseguire
il drill-through dell'account, delle proprietà e delle viste per visualizzare una selezione di valori, suddivisi
in categorie nelle cartelle di visualizzazione.
8. Selezionare Trasforma dati per modificare la query in editor di Power Query. È quindi possibile filtrare e
perfezionare il set di dati da usare e quindi caricare il set di dati perfezionato in Power Apps.
Limitazioni e problemi
È necessario tenere presenti le limitazioni e i problemi seguenti associati all'accesso ai dati di Adobe Analytics.
Limiti di quota di Google Analytics per Power BI
Le limitazioni e le quote standard per le richieste AP di Google Analytics sono documentate in Limiti e quote per
le richieste API. Tuttavia, Power BI Desktop e Power BI servizio consentono di usare il numero avanzato di query
seguente.
Query al giorno: 1.500.000
Query per 100 secondi: 4.000
Request:
GET https://www.googleapis.com/analytics/v3/data/ga?ids=ga:<GA
Id>&metrics=ga:users&dimensions=ga:source&start-date=2009-03-12&end-date=2020-08-11&start-index=1&max-
results=1000"aUser=<User>%40gmail.com HTTP/1.1
<Content placeholder>
Response:
HTTP/1.1 200 OK
Content-Length: -1
<Content placeholder>
Da questo record è possibile visualizzare l'ID della visualizzazione Analisi (profilo),l'elenco delle metriche (in
questo caso solo ), l'elenco di dimensioni (in questo caso solo l'origine del riferimento), la data di inizio e la data
di fine, l'indice iniziale, il numero massimo di risultati (impostato su ga:users 1000 per l'editor per
impostazione predefinita) e quotaUser.
È possibile copiare questi valori in Esplora query di Google Analytics per verificare che anche gli stessi dati
restituiti dalla query vengano restituiti dall'API.
Se l'errore si trova in un intervallo di date, è possibile risolverlo facilmente. Passare al Editor avanzato. Sarà
presente una query M simile alla seguente (come minimo potrebbero esserci altre trasformazioni — sopra di
essa).
let
Source = GoogleAnalytics.Accounts(),
#"<ID>" = Source{[Id="<ID>"]}[Data],
#"UA-<ID>-1" = #"<ID>"{[Id="UA-<ID>-1"]}[Data],
#"<View ID>" = #"UA-<ID>-1"{[Id="<View ID>"]}[Data],
#"Added Items" = Cube.Transform(#"<View ID>",
{
{Cube.AddAndExpandDimensionColumn, "ga:source", {"ga:source"}, {"Source"}},
{Cube.AddMeasureColumn, "Users", "ga:users"}
})
in
#"Added Items"
È possibile eseguire una delle due operazioni seguenti. Se si dispone di una colonna Data, è possibile filtrare in
base alla data. Questa è l'opzione più semplice. Se non si è a favore della suddivisione in base alla data, è
possibile raggruppare in un secondo momento.
Se non è presente una colonna Data, è possibile modificare manualmente la query nel Editor avanzato per
aggiungerne una e filtrarla. Ad esempio:
let
Source = GoogleAnalytics.Accounts(),
#"<ID>" = Source{[Id="<ID>"]}[Data],
#"UA-<ID>-1" = #"<ID>"{[Id="UA-<ID>-1"]}[Data],
#"<View ID>" = #"UA-<ID>-1"{[Id="<View ID>"]}[Data],
#"Added Items" = Cube.Transform(#"<View ID>",
{
{Cube.AddAndExpandDimensionColumn, "ga:date", {"ga:date"}, {"Date"}},
{Cube.AddAndExpandDimensionColumn, "ga:source", {"ga:source"}, {"Source"}},
{Cube.AddMeasureColumn, "Organic Searches", "ga:organicSearches"}
}),
#"Filtered Rows" = Table.SelectRows(#"Added Items", each [Date] >= #date(2019, 9, 1) and [Date] <=
#date(2019, 9, 30))
in
#"Filtered Rows"
Passaggi successivi
Dimensioni di Google Analytics & Esplora metriche
API per la creazione di report principali di Google Analytics
Google BigQuery
07/12/2021 • 6 minutes to read
Riepilogo
EL EM EN TO DESC RIZ IO N E
NOTE
Alcune funzionalità possono essere presenti in un prodotto, ma non in altre a causa di pianificazioni della distribuzione e
funzionalità specifiche dell'host.
NOTE
A partire da luglio 2021, Google interromperà il supporto per gli accesso agli account Google da framework browser
incorporati. A causa di questa modifica, sarà necessario aggiornare la versione Power BI Desktop a giugno 2021 per
supportare l'accesso a Google.
Prerequisiti
Per accedere a Google BigQuery, è necessario un account Google o un account del servizio Google.
Funzionalità supportate
Importa
DirectQuery (solo Power BI Desktop)
È anche possibile accedere usando un account del servizio Google. In questo caso, selezionare Account di
accesso al servizio e immettere l'indirizzo di posta elettronica dell'account del servizio e il contenuto del
file di chiave JSON dell'account del servizio. Selezionare Connetti .
4. Viene visualizzata la finestra di dialogo Accedi con Google. Selezionare l'account Google e
approvare la connessione Power BI Desktop.
5. Dopo aver eseguito l'accesso, Connessione per continuare.
6. Dopo aver eseguito la connessione, viene visualizzata una finestra Strumento di navigazione che
mostra i dati disponibili nel server. Selezionare i dati nello strumento di navigazione. Selezionare quindi
Trasforma dati per trasformare i dati in Power Query o Carica per caricare i dati in Power BI Desktop.
Connessione a Google BigQuery data da Power Query Online
Per connettersi a Google BigQuery da Power Query Online, seguire questa procedura:
1. Nell'esperienza Ottieni dati selezionare la categoria Database e quindi Selezionare Google BigQuer y.
2. Nella finestra di dialogo Google BigQuer y Database potrebbe essere necessario creare una nuova
connessione o selezionare una connessione esistente. Se si usano dati locali, selezionare un gateway dati
locale. Selezionare quindi Accedi .
3. Viene visualizzata la finestra di dialogo Accedi con Google. Selezionare l'account Google e
approvare la connessione.
NOTE
Anche se la finestra di dialogo di accesso indica che si continuerà a Power BI Desktop dopo aver eseguito l'accesso,
si verrà inviati all'app online.
4. Per usare le opzioni avanzate, selezionare Opzioni avanzate . Altre informazioni: Usare Connessione
opzioni avanzate
5. Dopo aver eseguito l'accesso, selezionare Avanti per continuare.
6. Dopo aver eseguito la connessione, viene visualizzata una finestra Strumento di navigazione che
mostra i dati disponibili nel server. Selezionare i dati nello strumento di navigazione. Selezionare quindi
Avanti per trasformare i dati in Power Query.
Usare l Archiviazione Api Flag che abilita l'uso dell'API Archiviazione di Google
BigQuery. Questa opzione è true per impostazione
predefinita. Questa opzione può essere impostata su false
per non usare l'API Archiviazione e usare invece le API REST.
Durata del timeout della connessione Impostazione di connessione standard (in secondi) che
controlla per quanto tempo Power Query attesa del
completamento di una connessione. È possibile modificare
questo valore se la connessione non viene completata prima
di 15 secondi (valore predefinito).
Durata del timeout del comando Tempo di Power Query attesa del completamento di una
query e della restituzione dei risultati. Il valore predefinito
dipende dall'impostazione predefinita del driver. È possibile
immettere un altro valore in minuti per mantenere la
connessione aperta più a lungo.
Dopo aver selezionato le opzioni avanzate necessarie, selezionare OK in Power Query Desktop o Avanti in
Power Query Online per connettersi ai dati Di Google BigQuery.
Limitazioni e considerazioni
Questa sezione descrive eventuali limitazioni o considerazioni del connettore BigQuery di Google.
Connessione a Google Big Query in Power BI Desktop
Per altre informazioni sulle limitazioni e le considerazioni relative alla connessione a Google Big Query, vedere
Considerazioni e limitazioni.
Campi annidati
Per ottimizzare le considerazioni sulle prestazioni, Google BigQuery funziona bene con set di dati di grandi
dimensioni in caso di denormalizzazione, appiattimento e annidamento.
Il connettore Google BigQuery supporta i campi annidati, caricati come colonne di testo in formato JSON.
Gli utenti devono selezionare Trasforma dati e quindi usare le funzionalità di analisi JSON nel editor di Power
Query per estrarre i dati.
1. Nella scheda della barra multifunzione Trasformazioni, nella categoria Colonna di testo, selezionare
Analizza e quindi JSON.
2. Estrarre i campi del record JSON usando l'opzione Espandi colonna.
Configurazione di un account del servizio Google
Per altre informazioni sulla configurazione o sull'uso degli account del servizio Google, vedere Creazione e
gestione delle chiavi dell'account del servizio nella documentazione di Google.
Autenticazione tramite un account del servizio Google
Quando si esegue l'autenticazione tramite un account del servizio Google in Power BI Desktop, il connettore
richiede un formato di credenziali specifico.
Indirizzo di posta elettronica dell'account del servizio: deve essere nel formato di posta elettronica
Contenuto del file di chiave JSON dell'account del servizio: dopo aver scaricato questa chiave JSON, tutte le
nuove righe devono essere rimosse dal file in modo che il contenuto sia in un'unica riga. Quando il file JSON
è in questo formato, il contenuto può essere incollato in questo campo.
Quando si esegue l'autenticazione tramite un account del servizio Google Power BI servizio, gli utenti devono
usare l'autenticazione "Di base". Il campo Username (Nome utente) viene mappato al campo Service Account
Email (Posta elettronica account servizio) precedente e il campo Password al campo Service Account JSON key
file contents (Contenuto del file di chiave JSON dell'account del servizio) precedente. I requisiti di formato
per ogni credenziale rimangono invariati sia Power BI Desktop che Power BI servizio.
Non è possibile eseguire l'autenticazione con l'API Archiviazione Google BigQuery
Il connettore Google BigQuery usa Google BigQuery Archiviazione aPI per impostazione predefinita. Questa
funzionalità è controllata dall'opzione avanzata denominata UseStorageApi. Se si usano autorizzazioni granulari,
è possibile che si verifichino problemi con questa funzionalità. In questo scenario potrebbe essere visualizzato il
messaggio di errore seguente o potrebbe non essere possibile ottenere dati dalla query:
ERROR [HY000] [Microsoft][BigQuery] (131) Unable to authenticate with Google BigQuery Storage API. Check your
account permissions
È possibile risolvere questo problema modificando correttamente le autorizzazioni utente per l'API Archiviazione
BigQuery. Queste autorizzazioni dell'API di archiviazione sono necessarie per accedere correttamente ai dati con
l'API BigQueryStorage:
bigquery.readsessions.create : crea una nuova sessione di lettura tramite l'API di Archiviazione BigQuery.
bigquery.readsessions.getData : legge i dati da una sessione di lettura tramite l'API di Archiviazione BigQuery.
bigquery.readsessions.update : aggiorna una sessione di lettura tramite l'API Archiviazione BigQuery.
Queste autorizzazioni vengono in genere fornite nel BigQuery.User ruolo . Altre informazioni, Autorizzazioni e
ruoli predefiniti di Google BigQuery
Se i passaggi precedenti non risolvono il problema, è possibile disabilitare l'API Archiviazione BigQuery.
Fogli Google (Beta)
07/12/2021 • 2 minutes to read
Riepilogo
EL EM EN TO DESC RIZ IO N E
Prerequisiti
Prima di poter usare il connettore Fogli Google, è necessario avere un account Google e avere accesso al Foglio
Google a cui si sta tentando di connettersi.
Funzionalità supportate
Importa
4. Viene visualizzata una finestra di dialogo Accedi con Google in una finestra del browser esterna.
Selezionare l'account Google e approvare la connessione Power BI Desktop.
5. Dopo aver eseguito l'accesso, Connessione per continuare.
6. Dopo aver eseguito la connessione, viene visualizzata una finestra Strumento di navigazione con i dati
disponibili nel server. Selezionare i dati nello strumento di navigazione. Selezionare quindi Trasforma dati
per trasformare i dati in Power Query o Carica per caricare i dati in Power BI Desktop.
Limitazioni e considerazioni
Questa sezione descrive eventuali limitazioni o considerazioni relative al connettore Google BigQuery.
Power Query Online
Questo connettore non è ancora disponibile in Power Query online e nei flussi di dati.
Supporto delle unità condivise
Questo connettore supporta la connessione alle unità condivise.
Connessioni multiple
Questo connettore usa un ResourcePath diverso per ogni URL di Google Sheet. Sarà necessario eseguire
l'autenticazione a ogni nuovo percorso di risorsa e URL, ma potrebbe non essere necessario accedere a Google
più volte se le sessioni precedenti rimangono attive.
Informazioni sull'analisi degli URL
Il connettore verifica prima di tutto la firma dell'URL, assicurandosi che inizi con
https://docs.google.com/spreadsheets/d/ . Il connettore analizza quindi l'ID del foglio di calcolo di Google
dall'URL da includere nella chiamata all'API Fogli Google. Il resto dell'URL non viene usato. Ogni connessione a
Google Sheet è associata all'URL inviato, che fungerà da ResourcePath.
Hive LLAP
07/12/2021 • 2 minutes to read
Riepilogo
EL EM EN TO DESC RIZ IO N E
Prerequisiti
Un Apache Hive nome utente e una password LLAP.
Funzionalità supportate
Importa
DirectQuery
Protocollo di trasporto Thrift
HTTP
Standard
Riepilogo
EL EM EN TO DESC RIZ IO N E
NOTE
Alcune funzionalità possono essere presenti in un prodotto, ma non in altre a causa di pianificazioni della distribuzione e
funzionalità specifiche dell'host.
Prerequisiti
Per impostazione predefinita, il connettore di database IBM Db2 usa il driver Microsoft per connettersi ai dati. Se
si sceglie di usare il driver IBM nelle opzioni avanzate di Power Query Desktop, è necessario installare prima il
driver IBM Db2 per .NET nel computer usato per connettersi ai dati. Il nome di questo driver cambia di volta in
volta, quindi assicurarsi di installare il driver IBM Db2 che funziona con .NET. Per istruzioni su come scaricare,
installare e configurare il driver IBM Db2 per .NET, vedere Scaricare i client e i driver iniziali della versione 11.5.
Altre informazioni: Limitazioni del driver, Assicurarsi che il driver IBM Db2 sia installato
Funzionalità supportate
Importa
DirectQuery (solo Power BI Desktop)
Advanced Options
Driver (IBM o Microsoft)
Timeout del comando in minuti
Raccolta pacchetti
Istruzione SQL
Includi colonne relazioni
Esplora con gerarchia completa
Connessione a un database IBM Db2 da Power Query Desktop
Per stabilire la connessione, seguire la procedura illustrata di seguito:
1. Selezionare l'opzione di database IBM Db2 da Ottieni dati .
2. Specificare il server IBM Db2 a cui connettersi in Ser ver . Se è necessaria una porta, specificarla usando il
formato NomeServer:Porta, dove Porta è il numero di porta. Immettere anche il database IBM Db2 a cui
si vuole accedere in Database . In questo esempio il nome del server e la porta sono e il database IBM
Db2 a TestIBMDb2server.contoso.com:4000 cui si accede è NORTHWD2 .
NOTE
Per impostazione predefinita, la finestra di dialogo database IBM Db2 usa il driver Microsoft durante l'accesso. Se
si vuole usare il driver IBM, aprire Opzioni avanzate e selezionare IBM . Altre informazioni: Usare Connessione
opzioni avanzate
Se si seleziona DirectQuer y come modalità di connettività dati, l'istruzione SQL nelle opzioni avanzate verrà
disabilitata. DirectQuery attualmente non supporta il push delle query su una query di database nativa per il
connettore IBM Db2.
4. Selezionare OK .
5. Se questa è la prima volta che ci si connette a questo database IBM Db2, selezionare il tipo di
autenticazione da usare, immettere le credenziali e quindi selezionare Connessione . Per altre
informazioni sull'autenticazione, vedere Autenticazione con un'origine dati.
Per impostazione predefinita, Power Query tenta di connettersi al database IBM Db2 usando una
connessione crittografata. Se Power Query non riesce a connettersi usando una connessione
crittografata, verrà visualizzata la finestra di dialogo "Impossibile connettersi". Per connettersi usando una
connessione non crittografata, selezionare OK.
6. In Strumento di navigazione selezionare i dati necessari, quindi selezionare Carica per caricare i dati o
Trasforma dati per trasformare i dati.
Connessione a un database IBM Db2 da Power Query Online
Per stabilire la connessione, seguire la procedura illustrata di seguito:
1. Selezionare l'opzione di database IBM Db2 nella pagina Power Quer y - Connessione all'origine
dati.
2. Specificare il server IBM Db2 a cui connettersi in Ser ver . Se è necessaria una porta, specificarla usando il
formato NomeServer:Porta, dove Porta è il numero di porta. Immettere anche il database IBM Db2 a cui
si vuole accedere in Database . In questo esempio il nome del server e la porta sono
TestIBMDb2server.contoso.com:4000 e il database IBM Db2 a cui si accede è NORTHWD2
NOTE
È necessario selezionare un gateway dati locale per questo connettore, indipendentemente dal fatto che il
database IBM Db2 si trova nella rete locale o online.
4. Se questa è la prima volta che ci si connette a questo database IBM Db2, selezionare il tipo di credenziali
per la connessione in Tipo di autenticazione . Scegliere Basic se si prevede di usare un account creato
nel database IBM Db2 anziché Windows autenticazione.
5. Immettere le credenziali.
6. Selezionare Usa connessione crittografata se si vuole usare una connessione crittografata oppure
deselezionare l'opzione se si vuole usare una connessione non crittografata.
Nella tabella seguente sono elencate tutte le opzioni avanzate che è possibile impostare in Power Query.
Dopo aver selezionato le opzioni avanzate necessarie, selezionare OK in Power Query Desktop o Avanti in
Power Query Online per connettersi al database IBM Db2.
Problemi e limitazioni
Limitazioni del driver
Il driver Microsoft è lo stesso usato in Microsoft Host Integration Server, denominato "ADO.NET Provider per
DB2". Il driver IBM è il driver IBM Db/2 che funziona con .NET. Il nome di questo driver cambia di volta in volta,
quindi assicurarsi che sia quello che funziona con .NET, che è diverso dai driver IBM Db2 che funzionano con
OLE/DB, ODBC o JDBC.
È possibile scegliere di usare il driver Microsoft (impostazione predefinita) o il driver IBM se si usa Power Query
Desktop. Attualmente, Power Query Online usa solo il driver Microsoft. Ogni driver presenta limitazioni.
Driver Microsoft
Non supporta l'Transport Layer Security (TLS)
Driver IBM
Il connettore di database IBM Db2, quando si usa il driver IBM Db2 per .NET, non funziona con i
sistemi Mainframe o IBM i
Non supporta DirectQuery
Microsoft fornisce supporto per il driver Microsoft, ma non per il driver IBM. Tuttavia, se il reparto IT lo ha già
configurato nei computer, il reparto IT deve sapere come risolvere i problemi del driver IBM.
Query native non supportate in DirectQuery
Quando si seleziona DirectQuery come modalità di connettività dati in Power Query Desktop, la casella SQL di
testo istruzione nelle opzioni avanzate è disabilitata. È disabilitato perché il connettore POWER QUERY IBM Db2
attualmente non supporta il push delle query su una query di database nativa.
3. Nella finestra di dialogo visualizzata dovrebbe essere visualizzato il nome seguente nella colonna
InvariantName:
IBM.Data.DB2
Se questo nome si trova nella colonna InvariantName, il driver IBM Db2 è stato installato e configurato
correttamente.
Codici di errore SQLCODE -805 e SQLCODE -551
Quando si tenta di connettersi a un database IBM Db2, a volte può verificarsi l'errore comune SQLCODE -805,
che indica che il pacchetto non viene trovato nella raccolta o in un'altra raccolta (specificata nella configurazione
di connessione del pacchetto NULLID Power Query). È anche possibile che si verifichi l'errore comune SQLCODE
-551, che indica che non è possibile creare pacchetti perché non è disponibile l'autorità di associazione dei
pacchetti.
In genere, SQLCODE -805 è seguito da SQLCODE -551, ma verrà visualizzata solo la seconda eccezione. In realtà,
il problema è lo stesso. Non è possibile associare il pacchetto a o NULLID alla raccolta specificata.
In genere, la maggior parte degli amministratori IBM Db2 non fornisce l'autorità di associazione dei pacchetti
agli utenti finali, in particolare in un ambiente — IBM z/OS (mainframe) o IBM i (AS/400). Db2 in Linux, Unix o
Windows è diverso perché gli account utente hanno privilegi di associazione per impostazione predefinita, che
creano il pacchetto MSCS001 (Stabilità cursore) nella raccolta dell'utente (nome = nome di accesso utente).
Se non si dispone dei privilegi di binding del pacchetto, è necessario chiedere all'amministratore db2 l'autorità
di associazione dei pacchetti. Con questa autorità di associazione del pacchetto, connettersi al database e
recuperare i dati, che creeranno automaticamente il pacchetto. Successivamente, l'amministratore può revocare
l'autorità di associazione dei pacchetti. Inoltre, in seguito, l'amministratore può "associare" la copia del pacchetto
ad altre raccolte per aumentare la concorrenza, per soddisfare meglio gli standard interni per la posizione in cui
sono associati i pacchetti e — così via.
Quando ci si connette a IBM Db2 per z/OS, l'amministratore db2 può eseguire la procedura seguente.
1. Concedere l'autorità per associare un nuovo pacchetto all'utente con uno dei comandi seguenti:
GRANT BINDADD ON SYSTEM TO <authorization_name>
GRANT PACKADM ON <collection_name> TO <authorization_name>
2. Usando Power Query, connettersi al database IBM Db2 e recuperare un elenco di schemi, tabelle e viste. Il
Power Query database IBM Db2 creerà automaticamente il pacchetto NULLID. MSCS001 e quindi
concedere l'esecuzione nel pacchetto al pubblico.
3. Revocare l'autorità per associare un nuovo pacchetto all'utente con uno dei comandi seguenti:
REVOCARE BINDADD FROM <authorization_name>
REVOCARE PACKADM <collection_name> ON FROM <authorization_name>
Quando ci si connette a IBM Db2 per Linux, Unix o Windows, l'amministratore db2 può eseguire la procedura
seguente.
1. CONCEDERE BINDADD ON DATABASE ALL'UTENTE <authorization_name> .
2. Usando Power Query, connettersi al database IBM Db2 e recuperare un elenco di schemi, tabelle e viste. Il
Power Query connettore IBM Db2 creerà automaticamente il pacchetto NULLID. MSCS001 e quindi
concedere l'esecuzione del pacchetto al pubblico.
3. REVOKE BINDADD ON DATABASE FROM USER <authorization_name> .
4. CONCEDERE EXECUTE ON PACKAGE <collection.package> ALL'UTENTE <authorization_name> .
Quando ci si connette a IBM Db2 per i, l'amministratore db2 può eseguire la procedura seguente.
1. WRKOBJ QSYS/CRTSQLPKG. Digitare "2" per modificare l'autorità dell'oggetto.
2. Modificare l'autorità da *EXCLUDE a PUBLIC o <authorization_name> .
3. Successivamente, modificare l'autorità in *EXCLUDE.
Codice di errore SQLCODE -360
Quando si tenta di connettersi al database IBM Db2, è possibile che si sia verificato l'errore seguente:
Microsoft Db2 Client: The host resource could not be found. Check that the Initial Catalog value matches the
host resource name. SQLSTATE=HY000 SQLCODE=-360
Questo messaggio di errore indica che non è stato inserito il valore giusto in per il nome del database.
Codice di errore SQLCODE -1336
The specified host could not be found.
Controllare il nome e verificare che l'host sia raggiungibile. Ad esempio, usare ping in un prompt dei comandi
per tentare di raggiungere il server e verificare che l'indirizzo IP sia corretto oppure usare telnet per comunicare
con il server.
Codice di errore SQLCODE -1037
Host is reachable, but is not responding on the specified port.
La porta viene specificata alla fine del nome del server, separati da due punti. Se omesso, viene usato il valore
predefinito 50000.
Per trovare la porta che Db2 usa per Linux, Unix e Windows, eseguire questo comando:
db2 get dbm cfg | findstr SVCENAME
Cercare nell'output una voce per SVCENAME (e SSL_SVCENAME connessioni crittografate TLS). Se questo
valore è un numero, questa è la porta. In caso contrario, fare riferimento incrociato al valore con la tabella
"services" del sistema. È in genere possibile trovarlo in /etc/services o in
c:\windows\system32\drivers\etc\services per Windows.
Lo screenshot seguente mostra l'output di questo comando in Linux/Unix.
Lo screenshot seguente mostra l'output di questo comando in Windows.
Riepilogo
EL EM EN TO DESC RIZ IO N E
NOTE
Alcune funzionalità possono essere presenti in un prodotto, ma non in altre a causa di pianificazioni della distribuzione e
funzionalità specifiche dell'host.
Funzionalità supportate
Importa
Se si sta tentando di caricare un file di righe JSON, il codice M di esempio seguente converte automaticamente
tutti gli input delle righe JSON in una singola tabella bi flat:
let
// Read the file into a list of lines
Source = Table.FromColumns({Lines.FromBinary(File.Contents("C:\json-lines-example.json"), null, null)}),
// Transform each line using Json.Document
#"Transformed Column" = Table.TransformColumns(Source, {"Column1", Json.Document})
in
#"Transformed Column"
Riepilogo
EL EM EN TO DESC RIZ IO N E
Prodotti -
Deprecazione
Questo connettore è deprecato e non sarà supportato a breve. È consigliabile disattivare le connessioni esistenti
usando questo connettore e non usarlo per le nuove connessioni.
Microsoft Azure Consumption Insights (Beta)
(Deprecato)
07/12/2021 • 2 minutes to read
Riepilogo
EL EM EN TO DESC RIZ IO N E
Prodotti -
Deprecazione
NOTE
Questo connettore è deprecato a causa della fine del supporto per il Microsoft Azure a consumo Insights servizio. È
consigliabile che gli utenti sconsigliano le connessioni esistenti usando questo connettore e non lo usino per le nuove
connessioni.
Summary
EL EM EN TO DESC RIZ IO N E
Prodotti -
Deprecazione
NOTE
Questo connettore è deprecato. È consigliabile disattivare le connessioni esistenti usando questo connettore e non usarlo
per le nuove connessioni.
Database MySQL
07/12/2021 • 2 minutes to read
Riepilogo
EL EM EN TO DESC RIZ IO N E
Tipi di autenticazione supportati Windows (Power BI Desktop, Excel, servizio online con
gateway)
Database (Power BI Desktop, Excel)
Basic (servizio online con gateway)
NOTE
Alcune funzionalità possono essere presenti in un prodotto, ma non in altre a causa di pianificazioni della distribuzione e
funzionalità specifiche dell'host.
Prerequisiti
Gli utenti devono installare il pacchetto Oracle MySQL Connector/NET prima di usare questo connettore in
Power BI Desktop. Questo componente deve essere installato anche nel computer che esegue il gateway dati
locale per poter usare questo connettore in Power Query Online (flussi di dati) o Power BI Service.
Funzionalità supportate
Importa
Advanced Options
Timeout del comando in minuti
Istruzione SQL nativa
Colonne di relazione
Esplora con gerarchia completa
3. Selezionare il tipo di autenticazione database e immettere le credenziali MySQL nelle caselle Nome
utente e Password.
NOTE
Se la connessione non è crittografata, verrà visualizzata la finestra di dialogo seguente.
Selezionare OK per connettersi al database usando una connessione non crittografata oppure seguire le
istruzioni per configurare le connessioni crittografate SQL Server.
6. In Strumento di navigazione selezionare i dati necessari, quindi caricare o trasformare i dati.
Connessione database MySQL da Power Query Online
Per stabilire la connessione, seguire la procedura illustrata di seguito:
1. Selezionare l'opzione Database MySQL nella selezione del connettore.
2. Nella finestra di dialogo Database MySQL specificare il nome del server e del database.
La tabella seguente elenca tutte le opzioni avanzate che è possibile impostare in Power Query Desktop.
Dopo aver selezionato le opzioni avanzate necessarie, selezionare OK in Power Query Desktop per connettersi al
database MySQL.
Feed OData
07/12/2021 • 3 minutes to read
Riepilogo
EL EM EN TO DESC RIZ IO N E
NOTE
Alcune funzionalità possono essere presenti in un prodotto, ma non in altre a causa di pianificazioni della distribuzione e
funzionalità specifiche dell'host.
Funzionalità supportate
Basic
Avanzate
Parti URL
Aprire colonne di tipo
Selezionare tabelle correlate
NOTE
Microsoft Graph non è supportato. Altre informazioni: Mancanza di supporto per Microsoft Graph in Power Query
Se l'indirizzo URL immesso non è valido, viene visualizzata accanto alla casella di testo URL verrà
visualizzata l'icona di avviso.
3. Se è la prima volta che ci si connette usando il feed OData, selezionare il tipo di autenticazione, immettere
le credenziali (se necessario) e selezionare il livello a cui applicare le impostazioni di autenticazione.
Selezionare Connetti .
4. Nella finestra di dialogo Strumento di navigazione è possibile selezionare una tabella, quindi trasformare
i dati nel editor di Power Query selezionando Trasforma dati oppure caricare i dati selezionando Carica .
Se sono presenti più tabelle che hanno una relazione diretta con una o più tabelle già selezionate, è
possibile selezionare il pulsante Seleziona tabelle correlate. In questo caso, verranno importate anche
tutte le tabelle che hanno una relazione diretta con una o più tabelle già selezionate.
3. Se è la prima volta che ci si connette usando il feed OData, selezionare il tipo di autenticazione e
immettere le credenziali (se necessario). Selezionare quindi Avanti .
4. Nella finestra di dialogo Strumento di navigazione è possibile selezionare una tabella, quindi trasformare
i dati nel editor di Power Query selezionando Trasforma dati .
Se sono presenti più tabelle che hanno una relazione diretta con una o più tabelle già selezionate, è
possibile selezionare il pulsante Seleziona tabelle correlate. In questo caso, verranno importate anche
tutte le tabelle che hanno una relazione diretta con una o più tabelle già selezionate.
Contattare il proprietario del servizio. Sarà necessario modificare la configurazione dell'autenticazione o creare
un connettore personalizzato.
<a name="maximum-url-length">Lunghezza massima dell'URL
Se si usa il connettore feed OData per connettersi a un elenco di SharePoint, SharePoint online o Project Online,
la lunghezza massima dell'URL per queste connessioni è di circa 2100 caratteri. Il superamento del limite di
caratteri comporta un errore 401. La lunghezza massima dell'URL è SharePoint front-end e non può essere
modificata.
Per aggirare questa limitazione, iniziare con l'endpoint OData radice e quindi spostarsi e filtrare all'interno
Power Query. Power Query questo URL viene filtrato in locale quando l'URL è troppo lungo SharePoint gestire.
Ad esempio, iniziare con:
OData.Feed("https://contoso.sharepoint.com/teams/sales/_api/ProjectData")
invece di
OData.Feed("https://contoso.sharepoint.com/teams/sales/_api/ProjectData/Projects?
select=_x0031_MetricName...etc...")
ODBC
07/12/2021 • 3 minutes to read
Riepilogo
EL EM EN TO DESC RIZ IO N E
NOTE
Alcune funzionalità possono essere presenti in un prodotto, ma non in altre a causa di pianificazioni della distribuzione e
funzionalità specifiche dell'host.
Prerequisiti
Prima di iniziare, assicurarsi di aver configurato correttamente la connessione nell'Windows origine dati ODBC.
Il processo esatto dipende dal driver.
Funzionalità supportate
Importa
Advanced Options
Stringa di connessione (proprietà di tipo non credenziali)
Istruzione SQL
Clausole di riduzione delle righe supportate
Stringa di connessione (proprietà di tipo non credenziali) Fornisce una stringa di connessione facoltativa che può
essere usata al posto della selezione del nome dell'origine
dati (DSN) in Power BI Desktop. Se nome origine dati
(DSN) è impostato su (Nessuno), è possibile immettere
una stringa di connessione qui. Ad esempio, le stringhe di
connessione seguenti sono valide: dsn= <myDSN> o
driver= <myDriver> ;p or t= <myPor tNumber>
;ser ver= <mySer ver> ;d atabase= <myDatabase> ; .
I { } caratteri possono essere usati per eseguire l'escape di
caratteri speciali. Le chiavi per le stringhe di connessione
variano tra driver ODBC diversi. Per altre informazioni sulle
stringhe di connessione valide, vedere il provider di driver
ODBC.
Clausole di riduzione delle righe supportate Abilita il supporto di folding per Table.FirstN. Selezionare
Rileva per trovare le clausole di riduzione delle righe
supportate o selezionare una delle opzioni a discesa (TOP,
LIMIT e OFFSET, LIMIT o ANSI SQL compatibile con . Questa
opzione non è applicabile quando si usa un'istruzione SQL
nativa. Disponibile solo in Power Query Desktop.
Database Oracle
07/12/2021 • 6 minutes to read
Riepilogo
EL EM EN TO DESC RIZ IO N E
NOTE
Alcune funzionalità possono essere presenti in un prodotto, ma non in altre a causa di pianificazioni della distribuzione e
funzionalità specifiche dell'host.
Prerequisiti
Versioni di Oracle supportate:
Oracle Server 9 e versioni successive
Software Oracle Data Access Client (ODAC) 11.2 e versioni successive
Prima di connettersi a un database Oracle usando Power Query, è necessario installare il software client Oracle
v8.1.7 o versione successiva nel computer. Per installare il software client Oracle a 32 bit, passare a Oracle Data
Access Components (ODAC) a 32 bit con Oracle Strumenti di sviluppo per Visual Studio (12.1.0.2.4). Per
installare il client Oracle a 64 bit, passare a ODAC 12c Release 4 (12.1.0.2.4) Xcopy a 64 bit per Windows x64.
NOTE
Scegliere una versione di Oracle Data Access Client (ODAC) compatibile con Oracle Server. Ad esempio, ODAC 12.x non
supporta sempre Oracle Server versione 9. Scegliere il programma di installazione di Windows per il client Oracle. Durante
l'installazione del client Oracle, assicurarsi di abilitare Configura provider ODP.NET e/o Oracle per ASP.NET a livello di
computer selezionando la casella di controllo corrispondente durante l'installazione guidata. Alcune versioni della
procedura guidata client Oracle selezionano la casella di controllo per impostazione predefinita, altre no. Assicurarsi che la
casella di controllo sia selezionata in modo Power Query connettersi al database Oracle.
Per connettersi a un database Oracle con il gatewaydati locale, è necessario installare il software client Oracle
corretto nel computer che esegue il gateway. Il software client Oracle usato dipende dalla versione del server
Oracle, ma corrisponderà sempre al gateway a 64 bit. Per altre informazioni, vedere Gestire l'origine dati -
Oracle.
Funzionalità supportate
Comando Importa
DirectQuery
Advanced Options
Timeout del comando in minuti
Istruzione SQL
Includi colonne relazioni
Esplora con gerarchia completa
NOTE
Se si usano un database locale o connessioni di database autonome, potrebbe essere necessario inserire il nome
del server tra virgolette per evitare errori di connessione.
NOTE
È necessario selezionare un gateway dati locale per questo connettore, indipendentemente dal fatto che il
database Oracle si trova nella rete locale o in un sito Web.
4. Se è la prima volta che ci si connette a questo database Oracle, selezionare il tipo di credenziali per la
connessione in Tipo di autenticazione . Scegliere Di base se si intende usare un account creato in
Oracle invece dell'autenticazione di Windows.
5. Immettere le credenziali.
6. Selezionare Avanti per continuare.
7. In Strumento di navigazione selezionare i dati necessari, quindi selezionare Trasforma dati per
trasformare i dati in editor di Power Query.
La tabella seguente elenca tutte le opzioni avanzate che è possibile impostare in Power Query Desktop.
Dopo aver selezionato le opzioni avanzate necessarie, selezionare OK in Power Query Desktop per connettersi al
database Oracle.
Passaggi successivi
Ottimizzare Power Query durante l'espansione di colonne di tabella
PDF
07/12/2021 • 2 minutes to read
Riepilogo
EL EM EN TO DESC RIZ IO N E
NOTE
Alcune funzionalità possono essere presenti in un prodotto, ma non in altre a causa di pianificazioni della distribuzione e
funzionalità specifiche dell'host.
NOTE
PDF non è supportato in Power BI Premium.
Prerequisiti
Nessuno.
Funzionalità supportate
Importa
Riepilogo
EL EM EN TO DESC RIZ IO N E
NOTE
Alcune funzionalità possono essere presenti in un prodotto, ma non in altre a causa di pianificazioni della distribuzione e
funzionalità specifiche dell'host.
Prerequisiti
A partire dalla versione di dicembre 2019, NpgSQL 4.0.10 è stato fornito con Power BI Desktop e non è
necessaria alcuna installazione aggiuntiva. L'installazione gac sostituisce la versione fornita Power BI Desktop,
che sarà l'impostazione predefinita. L'aggiornamento è supportato sia tramite il cloud nel servizio Power BI sia
in locale tramite il gateway. Nel servizio Power BI verrà usato NpgSQL 4.0.10, mentre l'aggiornamento locale
userà l'installazione locale di NpgSQL, se disponibile, e in caso contrario userà NpgSQL 4.0.10.
Per Power BI Desktop rilasciate prima di dicembre 2019, è necessario installare il provider NpgSQL nel
computer locale. Per installare il provider NpgSQL, passare alla pagina delle versioni e scaricare la versione
pertinente. L'architettura del provider (a 32 bit o a 64 bit) deve corrispondere all'architettura del prodotto in cui
si intende usare il connettore. Durante l'installazione, assicurarsi di selezionare NpgSQL GAC Installation
(Installazione GAC NpgSQL) per assicurarsi che NpgSQL stesso sia aggiunto al computer.
È consigliabile usare NpgSQL 4.0.10. NpgSQL 4.1 e versioni non funzioneranno a causa di
incompatibilità con la versione di .NET.
Funzionalità supportate
Importa
DirectQuery (solo Power BI)
Advanced Options
Timeout del comando in minuti
Istruzione SQL nativa
Colonne delle relazioni
Esplora con gerarchia completa
Per altre informazioni sull'uso dei metodi di autenticazione, vedere Autenticazione con un'origine dati.
NOTE
Se la connessione non è crittografata, verrà visualizzato il messaggio seguente.
Selezionare OK per connettersi al database usando una connessione non crittografata oppure seguire le
istruzioni in Abilitare le connessioni crittografate al motore di database per configurare le connessioni
crittografate al database PostgreSQL.
5. In Strumento di navigazione selezionare le informazioni sul database desiderate, quindi selezionare
Carica per caricare i dati o Trasforma dati per continuare a trasformare i dati in editor di Power Query.
Connessione a un database PostgreSQL da Power Query Online
Per stabilire la connessione, seguire la procedura illustrata di seguito:
1. Selezionare l'opzione Database PostgreSQL nella selezione del connettore.
2. Nella finestra di dialogo Database PostgreSQL visualizzata specificare il nome del server e del
database.
La tabella seguente elenca tutte le opzioni avanzate che è possibile impostare in Power Query Desktop.
Dopo aver selezionato le opzioni avanzate necessarie, selezionare OK in Power Query Desktop per connettersi al
database PostgreSQL.
Un passaggio di risoluzione dei problemi di base consiste nel verificare se la query in Value.NativeQuery()
genera lo stesso errore con una limit 1 clausola che la circonda:
select * from (query) _ limit 1
QuickBooks Online (beta)
07/12/2021 • 2 minutes to read
Riepilogo
EL EM EN TO DESC RIZ IO N E
WARNING
QuickBooks Online ha deprecato il supporto per Internet Explorer 11, che Power Query Desktop usa per l'autenticazione
Servizi online. Per poter accedere a Quickbooks Online da Power BI Desktop, passare a Abilitazione di Microsoft Edge
(Chromium)per l'autenticazione OAuth in Power BI Desktop .
Prerequisiti
Per usare il connettore QuickBooks Online, è necessario avere un nome utente e una password dell'account
QuickBooks Online.
Il connettore QuickBooks Online usa il driver ODBC QuickBooks. Il driver ODBC QuickBooks viene fornito con
Power BI Desktop e non è necessaria alcuna installazione aggiuntiva.
Funzionalità supportate
Importa
4. Nella finestra di dialogo seguente immettere le credenziali di QuickBooks. Potrebbe essere necessario
fornire anche 2FA (codice di autenticazione a due fattori).
5. Nella finestra di dialogo seguente selezionare una società e quindi selezionare Avanti.
6. Dopo aver eseguito l'accesso, selezionare Connessione .
7. Nella finestra di dialogo Strumento di navigazione selezionare le tabelle QuickBooks da caricare. È quindi
possibile caricare o trasformare i dati.
Problemi noti
A partire dal 1° agosto 2020, Intuit non supporterà più Microsoft Internet Explorer 11 (IE 11) per QuickBooks
Online. Quando si usa OAuth2 per autorizzare QuickBooks Online, dopo il 1° agosto 2020, saranno supportati
solo i browser seguenti:
Microsoft Edge
Mozilla Firefox
Google Chrome
Safari 11 o versione più recente (solo Mac)
Per altre informazioni, vedere Avviso: Supporto per IE11 deprecato il 31 luglio 2020 per le schermate di
autorizzazione.
Per informazioni sul supporto Microsoft Edge corrente in Power BI Desktop, vedere a Enabling Microsoft Edge
(Chromium) for OAuth Authentication in Power BI Desktop.
Oggetti Salesforce
07/12/2021 • 4 minutes to read
Riepilogo
EL EM EN TO DESC RIZ IO N E
NOTE
Alcune funzionalità possono essere presenti in un prodotto, ma non in altre a causa di pianificazioni della distribuzione e
funzionalità specifiche dell'host.
WARNING
Per impostazione predefinita, Salesforce non supporta Internet Explorer 11, che viene usato come parte dell'esperienza di
autenticazione per Servizi online in Power Query Desktop. Acconsentire esplicitamente al supporto esteso per l'accesso a
Lightning Experience usando Microsoft Internet Explorer 11. È anche possibile consultare la documentazione di Salesforce
sulla configurazione di Internet Explorer. A questo punto, gli utenti saranno compromessi dall'autenticazione, ma le
credenziali archiviate continueranno a funzionare fino alla scadenza dei token di autenticazione esistenti. Per risolvere
questo problema, passare a Abilitazione Microsoft Edge (Chromium) per l'autenticazione OAuth in Power BI Desktop.
Prerequisiti
Per usare il connettore Salesforce Objects, è necessario avere un nome utente e una password dell'account
Salesforce.
Inoltre, l'accesso all'API Salesforce deve essere abilitato. Per verificare le impostazioni di accesso, passare alla
pagina personale di Salesforce, aprire le impostazioni del profilo e cercare e verificare che la casella di controllo
API abilitata sia selezionata. Si noti che gli account di valutazione di Salesforce non hanno accesso all'API.
Funzionalità supportate
Produzione
Personalizzato
Domini personalizzati
Reindirizzamenti dei record CNAME
Colonne di relazione
Connessione a Salesforce Objects da Power Query Desktop
Per connettersi ai dati di Salesforce Objects:
1. Selezionare Salesforce Objects nell'elenco del connettore dati specifico del prodotto e quindi
selezionare Connessione .
2. In Salesforce Objects scegliere l'URL di produzione se si usa l'URL di produzione di Salesforce ( )
https://www.salesforce.com per accedere.
È anche possibile selezionare Personalizzato e immettere un URL personalizzato per accedere. Questo
URL personalizzato potrebbe essere un dominio personalizzato creato in Salesforce, ad esempio
https://contoso.salesforce.com . È anche possibile usare la selezione url personalizzata se si usa il
proprio record CNAME che reindirizza a Salesforce.
È anche possibile selezionare Includi colonne relazione . Questa selezione modifica la query includendo
colonne che potrebbero avere relazioni di chiave esterna con altre tabelle. Se questa casella è
deselezionata, tali colonne non vengono visualizzate.
Dopo aver selezionato l'URL, selezionare OK per continuare.
3. Selezionare Accedi per accedere all'account Salesforce.
NOTE
Attualmente potrebbe essere necessario selezionare l'URL personalizzato, immettere nella casella di testo e quindi
https://www.salesforce.com selezionare Produzione per connettersi ai dati.
È anche possibile selezionare Personalizzato e immettere un URL personalizzato per accedere. Questo
URL personalizzato potrebbe essere un dominio personalizzato creato in Salesforce, ad esempio
https://contoso.salesforce.com . È anche possibile usare la selezione url personalizzata se si usa il
proprio record CNAME che reindirizza a Salesforce.
È anche possibile selezionare Includi colonne relazione. Questa selezione modifica la query includendo
colonne che potrebbero avere relazioni di chiave esterna con altre tabelle. Se questa casella è
deselezionata, tali colonne non vengono visualizzate.
3. Se questa è la prima volta che si crea questa connessione, selezionare un gateway dati locale, se
necessario.
4. Selezionare Accedi per accedere all'account Salesforce. Dopo aver eseguito l'accesso, selezionare
Avanti.
5. Nella finestra di dialogo Strumento di navigazione selezionare gli oggetti Salesforce da caricare.
Selezionare quindi Trasforma dati per trasformare i dati.
Riepilogo
EL EM EN TO DESC RIZ IO N E
NOTE
Alcune funzionalità possono essere presenti in un prodotto, ma non in altre a causa di pianificazioni della distribuzione e
funzionalità specifiche dell'host.
WARNING
Per impostazione predefinita, Salesforce non supporta Internet Explorer 11, che viene usato come parte dell'esperienza di
autenticazione per Servizi online in Power Query Desktop. Acconsentire esplicitamente al supporto esteso per l'accesso a
Lightning Experience usando Microsoft Internet Explorer 11. È anche possibile consultare la documentazione di Salesforce
sulla configurazione Internet Explorer. A questo punto, gli utenti saranno compromessi dall'autenticazione, ma le
credenziali archiviate continueranno a funzionare fino alla scadenza dei token di autenticazione esistenti. Per risolvere il
problema, passare a Abilitazione Microsoft Edge (Chromium) per l'autenticazione OAuth in Power BI Desktop.
Prerequisiti
Per usare il connettore Salesforce Reports, è necessario avere un nome utente e una password dell'account
Salesforce.
Inoltre, l'accesso all'API Salesforce deve essere abilitato. Per verificare le impostazioni di accesso, passare alla
pagina personale di Salesforce, aprire le impostazioni del profilo e cercare e verificare che la casella di controllo
API Enabled (API abilitata) sia selezionata. Si noti che gli account di valutazione di Salesforce non hanno
accesso all'API.
Funzionalità supportate
Produzione
Personalizzato
Domini personalizzati
Reindirizzamenti dei record CNAME
Connessione ai report salesforce da Power Query Desktop
Per connettersi ai dati di Salesforce Reports:
1. Selezionare Salesforce Repor ts nell'elenco dei connettori dati specifici del prodotto e quindi
selezionare Connessione .
2. In Salesforce Repor ts (Repor t Salesforce) scegliere l'URL di produzione se si usa l'URL di
produzione di Salesforce ( https://www.salesforce.com ) per accedere.
È anche possibile selezionare Personalizzato e immettere un URL personalizzato per accedere. Questo
URL personalizzato potrebbe essere un dominio personalizzato creato in Salesforce, ad esempio
https://contoso.salesforce.com . È anche possibile usare la selezione dell'URL personalizzato se si usa il
proprio record CNAME che reindirizza a Salesforce.
Dopo aver selezionato l'URL, selezionare OK per continuare.
3. Selezionare Accedi per accedere all'account Salesforce.
NOTE
Attualmente potrebbe essere necessario selezionare l'URL personalizzato, immettere nella casella di testo e quindi
https://www.salesforce.com selezionare Produzione per connettersi ai dati.
È anche possibile selezionare Personalizzato e immettere un URL personalizzato per accedere. Questo
URL personalizzato potrebbe essere un dominio personalizzato creato in Salesforce, ad esempio
https://contoso.salesforce.com . È anche possibile usare la selezione dell'URL personalizzato se si usa il
proprio record CNAME che reindirizza a Salesforce.
È anche possibile selezionare Includi colonne relazione. Questa selezione modifica la query includendo
colonne che potrebbero avere relazioni di chiave esterna con altre tabelle. Se questa casella è
deselezionata, tali colonne non saranno visualizzate.
3. Se è la prima volta che si crea questa connessione, selezionare un gateway dati locale, se necessario.
4. Selezionare Accedi per accedere all'account Salesforce. Dopo aver eseguito l'accesso, selezionare
Avanti.
5. Nella finestra di dialogo Strumento di navigazione selezionare i report di Salesforce da caricare.
Selezionare quindi Trasforma dati per trasformare i dati.
NOTE
Il connettore SAP Business Warehouse (BW) Application Server è ora certificato per SAP BW/4HANA a partire da giugno
2020.
Riepilogo
EL EM EN TO DESC RIZ IO N E
NOTE
Alcune funzionalità possono essere presenti in un prodotto, ma non in altre a causa di pianificazioni della distribuzione e
funzionalità specifiche dell'host.
Prerequisiti
È necessario un account SAP per accedere al sito Web e scaricare i driver. In caso di dubbi, contattare
l'amministratore SAP dell'organizzazione.
È possibile usare la versione 1.0 del connettore del server applicazioni SAP Business Warehouse (BW) o il
connettore SAP Implementation 2.0 in Power Query Desktop. Le sezioni seguenti illustrano l'installazione delle
diverse versioni. È possibile scegliere uno o l'altro connettore quando ci si connette a SAP BW server
applicazioni da Power BI Desktop.
Sono supportati BW 7.3, BW 7.5 e BW/4HANA 2.0.
NOTE
È consigliabile usare il connettore SAP Implementation 2.0 quando possibile perché offre miglioramenti significativi di
prestazioni, funzionalità e affidabilità rispetto alla versione 1.0.
NOTE
Power Query Online usa la versione 2.0 SAP BW del server applicazioni per impostazione predefinita. Tuttavia, la versione
1.0 del connettore SAP BW application server funziona a livello di motore M se è effettivamente necessario usarlo.
Funzionalità supportate
Importa
DirectQuery
Implementazione
2.0 (richiede SAP .NET Connector 3.0)
1.0 (richiede NETWeaver RFC)
Avanzato
Codice lingua
Modalità di esecuzione
Dimensioni dei batch
Istruzione MDX
Abilita le strutture per le caratteristiche
3. Quando si accede al database per la prima volta, il server SAP BW applicazioni richiede le credenziali
utente del database. Power Query Desktop offre due modalità di autenticazione per le connessioni SAP
BW autenticazione nome utente/password (database) e autenticazione Windows — (Single Sign-On).
L'autenticazione SAML non è attualmente supportata. Selezionare Windows o Database . Se si seleziona
Autenticazione database, immettere il nome utente e la password. Se si seleziona Windows
autenticazione singola, passare a Windows e Single Sign-On per altre informazioni sui requisiti per l
Windows autenticazione.
Selezionare Connetti .
Per altre informazioni sull'autenticazione, vedere Autenticazione con un'origine dati.
4. Nella finestra di dialogo Strumento di navigazione selezionare gli elementi da usare. Quando si
selezionano uno o più elementi dal server, la finestra di dialogo Strumento di navigazione crea
un'anteprima della tabella di output. Per altre informazioni sull'esplorazione SAP BW oggetti query del
server applicazioni in Power Query, vedere Esplorare gli oggetti query.
5. Nella finestra di dialogo Strumento di navigazione è possibile trasformare i dati nel editor di Power
Query selezionando Trasforma dati oppure caricare i dati selezionando Carica .
Vedi anche
Esplorare gli oggetti query
SAP Business Warehouse fondamentali
Usare le opzioni avanzate
SAP Business Warehouse risoluzione dei problemi del connettore
Server messaggi SAP Business Warehouse
07/12/2021 • 6 minutes to read
NOTE
A SAP Business Warehouse giugno 2020 il connettore del server messaggi di SAP BW (BW) è certificato per SAP
BW/4HANA.
Riepilogo
EL EM EN TO DESC RIZ IO N E
NOTE
Alcune funzionalità possono essere presenti in un prodotto, ma non in altre a causa di pianificazioni della distribuzione e
funzionalità specifiche dell'host.
Prerequisiti
È necessario un account SAP per accedere al sito Web e scaricare i driver. In caso di dubbi, contattare
l'amministratore SAP dell'organizzazione.
È possibile usare la versione 1.0 del connettore del server messaggi di SAP Business Warehouse (BW) o il
connettore SAP Implementation 2.0 in Power Query Desktop. Le sezioni seguenti illustrano l'installazione delle
diverse versioni. È possibile scegliere uno o l'altro connettore quando ci si connette a un SAP BW message
server da Power BI Desktop. È consigliabile usare il connettore SAP implementation 2.0 quando possibile.
NOTE
È consigliabile usare il connettore SAP implementation 2.0 quando possibile perché offre miglioramenti significativi di
prestazioni, funzionalità e affidabilità rispetto alla versione 1.0.
NOTE
Power Query Online usa la versione 2.0 SAP BW connettore del server messaggi per impostazione predefinita. Tuttavia, la
versione 1.0 del connettore SAP BW Message Server funziona a livello di motore M se è effettivamente necessario usarlo.
Funzionalità supportate
Importa
DirectQuery
Implementazione
2.0 (richiede SAP .NET Connector 3.0)
1.0 (richiede NetWeaver RFC)
Avanzato
Codice lingua
Modalità di esecuzione
Dimensioni dei batch
Istruzione MDX
Abilita le strutture per le caratteristiche
Nella parte restante di questo esempio viene descritto come importare i dati in Power Query Desktop,
che è l'impostazione predefinita per la modalità connettività dati. Se si vuole usare DirectQuery per
caricare i dati, vedere Connessione to SAP Business Warehouse by using DirectQuery in Power BI.
Questo esempio usa anche l'implementazione predefinita di 2.0 (richiede SAP .NET Connector 3.0).
Se si vuole usare la versione 1 del connettore SAP BW Message Server, selezionare 1.0 (richiede
NetWeaver RFC).
Se si vuole usare una delle opzioni avanzate per questo connettore per ottimizzare la query, vedere Usare
le opzioni avanzate.
Dopo aver completato la compilazione delle informazioni pertinenti, selezionare OK.
3. Quando si accede al database per la prima volta, il server di messaggi SAP BW server messaggi richiede
le credenziali utente del database. Power Query Desktop offre due modalità di autenticazione per le
connessioni SAP BW l'autenticazione con nome utente/password (database) e l'autenticazione Windows
— (Single Sign-On). L'autenticazione SAML non è attualmente supportata. Selezionare Windows o
Database . Se si seleziona Autenticazione database, immettere il nome utente e la password. Se si
seleziona autenticazione Windows, passare a Autenticazione Windows e Single Sign-On per altre
informazioni sui requisiti per l'Windows autenticazione.
Selezionare Connetti .
Per altre informazioni sull'autenticazione, vedere Autenticazione con un'origine dati.
4. Nella finestra di dialogo Strumento di navigazione selezionare gli elementi da usare. Quando si
selezionano uno o più elementi dal server, la finestra di dialogo Strumento di navigazione crea
un'anteprima della tabella di output. Per altre informazioni sull'esplorazione SAP BW oggetti query del
server messaggi in Power Query, vedere Esplorare gli oggetti query.
5. Nella finestra di dialogo Strumento di navigazione è possibile trasformare i dati nel editor di Power
Query selezionando Trasforma dati oppure caricare i dati selezionando Carica.
Vedi anche
Esplorare gli oggetti query
SAP Business Warehouse fondamentali
Usare le opzioni avanzate
SAP Business Warehouse risoluzione dei problemi del connettore
Nozioni fondamentali su SAP BW
07/12/2021 • 6 minutes to read
Questo articolo descrive la terminologia di base usata per descrivere le interazioni tra il server SAP BW e Power
Query. Include anche informazioni sugli strumenti che possono risultare utili quando si usa Power Query SAP
BW connettore.
Architettura di integrazione
Dal punto di vista tecnico, l'integrazione tra applicazioni e SAP BW si basa sulle cosiddette interfacce BAPI
(Business Application Programming Interface) OLAP (Online Analytical Processing).
I BAPI OLAP vengono forniti con SAP BW e forniscono a terze parti e sviluppatori interfacce standardizzate che
consentono di accedere ai dati e ai metadati di SAP BW con i propri strumenti front-end.
Le applicazioni di tutti i tipi possono essere connesse a un server SAP BW usando questi metodi.
I BAFI OLAP vengono implementati in SAP BW moduli di funzione abilitati per RFC e vengono richiamati dalle
applicazioni tramite il protocollo RFC di SAP. A questo scopo, è necessario installare la libreria RFC NetWeaver o
SAP .NET Connector nel computer dell'applicazione.
I BAFI OLAP forniscono metodi per l'esplorazione dei metadati e dei dati master e anche per il passaggio di
istruzioni MDX per l'esecuzione al processore MDX.
Il processore OLAP è responsabile del recupero, dell'elaborazione e della formattazione dei dati dagli oggetti di
origine SAP BW, descritti più avanti in Origine dati di SAP BW e Oggetti dati in SAP BW.
SAP Business Explorer e altri strumenti SAP usano un'interfaccia più diretta per il processore OLAP di SAP BW
denominato Business Intelligence Consumer Services, comunemente noto come BICS. BiCS non è disponibile
per strumenti di terze parti.
Dopo la connessione all'istanza SAP BW, nella finestra di dialogo Strumento di navigazione verrà visualizzato
un elenco di cataloghi disponibili nel server selezionato.
Verrà visualizzata una cartella del catalogo con il nome $INFOCUBE. Questa cartella contiene tutti gli
InfoProvider nel SAP BW sistema.
Le altre cartelle del catalogo rappresentano InfoProvider in SAP BW per cui esiste almeno una query.
La finestra di dialogo Strumento di navigazione visualizza un albero gerarchico di oggetti dati dal sistema SAP
BW connesso. Nella tabella seguente vengono descritti i tipi di oggetti .
Server SAP BW
Cifra chiave
Caratteristica
Livello di caratteristica
Proprietà (attributo)
Gerarchia
NOTE
Lo strumento di navigazione mostra le query InfoCubes e BEx. Per le query BEx, potrebbe essere necessario passare a
Business Explorer, aprire la query desiderata e selezionare Consenti accesso esterno a questa query: Per OLE DB per
OL AP perché la query sia disponibile nello strumento di navigazione.
NOTE
In Power BI Desktop, gli oggetti sotto un nodo InfoCube o BEx Query, ad esempio le figure chiave, le caratteristiche e le
proprietà, vengono visualizzati solo in modalità di connettività Di importazione, non in modalità DirectQuery. In modalità
DirectQuery, tutti gli oggetti disponibili vengono mappati a un modello Power BI e saranno disponibili per l'uso in
qualsiasi oggetto visivo.
Nello strumento di spostamento è possibile selezionare tra diverse opzioni di visualizzazione per visualizzare gli
oggetti query disponibili in SAP BW:
Solo elementi selezionati: questa opzione limita gli oggetti visualizzati nell'elenco solo agli elementi
selezionati. Per impostazione predefinita, vengono visualizzati tutti gli oggetti query. Questa opzione è
utile per esaminare gli oggetti inclusi nella query. Un altro approccio alla visualizzazione degli elementi
selezionati consiste nel selezionare i nomi delle colonne nell'area di anteprima.
Abilita anteprime dati: questo valore è il valore predefinito. Questa opzione consente di controllare se
un'anteprima dei dati deve essere visualizzata a destra nella finestra di dialogo Strumento di navigazione.
La disabilitazione delle anteprime dei dati riduce la quantità di interazione del server e il tempo di
risposta. In Power BI Desktop, l'anteprima dei dati è disponibile solo in modalità di connettività
importazione.
Nomi tecnici: SAP BW la nozione di nomi tecnici per gli oggetti query, anziché i nomi descrittivi
visualizzati per impostazione predefinita. I nomi tecnici identificano in modo univoco un oggetto
all'interno SAP BW. Con l'opzione selezionata, i nomi tecnici verranno visualizzati accanto al nome
descrittivo dell'oggetto.
Gerarchie di caratteristiche
Una caratteristica avrà sempre almeno un livello di caratteristica (livello 01), anche quando non è definita alcuna
gerarchia per la caratteristica. L'oggetto Livello di caratteristica 01 contiene tutti i membri per la
caratteristica come elenco semplice di valori.
Le caratteristiche SAP BW possono avere più gerarchie definite. Per queste caratteristiche, è possibile selezionare
solo una gerarchia o l'oggetto Livello 01.
Per le caratteristiche con gerarchie, le proprietà selezionate per tale caratteristica verranno incluse per ogni
livello selezionato della gerarchia.
NOTE
Le proprietà della misura non sono disponibili in Power BI Desktop in modalità DirectQuery.
Appiattimento dei dati multidimensionali
In base agli oggetti e alle proprietà selezionati nello strumento di navigazione, Power Query un'istruzione MDX
inviata per l'esecuzione SAP BW. L'istruzione MDX restituisce un set di dati flat che può essere ulteriormente
modificato usando il editor di Power Query.
Power Query usa un'interfaccia più recente disponibile in SAP BW versione 7.01 o successiva. L'interfaccia
riduce il consumo di memoria e il set di risultati non è limitato dal numero di celle.
Il set di dati flat viene aggregato in SAP BW livello delle caratteristiche e delle proprietà selezionate.
Anche con questi miglioramenti, il set di dati risultante può diventare molto grande e richiedere molto tempo
per l'elaborazione.
Raccomandazione sulle prestazioni
Includere solo le caratteristiche e le proprietà necessarie. Puntare a livelli di aggregazione più elevati, ad
esempio sono necessari dettagli a livello di materiale nel report o sono sufficienti a livello di MaterialGroup?
Quali livelli di gerarchia sono necessari in Power BI? Provare a creare set di dati più piccoli, con livelli di
aggregazione più elevati o più set di dati più piccoli, che possono essere uniti in un secondo momento.
Parametri di query
Nelle query SAP BW possono essere definiti filtri dinamici che consentono di limitare il set di dati restituito dalla
query. In Progettazione query BEx questo tipo di filtro dinamico può essere definito con la cosiddetta restrizione
caratteristica e assegnando una variabile a tale restrizione. Le variabili in una query possono essere obbligatorie
o facoltative e sono disponibili per l'utente nello strumento di navigazione.
Quando si seleziona una query SAP BW con restrizioni delle caratteristiche nello strumento di spostamento
Power Query, le variabili vengono visualizzate come parametri sopra l'area di anteprima dei dati.
Usando il selettore Mostra è possibile visualizzare tutti i parametri definiti nella query o solo quelli necessari.
La query illustrata nell'immagine precedente ha diversi parametri facoltativi, tra cui uno per Material Group . È
possibile selezionare uno o più gruppi di materiali per restituire solo le informazioni di acquisto per i valori
selezionati, ad esempio maiuscole e minuscole, schede madre e processori. È anche possibile digitare i valori
direttamente nel campo dei valori. Per le variabili con più voci, sono previsti valori delimitati da virgole, in
questo esempio sarà simile a [0D_MTLGROUP].[201], [0D_MTLGROUP].[202], [0D_MTLGROUP].[208] .
Il valore # indica non assegnato; nell'esempio qualsiasi record di dati senza un valore del gruppo di materiali
assegnato.
Raccomandazione sulle prestazioni
I filtri basati sui valori dei parametri vengono elaborati nell'origine SAP BW dati, non in Power BI. Questo tipo di
elaborazione può avere vantaggi in termini di prestazioni per set di dati più grandi durante il caricamento o
l'aggiornamento SAP BW dati in Power BI. Il tempo necessario per caricare i dati da SAP BW in Power BI
aumenta con le dimensioni del set di dati, ad esempio il numero di colonne e righe nel set di risultati appiattito.
Per ridurre il numero di colonne, selezionare solo le figure chiave, le caratteristiche e le proprietà nello
strumento di navigazione che si vuole visualizzare.
Analogamente, per ridurre il numero di righe, usare i parametri disponibili nella query per restringere il set di
dati o suddividere un set di dati più grande in più set di dati più piccoli che possono essere uniti nel modello di
dati Power BI Desktop.
In molti casi, può anche essere possibile collaborare con l'autore della query BEx in SAP BW per clonare e
modificare una query esistente e ottimizzarla per le prestazioni aggiungendo ulteriori restrizioni delle
caratteristiche o rimuovendo le caratteristiche non necessarie.
Con editor di Power Query, è possibile applicare altre trasformazioni dati e passaggi di filtro prima di portare il
set di dati da SAP BW nel modello di dati Power BI Desktop o Microsoft Power Platform dati.
In editor di Power Query i passaggi applicati per la query vengono visualizzati nel riquadro Impostazioni query
a destra. Per modificare o rivedere un passaggio, selezionare l'icona a forma di ingranaggio accanto a un
passaggio.
Ad esempio, se si seleziona l'icona a forma di ingranaggio accanto a Elementi aggiunti , è possibile esaminare gli
oggetti dati selezionati in SAP BW o modificare i parametri di query specificati. In questo modo è possibile
filtrare un set di dati usando una caratteristica non inclusa nel set di risultati.
È possibile applicare filtri aggiuntivi al set di dati selezionando il menu a discesa per una delle colonne.
Un altro modo semplice per impostare un filtro è fare clic con il pulsante destro del mouse su uno dei valori
nella tabella, quindi scegliere Filtri membri o Filtri testo.
Ad esempio, è possibile filtrare il set di dati in modo da includere solo i record relativi a Calendar Year/Month
FEB 2003 oppure applicare un filtro di testo per includere solo i record in cui Calendar Year/Month contiene
2003.
Non tutti i filtri verranno suddivisi nella query in base SAP BW. È possibile determinare se un filtro viene inserito
nella query esaminando l'icona nell'angolo superiore sinistro della tabella dati, direttamente sopra il numero 1
del primo record di dati.
Se l'icona è un cubo, il filtro viene applicato nella query al SAP BW sistema.
Se l'icona è una tabella, il filtro non fa parte della query e viene applicato solo alla tabella.
Dietro l'interfaccia utente editor di Power Query, il codice viene generato in base al linguaggio della formula M
per le query di mashup dei dati.
È possibile visualizzare il codice M generato con l Editor avanzato nella scheda Visualizza.
Per visualizzare una descrizione per ogni funzione o per testarla, fare clic con il pulsante destro del mouse sulla
query SAP BW query esistente nel riquadro Query e selezionare Crea funzione. Nella barra della formula in
alto immettere:
= < function name >
dove <nome> funzione è il nome della funzione che si vuole visualizzare come descritto. Nell'esempio seguente
viene illustrata la descrizione della Cube.Transform funzione .
Negli esempi seguenti vengono mostrate alcune descrizioni di varie funzioni del cubo:
Cube.Transform : applica l'elenco di funzioni o trasformazioni al cubo.
Cube.ApplyParameter : applica i valori specificati per un parametro.
Cube.DisplayFolders : restituisce un albero annidato di oggetti che rappresenta la gerarchia di cartelle di
visualizzazione del cubo.
Cube.Parameters : restituisce una tabella con il set di parametri che è possibile applicare al cubo.
Cube.Dimensions : restituisce una tabella con il set di dimensioni per il cubo.
Cube.Measures : restituisce una tabella con il set di misure per il cubo.
Vedi anche
Informazioni di riferimento sul linguaggio delle formule M di Power Query
Dettagli di implementazione
Dettagli dell'implementazione
07/12/2021 • 12 minutes to read
SapBusinessWarehouseExecutionMode.BasXmlGzip
SapBusinessWarehouseExecutionMode.DataStream
In tal caso, aggiungere Implementation 2.0 l'opzione e rimuovere ScaleMeasures l'opzione, se presente,
come illustrato.
Se la query non include un record di opzione, aggiungere il record. Nel caso dell'opzione seguente:
È stato fatto tutto il possibile per rendere l'implementazione 2.0 del connettore SAP BW compatibile con la
versione 1. Tuttavia possono essere presenti alcune differenze, originate dalle diverse modalità di esecuzione
MDX usate in SAP BW. Per risolvere eventuali discrepanze, provare ad alternare tra le diverse modalità di
esecuzione.
let
Source = SapBusinessWarehouse.Cubes("sapbwtestserver", "00", "837",
[ExecutionMode=SapBusinessWarehouseExecutionMode.BasXmlGzip, Implementation="2.0"]),
#"$INFOCUBE" = Source{[Name="$INFOCUBE"]}[Data],
#"$0D_DECU" = #"$INFOCUBE"{[Id="$0D_DECU"]}[Data],
#"Added Items" = Cube.Transform(#"$0D_DECU",
{
{Cube.AddAndExpandDimensionColumn, "[0CALDAY]", {"[0CALDAY].[LEVEL01]"}, {"Calendar day.Calendar day
Level 01"}},
{Table.AddColumn, "Calendar day.Calendar day Level 01.Key", each
Cube.AttributeMemberProperty([Calendar day.Calendar day Level 01], "[20CALDAY]")},
{Cube.AddMeasureColumn, "Billed Quantity", "[Measures].[0D_INV_QTY]"}
})
in
#"Added Items"
È necessario aggiungere la chiave in per accedere alla data digitata. Ad esempio, se è presente un attributo di
dimensione denominato [0CALDAY], è necessario aggiungere la chiave [20CALDAY] per ottenere il valore tipiato.
Nell'esempio precedente ciò significa che:
Giorno del calendario. Il giorno del calendario Livello 01 [0CALDAY] sarà testo (didascalia). Aggiunta per
impostazione predefinita quando viene aggiunta la dimensione.
Giorno del calendario. Calendar day Level 01.Key [20CALDAY] sarà una data (deve essere selezionata
manualmente).
Per aggiungere manualmente la chiave in modalità importazione, è sufficiente espandere Proprietà e
selezionare la chiave.
La colonna chiave sarà di tipo date e può essere usata per il filtro. L'applicazione di filtri in base a questa colonna
verrà ripiegata sul server.
Unità di misura Le unità di misura (ad esempio, 230 KG) non vengono
riflesse in Power Query.
Chiave rispetto a testo (breve, medio, lungo) Per una SAP BW caratteristica come CostCenter, lo
strumento di navigazione mostrerà un singolo elemento
Cost Center Level 01. La selezione di questo elemento
includerà il testo predefinito per Centro di costo nell'elenco
dei campi. Inoltre, i valori Chiave, Nome breve, Nome medio
e Nome lungo sono disponibili per la selezione nel nodo
Proprietà per la caratteristica (se mantenuta in SAP BW).
Più gerarchie di una caratteristica In SAP, una caratteristica può avere più gerarchie. In
strumenti come BEx Analyzer, quando una caratteristica
viene inclusa in una query, l'utente può quindi selezionare la
gerarchia da usare.
Trattamento delle gerarchie incomplete SAP BW supporta gerarchie incomplete, in cui è possibile
non visualizzare i livelli, ad esempio:
Continente
Americas
Canada
USA
Non assegnato
Australia
Continente
Americas
Canada
USA
Non assegnato
(Vuoto)
Australia
Fattore di proporzione/invertire il segno In SAP, una figura chiave può avere un fattore di scala (ad
esempio, 1000) definito come opzione di formattazione, vale
a dire che tutti gli schermi verranno ridimensionati in base a
tale fattore.
Gerarchie in cui i livelli appaiono/scompaiono in modo Quando ci si connette inizialmente a SAP BW, verranno
dinamico recuperate le informazioni sui livelli di una gerarchia,
popolando l'elenco dei campi con un set di campi, Viene
memorizzato nella cache e, se il set di livelli cambia, il set di
campi non cambia fino a quando non viene richiamato
Refresh.
Filtro predefinito Una query BEX può includere filtri predefiniti, che verranno
applicati automaticamente da SAP BEx Analyzer. Questi filtri
non vengono esposti e pertanto l'utilizzo equivalente in
Power Query non appli0rà gli stessi filtri per impostazione
predefinita.
Cifre chiave nascoste Una query BEX può controllare la visibilità delle figure chiave
e quelle nascoste non verranno visualizzate in SAP BEx
Analyzer. Questa operazione non viene riflessa tramite l'API
pubblica e quindi tali cifre chiave nascoste verranno
comunque visualizzate nell'elenco dei campi. Tuttavia,
possono essere nascoste all'interno di Power Query.
Controllo delle versioni della gerarchia SAP BW consente di gestire versioni differenti di una
gerarchia; ad esempio, la gerarchia del centro di costo nel
2007 rispetto al 2008. Solo la versione più recente sarà
disponibile in Power Query, perché le informazioni sulle
versioni non sono esposte dall'API pubblica.
Gerarchie dipendenti dal tempo Quando si Power Query, le gerarchie dipendenti dal tempo
vengono valutate alla data corrente.
Impostazione della lingua utente finale Le impostazioni locali usate per connettersi SAP BW
vengono impostate come parte dei dettagli della
connessione e non riflettono le impostazioni locali del
consumer del report finale.
Variabili di uscita cliente Le variabili customer exit non sono esposte dall'API pubblica
e pertanto non sono supportate da Power Query.
Limitare la selezione di caratteristiche e proprietà (attributo) Il tempo necessario per caricare i dati da SAP BW in Power
Query aumenta con le dimensioni del set di dati, ad esempio
il numero di colonne e righe nel set di risultati bi flat. Per
ridurre il numero di colonne, selezionare solo le
caratteristiche e le proprietà nello strumento di navigazione
che si desidera visualizzare nel report o nel dashboard.
Limitare il numero di cifre chiave La selezione di molte cifre chiave da un modello di query
BEx/BW può avere un impatto significativo sulle prestazioni
durante l'esecuzione della query a causa del tempo
impiegato per il caricamento dei metadati per le unità.
Includere solo le cifre chiave necessarie in Power Query.
Suddividere query di dimensioni molto grandi in più query Per query di dimensioni molto grandi su Query InfoCube o
più piccole BEx, può essere utile suddividere la query. Ad esempio, una
query potrebbe ottenere le cifre chiave, mentre un'altra
query (o diverse altre query) sta ottenendo i dati delle
caratteristiche. È possibile unire i singoli risultati della query
in Power Query.
SUGGERIM EN TO DESC RIZ IO N E
Evitare provider virtuali (MultiProvider o InfoSet) VirtualProvider sono simili alle strutture senza archiviazione
permanente. Sono utili in molti scenari, ma possono
mostrare prestazioni di query più lente perché
rappresentano un livello aggiuntivo sui dati effettivi.
Evitare l'uso di attributi di navigazione nella query BEx Una query con un attributo di navigazione deve eseguire un
join aggiuntivo, rispetto a una query con lo stesso oggetto
come caratteristica per arrivare ai valori.
Usare RSRT per monitorare e risolvere i problemi relativi alle L'amministratore SAP può usare Query Monitor in SAP BW
query con esecuzione lenta (transazione RSRT) per analizzare i problemi di prestazioni
con SAP BW query. Per altre informazioni, 1591837 note
SAP.
Evitare cifre chiave con restrizioni e cifre chiave calcolate Entrambi vengono calcolati durante l'esecuzione delle query
e possono rallentare le prestazioni delle query.
Prendere in considerazione l'uso dell'aggiornamento Power BI il set di dati completo a ogni aggiornamento. Se si
incrementale per migliorare le prestazioni lavora con un volume elevato di dati, l'aggiornamento del
set di dati completo a ogni aggiornamento potrebbe non
essere ottimale. In questo scenario è possibile usare
l'aggiornamento incrementale, in modo da aggiornare solo
un subset di dati. Per altri dettagli, vedere Aggiornamento
incrementale in Power BI.
Vedi anche
Server applicazioni SAP Business Warehouse
Server messaggi SAP Business Warehouse
Importa rispetto a DirectQuery per SAP BW
Importa rispetto a DirectQuery per SAP BW
07/12/2021 • 7 minutes to read
NOTE
Questo articolo illustra le differenze tra le modalità Import e DirectQuery in Power BI Desktop. Per una descrizione
dell'uso della modalità di importazione in Power Query Desktop o Power Query Online, vedere le sezioni seguenti:
SAP BW connettore del server applicazioni:
Connessione a un server applicazioni SAP BW da Power Query Desktop
Connessione a un server applicazioni SAP BW da Power Query Online
SAP BW connettore server messaggi:
Connessione a un SAP BW Message Server da Power Query Desktop
Connessione a un server messaggi SAP BW da Power Query Online
Con Power Query, è possibile connettersi a un'ampia gamma di origini dati, tra cui Servizi online, database,
formati di file diversi e altre. Se si usa Power BI Desktop, è possibile connettersi a queste origini dati in due modi
diversi: importare i dati in Power BI o connettersi direttamente ai dati nel repository di origine, noto come
DirectQuery. Quando ci si connette a un SAP BW, è anche possibile scegliere tra queste due modalità di
connettività. Per un elenco completo delle origini dati che supportano DirectQuery, vedere Power BI origini dati.
Di seguito sono descritte le differenze principali tra le due modalità di connettività, nonché le linee guida e le
limitazioni, in relazione alle connessioni SAP BW connessioni. Per altre informazioni sulla modalità DirectQuery,
vedere Uso di DirectQuery in Power BI.
Connessioni DirectQuery
L'esperienza di navigazione è leggermente diversa quando ci si connette a un'origine SAP BW in modalità
DirectQuery. Lo strumento di navigazione continuerà a visualizzare un elenco di InfoProvider e query BEx
disponibili in SAP BW, ma non Power BI è definita alcuna query nel processo. Si selezionerà l'oggetto di origine
stesso, ad esempio la query InfoProvider o BEx, e verrà visualizzato l'elenco dei campi con le caratteristiche e le
cifre chiave dopo la connessione.
Per SAP BW query con variabili, è possibile immettere o selezionare valori come parametri della query.
Selezionare il pulsante Applica per includere i parametri specificati nella query.
Anziché un'anteprima dei dati, vengono visualizzati i metadati dell'InfoCube o della query BEx selezionata. Dopo
aver selezionato il pulsante Carica nello Strumento di navigazione, non verrà importato alcun dato.
È possibile apportare modifiche ai valori per le variabili SAP BW query con l'opzione Modifica query sulla
barra Power BI Desktop multifunzione.
Quando si inizia a creare gli oggetti visivi in Power BI Desktop, viene eseguita una query sull'origine dati
sottostante in SAP BW per recuperare i dati necessari. Il tempo necessario per aggiornare un oggetto visivo
dipende dalle prestazioni del sistema SAP BW sottostante.
Eventuali modifiche apportate ai dati sottostanti non verranno riflesse immediatamente negli oggetti visivi. Sarà
comunque necessario eseguire un'operazione Di aggiornamento , che eseguirà di nuovo le query per ogni
oggetto visivo sull'origine dati sottostante.
Quando si pubblica un report nel servizio Power BI, verrà creato nuovamente un set di dati nel servizio Power BI,
come per una connessione di importazione. In tale set di dati, tuttavia, non sono inclusi dati.
Quando si lavora con un report nel servizio Power BI, viene eseguita di nuovo una query sull'origine dati
sottostante per recuperare i dati necessari. Per le connessioni DirectQuery ai sistemi SAP BW e SAP HANA, è
necessario che sia installato un gateway dati locale e che l'origine dati sia registrata con il gateway.
Per SAP BW query con variabili, gli utenti finali possono modificare i parametri della query.
NOTE
Per poter modificare i parametri, l'utente finale deve pubblicare il set di dati in un'area di lavoro Premium, in modalità
DirectQuery, e deve essere abilitato l'accesso Single Sign-On (SSO).
Suggerimenti generali
È consigliabile importare i dati Power BI quando possibile. L'importazione dei dati sfrutta il motore di query a
prestazioni elevate di Power BI e offre un'esperienza estremamente interattiva e completa sui dati.
DirectQuery offre tuttavia i vantaggi seguenti quando ci si connette a SAP BW:
Consente di accedere ai dati SAP BW SSO, per garantire che la sicurezza definita nell'origine SAP BW
sottostante sia sempre applicata. Quando si accede SAP BW SSO, verranno applicate le autorizzazioni di
accesso ai dati dell'utente in SAP, che possono produrre risultati diversi per utenti diversi. I dati che un
utente non è autorizzato a visualizzare verranno tagliati SAP BW.
Garantisce che i dati più recenti possano essere facilmente visibili, anche se cambiano di frequente
nell'origine SAP BW sottostante.
Garantisce che sia possibile gestire facilmente misure complesse, in cui il SAP BW di origine viene sempre
sottoposto a query per i dati aggregati, senza alcun rischio di aggregazioni impreviste e fuorvianti
rispetto alle cache importate dei dati.
Evita le cache dei dati estratti e pubblicati, che potrebbero violare la sovranità dei dati o i criteri di
sicurezza applicati.
L'uso di DirectQuery è in genere possibile solo quando l'origine dati sottostante può fornire query interattive
per la tipica query di aggregazione entro pochi secondi ed è in grado di gestire il carico di query che verrà
generato. Inoltre, è necessario prendere in considerazione l'elenco delle limitazioni che accompagnano l'uso di
DirectQuery, per garantire che gli obiettivi possano essere ancora soddisfatti.
Se si lavora con set di dati di dimensioni molto grandi o si verifica un tempo di risposta alle query di SAP BW
lento in modalità DirectQuery, Power BI offre opzioni nel report per inviare un minor numero di query,
semplificando l'interazione con il report. Per accedere a queste opzioni in Power BI Desktop, passare a Opzioni
file e impostazioni > > Opzioni e selezionare Riduzione quer y.
È possibile disabilitare l'evidenziazione incrociata nell'intero report, riducendo il numero di query inviate SAP
BW. È anche possibile aggiungere un pulsante Applica ai filtri dei dati e filtrare le selezioni. È possibile
effettuare tutte le selezioni desiderate per filtri dei dati e filtri, ma non verrà inviata alcuna query SAP BW fino a
quando non si seleziona il pulsante Applica. Le selezioni verranno quindi usate per filtrare tutti i dati.
Queste modifiche verranno applicate al report mentre si interagisce con esso in Power BI Desktop, nonché
quando gli utenti utilizzano il report nel servizio Power BI dati.
Nel servizio Power BI, la cache delle query per le connessioni DirectQuery viene aggiornata periodicamente
tramite query sull'origine dati. Per impostazione predefinita, questo aggiornamento viene eseguita ogni ora, ma
può essere configurato per un intervallo diverso nelle impostazioni del set di dati. Per altre informazioni, vedere
Aggiornamento dati in Power BI.
Inoltre, molte delle procedure consigliate generali descritte in Uso di DirectQuery in Power BI si applicano
ugualmente quando si usa DirectQuery su SAP BW. Altri dettagli specifici per SAP BW sono descritti in
Connessione to SAP Business Warehouse by using DirectQuery in Power BI.
Vedi anche
Autenticazione di Windows e Single Sign-On
Autenticazione di Windows e Single Sign-On
07/12/2021 • 2 minutes to read
NOTE
Le informazioni seguenti sull'Windows e l'accesso Single Sign-On si applicano solo a Power Query Desktop. Per altre
informazioni sull'uso dell'autenticazione Windows e dell'accesso Single Sign-On in Power Query Desktop, vedere
Panoramica dell'accesso Single Sign-On (SSO)per i gateway in Power BI .
Per Windows'autenticazione basata su certificati e la funzionalità Single Sign-On, il server SAP BW deve essere
configurato per l'accesso tramite Secure Network Communications (SNC). SNC è un meccanismo fornito dal
sistema SAP che consente la sicurezza a livello di applicazione sui dati s scambiati tra un client, ad esempio
Power BI Desktop, e il server SAP BW. SNC funziona con diversi prodotti di sicurezza esterni e offre funzionalità
non fornite direttamente dal sistema SAP, incluso l'accesso Single Sign-On.
Oltre al server SAP BW configurato per l'accesso SNC, l'account utente SAP deve essere configurato con un
nome SNC (transazione SU01 nel sistema SAP).
Per informazioni più dettagliate, vedere Secure Network Communication(Comunicazione di rete sicura) e il
capitolo Single Sign-On Configuration in questo documento.
Secure Login è una soluzione software di SAP che consente ai clienti di trarre vantaggio dai vantaggi del
controller di rete SNC senza dover configurare un'infrastruttura a chiave pubblica (PKI). Accesso sicuro consente
agli utenti di eseguire l'autenticazione Windows credenziali di Active Directory.
Secure Login richiede l'installazione di Secure Login Client nel Power BI Desktop computer. Il pacchetto di
installazione è SAPSetupSCL.EXE e può essere ottenuto da SAP Service Marketplace (richiede le credenziali del
cliente SAP).
Per altre informazioni, vedere Accesso sicuro.
1. Nella finestra di SAP Business Warehouse ser ver di distribuzione selezionare la Windows
predefinita.
2. Selezionare questa opzione per usare le credenziali Windows correnti o specificare credenziali Windows
alternative.
3. Immettere il nome del par tner SNC. Questo nome è il nome SNC configurato nel token SAP BW di
sicurezza del server. È possibile recuperare il nome SNC con la transazione RZ11 (Profile Parameter
Maintenance) in SAPGUI e il nome del parametro snc/identity/as .
Per i token di sicurezza del certificato X.509, il formato è:
P:<X.509 Distinguished Name>
Esempio (i valori sono con distinzione tra maiuscole e minuscole): p:CN=BW0, OU=BI, O=MyOrg,
C=US
Per i token di sicurezza Kerberos, il formato è:
p:CN= <ser vice_User_Principal_Name>
Esempio (i valori sono con distinzione tra maiuscole e minuscole): p:CN=
SAPSer viceBW0@BWSERVER.MYORG.COM
4. Selezionare la libreria SNC per cui è stato SAP BW'ambiente locale.
L SNC_LIB o SNC_LIB_64'opzione controlla la variabile di ambiente corrispondente nel
computer e usa la DLL specificata in tale posizione.
Le opzioni NTLM e KERBEROS prevedono che la DLL corrispondente sia in una cartella
specificata nella variabile PATH nel computer locale. Le librerie per i sistemi a 32 bit GSSNTLM.DLL
(per NTLM) e GSSKRB5.DLL (per Kerberos). Le librerie per i sistemi a 64 bit GX64NTLM.DLL (per
NTLM) e GX64KRB5.DLL (per Kerberos).
L'opzione Personalizzata consente l'uso di una libreria sviluppata personalizzata.
Convalidare le impostazioni con l'amministratore SAP.
5. Selezionare Connetti .
Vedi anche
Usare le opzioni avanzate
Usare le opzioni avanzate
07/12/2021 • 4 minutes to read
Quando si crea una connessione a un server SAP Business Warehouse, è possibile specificare facoltativamente
un codice lingua, la modalità di esecuzione, le dimensioni del batch e un'istruzione MDX. È anche possibile
scegliere se abilitare le strutture delle caratteristiche.
NOTE
Anche se le immagini in questo articolo illustrano le opzioni avanzate nel connettore SAP Business Warehouse Application
Server, funzionano allo stesso modo nel connettore SAP Business Warehouse Message Server.
Codice lingua
Facoltativamente, è possibile specificare un codice lingua quando si stabilisce una connessione al SAP BW server.
Il valore previsto è un codice linguistico di due lettere come definito nel sistema SAP. In Power Query Desktop
selezionare l'icona della Guida (punto interrogativo) accanto al campo Codice lingua per un elenco di valori
validi.
Dopo aver impostato il codice lingua, Power Query i nomi descrittivi degli oggetti dati in SAP BW nella lingua
specificata, inclusi i nomi dei campi per gli oggetti selezionati.
NOTE
Non tutte le lingue elencate potrebbero essere configurate nel sistema SAP BW e le descrizioni degli oggetti potrebbero
non essere tradotte in tutte le lingue.
Se non viene specificato alcun codice di lingua, verranno usate le impostazioni locali predefinite della finestra di
dialogo Opzioni e verrà eseguito il mapping a un codice di lingua SAP valido. Per visualizzare o ignorare le
impostazioni locali correnti in Power BI Desktop, aprire la finestra di dialogo Opzioni e impostazioni file e
selezionare Impostazioni internazionali > > file > correnti . Per visualizzare o sostituire le impostazioni locali
correnti in Power Query Online, aprire la finestra di dialogo Opzioni home > > Project opzioni. Se si esegue
l'override delle impostazioni locali, l'impostazione viene mantenuta nella query M e viene rispettata se si copia e
incolla la query da Power Query Desktop a Power Query Online.
Modalità di esecuzione
NOTE
La modalità di esecuzione non può essere modificata nella versione 1.0 del SAP BW connettore.
L'opzione Modalità di esecuzione specifica che l'interfaccia MDX viene usata per eseguire query nel server.
Sono valide le opzioni seguenti:
BasXml: specifica l'opzione bXML flattening mode per l'esecuzione MDX in SAP Business Warehouse.
BasXmlGzip: specifica l'opzione della modalità flat flat BXML compressa Gzip per l'esecuzione MDX in
SAP Business Warehouse. Questa opzione è consigliata per query a bassa latenza o con volumi elevati.
Valore predefinito per l'opzione della modalità di esecuzione.
DataStream : specifica l'opzione DataStream flattening mode per l'esecuzione MDX in SAP Business
Warehouse.
Dimensioni dei batch
NOTE
Le dimensioni del batch non possono essere modificate nella versione 1.0 del connettore SAP BW batch.
Istruzione MDX
NOTE
L'opzione di istruzione MDX non è disponibile in Power Query Online.
Invece di usare lo strumento di navigazione per esplorare e selezionare tra gli oggetti dati disponibili in SAP BW,
un utente che ha familiarità con il linguaggio di query MDX può specificare un'istruzione MDX per l'esecuzione
diretta in SAP BW. Tenere tuttavia presente che non verrà applicata alcuna ulteriore ripiegamento delle query
quando si usa un'istruzione MDX personalizzata.
L'istruzione per l'esempio usato qui sarà simile a quanto illustrato nell'esempio seguente, in base ai nomi tecnici
degli oggetti e delle proprietà in SAP BW.
SELECT {[0EFUZM0P10X72MBPOYVBYIMLB].[0EFUZM0P10X72MBPOYVBYISWV]} ON COLUMNS ,
NON EMPTY CROSSJOIN(CROSSJOIN([0D_MATERIAL].[LEVEL01].MEMBERS,[0D_PUR_ORG].[LEVEL01].MEMBERS) ,
[0D_VENDOR].[LEVEL01].MEMBERS)
DIMENSION PROPERTIES
[0D_MATERIAL].[20D_MATERIAL],
[0D_MATERIAL].[50D_MATERIAL],
[0D_PUR_ORG].[20D_PUR_ORG],
[0D_PUR_ORG].[50D_PUR_ORG],
[0D_VENDOR].[20D_VENDOR],
[0D_VENTOR].[50D_VENDOR] ON ROWS FROM [0D_PU_C01/0D_PU_C01_Q0013]
Il SAP BW connector visualizza un'anteprima dei dati restituiti dall'istruzione MDX. È quindi possibile
selezionare Carica per caricare i dati (solo Power Query Desktop) o selezionare Trasforma dati per modificare
ulteriormente il set di dati nel editor di Power Query.
Per convalidare e risolvere i problemi di un'istruzione MDX, SAP BW la transazione MDXTEST per l'interfaccia
utente grafica SAP Windows utenti. Inoltre, la transazione MDXTEST può essere uno strumento utile per
analizzare gli errori del server o i problemi di prestazioni in seguito all'elaborazione che si verifica all'interno del
SAP BW sistema.
Per informazioni più dettagliate su questa transazione, vedere Ambiente di test MDX.
MDXTEST può essere usato anche per costruire un'istruzione MDX. La schermata della transazione include
pannelli a sinistra che assiste l'utente nella navigazione a un oggetto query SAP BW generazione di un'istruzione
MDX.
La transazione offre diverse modalità di esecuzione/interfacce per l'istruzione MDX. Selezionare Flattening
(basXML) per simulare Power Query la query in SAP BW. Questa interfaccia in SAP BW crea il set di righe in
modo dinamico usando le selezioni dell'istruzione MDX. La tabella dinamica risultante restituita a Power Query
Desktop ha una forma molto compatta che riduce il consumo di memoria.
La transazione visualizza il set di risultati dell'istruzione MDX e le metriche di runtime utili.
Vedi anche
Esplorare gli oggetti query
Trasformare e filtrare SAP BW set di dati
SAP Business Warehouse risoluzione dei problemi del connettore
SAP Business Warehouse risoluzione dei problemi
del connettore
07/12/2021 • 11 minutes to read
Questo articolo illustra le situazioni di risoluzione dei problemi (e le possibili soluzioni) per l'uso del connettore
SAP Business Warehouse (BW).
Molte volte in cui si verifica un errore, può essere vantaggioso raccogliere una traccia della query inviata al
server SAP BW e alla relativa risposta. La procedura seguente illustra come configurare tracce avanzate per i
problemi che si verificano usando il SAP BW connettore.
1. Chiudere Power BI Desktop se è in esecuzione.
2. Creare una nuova variabile di ambiente:
a. Nell'Windows Pannello di controllo selezionare Sistema > avanzato sistema Impostazioni .
È anche possibile aprire un prompt dei comandi e immettere sysdm.cpl .
b. In Proprietà di sistema selezionare la scheda Avanzate e quindi Variabili di ambiente .
c. In Variabili di ambiente selezionare Nuovo in Variabili di sistema .
d. In Nuova variabile di sistema in Nome variabile immettere PBI_EnableSapBwTracing e in
Valore variabile immettere true .
e. Selezionare OK .
Quando questa traccia avanzata viene attivata, nella car tella Tracce verrà creata una cartella aggiuntiva
denominata SapBw. Vedere il resto di questa procedura per il percorso della car tella Tracce.
3. Aprire Power BI Desktop.
4. Cancellare la cache prima dell'acquisizione.
a. In Power BI desktop selezionare la scheda File.
b. Selezionare Opzioni e impostazioni > Opzioni .
c. In Impostazioni globali scegliere Caricamento dati .
d. Selezionare Cancella cache .
5. Mentre si è ancora in Opzioni e impostazioni, abilitare la traccia.
a. In Impostazioni globali scegliere Diagnostica .
b. Selezionare Abilita traccia .
6. Mentre si è ancora in Opzioni e impostazioni Diagnostica globale , selezionare Apri cartella > >
dump/tracce di arresto anomalo del sistema . Assicurarsi che la cartella sia deselezionata prima di
acquisire nuove tracce.
7. Riprodurre il problema.
8. Al termine, chiudere Power BI Desktop in modo che i log siano scaricati su disco.
9. È possibile visualizzare le tracce appena acquisite nella cartella SapBw (la cartella Tracce che contiene la
cartella SapBw viene visualizzata selezionando Apri cartella dump/tracce di arresto anomalo del
sistema nella pagina Diagnostica in Power BI Desktop).
10. Assicurarsi di disattivare questa traccia avanzata al termine, rimuovendo la variabile di ambiente o
impostando PBI_EnableSapBwTracing su false.
Questo errore viene generato quando si verifica un errore nel server SAP BW e il connettore SAP .NET tenta di
recuperare informazioni sull'errore. Tuttavia, questo errore potrebbe nascondere l'errore reale. Questo errore
può verificarsi quando:
Uso di una versione precedente del connettore SAP .NET.
Sono installate più versioni del connettore SAP .NET.
Il connettore SAP .NET è stato installato due volte, una volta nella Global Assembly Cache (GAC) e una
volta non nella GaC.
Seguire le istruzioni in Eseguire un'installazione pulita del connettore SAP .NET per reinstallare il connettore.
Questo non risolverà il problema, ma fornirà il messaggio di errore effettivo.
Eccezione: inizializzatore di tipo per 'Microsoft.Mashup.Engine1.Library.SapBusinessWarehouse.
SapBwMicrosoftProviderFactoryService' ha generato un'eccezione.
Seguire le istruzioni in Eseguire un'installazione pulita del connettore SAP .NET per reinstallare il connettore.
Questo connettore richiede uno o più componenti aggiuntivi
Se viene visualizzato questo messaggio di errore, seguire questa procedura di risoluzione dei problemi:
1. Verificare che la versione del connettore SAP .NET sia installata con la lunghezza in bit corretta. Se è
installato Power BI Desktop a 64 bit, assicurarsi di aver installato il connettore SAP .NET a 64 bit.
2. Verificare che, durante l'installazione di SAP .NET Connector, sia stata selezionata l'opzione Install
assemblies to GAC (Installa assembly in GAC). Per verificare che gac sia installato, aprire Windows
Explorer e passare a:
C:\Windows\Microsoft.NET\assembly\GAC_64\sapnco
Ad esempio, il percorso completo potrebbe essere:
C:\Windows\Microsoft.NET\assembly\GAC_64\sapnco\v4.0_3.0.0.42__50436dca5c7f7d23\sapnco.dll
Se è stata installata la versione a 32 bit del connettore SAP .NET, sarebbe
C:\Windows\Microsoft.NET\assembly\GAC_32\sapnco\v4.0_3.0.0.42__50436dca5c7f7d23\sapnco.dll (ed è
necessaria una versione a 32 bit di Power BI Desktop).
Un altro modo per controllare la GLOBALC è usare gacutil (una delle opzioni per disabilitare la firma con nome
sicuro). È necessario eseguirlo da un prompt dei comandi a 64 bit. È possibile controllare il contenuto della
Global Assembly Cache aprendo un prompt dei comandi, passando al percorso gacutil.exe ed eseguendo:
gacutil -l
Ad esempio, nell'output dovrebbe essere visualizzato:
sapnco, Version=3.0.0.42, Culture=neutral, PublicKeyToken=50436dca5c7f7d23,
processorArchitecture=AMD64 sapnco_utils, Version=3.0.0.42, Culture=neutral,
PublicKeyToken=50436dca5c7f7d23, processorArchitecture=AMD64
"Nessuna autorizzazione RFC per la funzione ...*
L'implementazione 2.0 richiede l'accesso ai BAPI seguenti. Per risolvere il problema, contattare il team sap Basis
e richiedere le autorizzazioni per questi BAPI e RFC per l'utente.
Connettività:
RFC_PING
RFC_METADATA_GET
Esecuzione MDX:
RSR_MDX_CREATE_OBJECT
BAPI_MDDATASET_CREATE_OBJECT
BAPI_MDDATASET_SELECT_DATA
BAPI_MDDATASET_DELETE_OBJECT
RSR_MDX_GET_AXIS_INFO
RSR_MDX_GET_AXIS_DATA
RSR_MDX_GET_CELL_DATA
BAPI_MDDATASET_GET_AXIS_INFO
BAPI_MDDATASET_GET_AXIS_DATA
BAPI_MDDATASET_GET_CELL_DATA
ExecutionMode flattening:
RSR_MDX_GET_FLAT_DATA
RSR_MDX_GET_FS_DATA
BAPI_MDDATASET_GET_FLAT_DATA
BAPI_MDDATASET_GET_FS_DATA
Streaming ExecutionMode:
BAPI_MDDATASET_GET_STREAMDATA
BAPI_MDDATASET_GET_STREAMINFO
ExecutionMode BasXml:
RSR_MDX_BXML_GET_DATA
RSR_MDX_BXML_GET_GZIP_DATA
RSR_MDX_BXML_GET_INFO
RSR_MDX_BXML_SET_BINDING
Metadati:
BAPI_MDPROVIDER_GET_DIMENSIONS
BAPI_MDPROVIDER_GET_CATALOGS
BAPI_MDPROVIDER_GET_CUBES
BAPI_MDPROVIDER_GET_MEASURES
BAPI_MDPROVIDER_GET_HIERARCHYS
BAPI_MDPROVIDER_GET_LEVELS
BAPI_MDPROVIDER_GET_PROPERTIES
BAPI_MDPROVIDER_GET_MEMBERS
BAPI_MDPROVIDER_GET_VARIABLES
Informazioni:
BAPI_IOBJ_GETDETAIL (obbligatorio per le dimensioni tipiche (DATS, TIMS))
BAPI_USER_GET_DETAIL (usato solo per l'interfaccia flat)
RFC_READ_TABLE (obbligatorio per le chiamate a nomi di catalogo e a determinati valori di variabile)
Potrebbe essere chiamato dal connettore SAP .NET sottostante:
RFC_GET_FUNCTION_INTERFACE
FUNCTION_IMPORT_INTERFACE
DDIF_FIELDINFO_GET
SYSTEM_FINISH_ATTACH_GUI
BGRFC_DEST_CONFIRM
BGRFC_CHECK_UNIT_STATE_SERVER
BGRFC_DEST_SHIP
ARFC_DEST_SHIP
RFC_FUNCTION_SEARCH
RFC_SYSTEM_INFO
RFC_SET_REG_SERVER_PROPERTY
RFC_DOCU
SEO_GET_CLIF_REMOTE
SYSTEM_PREPARE_ATTACH_GUI
API_CLEAR_TID
ARFC_DEST_CONFIRM
Metodo non trovato 'Int32 SAP. Middleware.Connector.RfcBaseException.get_ErrorCode ()
Verificare che il connettore SAP .NET sia installato correttamente. Vedere Eseguire un'installazione pulita del
connettore SAP .NET.
Questo errore viene visualizzato quando la versione installata nella GaC è inferiore alla versione 3.0.18.0
prevista. Nota SAP 2417315 questo scenario.
Proprietà della stringa di connessione impostate dal connettore
Quando vengono forniti sia il nome del partner SNC che la libreria SNC, il connettore SAP BW Application
Server (implementazione 2.0) imposta queste proprietà nella stringa di connessione:
SNC_MODE — SncModeApply
SNC_LIB con il percorso della libreria specificato; se si tratta di una variabile di ambiente, viene — espansa a
questo punto
SNC_PARTNERNAME con — il valore fornito
SNC_QOP = RfcConfigParameters.RfcSncQOP.Default
Vengono usati per le connessioni SAP BW server applicazioni e SAP BW server messaggi.
Per entrambi i tipi di connessione, il connettore imposta:
LANG (lingua)
AREA
Per la SAP BW del server applicazioni, il connettore imposta:
ASHOST (AppServerHost)
SYSNR (SystemNumber)
Per SAP BW connessioni al server messaggi, il connettore imposta:
MSHOST (MessageServerHost)
SYSID (SystemID)
GROUP (LogonGroup)
Comando MDX non valido con <internal>
Questo errore proviene direttamente dal server SAP BW. L'implementazione 1 del connettore, basata su RFC
netweaver, non ha esposto questi errori all'utente, ma ha restituito un set di risultati vuoto.
Questo problema viene descritto nelle note SAP seguenti. L'accesso a queste note richiede un utente S. Per
applicare le correzioni pertinenti per questo problema, contattare il team di SAP Basis.
1084454 — MDX: Errore di sistema "Comando MDX non valido con <internal> "
1282785 — MDX: Errore di sistema "Comando MDX non valido con <internal> "
401607 errori — nel comando MDX con CROSSJOIN nel filtro dei dati
1786009 — MDX non valido quando si usa una formula membro con caratteri speciali
Inoltre, per altri errori simili, è possibile esaminare il contenuto delle note SAP seguenti e applicarle in base alle
esigenze dell'ambiente:
1142664 — MDX: Nota SAP composita sui miglioramenti delle prestazioni
1156101 — MDX: nota SAP composita sui dati non corretti
Problemi e limitazioni
Se si modificano i nomi delle variabili in un cubo SAP, il report DirectQuery viene interrotto e non irreversibile
Si verificano i sintomi seguenti:
Messaggio di errore— [Expression.Error] The import [XXXX] matches no exports.
Nei log— Message: [Expression.Error] The key didn't match any rows in the table.
StackTrace:
at Microsoft.Mashup.Engine1.Runtime.TableValue.get_Item(Value key)
at
Microsoft.Mashup.Engine1.Library.Cube.CubeParametersModule.Cube.ApplyParameterFunctionValue.GetParame
terValue(CubeValue cubeValue, Value parameter)
at
Microsoft.Mashup.Engine1.Library.Cube.CubeParametersModule.Cube.ApplyParameterFunctionValue.TypedInvo
ke(TableValue cube, Value parameter, Value arguments)
Detail: [Key = [Id = \"[!V000004]\"], Table = #table({...}, {...})]
NOTE
Questa variabile di ambiente non è supportata, pertanto deve essere usata solo come descritto qui.
3. Fare clic con il pulsante destro del mouse sulla query "Cube" e scegliere Editor avanzato .
4. La query deve avere una riga che inizia con "{Cube.ApplyParameter, "[! V000004]" (parametro mancante).
Rimuovere la riga.
5. Selezionare Operazione completata .
6. Chiudere il editor di Power Query.
7. Aggiornare l'oggetto visivo interessato.
Se la soluzione alternativa precedente non funziona, l'unica correzione alternativa consiste nel ricreare il report.
Dati numerici da SAP BW
NOTE
Le informazioni seguenti si applicano solo quando si usa Implementation 1.0 del connettore SAP BW o Implementation
2.0 del connettore SAP BW con la modalità Flattening (quando ExecutionMode=67).
Gli account utente SAP BW impostazioni predefinite per la formattazione dei valori decimali o di data/ora
quando vengono visualizzati all'utente nell'interfaccia utente grafica SAP.
Le impostazioni predefinite vengono mantenute nel sistema SAP nel profilo utente per un account e l'utente può
visualizzare o modificare queste impostazioni nell'interfaccia utente grafica SAP con il percorso di menu
System > User Profile Own > Data .
Power BI Desktop esegue una query sul sistema SAP per la notazione decimale dell'utente connesso e usa tale
notazione per formattare i valori decimali nei dati SAP BW.
SAP BW restituisce i dati decimali con , (virgola) o . (punto) come separatore decimale. Per specificare quale
di questi simboli verrà usato da SAP BW come separatore decimale, il driver usato da Power BI Desktop esegue
una chiamata a BAPI_USER_GET_DETAIL . Questa chiamata restituisce una struttura denominata DEFAULTS , con un
campo denominato DCPFM che archivia Decimal Format Notation (Notazione formato decimale). Il campo
accetta uno dei seguenti valori:
" " (spazio) = Il separatore decimale è la virgola: N.NNN,NN
"X" = Il separatore decimale è il punto: N,NNN.NN
"Y" = Il separatore decimale è N NNN NNN,NN
I clienti che hanno segnalato questo problema hanno rilevato che la chiamata a non riesce per un determinato
utente, che mostra i dati non corretti, con un messaggio di errore simile al BAPI_USER_GET_DETAIL seguente:
Queste eccezioni di memoria derivano dal server SAP BW e sono dovute all'insufficiente memoria disponibile
del server per elaborare la query. Ciò può verificarsi quando la query restituisce un set di risultati di grandi
dimensioni o quando la query è troppo complessa per essere gestita dal server, ad esempio quando una query
ha molti crossjoin.
Per risolvere questo errore, è consigliabile semplificare la query o dividerla in query più piccole. Se possibile,
eseguire il push di altre aggregazioni al server. In alternativa, contattare il team sap basis per aumentare le
risorse disponibili nel server.
Il caricamento di stringhe di testo di lunghezza superiore a 60 caratteri in Power BI Desktop ha esito negativo
In alcuni casi è possibile che le stringhe di testo vengano troncate a 60 caratteri in Power BI Desktop.
Per prima cosa, seguire le istruzioni in 2777473 - MDX: domande frequenti per Power BI accesso a BW o
BW/4HANA e verificare se il problema viene risolto.
Poiché il connettore Power Query SAP Business Warehouse usa l'interfaccia MDX fornita da SAP per l'accesso di
terze parti, è necessario contattare SAP per le possibili soluzioni perché sono proprietarie del livello tra
l'interfaccia MDX e il server SAP BW. Chiedere quanto "long text is XL" può essere specificato per lo scenario
specifico.
Database SAP HANA
07/12/2021 • 6 minutes to read
Riepilogo
EL EM EN TO DESC RIZ IO N E
NOTE
Alcune funzionalità possono essere presenti in un prodotto, ma non in altre a causa di pianificazioni della distribuzione e
funzionalità specifiche dell'host.
Prerequisiti
È necessario un account SAP per accedere al sito Web e scaricare i driver. In caso di dubbi, contattare
l'amministratore SAP dell'organizzazione.
Per usare SAP HANA in Power BI Desktop o Excel, è necessario che il driver ODBC di SAP HANA sia installato nel
computer client locale per il corretto funzionamento della connessione dati SAP HANA. È possibile scaricare gli
strumenti client di SAP HANA dalla pagina degli strumenti di sviluppo SAP, in cui è presente il driver ODBC
necessario. In alternativa, è possibile scaricarlo dalla pagina SAP Software Download Center. Nel portale
Software cercare il CLIENT SAP HANA per computer Windows. Dato che SAP Software Download Center cambia
struttura di frequente, non sono disponibili indicazioni più specifiche per la navigazione nel sito. Per istruzioni
sull'installazione del driver ODBC SAP HANA, vedere Installing SAP HANA ODBC Driver on Windows 64
Bits(Installazione del driver ODBC Windows a 64 bit).
Per usare SAP HANA in Excel, è necessario che nel computer client locale sia installato il driver ODBC a 32 o a 64
bit SAP HANA (a seconda che si usi la versione a 32 bit o a 64 bit di Excel).
Questa funzionalità è disponibile solo in Excel per Windows se si ha una sottoscrizione Office 2019 o Microsoft
365 2019. Se si è un sottoscrittore Microsoft 365, assicurarsi di avere la versione più recente di Office.
È supportato HANA 1.0 SPS 12rev122.09, 2.0 SPS 3rev30 e BW/4HANA 2.0.
Funzionalità supportate
Importa
DirectQuery
Avanzato
Istruzione SQL
Per impostazione predefinita, il numero di porta è impostato per supportare un database contenitore
singolo. Se il database SAP HANA può contenere più contenitori di database multi-contenitore,
selezionare Database di sistema multi-contenitore (30013). Se si vuole connettersi a un database
tenant o a un database con un numero di istanza non predefinito, selezionare Personalizzato dal menu
a discesa Porta.
Se ci si connette a un database SAP HANA da Power BI Desktop, è anche possibile selezionare Importa o
DirectQuer y. L'esempio in questo articolo usa Impor t, che è l'impostazione predefinita e l'unica
modalità per Excel. Per altre informazioni sulla connessione al database tramite DirectQuery in Power BI
Desktop, vedere Connessione to SAP HANA data sources by using DirectQuery in Power BI.
Se si seleziona Opzioni avanzate , è anche possibile immettere un'SQL istruzione. Per altre informazioni
sull'uso di questa SQL, vedere Importare dati da un database usando una query di database nativa.
Dopo aver immesso tutte le opzioni, selezionare OK.
3. Se si accede a un database per la prima volta, verrà richiesto di immettere le credenziali per
l'autenticazione. In questo esempio il server SAP HANA richiede le credenziali utente del database, quindi
selezionare Database e immettere il nome utente e la password. Se necessario, immettere le
informazioni sul certificato del server.
Potrebbe anche essere necessario convalidare il certificato del server. Per altre informazioni sull'uso della
convalida delle selezioni di certificati server, vedere Uso della SAP HANA server. In Power BI Desktop e
Excel la selezione del certificato del server di convalida è abilitata per impostazione predefinita. Se queste
selezioni sono già state impostate in Amministrazione origine dati ODBC, deselezionare la casella di
controllo Convalida cer tificato ser ver . Per altre informazioni sull'uso di Amministrazione origine
dati ODBC per configurare queste selezioni, vedere Configurare SSL per l'accesso client ODBC SAP
HANA.
Per altre informazioni sull'autenticazione, vedere Autenticazione con un'origine dati.
Dopo aver inserito tutte le informazioni necessarie, selezionare Connessione .
4. Nella finestra di dialogo Strumento di navigazione è possibile trasformare i dati nell'editor Power Query
selezionando Trasforma dati oppure caricare i dati selezionando Carica.
Se si vuole connettersi a un database tenant o a un database con un numero di istanza non predefinito,
selezionare Personalizzato dal menu a discesa Porta.
3. Selezionare il nome del gateway dati locale da usare per accedere al database.
NOTE
È necessario usare un gateway dati locale con questo connettore, indipendentemente dal fatto che i dati siano
locali o online.
4. Scegliere il tipo di autenticazione da usare per accedere ai dati. È anche necessario immettere un nome
utente e una password.
NOTE
Attualmente, Power Query Online non supporta l'Windows autenticazione. Windows il supporto per
l'autenticazione è previsto per diventare disponibile in pochi mesi.
Passaggi successivi
Abilitare la crittografia per SAP HANA
Gli articoli seguenti contengono altre informazioni che possono risultare utili quando ci si connette a un SAP
HANA debase.
Gestire l'origine dati - SAP HANA
Usare Kerberos per il Single Sign-On (SSO) a SAP HANA
Abilitare la crittografia per SAP HANA
07/12/2021 • 5 minutes to read
È consigliabile crittografare le connessioni a un server SAP HANA da Power Query Desktop e Power Query
Online. È possibile abilitare la crittografia HANA usando sia OpenSSL che la libreria CommonCryptoLib
(precedentemente nota come sapcrypto) proprietaria di SAP. SAP consiglia di usare CommonCryptoLib, ma le
funzionalità di crittografia di base sono disponibili con entrambe le librerie.
Questo articolo offre una panoramica dell'abilitazione della crittografia tramite OpenSSL e fa riferimento ad
alcune aree specifiche della documentazione sap. Il contenuto e i collegamenti vengono aggiornati
periodicamente, ma per istruzioni e supporto completi, vedere sempre la documentazione SAP ufficiale. Per
configurare la crittografia usando CommonCryptoLib invece di OpenSSL, vedere Come configurare TLS/SSL in
SAP HANA 2.0. Per i passaggi per la migrazione da OpenSSL a CommonCryptoLib, vedere la nota SAP 2093286
(è necessario un account utente SAP).
NOTE
La procedura di configurazione per la crittografia descritta in modo dettagliato in questo articolo si sovrappone ai
passaggi di impostazione e configurazione per l'accesso SSO SAML. Sia che si scelga OpenSSL o CommonCryptoLib come
provider di crittografia del server HANA, assicurarsi che la scelta sia coerente in tutte le configurazioni di crittografia e
SAML.
L'abilitazione della crittografia per SAP HANA tramite OpenSSL prevede quattro fasi. Queste fasi sono descritte
di seguito. Per altre informazioni, vedere Protezione delle comunicazioni tra SAP HANA Studio e SAP HANA
Server tramite SSL.
Usare OpenSSL
Assicurarsi che il server HANA sia configurato per l'uso di OpenSSL come provider di crittografia. Sostituire le
informazioni sul percorso mancanti con l'ID server (SID) del server HANA.
Questo comando crea una richiesta di firma del certificato e una chiave privata. Una volta firmato, il certificato è
valido per un anno (vedere il parametro -days). Quando viene richiesto il nome comune (CN), immettere il
nome di dominio completo (FQDN) del computer in cui è installato il server HANA.
openssl x509 -req -days 365 -in Server\_Req.pem -sha256 -extfile /etc/ssl/openssl.cnf -extensions
usr\_cert -CA CA\_Cert.pem -CAkey CA\_Key.pem -CAcreateserial -out Server\_Cert.pem
Se non si ha già un'autorità di certificazione che è possibile usare, è possibile creare una CA radice
seguendo la procedura illustrata inProtezione delle comunicazioni tra SAP HANA Studio e SAP HANA
Server tramite SSL.
2. Creare la catena di certificati del server HANA combinando il certificato del server, la chiave e il certificato
della CA (il nome key.pem rappresenta la convenzione per SAP HANA):
3. Creare una copia di CA_Cert.pem denominata trust.pem (il nome trust.pem rappresenta la convenzione
per SAP HANA):
cp CA\_Cert.pem trust.pem
Testare la connessione
Prima di poter convalidare un certificato del server nel servizio Power BI online, è necessario disporre di
un'origine dati già impostata per il gateway dati locale. Se non è già stata impostata un'origine dati per testare la
connessione, è necessario crearne una. Per configurare l'origine dati nel gateway:
1. Nel servizio Power BI selezionare icona di installazione.
2. Nell'elenco a discesa selezionare Gestisci gateway.
3. Selezionare i puntini di sospensione (...) accanto al nome del gateway che si vuole usare con questo
connettore.
4. Nell'elenco a discesa selezionare Aggiungi origine dati.
5. In Origine dati Impostazioni immettere il nome dell'origine dati che si vuole chiamare nella casella di
testo Nome origine dati .
6. In Tipo di origine dati selezionare SAP HANA .
7. Immettere il nome del server in Ser ver e selezionare il metodo di autenticazione.
8. Continuare seguendo le istruzioni della procedura successiva.
Testare la connessione in Power BI Desktop o nel servizio Power BI.
1. Nella Power BI Desktop o nella pagina Impostazioni origine dati del servizio Power BI verificare che
l'opzione Convalida certificato ser ver sia abilitata prima di tentare di stabilire una connessione al server
SAP HANA. Per Provider di crittografia SSL , selezionare mscrypto se è stata seguita la procedura di
configurazione di OpenSSL e commoncrypto se tale libreria è stata configurata come provider di
crittografia. Lasciare vuoti i campi Archivio chiavi SSL e Archivio attendibilità SSL.
Power BI Desktop
Servizio Power BI
2. Verificare che sia possibile stabilire una connessione crittografata al server con l'opzione Convalida il
cer tificato del ser ver abilitata, caricando i dati in Power BI Desktop o aggiornando un report
pubblicato nel servizio Power BI.
Si noti che sono necessarie solo le informazioni del provider di crittografia SSL. Tuttavia, l'implementazione
potrebbe richiedere l'uso anche dell'archivio chiavi e dell'archivio attendibilità. Per altre informazioni su questi
archivi e su come crearli, vedere Proprietà di connessione TLS/SSL lato client (ODBC).
Informazioni aggiuntive
Proprietà di configurazione TLS/SSL lato server per la comunicazione esterna (JDBC/ODBC)
Passaggi successivi
Configurare SSL per l'accesso client ODBC SAP HANA
Configurare SSL per l'accesso client ODBC SAP
HANA
07/12/2021 • 2 minutes to read
Se ci si connette a un database SAP HANA da Power Query Online, potrebbe essere necessario configurare
diversi valori di proprietà per la connessione. Queste proprietà possono essere il provider di crittografia SSL, un
archivio chiavi SSL e un archivio di attendibilità SSL. Potrebbe anche essere necessario crittografare la
connessione. In questo caso, è possibile utilizzare l'applicazione Amministrazione origine dati ODBC fornita con
Windows per impostare queste proprietà.
In Power BI Desktop e Excel, è possibile configurare queste proprietà quando si accede per la prima volta usando
il connettore Power Query SAP HANA database. La selezione Convalida cer tificato ser ver nella finestra di
dialogo di autenticazione è abilitata per impostazione predefinita. È quindi possibile immettere i valori nelle
proprietà Provider di crittografia SSL , Archivio chiavi SSL e Archivio attendibilità SSL in questa finestra di
dialogo. Tuttavia, tutte le selezioni di convalida del certificato server nella finestra di dialogo di autenticazione in
Power BI Desktop e Excel sono facoltative. Sono facoltativi nel caso in cui si voglia usare Amministrazione
origine dati ODBC per configurarli a livello di driver.
NOTE
Prima di poter impostare queste proprietà in Amministrazione SAP HANA origine dati ODBC, è necessario che sia
installato il driver ODBC (a 32 bit o a 64 bit) appropriato.
Se si usa Amministratore origine dati ODBC per configurare il provider di crittografia SSL, l'archivio chiavi SSL e
l'archivio attendibilità SSL in Power BI o Excel, deselezionare la casella di controllo Convalida certificato ser ver
quando viene visualizzata la finestra di dialogo di autenticazione.
Per utilizzare Amministrazione origine dati ODBC per configurare le selezioni del certificato del server di
convalida:
1. Nell'elenco Windows menu Start selezionare Windows di dati ODBC in Strumenti di >
amministrazione . Se si usa una versione a 32 bit di Power BI Desktop o Excel, aprire Origini dati ODBC
(32 bit), altrimenti aprire Origini dati ODBC (64 bit).
2. Nella scheda DSN utente selezionare Aggiungi .
3. Nella finestra di dialogo Crea nuova origine dati selezionare il driver HDBODBC e quindi selezionare
Fine.
4. Nella finestra di dialogo Configurazione ODBC SAP HANA immettere un Nome origine dati .
Immettere quindi le informazioni sul server e sul database e selezionare Validate the TLS/SSL
cer tificate (Convalida cer tificato TLS/SSL).
5. Selezionare il pulsante Advanced (Avanzate).
6. Nella finestra di dialogo Advanced ODBC Connection Proper ty Setup (Configurazione avanzata
proprietà connessione ODBC) selezionare il pulsante Aggiungi.
9. Selezionare OK .
10. Se necessario, è anche possibile aggiungere le proprietà e i valori sslKeyStore e sslTrustStore facoltativi.
Se la connessione deve essere crittografata, aggiungere ENCRYPT come proprietà e TRUE come valore.
11. Nella finestra di dialogo Impostazione avanzata proprietà di connessione ODBC selezionare OK.
12. Per testare la connessione impostata, selezionare Test connessione nella finestra di dialogo
Configurazione ODBC SAP HANA connessione.
13. Al termine della connessione di test, selezionare OK.
Per altre informazioni sulle proprietà SAP HANA di connessione, vedere Proprietà di configurazione TLS/SSL
lato server per la comunicazione esterna (JDBC/ODBC).
NOTE
Se si seleziona Convalida certificato ser ver nella finestra di dialogo di autenticazione di SAP HANA in Power BI Desktop o
Excel, qualsiasi valore immesso nel provider di crittografia SSL, nell'archivio chiavi SSL e nell'archivio attendibilità SSL nella
finestra di dialogo di autenticazione eseguirà l'override delle selezioni impostate con Amministrazione origine dati ODBC.
Passaggi successivi
SAP HANA risoluzione dei problemi del connettore di database
Risoluzione dei problemi
07/12/2021 • 2 minutes to read
La sezione seguente descrive alcuni problemi che possono verificarsi durante l'uso del connettore Power Query
SAP HANA, insieme ad alcune possibili soluzioni.
Se si è in un computer a 64 bit, ma Excel o Power BI Desktop è a 32 bit (come negli screenshot seguenti), è
possibile controllare il driver nel nodo WOW6432:
HKEY_LOCAL_MACHINE\Software\WOW6432Node\ODBC\ODBCINST.INI\ODBC Drivers
Si noti che il driver deve corrispondere alla versione in bit del Excel o Power BI Desktop. Se si usa:
A 32 bit Excel/Power BI Desktop, è necessario il driver ODBC a 32 bit (HDBODBC32).
A 64 bit Excel/Power BI Desktop, è necessario il driver ODBC a 64 bit (HDBODBC).
Il driver viene in genere installato eseguendo hdbsetup.exe.
Infine, il driver deve anche essere visualizzato come "ODBC DataSources 32 bit" o "ODBC DataSources 64 bit".
D:\tmp\odbctraces\hana-%p.html
hdbodbc_cons32.exe trace refresh hdbodbc_cons32.exe show
all
4. Aprire Power BI, cancellare la cache ed eseguire di nuovo lo scenario.
5. Al termine, comprimere le tracce:
Dal percorso del file di log nella scheda Traccia di Amministratore origine dati ODBC.
Dalla traccia HANA in base al percorso configurato con il comandohdbodbc_cons32.exe config trace
filename .
6. Disabilitare la traccia usando il comando seguente:
hdbodbc_cons.exe traccia disattivata
Quando si acquisisce SAP HANA traccia, tenere presente quanto segue:
I comandi di traccia devono essere eseguiti come utente che eseguirà il processo Mashup che accede SAP
HANA server.
Il percorso del file di traccia specificato deve essere scrivibile dall'utente che esegue il processo Mashup.
Ad esempio:
Per acquisire connessioni non SSO dal gateway, assicurarsi di usare l'utente del servizio gateway. In questo
caso, eseguire la finestra della riga di comando come utente del gateway quando si vuole eseguire il
hdodbc_cons.exe chiamate. Assicurarsi che l'utente del server gateway possa scrivere nel percorso del file di
log specificato.
Per acquisire le connessioni SSO dal gateway, usare l'utente SSO.
Risposta da SAP:
Sfortunatamente, si tratta di un problema SAP, quindi è necessario attendere una correzione da SAP.
Cartella di SharePoint
07/12/2021 • 4 minutes to read
Riepilogo
EL EM EN TO DESC RIZ IO N E
NOTE
Alcune funzionalità possono essere presenti in un prodotto, ma non in altre a causa di pianificazioni della distribuzione e
funzionalità specifiche dell'host.
NOTE
AAD/OAuth per SharePoint locale non è supportato tramite il gateway dati locale.
Funzionalità supportate
Percorso della cartella
Combina
Combinare e caricare
Combinare e trasformare
5. Selezionare Combina & Trasforma dati per combinare i dati nei file della cartella SharePoint
selezionata e caricare i dati nel editor di Power Query per la modifica. Oppure selezionare Combina &
carica per caricare i dati da tutti i file nella cartella SharePoint direttamente nell'app.
NOTE
I pulsanti Combina & Trasforma dati e Combina & carica sono i modi più semplici per combinare i dati presenti nei file
della cartella SharePoint specificata. È anche possibile usare il pulsante Carica o i pulsanti Trasforma dati per combinare
anche i file, ma ciò richiede passaggi più manuali.
7. Selezionare Combina per combinare i dati nei file della cartella SharePoint e caricare i dati nel editor di
Power Query per la modifica.
NOTE
Il pulsante Combina è il modo più semplice per combinare i dati trovati nei file SharePoint cartella specificata. È
anche possibile usare i pulsanti Trasforma dati per combinare i file, ma ciò richiede passaggi più manuali.
Risoluzione dei problemi
Unione di file
Tutti i file nella SharePoint selezionata verranno inclusi nei dati da combinare. Se si dispone di file di dati che si
trovano in una sottocartella della cartella SharePoint selezionata, verranno inclusi anche tutti questi file. Per
assicurarsi che la combinazione dei dati del file funzioni correttamente, assicurarsi che tutti i file nella cartella e
nelle sottocartelle presentino lo stesso schema.
In alcuni casi, nel sito potrebbero essere presenti più cartelle SharePoint che contengono tipi diversi di dati. In
questo caso, è necessario eliminare i file non necessari. Per eliminare questi file:
1. Nell'elenco dei file della SharePoint selezionata selezionare Trasforma dati .
2. Nell'editor Power Query scorrere verso il basso per trovare i file da mantenere.
3. Nell'esempio illustrato nello screenshot precedente, i file necessari sono le ultime righe della tabella.
Selezionare Rimuovi righe, immettere il valore dell'ultima riga prima dei file da mantenere (in questo
caso 903) e selezionare OK.
4. Dopo aver rimosso tutti i file non necessari, selezionare Combina file dalla barra multifunzione Home
per combinare i dati di tutti i file rimanenti.
Per altre informazioni sulla combinazione di file, vedere Combinare i file in Power Query.
Caratteri speciali del nome file
Se un nome file contiene determinati caratteri speciali, potrebbe verificarsi errori di autenticazione a causa del
troncamento del nome file nell'URL. Se si verificano errori di autenticazione insoliti, assicurarsi che tutti i nomi di
file in uso non contengano i caratteri speciali seguenti.
# % $
Se questi caratteri sono presenti nel nome file, il proprietario del file deve rinominare il file in modo che NON
contenga nessuno di questi caratteri.
Elenco SharePoint
07/12/2021 • 2 minutes to read
Riepilogo
EL EM EN TO DESC RIZ IO N E
NOTE
Alcune funzionalità possono essere presenti in un prodotto, ma non in altre a causa di pianificazioni della distribuzione e
funzionalità specifiche dell'host.
NOTE
AAD/OAuth per SharePoint locale non è supportato con il gateway dati locale.
Funzionalità supportate
Site URL
Se l'indirizzo URL immesso non è valido, viene visualizzata verrà visualizzata l'icona di avviso accanto
alla casella di testo URL sito.
Selezionare OK per continuare.
3. Se è la prima volta che si visita questo indirizzo del sito, selezionare il metodo di autenticazione
appropriato. Immettere le credenziali e scegliere il livello a cui applicare queste impostazioni. Selezionare
Connetti .
Per altre informazioni sui metodi di autenticazione e sulle impostazioni a livello, vedere Autenticazione
con un'origine dati.
4. Nello Strumento di navigazione è possibile selezionare una posizione, quindi trasformare i dati
nell'editor Power Query selezionando Trasforma dati oppure caricare i dati selezionando Carica.
Passaggi successivi
Ottimizzare Power Query durante l'espansione di colonne di tabella
Elenco SharePoint Online
07/12/2021 • 4 minutes to read
Riepilogo
EL EM EN TO DESC RIZ IO N E
NOTE
Alcune funzionalità possono essere presenti in un prodotto, ma non in altre a causa di pianificazioni della distribuzione e
funzionalità specifiche dell'host.
Funzionalità supportate
Site URL
Se l'indirizzo URL immesso non è valido, viene visualizzata accanto alla casella di testo URL sito verrà
visualizzata l'icona di avviso.
È anche possibile selezionare l'implementazione 1.0 di questo connettore o l'implementazione beta 2.0.
Altre informazioni: Connessione per SharePoint'elenco online v2.0 (Beta)
Selezionare OK per continuare.
3. Se è la prima volta che si visita questo indirizzo del sito, selezionare il metodo di autenticazione
appropriato. Immettere le credenziali e scegliere il livello a cui applicare queste impostazioni. Selezionare
Connetti .
Per altre informazioni sui metodi di autenticazione e sulle impostazioni di livello, vedere Autenticazione
con un'origine dati.
4. Dallo strumento di navigazione è possibile selezionare una posizione, quindi trasformare i dati
nell'editor di Power Query selezionando Trasforma dati oppure caricare i dati selezionando Carica .
La prima operazione modifica il tipo in datetimezone e la seconda operazione lo converte nell'ora locale del
computer.
SharePoint limite di join
Questo problema è limitato al connettore SharePoint elenco online v2.0
Il connettore SharePoint Online list v2.0 usa un'API diversa rispetto al connettore v1.0 e, di conseguenza, è
soggetta a un massimo di 12 operazioni di join per ogni query, come documentato nella documentazione di
SharePoint Online in Soglia di ricerca visualizzazione elenco . Questo problema si manifesterà come SharePoint
le query non riescono quando si accede a più di 12 colonne contemporaneamente da un SharePoint dati.
Uso di OData per accedere a un SharePoint Online
Se si usa un feed OData per accedere a un elenco SharePoint Online, esiste una limitazione di circa 2100
caratteri per l'URL che si usa per la connessione. Altre informazioni: Lunghezza massima URL
SIS-CC SDMX
07/12/2021 • 2 minutes to read
NOTE
L'articolo seguente sul connettore è fornito da SiS-CC (Statistical Information System Collaboration Community), il
proprietario del connettore e un membro del Programma di certificazione connettore microsoft Power Query. In caso di
domande relative al contenuto di questo articolo o di modifiche che si desidera visualizzare, visitare il sito Web SIS-CC e
usare i canali di supporto.
Riepilogo
EL EM EN TO DESC RIZ IO N E
Prerequisiti
Prima di iniziare, assicurarsi di aver configurato correttamente l'URL dall'API del provider di servizi. Il processo
esatto dipende dal provider di servizi.
Funzionalità supportate
Importazione del formato SDMX-CSV 2.1. Altri formati non sono supportati.
Istruzioni di connessione
Per connettersi ai dati del servizio Web SDMX:
1. Selezionare Recupera dati nella scheda Home della barra multifunzione in Power BI Desktop.
Selezionare Tutte dalle categorie a sinistra e quindi selezionare SIS-CC SDMX . Selezionare Connetti .
2. Compilare i parametri:
a. In URL quer y dati immettere un URL di query dati REST SDMX (il servizio Web deve supportare il
formato SDMX-CSV).
b. In Formato di visualizzazione selezionare una delle opzioni seguenti:
Visualizzare codici ed etichette; esempio: FREQ: Frequenza
Visualizzare i codici; esempio: FREQ
Mostra etichette; esempio: Frequenza
Facoltativamente, immettere una preferenza per la lingua in Etichetta preferenza lingua
usando un tag IETF BCP 47
3. Se è la prima volta che ci si connette al servizio Web REST nel passaggio precedente URL quer y dati,
viene visualizzato questo passaggio di autenticazione. Poiché la connessione è Anonima, selezionare
Connessione
4. Selezionare Carica per importare i dati in Power BI o Trasforma dati per modificare la query in editor di
Power Query in cui è possibile perfezionare la query prima del caricamento in Power BI.
Limitazioni e problemi
Questa versione del connettore non supporta l'importazione di formati di dati SDMX-ML o SDMX-JSON.
Passaggi successivi
Se si vuole inviare una richiesta di funzionalità o contribuire al progetto open source, visitare il sito del progetto
Gitlab.
Snowflake
07/12/2021 • 4 minutes to read
Riepilogo
EL EM EN TO DESC RIZ IO N E
NOTE
Alcune funzionalità possono essere presenti in un prodotto, ma non in altre a causa di pianificazioni della distribuzione e
funzionalità specifiche dell'host.
Funzionalità supportate
Importa
DirectQuery (solo Power BI)
Advanced Options
Specificare un valore di testo da usare come Nome ruolo
Istruzione SQL nativa
Colonne delle relazioni
Timeout connessione in secondi
Timeout comando in secondi
NOTE
Azure Active Directory (Azure AD) Single Sign-On (SSO) supporta solo DirectQuery.
5. Selezionare OK .
6. Per accedere al data warehouse snowflake computing, immettere il nome utente e la password e quindi
selezionare Connessione .
NOTE
Dopo avere immesso il nome utente e la password per un particolare server Snowflake , Power BI Desktop usa
quelle stesse credenziali nei successivi tentativi di connessione. Le credenziali possono essere modificate
selezionando File > Opzioni e impostazioni > Impostazioni origine dati. Altre informazioni: Modificare il
metodo di autenticazione
Se si vuole usare l'opzione con account Microsoft, l'integrazione di AAD con Snowflake deve essere
configurata sul lato Snowflake. Per altre informazioni: Power BI SSO to Snowflake - Attività iniziali
7. In Strumento di navigazione selezionare uno o più elementi da importare e usare in Power BI Desktop.
Selezionare quindi Carica per caricare la tabella in Power BI Desktop o Modifica per aprire il editor di
Power Query in cui è possibile filtrare e perfezionare il set di dati da usare e quindi caricare il set di dati
perfezionato in Power BI Desktop.
3. Immettere eventuali valori nelle opzioni avanzate da usare. Se sono presenti opzioni avanzate non
rappresentate nell'interfaccia utente, è possibile modificarle nell'Editor avanzato in Power Query
successive.
4. Immettere le credenziali di connessione, tra cui la selezione o la creazione di una nuova connessione, il
gateway che si vuole usare e un nome utente e una password (in Power Query Online è supportato solo
il tipo di autenticazione di base).
5. Selezionare Avanti per connettersi al database.
6. In Strumento di navigazione selezionare i dati necessari, quindi selezionare Trasforma dati per
trasformare i dati in editor di Power Query.
Nome del ruolo Specifica il ruolo utilizzato dal report tramite il driver. Questo
ruolo deve essere disponibile per l'utente. In caso contrario,
non verrà impostato alcun ruolo.
Timeout connessione in secondi Specifica per quanto tempo attendere una risposta quando
si interagisce con il servizio Snowflake prima di restituire un
errore. Il valore predefinito è 0 (nessun timeout).
Dopo aver selezionato le opzioni avanzate necessarie, selezionare OK in Power Query Desktop o Avanti in
Power Query Online per connettersi al database Snowflake.
Informazioni aggiuntive
Connettersi a Snowflake nel servizio Power BI
SoftOne BI (Beta)
07/12/2021 • 2 minutes to read
NOTE
L'articolo sul connettore seguente viene fornito da SoftOne, il proprietario del connettore e un membro del programma di
certificazione microsoft Power Query Connector. In caso di domande sul contenuto di questo articolo o di modifiche che si
desidera visualizzare, visitare il sito Web SoftOne e usare i canali di supporto.
Riepilogo
EL EM EN TO DESC RIZ IO N E
Prerequisiti
È necessario avere installato il prodotto Soft1 ERP/CRM o ERP di ERP di Atlanta con un modulo del connettore
SoftOne BI concesso in licenza. È necessario configurare un account Web nell'applicazione con accesso al
servizio Connettore BI SoftOne. Queste informazioni sull'account e il numero di serie dell'installazione verranno
convalidati durante l'autenticazione dal connettore BI SoftOne.
Il connettore Bi SoftOne è supportato da Soft1 Series 5 versione 500.521.11424 o successiva e da ERP di Atlanta
versione 3.3.2697.1 o successiva.
Funzionalità supportate
Importa
Istruzioni di connessione
SoftOne offre molti modelli come Power BI file modello (con estensione pbit) che è possibile usare o
personalizzare, per iniziare a usare il progetto BI. Ad esempio, Sales & Collections e Finance.
Per connettersi in Power BI Desktop un nuovo report, seguire questa procedura. Se ci si connette da un report
creato usando uno dei modelli di Bi SoftOne, vedere Uso di un modello fornito più avanti in questo articolo.
Connessione'archivio dati Soft1 o Atlanta da zero
Per caricare i dati dall'installazione con Power Query Desktop:
1. Selezionare Get Data > More... > Online Ser vices in Power BI Desktop e cercare SoftOne BI .
Selezionare Connetti .
2. Selezionare Accedi . Verrà visualizzato un modulo di autenticazione.
NOTE
Se si immettono credenziali non corrette, si riceverà un messaggio che informa che l'accesso non è riuscito a
causa di credenziali non valide.
Se softOne BI Connector non è attivato o l'account Web in uso non è configurato con il servizio, verrà
visualizzato un messaggio che informa che l'accesso è stato negato perché il modulo selezionato non è
attivato.
3. Dopo aver effettuato l'accesso con i servizi Web SoftOne, è possibile connettersi all'archivio dati.
IMPORTANT
Se si lavora con più di un'installazione Soft1/Atlanta, quando si passa da un archivio dati all'altro, è necessario cancellare le
credenziali di SoftOne BI salvate da Power BI Desktop.
SQL Server
07/12/2021 • 3 minutes to read
Riepilogo
EL EM EN TO DESC RIZ IO N E
NOTE
Alcune funzionalità possono essere presenti in un prodotto, ma non in altre a causa di pianificazioni della distribuzione e
funzionalità specifiche dell'host.
Prerequisiti
Per impostazione predefinita, Power BI installa un driver OLE DB per SQL Server. Tuttavia, per ottenere
prestazioni ottimali, è consigliabile che il cliente installi il SQL Server Native Client prima di usare il connettore
SQL Server. SQL Server Native Client 11.0 e SQL Server Native Client 10.0 sono entrambi supportati nella
versione più recente.
Funzionalità supportate
Importa
DirectQuery (Power BI Desktop)
Advanced Options
Timeout del comando in minuti
Istruzione SQL nativa
Colonne delle relazioni
Esplora con gerarchia completa
SQL Server del failover
3. Selezionare la modalità di connettività dei dati Importa o DirectQuer y (Power BI Desktop predefinita).
4. Selezionare OK .
5. Se è la prima volta che ci si connette a questo database, selezionare il tipo di autenticazione, immettere le
credenziali e selezionare il livello a cui applicare le impostazioni di autenticazione. Selezionare Connetti .
NOTE
Se la connessione non è crittografata, verrà visualizzata la finestra di dialogo seguente.
Selezionare OK per connettersi al database usando una connessione non crittografata oppure seguire
queste istruzioni per configurare le connessioni crittografate SQL Server.
6. In Strumento di navigazione selezionare le informazioni sul database desiderate, quindi selezionare
Carica per caricare i dati o Trasforma dati per continuare a trasformare i dati in editor di Power Query.
Abilita il supporto per il failover di SQL Server Se questa opzione è selezionata, quando un nodo nel
gruppo SQL Server failover non è disponibile, Power Query
da tale nodo a un altro quando si verifica il failover. Se
deselezionata, non verrà eseguito alcun failover.
Dopo aver selezionato le opzioni avanzate necessarie, selezionare OK in Power Query Desktop o Avanti in
Power Query Online per connettersi al database SQL Server.
Passaggi successivi
Ottimizzare Power Query durante l'espansione di colonne di tabella
Stripe (deprecato)
07/12/2021 • 2 minutes to read
Riepilogo
EL EM EN TO DESC RIZ IO N E
Prodotti -
Deprecazione
Questo connettore è deprecato e non sarà supportato a breve. È consigliabile disattivare le connessioni esistenti
usando questo connettore e non usarlo per le nuove connessioni.
SumTotal (beta)
07/12/2021 • 2 minutes to read
NOTE
L'articolo seguente sul connettore viene fornito da SumTotal, il proprietario del connettore e un membro del programma
di certificazione Microsoft Power Query Connector. In caso di domande relative al contenuto di questo articolo o di
modifiche che si desidera visualizzare, visitare il sito Web SumTotal e usare i canali di supporto.
Riepilogo
EL EM EN TO DESC RIZ IO N E
Prerequisiti
È necessario disporre di un ambiente ospitato SumTotal con autorizzazioni standard per accedere al portale e
autorizzazioni di lettura per accedere ai dati nelle tabelle.
Funzionalità supportate
Importa
NOTE
Verrà visualizzato un errore di script. è previsto e carica gli script JS/CSS utilizzati dal modulo di accesso.
Selezionare Sì.
3. Quando la tabella viene caricata in Navigator , verrà visualizzato l'elenco delle entità dell'API OData
attualmente supportate dal connettore. È possibile scegliere di caricare una o più entità.
4. Dopo aver selezionato le entità, selezionare Carica per caricare i dati direttamente in Power BI desktop
oppure selezionare Trasforma dati per trasformare i dati.
NOTE
Se è la prima volta che ci si connette a questo sito, selezionare Accedi e immettere le credenziali. Selezionare Connetti.
Riepilogo
EL EM EN TO DESC RIZ IO N E
NOTE
Alcune funzionalità possono essere presenti in un prodotto, ma non in altre a causa di pianificazioni della distribuzione e
funzionalità specifiche dell'host.
Funzionalità supportate
Importa
Delimitatori di testo/CSV
Power Query considera i csv come file strutturati con una virgola come delimitatore un caso — speciale di un
file di testo. Se si sceglie un file di testo, Power Query tenterà automaticamente di determinare se contiene valori
delimitati e qual è il delimitatore. Se può dedurre un delimitatore, lo tratterà automaticamente come origine dati
strutturata.
Testo non strutturato
Se il file di testo non ha una struttura, si otterrà una singola colonna con una nuova riga per riga codificata nel
testo di origine. Come esempio di testo non strutturato, è possibile prendere in considerazione un file del Blocco
note con il contenuto seguente:
Hello world.
This is sample data.
Quando la si carica, viene visualizzata una schermata di spostamento che carica ognuna di queste righe nella
propria riga.
In questa finestra di dialogo è possibile configurare un solo elemento, ovvero l'elenco a discesa Origine file
selezionato. Questo elenco a discesa consente di selezionare il set di caratteri usato per generare il file.
Attualmente, il set di caratteri non viene dedotto e UTF-8 verrà dedotto solo se inizia con un BOM UTF-8.
CSV
È possibile trovare un file CSV di esempio qui.
Oltre all'origine file, CSV supporta anche la specifica del delimitatore e la modalità di gestione del rilevamento
dei tipi di dati.
I delimitatori disponibili includono due punti, virgola, segno di uguale, punto e virgola, spazio, tabulazione, un
delimitatore personalizzato (che può essere qualsiasi stringa) e una larghezza fissa (divisione del testo in base a
un numero standard di caratteri).
L'elenco a discesa finale consente di selezionare la modalità di gestione del rilevamento dei tipi di dati. Questa
operazione può essere eseguita in base alle prime 200 righe nell'intero set di dati oppure è possibile scegliere di
non eseguire il rilevamento automatico del tipo di dati e lasciare che tutte le colonne siano impostate sul valore
predefinito "Text". Avviso: se si imposta questa opzione sull'intero set di dati, il caricamento iniziale dei dati
nell'editor potrebbe risultare più lento.
Poiché l'inferenza può non essere corretta, è opportuno controllare le impostazioni prima del caricamento.
Testo strutturato
Quando Power Query è in grado di rilevare la struttura nel file di testo, il file di testo verrà trattato come un file
con valori delimitati e offrirà le stesse opzioni disponibili quando si apre un file CSV che è essenzialmente un file
con un'estensione che indica il tipo di — delimitatore.
Ad esempio, se si salva l'esempio seguente come file di testo, verrà letto come con un delimitatore di
tabulazione anziché come testo non strutturato.
L'elenco a discesa Interruzioni di riga consente di scegliere se applicare o meno interruzioni di riga racchiuse
tra virgolette.
Se l'opzione Interruzioni di riga è impostata su Ignora interruzioni di riga tra virgolette , verrà caricata come
se non fosse presente alcuna interruzione di riga (con uno spazio aggiuntivo).
Se interruzioni di riga è impostato su Applica tutte le interruzioni di riga , verrà caricata una riga aggiuntiva,
con il contenuto dopo le interruzioni di riga che è l'unico contenuto in tale riga (l'output esatto può dipendere
dalla struttura del contenuto del file).
L'elenco a discesa Apri file come consente di modificare ciò che si vuole caricare come importante per la
risoluzione dei — problemi. Per i file strutturati che non sono tecnicamente CSV ,ad esempio un file con valori
delimitati da tabulazioni salvato come file di testo, aprire il file come impostato su CSV. Questa impostazione
determina anche quali elenchi a discesa sono disponibili nel resto della finestra di dialogo.
NOTE
È consigliabile immettere gli esempi nell'ordine delle colonne. Dopo aver compilato correttamente la colonna, creare una
nuova colonna e iniziare a immettere esempi nella nuova colonna.
Dopo aver costruito la tabella, è possibile scegliere di caricare o trasformare i dati. Si noti che le query risultanti
contengono una suddivisione dettagliata di tutti i passaggi dedotto per l'estrazione dei dati. Questi passaggi
sono solo normali passaggi di query che è possibile personalizzare in base alle esigenze.
NOTE
Questa funzionalità verrà rilasciata a breve in Power Query Online. Altre informazioni: Text/CSV by example data
extraction
Risoluzione dei problemi
Caricamento di file dal Web
Se si richiedono file di testo/csv dal Web e si innalzano di livello anche le intestazioni e si recupera un numero di
file sufficiente per preoccuparsi della potenziale limitazione, è consigliabile eseguire il wrapping della chiamata
Web.Contents con Binary.Buffer() . In questo caso, la memorizzazione nel buffer del file prima
dell'innalzamento di livello delle intestazioni causerà la richiesta del file una sola volta.
Testo non strutturato interpretato come strutturato
In rari casi, un documento con numeri virgola simili tra paragrafi può essere interpretato come csv. Se si verifica
questo problema, modificare il passaggio Origine nel Editor di query e selezionare Testo anziché CSV
nell'elenco a discesa Apri file con nome.
Errore: Connessione chiusa dall'host
Quando si caricano file di testo/CSV da un'origine Web e si innalzano di livello anche le intestazioni, è possibile
che si verifichino a volte gli errori seguenti: o questi errori potrebbero essere causati dall'host che usa misure di
protezione e dalla chiusura di una connessione temporaneamente sospesa, ad esempio quando si attende
un'altra connessione all'origine dati per un'operazione di aggiunta o
“An existing connection was forcibly closed by the remote host”
“Received an unexpected EOF or 0 bytes from the transport stream.” aggiunta. Per risolvere questi errori,
provare ad aggiungere una chiamata Binary.Buffer (scelta consigliata) o Table.Buffer, che scarica il file, lo carica in
memoria e chiude immediatamente la connessione. Questo dovrebbe impedire qualsiasi sospensione durante il
download e impedire all'host di chiudere forzatamente la connessione prima che il contenuto venga recuperato.
L'esempio seguente illustra questa soluzione alternativa. Questa memorizzazione nel buffer deve essere
eseguita prima che la tabella risultante venga passata a Table.PromoteHeaders .
Originale:
Csv.Document(Web.Contents("https://.../MyFile.csv"))
Con Binary.Buffer :
Csv.Document(Binary.Buffer(Web.Contents("https://.../MyFile.csv")))
Con Table.Buffer :
Table.Buffer(Csv.Document(Web.Contents("https://.../MyFile.csv")))
TIBCO(R) Data Virtualization (Beta)
07/12/2021 • 3 minutes to read
NOTE
L'articolo seguente sul connettore è fornito da TIBCO, il proprietario del connettore e un membro del programma di
certificazione microsoft Power Query Connector. In caso di domande relative al contenuto di questo articolo o in caso di
modifiche da apportare a questo articolo, visitare il sito Web TIBCO e usare i canali di supporto.
Riepilogo
EL EM EN TO DESC RIZ IO N E
Prerequisiti
Per accedere al sito TIBCO eDelivery, è necessario aver acquistato il software TIBCO. Non è necessaria alcuna
licenza TIBCO per il software TIBCO(R) Data Virtualization (TDV) che un cliente TIBCO deve avere solo un —
contratto valido. Se non si ha accesso, è necessario contattare l'amministratore TIBCO dell'organizzazione.
Il connettore Power BI per TIBCO(R) Data Virtualization deve prima essere scaricato e installato nel computer
che esegue https://edelivery.tibco.com Power BI Desktop. Il sito eDelivery scarica un file ZIP (ad esempio,
TIB_tdv_drivers_ <VERSION>_all.zip*.zip dove =versione TDV) che contiene un programma di installazione che
installa tutti i driver client TDV, incluso il connettore <VERSION> Power BI.
Dopo aver installato il connettore, configurare un nome dell'origine dati (DSN) per specificare le proprietà di
connessione necessarie per connettersi a TIBCO(R) Data Virtualization Server.
NOTE
L'architettura DSN (a 32 bit o a 64 bit) deve corrispondere all'architettura del prodotto in cui si intende usare il
connettore.
NOTE
Power BI Connector for TIBCO(R) Data Virtualization è il driver usato da TIBCO(R) Data Virtualization Connector per
connettersi Power BI Desktop TDV.
Funzionalità supportate
Importa
DirectQuery (solo Power BI)
Advanced Connection Properties
Avanzato
Istruzione SQL nativa
Dopo aver selezionato le opzioni avanzate necessarie, selezionare OK in Power Query Desktop per connettersi a
TIBCO(R) Data Virtualization Server.
Single Sign-On (SSO) basato su Kerberos per TIBCO(R) Data
Virtualization
TIBCO(R) Data Virtualization Connector supporta ora l'accesso Single Sign-On (SSO) basato su Kerberos.
Per usare questa funzionalità:
1. Accedere all'account Power BI e passare alla pagina Gestione gateway.
2. Aggiungere una nuova origine dati nel cluster del gateway che si vuole usare.
3. Selezionare il connettore nell'elenco Tipo di origine dati .
4. Espandere la sezione Impostazioni avanzate.
5. Selezionare l'opzione Use SSO via Kerberos for DirectQuer y queries (Usa SSO tramite Kerberos per
le query DirectQuery) o Use SSO via Kerberos for DirectQuer y and Impor t queries (Usa SSO
tramite Kerberos per le query DirectQuery e Importa).
Altre informazioni: Configurare l'accesso SSO basato su Kerberos dal Power BI locale alle origini dati locali
Usercube
07/12/2021 • 2 minutes to read
NOTE
L'articolo seguente sul connettore viene fornito da Usercube, il proprietario di questo connettore e un membro del
programma di certificazione microsoft Power Query Connector. In caso di domande relative al contenuto di questo
articolo o di modifiche che si desidera visualizzare, visitare il sito Web Usercube e usare i canali di supporto.
Riepilogo
EL EM EN TO DESC RIZ IO N E
Prerequisiti
È necessario disporre di un'istanza di Usercube con l'opzione PowerBI.
Funzionalità supportate
Importa
4. Immettere le credenziali client. L'ID client deve essere compilato dall'identificatore di un elemento
OpenIdClient. Questo elemento è definito nella configurazione dell'istanza di Usercube. Per questo
identificatore, è necessario concatenare il @ carattere e il nome di dominio dell'istanza di Usercube.
5. In Strumento di navigazione selezionare i dati necessari. Selezionare quindi Trasforma dati per
trasformare i dati nel editor di Power Query o scegliere Carica per caricare i dati in Power BI.
Web
07/12/2021 • 9 minutes to read
Riepilogo
EL EM EN TO DESC RIZ IO N E
NOTE
Alcune funzionalità possono essere presenti in un prodotto, ma non in altre a causa di pianificazioni della distribuzione e
funzionalità specifiche dell'host.
Prerequisiti
Internet Explorer 10
Funzionalità supportate
Basic
Avanzate
Parti URL
Timeout comando
Parametri dell'intestazione della richiesta HTTP
NOTE
Quando si carica il report nel servizio Power BI, sono disponibili solo i metodi di autenticazione anonima,
Windows e di base.
Il livello selezionato per il metodo di autenticazione determina la parte di un URL a cui verrà applicato il
metodo di autenticazione. Se si seleziona l'indirizzo Web di primo livello, il metodo di autenticazione
selezionato qui verrà usato per tale indirizzo URL o per qualsiasi sottoindirizzo all'interno di tale indirizzo.
Tuttavia, potrebbe non essere necessario impostare l'indirizzo URL principale su un metodo di
autenticazione specifico perché sottoindirizzo diversi potrebbero richiedere metodi di autenticazione
diversi. Ad esempio, se si accede a due cartelle separate di un singolo sito SharePoint e si vuole usare
account Microsoft diversi per accedervi.
Dopo aver impostato il metodo di autenticazione per un indirizzo del sito Web specifico, non sarà
necessario selezionare di nuovo il metodo di autenticazione per tale indirizzo URL o qualsiasi
sottoindirizzo. Ad esempio, se si seleziona l'indirizzo in questa finestra di dialogo, qualsiasi pagina Web
che inizia con questo indirizzo non richiederà di nuovo di https://en.wikipedia.org/ selezionare il metodo
di autenticazione.
NOTE
Se è necessario modificare il metodo di autenticazione in un secondo momento, passare a Modifica del metodo di
autenticazione.
4. Nella finestra di dialogo Strumento di navigazione è possibile selezionare una tabella, quindi trasformare
i dati nell'editor Power Query selezionando Trasforma dati oppure caricare i dati selezionando Carica .
Sul lato destro della finestra di dialogo Strumento di navigazione viene visualizzato il contenuto della
tabella selezionata per la trasformazione o il caricamento. Se non si è incerti sulla tabella che contiene i
dati a cui si è interessati, è possibile selezionare la scheda Visualizzazione Web. La visualizzazione Web
consente di visualizzare l'intero contenuto della pagina Web ed evidenzia ognuna delle tabelle rilevate in
tale sito. È possibile selezionare la casella di controllo sopra la tabella evidenziata per ottenere i dati da
tale tabella.
Nella parte inferiore sinistra della finestra di dialogo Strumento di navigazione è anche possibile
selezionare il pulsante Aggiungi tabella con esempi. Questa selezione presenta una finestra
interattiva in cui è possibile visualizzare in anteprima il contenuto della pagina Web e immettere i valori
di esempio dei dati da estrarre. Per altre informazioni sull'uso di questa funzionalità, vedere Ottenere i
dati della pagina Web fornendo esempi.
Nella maggior parte dei casi, è necessario selezionare il connettore pagina Web. Per motivi di sicurezza, è
necessario usare un gateway dati locale con questo connettore. Il connettore pagina Web richiede un
gateway perché le pagine HTML vengono recuperate usando un controllo browser, che comporta
potenziali problemi di sicurezza. Questo problema non è un problema con il connettore API Web, perché
non usa un controllo browser.
In alcuni casi, potrebbe essere necessario usare un URL che punti a un'API o a un file archiviato sul Web.
In questi scenari, il connettore API Web (o connettori specifici del file) consente di procedere senza usare
un gateway dati locale.
Si noti anche che se l'URL punta a un file, è necessario usare il connettore di file specifico anziché il
connettore di pagine Web.
2. Immettere un indirizzo URL nella casella di testo. Per questo esempio immettere
https://en.wikipedia.org/wiki/List_of_states_and_territories_of_the_United_States .
Usare la sezione Par ti URL della finestra di dialogo per assemblare l'URL che si vuole usare per ottenere i dati.
La prima parte dell'URL nella sezione delle parti URL è probabilmente costituita da schema, autorità e percorso
dell'URI , ad esempio http://contoso.com/products/ . La seconda casella di testo può includere qualsiasi query o
frammento da usare per filtrare le informazioni fornite al sito Web. Se è necessario aggiungere più parti,
selezionare Aggiungi parte per aggiungere un'altra casella di testo frammento URL. Quando si immette ogni
parte dell'URL, l'URL completo che verrà usato quando si seleziona OK viene visualizzato nella casella di
anteprima DELL'URL.
A seconda del tempo necessario alla richiesta POST per elaborare i dati, potrebbe essere necessario prolungare
il tempo in cui la richiesta continua a rimanere connessa al sito Web. Il timeout predefinito per POST e GET è
100 secondi. Se il timeout è troppo breve, è possibile usare il timeout del comando facoltativo in minuti per
estendere il numero di minuti di connessione.
È anche possibile aggiungere intestazioni di richiesta specifiche al POST inviato al sito Web usando la casella di
riepilogo a discesa dei parametri facoltativi dell'intestazione della richiesta HTTP. Nella tabella seguente
vengono descritte le intestazioni di richiesta che è possibile selezionare.
3. Selezionare OK .
4. Se è la prima volta che si visita questo URL, selezionare Anonimo come tipo di autenticazione e quindi
selezionare Connessione .
5. editor di Power Query verrà aperto con i dati importati dal file JSON. Selezionare la scheda Visualizza
nell'editor di Power Query quindi selezionare Barra della formula per attivare la barra della formula
nell'editor.
Come si può vedere, il connettore Web restituisce il contenuto Web dall'URL fornito e quindi esegue
automaticamente il wrapping del contenuto Web nel tipo di documento appropriato specificato dall'URL (
Json.Document in questo esempio).
Vedi anche
Estrarre dati da una pagina Web per esempio
Risoluzione dei problemi del Power Query Web
Ottenere i dati della pagina Web offrendo esempi
07/12/2021 • 2 minutes to read
Il recupero di dati da una pagina Web consente agli utenti di estrarre facilmente i dati dalle pagine Web. Spesso,
tuttavia, i dati nelle pagine Web non sono in tabelle ordinate facili da estrarre. Il recupero di dati da tali pagine
può risultare complesso, anche se i dati sono strutturati e coerenti.
Ma esiste una soluzione. Con la funzionalità Get Data from Web by example (Ottieni dati dal Web in base
all'esempio), è essenzialmente possibile visualizzare i dati Power Query da estrarre fornendo uno o più esempi
all'interno della finestra di dialogo del connettore. Power Query raccoglie nella pagina altri dati corrispondenti
agli esempi. Con questa soluzione è possibile estrarre tutti i tipi di dati dalle pagine Web, inclusi i dati presenti
nelle tabelle e altri dati non di tabella.
NOTE
I prezzi elencati nelle immagini sono solo a scopo di esempio.
Aggiungi la tabella basata sugli esempi presenta una finestra interattiva in cui è possibile visualizzare in
anteprima il contenuto della pagina Web. Immettere i valori di esempio dei dati da estrarre.
In questo esempio si estrarranno il nome e il prezzo per ognuno dei giochi nella pagina. A tale scopo, specificare
un paio di esempi nella pagina per ogni colonna. Quando si immettono gli esempi, Power Query estrae i dati
che corrispondono al modello di voci di esempio usando algoritmi di estrazione dei dati intelligenti.
NOTE
i suggerimenti di valore includono solo valori minori o uguali a 128 caratteri di lunghezza.
Quando si è soddisfatti dei dati estratti dalla pagina Web, selezionare OK per passare all'editor di Power Query.
È quindi possibile applicare altre trasformazioni o modellare i dati, ad esempio combinandoli con altre origini
dati.
Vedi anche
Aggiungere una colonna da esempi
Effettuare il data shaping e combinare i dati
Recupero dei dati
Risoluzione dei problemi del Power Query Web
Risoluzione dei problemi del connettore Web
07/12/2021 • 5 minutes to read
4. Selezionare OK .
5. Riavviare Power BI Desktop.
IMPORTANT
Tenere presente che se si deseleziona Abilita controllo revoca cer tificati, le connessioni Web saranno meno sicure.
Per impostare questo scenario in Criteri di gruppo, usare la chiave "DisableCertificateRevocationCheck" nel
percorso del Registro di sistema "Computer\HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft Power BI
Desktop". L'impostazione di "DisableCertificateRevocationCheck" su 0 abiliterà sempre il controllo (arrestando il
funzionamento di Fiddler e software simile) e impostando "DisableCertificateRevocationCheck" su 1 il controllo
verrà sempre disabilitato (abilitando Fiddler e software simile).
Il connettore Power Query Web crea automaticamente Web.Page una query che supporta l'autenticazione.
L'unica limitazione si verifica se si seleziona Windows autenticazione nella finestra di dialogo del metodo di
autenticazione. In questo caso, la selezione Usa le credenziali correnti funziona correttamente, ma Usa
credenziali alternative non esegue l'autenticazione.
La nuova versione del connettore Web (attualmente disponibile in Power BI Desktop) crea automaticamente una
Web.BrowserContents query. Queste query attualmente supportano solo l'autenticazione anonima. In altre
parole, il nuovo connettore Web non può essere usato per connettersi a un'origine che richiede l'autenticazione
non anonima. Questa limitazione si applica alla Web.BrowserContents funzione, indipendentemente
dall'ambiente host.
Attualmente, Power BI Desktop usa automaticamente la Web.BrowserContents funzione . La Web.Page funzione
viene comunque usata automaticamente da Excel e Power Query Online. Power Query Online supporta l'uso di
un gateway dati locale, ma attualmente è necessario Web.BrowserContents immettere manualmente una formula
di questo tipo. Quando Web per esempio diventa disponibile in Power Query Online a metà ottobre 2020,
questa funzionalità userà Web.BrowserContents .
Per Web.Page la funzione è necessario che Internet Explorer 10 installato nel computer. Quando si aggiorna una
query tramite un gateway dati locale, il computer che contiene il gateway deve avere installato Web.Page
Internet Explorer 10. Se si usa solo la funzione , non è necessario che Internet Explorer 10 installato nel
computer o nel computer contenente il Web.BrowserContents gateway dati locale.
Nei casi in cui è necessario usare Web.Page invece di a causa di problemi di Web.BrowserContents autenticazione,
è comunque possibile usare manualmente Web.Page .
In Power BI Desktop, è possibile usare la funzione precedente deselezionando la funzionalità di anteprima
Web.Page inferenza nuova tabella Web:
È anche possibile ottenere una copia di una Web.Page query da Excel. Per copiare il codice da Excel:
1. Selezionare Da Web nella scheda Dati.
2. Immettere l'indirizzo nella finestra di dialogo Dal Web e quindi selezionare OK.
3. In Strumento di navigazione scegliere i dati da caricare e quindi selezionare Trasforma dati .
4. Nella scheda Home della Power Query selezionare Editor avanzato .
5. Nel Editor avanzato copiare la formula M.
6. Nell'app che usa Web.BrowserContents selezionare il connettore Quer y vuota.
7. Se si sta copiando in Power BI Desktop:
a. Nella scheda Home selezionare Editor avanzato .
b. Incollare la Web.Page query copiata nell'editor e quindi selezionare Fine .
8. Se si sta copiando in Power Query Online:
a. In Quer y vuota incollare la Web.Page query copiata nella query vuota.
b. Selezionare un gateway dati locale da usare.
c. Selezionare Avanti .
È anche possibile immettere manualmente il codice seguente in una query vuota. Assicurarsi di immettere
l'indirizzo della pagina Web da caricare.
let
Source = Web.Page(Web.Contents("<your address here>")),
Navigation = Source{0}[Data]
in
Navigation
Non è possibile cambiare Power Query usare HTTP 1.0. Power Query invia sempre un oggetto quando è
presente un corpo per evitare di passare un payload probabilmente di grandi dimensioni quando la chiamata
iniziale potrebbe non riuscire (ad esempio, a causa della mancanza Expect:100-continue di autorizzazioni).
Attualmente, questo comportamento non può essere modificato.
Vedi anche
Power Query Web connector
Risoluzione dei problemi del Power Query Web
Workforce Dimensions (Beta) (Deprecato)
07/12/2021 • 2 minutes to read
Riepilogo
EL EM EN TO DESC RIZ IO N E
Prodotti -
Deprecazione
NOTE
Questo connettore è deprecato a causa della fine del supporto per il connettore. È consigliabile che gli utenti eseere esere
sconsigliano le connessioni esistenti usando questo connettore e non usino questo connettore per le nuove connessioni.
XML
07/12/2021 • 2 minutes to read
Riepilogo
EL EM EN TO DESC RIZ IO N E
NOTE
Alcune funzionalità possono essere presenti in un prodotto, ma non in altre a causa di pianificazioni della distribuzione e
funzionalità specifiche dell'host.
Funzionalità supportate
Importa
<abc>
Hello <i>world</i>
</abc>
Xml.Tables restituirà la parte "world", ma ignorerà "Hello". Vengono restituiti solo gli elementi, non il testo.
Tuttavia, Xml.Document restituirà "Hello <i> </i> world". L'intero nodo interno viene trasformato in testo e la
struttura non viene mantenuta.
Zendesk (Beta)
07/12/2021 • 2 minutes to read
Riepilogo
EL EM EN TO DESC RIZ IO N E
Prerequisiti
Prima di accedere a Zendesk, è necessario avere un account Zendesk (nome utente/password).
Funzionalità supportate
Importa
6. Selezionare Accedi .
7. Dopo aver eseguito l'accesso, selezionare Connessione .
8. In Strumento di navigazione selezionare le informazioni desiderate, quindi selezionare Carica per
caricare i dati o Trasforma dati per continuare a trasformare i dati in editor di Power Query.
Limitazioni e problemi
È necessario tenere presenti le limitazioni e i problemi seguenti associati all'accesso ai dati di Zendesk.
Zendesk restituisce uno stato di errore 422 se l'istanza restituisce più di 1000 righe.
Power Query limiti online
07/12/2021 • 2 minutes to read
Riepilogo
Power Query Online è integrato in un'ampia gamma di prodotti Microsoft. Poiché questi prodotti hanno come
destinazione scenari diversi, possono impostare limiti diversi per l Power Query'utilizzo online.
I limiti vengono applicati all'inizio delle valutazioni delle query. Quando è in corso una valutazione, vengono
imposti solo i limiti di timeout.
Tipi di limite
Hourly Evaluation Count (Numero di valutazioni orarie): numero massimo di richieste di valutazione che un
utente può mettere durante un periodo di 60 minuti
Daily Evaluation Time (Tempo di valutazione giornaliero): tempo netto che un utente può dedicare alla
valutazione delle query durante qualsiasi periodo di 24 ore
Valutazioni simultanee: numero massimo di valutazioni che un utente può eseguire in qualsiasi momento
Limiti di creazione
I limiti di creazione sono gli stessi per tutti i prodotti. Durante la creazione, le valutazioni delle query
restituiscono anteprime che possono essere subset dei dati. I dati non sono persistenti.
Hourly Evaluation Count : 1000
Ora di valutazione giornaliera: attualmente senza restrizioni
Timeout per query: 10 minuti
Limiti di aggiornamento
Durante l'aggiornamento (pianificato o su richiesta), le valutazioni delle query restituiscono risultati completi. I
dati vengono in genere mantenuti nell'archiviazione.
Mantenimento dell'ordinamento
Si potrebbe presupporre che, se si ordinano i dati, qualsiasi operazione downstream conserverà l'ordinamento.
Ad esempio, se si ordina una tabella delle vendite in modo che venga visualizzata per prima la vendita più
grande di ogni negozio, si potrebbe prevedere che l'esecuzione di un'operazione "Rimuovi duplicati" restituirà
solo le vendite principali per ogni negozio. E questa operazione potrebbe infatti sembrare funzionare. Tuttavia,
questo comportamento non è garantito.
A causa del modo in cui Power Query ottimizza determinate operazioni, tra cui ignorarle o scaricarle nelle
origini dati (che possono avere un proprio comportamento di ordinamento univoco), non è garantito che
l'ordinamento sia mantenuto tramite aggregazioni (ad esempio ), unioni (ad esempio ) o rimozione di duplicati
Table.Group Table.NestedJoin (ad esempio Table.Distinct ).
Esistono diversi modi per risolvere questo problema. Ecco due suggerimenti:
Eseguire un ordinamento dopo aver applicato l'operazione downstream. Ad esempio, quando si
raggruppano righe, ordinare la tabella nidificata in ogni gruppo prima di applicare altri passaggi. Ecco un
esempio di codice M che illustra questo approccio:
Table.Group(Sales_SalesPerson, {"TerritoryID"}, {{"SortedRows", each Table.Sort(_, {"SalesYTD",
Order.Descending})}})
Buffer dei dati (utilizzando Table.Buffer ) prima di applicare l'operazione downstream. In alcuni casi, questa
operazione fa sì che l'operazione downstream manteni l'ordinamento memorizzato nel buffer.
Se si verifica questo errore, è molto probabile che si sia verificato un problema di rete. In genere, le prime
persone da controllare sono i proprietari dell'origine dati a cui si sta tentando di connettersi. Se non si pensa di
essere quelli che chiudono la connessione, è possibile che lungo il percorso si esemplino ( ad esempio, un server
proxy, router/gateway intermedi e così via).
Sia che si riproduca solo con dati o solo con dati di dimensioni maggiori, è probabile che si sia verificato un
timeout di rete in un punto qualsiasi della route. Se si tratta solo di dati di dimensioni maggiori, i clienti devono
rivolgersi al proprietario dell'origine dati per verificare se le API supportano il paging, in modo che possano
suddividere le richieste in blocchi più piccoli. In caso contrario, è necessario seguire modi alternativi per estrarre
i dati dall'API (procedure consigliate per le origini dati seguenti).
Sfondo
A causa del modo in cui le query vengono archiviate in Power Query Online, in alcuni casi si verifica la perdita
dello script M immesso manualmente (in genere i commenti). Il riquadro "Rivedi modifiche script" offre
un'esperienza diff evidenziando le modifiche, che consente agli utenti di comprendere quali modifiche vengono
apportate. Gli utenti possono quindi accettare le modifiche o ridisporre lo script per correggerlo.
Questa esperienza può essere causata da tre casi particolari.
Script per le trasformazioni della barra multifunzione
Le trasformazioni della barra multifunzione generano sempre lo stesso script M, che può essere diverso dal
modo in cui vengono immesse manualmente. Deve essere sempre uno script equivalente. Se non è questo il
caso, contattare il supporto tecnico.
Commenti
I commenti devono essere sempre all'interno Let .. in dell'espressione e al di sopra di un passaggio. Verrà
visualizzato nell'interfaccia utente come "Proprietà passaggio". Tutti gli altri commenti vengono persi. I
commenti scritti nella stessa riga di un passaggio, ma sopra un altro passaggio (ad esempio, dopo la virgola che
consente di tracciare ogni passaggio) verranno spostati verso il basso.
Rimozione degli errori di script
In alcuni casi, lo script verrà aggiornato se si verifica un errore di sintassi usando l'escape dello script, ad
esempio quando si usa la barra della formula.
Esperienza
Quando si esegue il commit di una query, Power Query Online la valuterà per verificare se la versione
"archiviata" dello script è diversa da quella inviata. In caso contrario, verrà visualizzata una finestra di dialogo
"Rivedi modifiche script" che consentirà di accettare o annullare l'operazione.
Se si accetta, le modifiche verranno apportate alla query.
Se si annulla l'operazione, è possibile riscrivere la query per assicurarsi di spostare correttamente i commenti
o riorganizzarli nel modo desiderato.
Power Query del connettore
07/12/2021 • 2 minutes to read
Questo articolo descrive come inviare commenti e suggerimenti per Power Query connettori. È importante
distinguere tra i connettori di proprietà di Microsoft e i connettori non di proprietà di Microsoft, perché i canali
di supporto e feedback sono diversi.
Per verificare se un connettore è di proprietà di Microsoft, vedere le informazioni di riferimento sul connettore.
Solo i connettori contrassegnati come "Da Microsoft" sono connettori di proprietà di Microsoft.
Quando si diagnosticano problemi che possono verificarsi quando Power Query comunica con i dati, potrebbe
essere richiesto di fornire una traccia di Fiddler. Le informazioni fornite da Fiddler possono essere utili per la
risoluzione dei problemi di connettività.
NOTE
Questo articolo presuppone che si abbia già familiarità con il funzionamento generale di Fiddler.
Vedi anche
Diagnostica query
Power Query feedback
Introduzione a Fiddler Classic
Installazione dell'SDK Power Query
07/12/2021 • 3 minutes to read
Avvio rapido
NOTE
I passaggi per abilitare le estensioni sono stati modificati nella versione di giugno 2017 di Power BI Desktop.
NOTE
In una modifica imminente l'estensione predefinita verrà modificata da .mez a .pqx.
Per velocizzare l'uso di Power Query, questa pagina elenca alcune delle domande più comuni.
Quale software è necessario per iniziare a usare Power Query SDK?
È necessario installare Power Query SDK oltre a Visual Studio. Per poter testare i connettori, è necessario avere
installato Power BI.
Cosa è possibile fare con un connettore personalizzato?
I connettori personalizzati consentono di creare nuove origini dati o di personalizzare ed estendere un'origine
esistente. I casi d'uso comuni in cui può verificarsi questa situazione includono:
Creazione di una business analyst semplice per un'API REST.
Fornire informazioni di personalizzazione per un'Power Query supporta con un connettore esistente, ad
esempio un servizio OData o un driver ODBC.
Implementazione del flusso di autenticazione OAuth v2 per un'offerta SaaS.
Esposizione di una visualizzazione limitata o filtrata sull'origine dati per migliorare l'usabilità.
Abilitazione di DirectQuery per un'origine dati tramite un driver ODBC.
I connettori personalizzati sono disponibili solo in Power BI Desktop e Power BI service tramite l'uso di un
gateway dati locale. Altre informazioni: TripPin 9 - Test Connection
Creazione del primo connettore: Hello World
07/12/2021 • 2 minutes to read
HelloWorld = [
Authentication = [
Implicit = []
],
Label = Extension.LoadString("DataSourceLabel")
];
HelloWorld.Publish = [
Beta = true,
ButtonText = { Extension.LoadString("FormulaTitle"), Extension.LoadString("FormulaHelp") },
SourceImage = HelloWorld.Icons,
SourceTypeImage = HelloWorld.Icons
];
HelloWorld.Icons = [
Icon16 = { Extension.Contents("HelloWorld16.png"), Extension.Contents("HelloWorld20.png"),
Extension.Contents("HelloWorld24.png"), Extension.Contents("HelloWorld32.png") },
Icon32 = { Extension.Contents("HelloWorld32.png"), Extension.Contents("HelloWorld40.png"),
Extension.Contents("HelloWorld48.png"), Extension.Contents("HelloWorld64.png") }
];
Dopo aver compilato il file e copiato nella directory corretta, seguendo le istruzioni riportate nell'esercitazione
Sull'installazione di PowerQuery SDK, aprire PowerBI. È possibile cercare "hello" per trovare il connettore nella
finestra di dialogo Ottieni dati.
Questo passaggio aprirà una finestra di dialogo di autenticazione. Poiché non sono disponibili opzioni di
autenticazione e la funzione non accetta parametri, non sono disponibili altri passaggi in queste finestre di
dialogo.
Premere Connessione dialogo per indicare che si tratta di un "connettore di anteprima", perché è Beta
impostato su true nella query. Poiché non è presente alcuna autenticazione, la schermata di autenticazione
presenterà una scheda per Autenticazione anonima senza campi. Premere Connessione di nuovo per
completare l'operazione.
Infine, verrà visualizzato l'editor di query che mostra ciò che ci si aspetta da una — funzione che restituisce il
testo "Hello world".
Per l'esempio completamente implementato, vedere l'esempio Hello World nel repo di esempio connettori di
dati.
Esercitazione su TripPin
07/12/2021 • 2 minutes to read
Questa esercitazione in più parti illustra la creazione di una nuova estensione per l'origine dati per Power Query.
L'esercitazione deve essere eseguita in sequenza, ogni lezione si basa sul connettore creato nelle lezioni
precedenti, aggiungendo in modo incrementale nuove — funzionalità al connettore.
Questa esercitazione usa un servizio OData pubblico (TripPin) come origine di riferimento. Anche se questa
lezione richiede l'uso delle funzioni OData del motore M, le lezioni successive useranno
Web.Contents,rendendolo applicabile alla maggior parte delle API REST.
Prerequisiti
In questa esercitazione verranno usate le applicazioni seguenti:
Power BI Desktop, versione di maggio 2017 o successiva
Power Query SDK per Visual Studio
Fiddler — Facoltativo, ma consigliato per la visualizzazione e il debug delle richieste al servizio REST
È consigliabile esaminare:
Installazione di PowerQuery SDK
Iniziare a sviluppare connettori personalizzati
Creazione del primo connettore: Hello World
Gestione dell'accesso ai dati
Gestione dell'autenticazione
NOTE
È anche possibile avviare la registrazione delle tracce del lavoro in qualsiasi momento abilitando la diagnostica, descritta
più avanti in questa esercitazione. Altre informazioni: Abilitazione della diagnostica
Parti
PA RT E L EZ IO N E DET TA GL I
Questa esercitazione in più parti illustra la creazione di una nuova estensione per l'origine dati per Power Query.
L'esercitazione deve essere eseguita in sequenza ogni lezione si basa sul connettore creato nelle lezioni
precedenti, aggiungendo in modo incrementale nuove — funzionalità al connettore.
In questa lezione si apprenderà come:
Creare un nuovo progetto connettore dati usando Visual Studio SDK
Creare una funzione di base per eseguire il pull dei dati da un'origine
Testare il connettore in Visual Studio
Registrare il connettore in Power BI Desktop
[DataSource.Kind="TripPin", Publish="TripPin.Publish"]
shared TripPin.Feed = Value.ReplaceType(TripPinImpl, type function (url as Uri.Type) as any);
TripPin.Feed("https://services.odata.org/v4/TripPinService/")
È possibile provare alcuni URL OData diversi nel file di test per vedere come vengono restituiti i diversi risultati.
Ad esempio:
https://services.odata.org/v4/TripPinService/Me
https://services.odata.org/v4/TripPinService/GetPersonWithMostFriends()
https://services.odata.org/v4/TripPinService/People
Il file TripPin.query.pq può contenere istruzioni singole, istruzioni let o documenti di sezione completi.
let
Source = TripPin.Feed("https://services.odata.org/v4/TripPinService/"),
People = Source{[Name="People"]}[Data],
SelectColumns = Table.SelectColumns(People, {"UserName", "FirstName", "LastName"})
in
SelectColumns
Aprire Fiddler per acquisire il traffico HTTP ed eseguire la query. Dovrebbero essere visualizzati alcuni diversi
elementi di services.odata.org, generati dal processo del contenitore mashup. È possibile vedere che l'accesso
all'URL radice del servizio comporta uno stato 302 e un reindirizzamento alla versione più lunga dell'URL. I
reindirizzamenti seguenti sono un altro comportamento che si ottiene "gratuitamente" dalle funzioni della
libreria di base.
Un aspetto da notare se si osservano gli URL è che è possibile visualizzare la query che si è verificata con
SelectColumns l'istruzione .
https://services.odata.org/v4/TripPinService/People?$select=UserName%2CFirstName%2CLastName
Se si aggiungono altre trasformazioni alla query, è possibile vedere come influiscono sull'URL generato.
Questo comportamento è importante da notare. Anche se non è stata implementata la logica di folding esplicita,
il connettore eredita queste funzionalità dalla funzione OData.Feed. Le istruzioni M sono contesti di filtro in
grado di comporre il flusso da una funzione a — un'altra, quando possibile. Questo concetto è simile al modo in
cui le funzioni dell'origine dati usate all'interno del connettore ereditano il contesto di autenticazione e le
credenziali. Nelle lezioni successive si sostituirà l'uso di OData.Feed, che ha funzionalità di folding native, con
Web.Contents, che non lo fa. Per ottenere lo stesso livello di funzionalità, è necessario usare l'interfaccia e
Table.View implementare la propria logica di folding esplicita.
Selezionare il nome della funzione e selezionare Connessione . Viene visualizzato un messaggio di terze —
parti selezionare Continua per continuare. Viene ora visualizzata la finestra di dialogo di chiamata di funzione.
Immettere l'URL radice del servizio ( https://services.odata.org/v4/TripPinService/ ) e selezionare OK.
Poiché questa è la prima volta che si accede a questa origine dati, si riceverà una richiesta di credenziali.
Verificare che sia selezionato l'URL più breve e quindi selezionare Connessione .
Si noti che invece di ottenere una semplice tabella di dati, viene visualizzato lo strumento di spostamento. Ciò è
dovuto al fatto che la funzione OData.Feed restituisce una tabella con metadati speciali che l'esperienza Power
Query può visualizzare come tabella di navigazione. Questa procedura dettagliata illustra come creare e
personalizzare una tabella di navigazione personalizzata in una lezione futura.
Selezionare la tabella Me e quindi Selezionare Trasforma dati . Si noti che alle colonne sono già stati assegnati
tipi (anche per la maggior parte). Questa è un'altra funzionalità della funzione OData.Feed sottostante. Se si
osservano le richieste in Fiddler,si vedrà che è stato recuperato il documento $metadata servizio.
L'implementazione OData del motore esegue questa operazione automaticamente per determinare lo schema, i
tipi di dati e le relazioni del servizio.
Conclusione
Questa lezione ha illustrato la creazione di un connettore semplice basato sulla funzione della libreria
OData.Feed. Come si è visto, è necessaria una logica molto piccola per abilitare un connettore completamente
funzionale sulla OData funzione di base. Altre funzioni abilitate per l'estendibilità, ad esempio ODBC.
DataSource, fornire funzionalità simili.
Nella lezione successiva si sostituirà l'uso di OData.Feed con una funzione — meno idonea Web.Contents. Ogni
lezione implementerà più funzionalità del connettore, tra cui il paging, il rilevamento di metadati/schema e la
suddivisione delle query nella sintassi di query OData, fino a quando il connettore personalizzato non
supporterà lo stesso intervallo di funzionalità di OData.Feed.
Passaggi successivi
Parte 2 di TripPin - Connettore dati per un servizio REST
TripPin - Parte 2 - Connettore dati per un servizio
REST
07/12/2021 • 7 minutes to read
Questa esercitazione in più parti illustra la creazione di una nuova estensione per l'origine dati per Power Query.
L'esercitazione deve essere eseguita in sequenza, ogni lezione si basa sul connettore creato nelle lezioni
precedenti, aggiungendo in modo incrementale nuove — funzionalità al connettore.
In questa lezione si apprenderà come:
Creare una funzione di base che chiama un'API REST usando Web.Contents
Informazioni su come impostare le intestazioni delle richieste ed elaborare una risposta JSON
Usare Power BI Desktop per eseguire il wrangle della risposta in un formato descrittivo
Questa lezione converte il connettore basato su OData per il servizio TripPin (creato nella lezione precedente)in
un connettore simile a quello creato per qualsiasi API RESTful. OData è un'API RESTful, ma con un set fisso di
convenzioni. Il vantaggio di OData è che fornisce uno schema, un protocollo di recupero dati e un linguaggio di
query standard. L'uso di OData.Feed richiederà di compilare queste funzionalità direttamente nel connettore.
TripPin.Feed("https://services.odata.org/v4/TripPinService/Me")
{
"@odata.context": "https://services.odata.org/v4/TripPinService/$metadata#Me",
"UserName": "aprilcline",
"FirstName": "April",
"LastName": "Cline",
"MiddleName": null,
"Gender": "Female",
"Age": null,
"Emails": [ "April@example.com", "April@contoso.com" ],
"FavoriteFeature": "Feature1",
"Features": [ ],
"AddressInfo": [
{
"Address": "P.O. Box 555",
"City": {
"Name": "Lander",
"CountryRegion": "United States",
"Region": "WY"
}
}
],
"HomeAddress": null
}
Al termine della valutazione della query, nella finestra M Query Output (Output query M) dovrebbe essere
visualizzato il valore Record per il singleton Me.
Se si confrontano i campi nella finestra di output con i campi restituiti nella risposta JSON non elaborata, si
noterà una mancata corrispondenza. Il risultato della query include campi aggiuntivi ( Friends , , ) che non
vengono visualizzati nella risposta Trips GetFriendsTrips JSON. La funzione OData.Feed ha aggiunto
automaticamente questi campi al record in base allo schema restituito da $metadata. Questo è un buon
esempio di come un connettore può aumentare e/o riformattare la risposta del servizio per offrire un'esperienza
utente migliore.
Creazione di un connettore REST di base
Si aggiungerà ora una nuova funzione esportata al connettore che chiama Web.Contents.
Per poter effettuare richieste Web con esito positivo al servizio OData, tuttavia, è necessario impostare alcune
intestazioni OData standard. Questa operazione verrà creata definendo un set comune di intestazioni come
nuova variabile nel connettore:
DefaultRequestHeaders = [
#"Accept" = "application/json;odata.metadata=minimal", // column name and values only
#"OData-MaxVersion" = "4.0" // we only support v4
];
Si modificherà l'implementazione della funzione in modo che, anziché usare , usi TripPin.Feed OData.Feed
Web.Contents per effettuare una richiesta Web e analizza il risultato come documento JSON.
È ora possibile testarlo in Visual Studio usando il file di query. Il risultato del record /Me è ora simile al codice
JSON non elaborato visualizzato nella richiesta di Fiddler.
Se si guarda Fiddler quando si esegue la nuova funzione, si noterà anche che la valutazione esegue ora una
singola richiesta Web, anziché tre. Le prestazioni sono aumentate — del 300%. Naturalmente, ora sono state
perse tutte le informazioni sul tipo e sullo schema, ma non è ancora necessario concentrarsi su questa parte.
Aggiornare la query per accedere ad alcune entità/tabelle TripPin, ad esempio:
https://services.odata.org/v4/TripPinService/Airlines
https://services.odata.org/v4/TripPinService/Airports
https://services.odata.org/v4/TripPinService/Me/Trips
Si noterà che i percorsi usati per restituire tabelle formattate correttamente ora restituiscono un campo "valore"
di primo livello con un [Elenco] incorporato. Sarà necessario eseguire alcune trasformazioni sul risultato per
renderlo utilizzabile per Power BI scenari.
<a name="authoring-transformations-in-power-query">Creazione di
trasformazioni in Power Query
Sebbene sia certamente possibile creare manualmente le trasformazioni M, la maggior parte delle persone
preferisce usare Power Query per modellare i dati. Si aprirà l'estensione in Power BI Desktop e la si userà per
progettare query per trasformare l'output in un formato più semplice da usare. Ricompilare la soluzione,
copiare il nuovo file di estensione nella directory Connettori dati personalizzati e quindi Power BI Desktop.
Avviare una nuova query vuota e incollare quanto segue nella barra della formula:
= TripPin.Feed("https://services.odata.org/v4/TripPinService/Airlines")
let
Source = TripPin.Feed("https://services.odata.org/v4/TripPinService/Airlines"),
value = Source[value],
toTable = Table.FromList(value, Splitter.SplitByNothing(), null, null, ExtraValues.Error),
expand = Table.ExpandRecordColumn(toTable, "Column1", {"AirlineCode", "Name"}, {"AirlineCode", "Name"})
in
expand
let
Source = TripPin.Feed("https://services.odata.org/v4/TripPinService/Airports"),
value = Source[value],
#"Converted to Table" = Table.FromList(value, Splitter.SplitByNothing(), null, null, ExtraValues.Error),
#"Expanded Column1" = Table.ExpandRecordColumn(#"Converted to Table", "Column1", {"Name", "IcaoCode",
"IataCode", "Location"}, {"Name", "IcaoCode", "IataCode", "Location"}),
#"Expanded Location" = Table.ExpandRecordColumn(#"Expanded Column1", "Location", {"Address", "Loc",
"City"}, {"Address", "Loc", "City"}),
#"Expanded City" = Table.ExpandRecordColumn(#"Expanded Location", "City", {"Name", "CountryRegion",
"Region"}, {"Name.1", "CountryRegion", "Region"}),
#"Renamed Columns" = Table.RenameColumns(#"Expanded City",{{"Name.1", "City"}}),
#"Expanded Loc" = Table.ExpandRecordColumn(#"Renamed Columns", "Loc", {"coordinates"}, {"coordinates"}),
#"Added Custom" = Table.AddColumn(#"Expanded Loc", "Latitude", each [coordinates]{1}),
#"Added Custom1" = Table.AddColumn(#"Added Custom", "Longitude", each [coordinates]{0}),
#"Removed Columns" = Table.RemoveColumns(#"Added Custom1",{"coordinates"}),
#"Changed Type" = Table.TransformColumnTypes(#"Removed Columns",{{"Name", type text}, {"IcaoCode", type
text}, {"IataCode", type text}, {"Address", type text}, {"City", type text}, {"CountryRegion", type text},
{"Region", type text}, {"Latitude", type number}, {"Longitude", type number}})
in
#"Changed Type"
È possibile ripetere questo processo per percorsi aggiuntivi nel servizio. Quando si è pronti, passare al
passaggio successivo della creazione di una tabella di navigazione (fittizia).
let
source = #table({"Name", "Data"}, {
{ "Airlines", Airlines },
{ "Airports", Airports }
})
in
source
Se l'impostazione Livelli di privacy non è stata impostata su "Ignora sempre le impostazioni del livello di
privacy" (nota anche come "Combinazione rapida") verrà visualizzata una richiesta di privacy.
Le richieste di privacy vengono visualizzate quando si combinano dati provenienti da più origini e non è ancora
stato specificato un livello di privacy per le origini. Selezionare il pulsante Continua e impostare il livello di
privacy dell'origine principale su Pubblico.
Selezionare Salva per visualizzare la tabella. Anche se non si tratta ancora di una tabella di navigazione, fornisce
le funzionalità di base necessarie per trasformarla in una tabella in una lezione successiva.
I controlli delle combinazioni di dati non vengono eseguiti quando si accede a più origini dati dall'interno di
un'estensione. Poiché tutte le chiamate all'origine dati effettuate dall'interno dell'estensione ereditano lo stesso
contesto di autorizzazione, si presuppone che siano "sicure" da combinare. L'estensione verrà sempre
considerata come una singola origine dati per quanto riguarda le regole di combinazione dei dati. Gli utenti
riceveranno comunque le normali richieste di privacy quando combinano l'origine con altre origini M.
Se si esegue Fiddler e si fa clic sul pulsante Aggiorna anteprima nel Editor di query, si noteranno richieste Web
separate per ogni elemento nella tabella di navigazione. Ciò indica che è in corso una valutazione eager, che non
è ideale quando si compilano tabelle di navigazione con molti elementi. Le lezioni successive illustrano come
creare una tabella di navigazione appropriata che supporta la valutazione differita.
Conclusione
Questa lezione ha illustrato come creare un connettore semplice per un servizio REST. In questo caso,
un'estensione OData esistente è stata trasformata in un'estensione REST standard (usando Web.Contents),ma gli
stessi concetti si applicano se si crea una nuova estensione da zero.
Nella lezione successiva si prenderanno in considerazione le query create in questa lezione usando Power BI
Desktop e le si trasformerà in una vera tabella di navigazione all'interno dell'estensione.
Passaggi successivi
TripPin - Parte 3 - Tabelle di navigazione
TripPin - Parte 3 - Tabelle di navigazione
07/12/2021 • 4 minutes to read
Questa esercitazione in più parti illustra la creazione di una nuova estensione per l'origine dati per Power Query.
L'esercitazione deve essere eseguita in sequenza, ogni lezione si basa sul connettore creato nelle lezioni
precedenti, aggiungendo in modo incrementale nuove — funzionalità al connettore.
In questa lezione si apprenderà come:
Creare una tabella di navigazione per un set fisso di query
Testare la tabella di navigazione in Power BI Desktop
In questa lezione viene aggiunta una tabella di navigazione al connettore TripPin creato nella lezione precedente.
Quando il connettore ha usato la funzione (parte 1), è stata ricevuta la tabella di navigazione "gratuitamente",
come derivata dal documento $metadata OData.Feed OData. Quando si passa alla Web.Contents funzione
(Parte 2), si perde la tabella di navigazione predefinita. In questa lezione verrà creato un set di query fisse in
Power BI Desktop e verranno aggiunti i metadati appropriati per Power Query per visualizzare la finestra di
dialogo Strumento di navigazione per la funzione dell'origine dati.
Per altre informazioni sull'uso delle tabelle di navigazione, vedere la documentazione relativa alla tabella di
navigazione.
Successivamente si importerà la query fittizia della tabella di navigazione scritta che crea una tabella fissa
collegata a queste query del set di dati. Chiamarlo TripPinNavTable :
Infine si dichiara una nuova funzione condivisa, , che verrà usata come funzione principale TripPin.Contents
dell'origine dati. Si rimuoverà anche il Publish valore da in modo che non sia più visualizzato nella finestra di
dialogo TripPin.Feed Ottieni dati.
[DataSource.Kind="TripPin"]
shared TripPin.Feed = Value.ReplaceType(TripPinImpl, type function (url as Uri.Type) as any);
[DataSource.Kind="TripPin", Publish="TripPin.Publish"]
shared TripPin.Contents = Value.ReplaceType(TripPinNavTable, type function (url as Uri.Type) as any);
NOTE
L'estensione può contrassegnare più funzioni shared come , con o senza associarle a un oggetto DataSource.Kind .
Tuttavia, quando si associa una funzione a un oggetto specifico, ogni funzione deve avere lo stesso set di parametri
DataSource.Kind obbligatori, con lo stesso nome e tipo. Ciò è dovuto al fatto che i parametri della funzione dell'origine
dati vengono combinati per creare una "chiave" usata per la ricerca delle credenziali memorizzate nella cache.
È possibile testare TripPin.Contents la funzione usando il file TripPin.query.pq. L'esecuzione della query di test
seguente offrirà una richiesta di credenziali e un semplice output della tabella.
TripPin.Contents("https://services.odata.org/v4/TripPinService/")
Table.ToNavigationTable = (
table as table,
keyColumns as list,
nameColumn as text,
dataColumn as text,
itemKindColumn as text,
itemNameColumn as text,
isLeafColumn as text
) as table =>
let
tableType = Value.Type(table),
newTableType = Type.AddTableKey(tableType, keyColumns, true) meta
[
NavigationTable.NameColumn = nameColumn,
NavigationTable.DataColumn = dataColumn,
NavigationTable.ItemKindColumn = itemKindColumn,
Preview.DelayColumn = itemNameColumn,
NavigationTable.IsLeafColumn = isLeafColumn
],
navigationTable = Value.ReplaceType(table, newTableType)
in
navigationTable;
Dopo aver copiato questo valore nel file di estensione, si aggiornerà la TripPinNavTable funzione per
aggiungere i campi della tabella di navigazione.
Se si esegue di nuovo la query di test, verrà restituito un risultato simile all'ultima volta — con l'aggiunta di altre
colonne.
NOTE
Non verrà visualizzata la finestra Strumento di navigazione Visual Studio. La finestra M Quer y Output (Output
quer y M) visualizza sempre la tabella sottostante.
Se si copia l'estensione nel connettore personalizzato Power BI Desktop e si richiama la nuova funzione dalla
finestra di dialogo Ottieni dati, verrà visualizzato lo strumento di navigazione.
Se si fa clic con il pulsante destro del mouse sulla radice dell'albero di navigazione e si seleziona Modifica , verrà
visualizzata la stessa tabella che è stata visualizzata all'interno Visual Studio.
Conclusione
In questa esercitazione è stata aggiunta una tabella di navigazione all'estensione. Le tabelle di spostamento sono
una funzionalità chiave che semplifica l'uso dei connettori. In questo esempio la tabella di navigazione ha un
solo livello, ma l'interfaccia utente di Power Query supporta la visualizzazione di tabelle di navigazione con più
dimensioni (anche se instagliate).
Passaggi successivi
TripPin - Parte 4 - Percorsi delle origini dati
TripPin - Parte 4 - Percorsi delle origini dati
07/12/2021 • 6 minutes to read
Questa esercitazione in più parti illustra la creazione di una nuova estensione per l'origine dati per Power Query.
L'esercitazione deve essere eseguita in sequenza, ogni lezione si basa sul connettore creato nelle lezioni
precedenti, aggiungendo in modo incrementale nuove — funzionalità al connettore.
In questa lezione si apprenderà come:
Semplificare la logica di connessione per il connettore
Migliorare l'esperienza della tabella di navigazione
Questa lezione semplifica il connettore creato nella lezione precedente rimuovendo i parametri di funzione
necessari e migliorando l'esperienza utente passando a una tabella di navigazione generata dinamicamente.
Per una spiegazione approfondita del modo in cui vengono identificate le credenziali, vedere la sezione Percorsi
delle origini dati in Gestione dell'autenticazionedi .
[DataSource.Kind="TripPin"]
shared TripPin.Feed = Value.ReplaceType(TripPinImpl, type function (url as Uri.Type) as any);
[DataSource.Kind="TripPin", Publish="TripPin.Publish"]
shared TripPin.Contents = Value.ReplaceType(TripPinNavTable, type function (url as Uri.Type) as any);
La prima volta che si esegue una query che usa una delle funzioni, si riceverà una richiesta di credenziali con
elenchi a discesa che consentono di selezionare un percorso e un tipo di autenticazione.
Se si esegue di nuovo la stessa query, con gli stessi parametri, il motore M è in grado di individuare le
credenziali memorizzate nella cache e non viene visualizzata alcuna richiesta di credenziali. Se si modifica
l'argomento della funzione in modo che il percorso di base non corrisponda più, viene visualizzata una nuova
richiesta di credenziali url per il nuovo percorso.
È possibile visualizzare le credenziali memorizzate nella cache nella tabella Credentials (Credenziali) nella
finestra M Quer y Output (Output quer y M).
A seconda del tipo di modifica, la modifica dei parametri della funzione restituirà probabilmente un errore di
credenziale.
BaseUrl = "https://services.odata.org/v4/TripPinService/";
[DataSource.Kind="TripPin", Publish="TripPin.Publish"]
shared TripPin.Contents = () => TripPinNavTable(BaseUrl) as table;
La funzione verrà conservata, ma non verrà più condivisa, non verrà più associata a un tipo di origine dati
TripPin.Feed e semplificherà la dichiarazione. Da questo punto in avanti, verrà utilizzato solo internamente
all'interno di questo documento della sezione.
TripPin.Feed = (url as text) =>
let
source = Web.Contents(url, [ Headers = DefaultRequestHeaders ]),
json = Json.Document(source)
in
json;
Se si aggiorna TripPin.Contents() la chiamata nel file ed eseguirla in Visual Studio, verrà visualizzata una nuova
richiesta TripPin.query.pq di credenziali. Si noti che è ora disponibile un singolo valore di Percorso origine dati
— TripPin.
RootEntities = {
"Airlines",
"Airports",
"People"
};
Aggiornare quindi la TripPinNavTable funzione per compilare la tabella una colonna alla volta. La colonna
[Data] per ogni entità viene recuperata chiamando TripPin.Feed con l'URL completo dell'entità.
TripPinNavTable = (url as text) as table =>
let
entitiesAsTable = Table.FromList(RootEntities, Splitter.SplitByNothing()),
rename = Table.RenameColumns(entitiesAsTable, {{"Column1", "Name"}}),
// Add Data as a calculated column
withData = Table.AddColumn(rename, "Data", each TripPin.Feed(Uri.Combine(url, [Name])), Uri.Type),
// Add ItemKind and ItemName as fixed text values
withItemKind = Table.AddColumn(withData, "ItemKind", each "Table", type text),
withItemName = Table.AddColumn(withItemKind, "ItemName", each "Table", type text),
// Indicate that the node should not be expandable
withIsLeaf = Table.AddColumn(withItemName, "IsLeaf", each true, type logical),
// Generate the nav table
navTable = Table.ToNavigationTable(withIsLeaf, {"Name"}, "Name", "Data", "ItemKind", "ItemName",
"IsLeaf")
in
navTable;
Quando si compilano in modo dinamico i percorsi URL, assicurarsi di avere la certezza di avere la posizione in
cui si trova la barra (/). Si noti che Uri.Combine usa le regole seguenti quando si combinano i percorsi:
Quando il relativeUri parametro inizia con /, sostituirà l'intero percorso del baseUri parametro
Se il relativeUri parametro non inizia con / e termina baseUri con /, il percorso viene aggiunto
Se il relativeUri parametro non inizia con / baseUri e non termina con /, l'ultimo segmento del percorso
viene sostituito
L'immagine seguente mostra alcuni esempi:
NOTE
Uno svantaggio dell'uso di un approccio generico per elaborare le entità è che si perdono le informazioni di formattazione
e tipo utili per le entità. Una sezione successiva di questa esercitazione illustra come applicare lo schema nelle chiamate
API REST.
Conclusione
In questa esercitazione il connettore è stato pulito e semplificato correggendo il valore di Percorso origine dati e
passando a un formato più flessibile per la tabella di navigazione. Dopo aver completato questi passaggi (o aver
utilizzato il codice di esempio in questa directory), la funzione restituisce una tabella TripPin.Contents di
navigazione in Power BI Desktop.
Passaggi successivi
TripPin - Parte 5 - Paging
Parte 5 di TripPin - Paging
07/12/2021 • 7 minutes to read
Questa esercitazione in più parti illustra la creazione di una nuova estensione per l'origine dati per Power Query.
L'esercitazione deve essere eseguita in sequenza ogni lezione si basa sul connettore creato nelle lezioni
precedenti, aggiungendo in modo incrementale nuove — funzionalità al connettore.
In questa lezione si apprenderà come:
Aggiungere il supporto per il paging al connettore
Molte API Rest restituiscono dati in "pagine", richiedendo ai client di effettuare più richieste per unire i risultati.
Anche se esistono alcune convenzioni comuni per l'impaginazione (ad esempio RFC 5988),in genere varia da
API a API. Fortunatamente, TripPin è un servizio OData e lo standard OData definisce un modo per eseguire
l'impaginazione usando i valori odata.nextLink restituiti nel corpo della risposta.
Per semplificare le iterazioni precedenti del connettore, la TripPin.Feed funzione non era in grado di
riconoscere la pagina. Ha semplicemente analizzato il codice JSON restituito dalla richiesta e lo ha formattato
come tabella. Chi ha familiarità con il protocollo OData potrebbe aver notato che sono stati fatti diversi
presupposti non corretti nel formato della risposta, ad esempio presupponendo che sia presente un campo
contenente una matrice di value record.
In questa lezione si migliorerà la logica di gestione delle risposte rendendola in grado di riconoscere la pagina.
Le esercitazioni future renderanno la logica di gestione delle pagine più affidabile e in grado di gestire più
formati di risposta (inclusi gli errori del servizio).
NOTE
Non è necessario implementare la logica di paging personalizzata con i connettori basati su OData.Feed,perché gestisce
automaticamente tutto.
NOTE
Questa lezione contiene la logica di paging per un servizio OData, che segue un formato specifico. Consultare la
documentazione dell'API per determinare le modifiche che è necessario apportare nel connettore per supportare il
formato di paging.
Panoramica del paging OData
Il paging OData è basato su annotazioni nextLink contenute nel payload della risposta. Il valore nextLink
contiene l'URL della pagina di dati successiva. È possibile sapere se è presente un'altra pagina di dati cercando
un campo nell'oggetto più odata.nextLink esterno nella risposta. Se non è presente odata.nextLink alcun
campo, sono stati letti tutti i dati.
{
"odata.context": "...",
"odata.count": 37,
"value": [
{ },
{ },
{ }
],
"odata.nextLink": "...?$skiptoken=342r89"
}
Alcuni servizi OData consentono ai client di specificare una preferenza per le dimensioni massime della
pagina,ma il servizio deve o meno rispettarlo. Power Query essere in grado di gestire le risposte di qualsiasi
dimensione, quindi non è necessario preoccuparsi di specificare una preferenza per le dimensioni della pagina
che è possibile supportare indipendentemente dal — servizio.
Altre informazioni sul paging basato su server sono disponibili nella specifica OData.
Test di TripPin
Prima di correggere l'implementazione del paging, verificare il comportamento corrente dell'estensione
dall'esercitazione precedente. La query di test seguente recupererà la tabella People e aggiungerà una colonna
di indice per visualizzare il numero di righe corrente.
let
source = TripPin.Contents(),
data = source{[Name="People"]}[Data],
withRowCount = Table.AddIndexColumn(data, "Index")
in
withRowCount
Attivare fiddler ed eseguire la query in Visual Studio. Si noterà che la query restituisce una tabella con 8 righe
(indice da 0 a 7).
Se si osserva il corpo della risposta da fiddler, si scoprirà che contiene di fatto un campo, a indicare che sono
disponibili più pagine @odata.nextLink di dati.
{
"@odata.context": "https://services.odata.org/V4/TripPinService/$metadata#People",
"@odata.nextLink": "https://services.odata.org/v4/TripPinService/People?%24skiptoken=8",
"value": [
{ },
{ },
{ }
]
}
NOTE
Come indicato in precedenza in questa esercitazione, la logica di paging varia a seconda delle origini dati.
L'implementazione tenta di suddividere la logica in funzioni che devono essere riutilizzabili per le origini che usano
collegamenti successivi restituiti nella risposta.
Table.GenerateByPage
La Table.GenerateByPage funzione può essere usata per combinare in modo efficiente più "pagine" di dati in una
singola tabella. A tale scopo, chiama ripetutamente la funzione passata come parametro, fino getNextPage a
quando non riceve un oggetto null . Il parametro della funzione deve accetta un singolo argomento e restituire
nullable table un oggetto .
// The getNextPage function takes a single argument and is expected to return a nullable table
Table.GenerateByPage = (getNextPage as function) as table =>
let
listOfPages = List.Generate(
() => getNextPage(null), // get the first page of data
(lastPage) => lastPage <> null, // stop when the function returns null
(lastPage) => getNextPage(lastPage) // pass the previous page to the next function call
),
// concatenate the pages together
tableOfPages = Table.FromList(listOfPages, Splitter.SplitByNothing(), {"Column1"}),
firstRow = tableOfPages{0}?
in
// if we didn't get back any pages of data, return an empty table
// otherwise set the table type based on the columns of the first page
if (firstRow = null) then
Table.FromRows({})
else
Value.ReplaceType(
Table.ExpandTableColumn(tableOfPages, "Column1", Table.ColumnNames(firstRow[Column1])),
Value.Type(firstRow[Column1])
);
Alcune note su Table.GenerateByPage :
La funzione dovrà recuperare l'URL della pagina successiva (o il numero di pagina o qualsiasi altro valore
usato getNextPage per implementare la logica di paging). Questa operazione viene in genere eseguita
aggiungendo meta valori alla pagina prima di restituirla.
Le colonne e il tipo di tabella della tabella combinata (ovvero tutte le pagine insieme) derivano dalla prima
pagina di dati. La getNextPage funzione deve normalizzare ogni pagina di dati.
La prima chiamata a getNextPage riceve un parametro Null.
getNextPage deve restituire null quando non sono presenti pagine.
Implementazione di GetAllPagesByNextLink
Il corpo della funzione GetAllPagesByNextLink implementa l'argomento getNextPage della funzione per
Table.GenerateByPage . Chiamerà la funzione e recupererà l'URL per la pagina di dati successiva dal campo
GetPage del record dalla chiamata NextLink meta precedente.
Implementazione di GetPage
La GetPage funzione userà Web.Contents per recuperare una singola pagina di dati dal servizio TripPin e
convertire la risposta in una tabella. Passa la risposta da Web.Contents alla funzione per estrarre l'URL della
pagina successiva e impostarla sul record della tabella GetNextLink meta restituita (pagina di dati).
Questa implementazione è una versione leggermente modificata TripPin.Feed della chiamata delle
esercitazioni precedenti.
Implementazione di GetNextLink
La GetNextLink funzione controlla semplicemente il corpo della risposta per un campo e ne restituisce il
@odata.nextLink valore.
// In this implementation, 'response' will be the parsed body of the response after the call to
Json.Document.
// Look for the '@odata.nextLink' field and simply return null if it doesn't exist.
GetNextLink = (response) as nullable text => Record.FieldOrDefault(response, "@odata.nextLink");
Se si esegue di nuovo la stessa query di test delle versioni precedenti dell'esercitazione, il lettore di pagine
dovrebbe essere in azione. Si dovrebbe anche vedere che nella risposta sono presenti 20 righe anziché 8.
Se si osservano le richieste in fiddler, dovrebbero essere ora presenti richieste separate per ogni pagina di dati.
NOTE
Si noteranno richieste duplicate per la prima pagina di dati dal servizio, che non è ideale. La richiesta aggiuntiva è il
risultato del comportamento di controllo dello schema del motore M. Ignorare questo problema per il momento e
risolverlo nell'esercitazione successiva,in cui verrà applicato uno schema esplicato.
Conclusione
Questa lezione ha illustrato come implementare il supporto di impaginazione per un'API Rest. Anche se la logica
varia probabilmente tra le API, il modello qui stabilito dovrebbe essere riutilizzabile con modifiche secondarie.
Nella lezione successiva verrà illustrato come applicare uno schema esplicito ai dati, andando oltre i tipi di dati
semplici e che si text number ottengono da Json.Document .
Passaggi successivi
Parte 6 di TripPin - Schema
TripPin - Parte 6 - Schema
07/12/2021 • 11 minutes to read
Questa esercitazione in più parti illustra la creazione di una nuova estensione per l'origine dati per Power Query.
L'esercitazione deve essere eseguita in sequenza, ogni lezione si basa sul connettore creato nelle lezioni
precedenti, aggiungendo in modo incrementale nuove — funzionalità al connettore.
In questa lezione si apprenderà come:
Definire uno schema fisso per un'API REST
Impostare dinamicamente i tipi di dati per le colonne
Applicare una struttura di tabella per evitare errori di trasformazione dovuti a colonne mancanti
Nascondere colonne dal set di risultati
Uno dei principali vantaggi di un servizio OData rispetto a un'API REST standard è la definizione $metadata. Il
$metadata descrive i dati trovati in questo servizio, incluso lo schema per tutte le entità (tabelle) e i campi
(colonne). La funzione usa questa definizione dello schema per impostare automaticamente le informazioni sul
tipo di dati in modo che invece di ottenere tutti i campi di testo e numero (come si farebbe da ), gli utenti finali
otterranno date, numeri interi, ore e così via, offrendo una migliore esperienza utente OData.Feed —
Json.Document complessiva.
Molte API REST non hanno un modo per determinarne lo schema a livello di codice. In questi casi, è necessario
includere le definizioni dello schema all'interno del connettore. In questa lezione verrà definito uno schema
semplice e hardcoded per ogni tabella e lo schema verrà applicato ai dati letti dal servizio.
NOTE
L'approccio descritto qui dovrebbe funzionare per molti servizi REST. Le lezioni future si baseranno su questo approccio
tramite l'applicazione ricorsiva di schemi su colonne strutturate (record, elenco, tabella) e forniranno implementazioni di
esempio in grado di generare a livello di codice una tabella dello schema da documenti CSDL o JSON Schema.
In generale, l'applicazione di uno schema sui dati restituiti dal connettore offre diversi vantaggi, ad esempio:
Impostazione dei tipi di dati corretti
Rimozione di colonne che non devono essere visualizzate agli utenti finali , ad esempio ID interni o
informazioni sullo stato
Assicurarsi che ogni pagina di dati abbia la stessa forma aggiungendo colonne che potrebbero non essere
presenti in una risposta (un modo comune per le API REST per indicare che un campo deve essere Null)
let
source = TripPin.Contents(),
data = source{[Name="Airlines"]}[Data]
in
data
Le colonne "*" fanno parte del protocollo OData e non devono essere visualizzate o desiderate per gli utenti
finali @odata del connettore. AirlineCode e Name sono le due colonne da mantenere. Se si osserva lo schema
della tabella (usando la pratica funzione Table.Schema), è possibile vedere che tutte le colonne della tabella
hanno un tipo di dati Any.Type .
let
source = TripPin.Contents(),
data = source{[Name="Airlines"]}[Data]
in
Table.Schema(data)
Table.Schema restituisce molti metadati sulle colonne di una tabella, inclusi nomi, posizioni, informazioni sul tipo
e molte proprietà avanzate, ad esempio Precision, Scale e MaxLength. Le lezioni future forniranno schemi
progettuali per l'impostazione di queste proprietà avanzate, ma per il momento è necessario solo avere a che
fare con il tipo ascritto ( ), il tipo primitivo ( ) e se il valore della colonna potrebbe essere TypeName Kind Null (
IsNullable ).
C O LO N N A DET TA GL I
La tabella dello schema hardcoded per la tabella imposta le relative Airlines colonne e su e ha un aspetto
simile al AirlineCode Name text seguente:
La Airports tabella contiene quattro campi che è possibile mantenere (incluso uno di tipo record ):
Infine, la tabella include sette campi, inclusi gli elenchi ( , ), una colonna che ammette i valori Null ( ) e una
colonna con un People Emails tipo AddressInfo Gender ascritto ( Concurrency ).
PA RA M ET RO T IP O DESC RIZ IO N E
NOTE
L'ultimo passaggio per impostare il tipo di tabella elimina la necessità che l'interfaccia utente di Power Query deduca le
informazioni sul tipo quando si visualizzano i risultati nell'editor di query. In questo modo viene rimosso il problema della
doppia richiesta che si è verificato alla fine dell'esercitazione precedente.
SchemaTransformTable = (table as table, schema as table, optional enforceSchema as number) as table =>
let
// Default to EnforceSchema.Strict
_enforceSchema = if (enforceSchema <> null) then enforceSchema else EnforceSchema.Strict,
Si aggiorneranno anche tutte le chiamate a queste funzioni per assicurarsi di passare correttamente lo schema.
Applicazione dello schema
L'applicazione effettiva dello schema verrà eseguita nella GetPage funzione.
GetPage = (url as text, optional schema as table) as table =>
let
response = Web.Contents(url, [ Headers = DefaultRequestHeaders ]),
body = Json.Document(response),
nextLink = GetNextLink(body),
data = Table.FromRecords(body[value]),
// enforce the schema
withSchema = if (schema <> null) then SchemaTransformTable(data, schema) else data
in
withSchema meta [NextLink = nextLink];
[Nota] Questa GetPage implementazione usa Table.FromRecords per convertire l'elenco di record nella
risposta JSON in una tabella. Uno svantaggio principale dell'uso di Table.FromRecords è che presuppone che
tutti i record nell'elenco presentino lo stesso set di campi. Questa operazione funziona per il servizio TripPin,
poiché i record OData devono contenere gli stessi campi, ma questo potrebbe non essere il caso per tutte le
API REST. Un'implementazione più affidabile usa una combinazione di Table.FromList e
Table.ExpandRecordColumn. Le esercitazioni successive modificheranno l'implementazione per ottenere
l'elenco di colonne dalla tabella dello schema, assicurando che nessuna colonna andrà persa o mancante
durante la conversione da JSON a M.
Si aggiornerà quindi la funzione in modo che chiami invece di TripPinNavTable eseguire tutte le chiamate
GetEntity inline. Il vantaggio principale è che consente di continuare a modificare il codice di compilazione
dell'entità, senza dover toccare la logica della tabella di spostamento.
let
source = TripPin.Contents(),
data = source{[Name="Airlines"]}[Data]
in
Table.Schema(data)
Si può ora vedere che la tabella Delle compagnie aeree include solo le due colonne definite nel relativo schema:
let
source = TripPin.Contents(),
data = source{[Name="People"]}[Data]
in
Table.Schema(data)
Si noti che anche il tipo ascritto usato ( Int64.Type ) è stato impostato correttamente.
Un aspetto importante da notare è che questa implementazione di non modifica i tipi di colonne e , ma le
colonne e sono SchemaTransformTable list ancora record Emails AddressInfo digitate come list . Ciò è
dovuto al Json.Document fatto che le matrici JSON verranno mappate correttamente agli elenchi M e agli oggetti
JSON ai record M. Se si espande la colonna dell'elenco o del record in Power Query, si può vedere che tutte le
colonne espanse saranno di tipo any. Le esercitazioni future miglioreranno l'implementazione per impostare in
modo ricorsivo le informazioni sui tipi complessi annidati.
Conclusione
Questa esercitazione ha fornito un'implementazione di esempio per l'applicazione di uno schema sui dati JSON
restituiti da un servizio REST. Anche se questo esempio usa un semplice formato di tabella dello schema
hardcoded, l'approccio potrebbe essere esteso compilando dinamicamente una definizione di tabella dello
schema da un'altra origine, ad esempio un file di schema JSON o un servizio/endpoint di metadati esposto
dall'origine dati.
Oltre a modificare i tipi di colonna (e i valori), il codice imposta anche le informazioni corrette sul tipo nella
tabella stessa. L'impostazione di queste informazioni sul tipo consente di migliorare le prestazioni durante
l'esecuzione all'interno di Power Query, poiché l'esperienza utente tenta sempre di dedurre le informazioni sul
tipo per visualizzare le code dell'interfaccia utente giuste per l'utente finale e le chiamate di inferenza possono
terminare con l'attivare chiamate aggiuntive alle API dati sottostanti.
Se si visualizza la tabella People usando il connettore TripPindella lezione precedente, si può vedere che tutte le
colonne hanno un'icona "type any" (anche le colonne che contengono elenchi):
Eseguendo la stessa query con il connettore TripPin di questa lezione, si può ora vedere che le informazioni sul
tipo vengono visualizzate correttamente.
Passaggi successivi
TripPin - Parte 7 - Schema avanzato con tipi M
Parte 7 di TripPin - Schema avanzato con tipi M
07/12/2021 • 7 minutes to read
Questa esercitazione in più parti illustra la creazione di una nuova estensione per l'origine dati per Power Query.
L'esercitazione deve essere eseguita in sequenza ogni lezione si basa sul connettore creato nelle lezioni
precedenti, aggiungendo in modo incrementale nuove — funzionalità al connettore.
In questa lezione si apprenderà come:
Applicare uno schema di tabella usando i tipi M
Impostare i tipi per record ed elenchi annidati
Eseguire il refactoring del codice per il riutilizzo e gli unit test
Nella lezione precedente sono stati definiti gli schemi di tabella usando un semplice sistema "Schema Table".
Questo approccio alla tabella dello schema funziona per molte API REST/connettori dati, ma i servizi che
restituiscono set di dati completi o annidati in modo approfondito potrebbero trarre vantaggio dall'approccio di
questa esercitazione, che sfrutta il sistema di tipi M.
Questa lezione illustra i passaggi seguenti:
1. Aggiunta di unit test
2. Definizione di tipi M personalizzati
3. Applicazione di uno schema tramite tipi
4. Refactoring di codice comune in file separati
shared TripPin.UnitTest =
[
// Put any common variables here if you only want them to be evaluated once
RootTable = TripPin.Contents(),
Airlines = RootTable{[Name="Airlines"]}[Data],
Airports = RootTable{[Name="Airports"]}[Data],
People = RootTable{[Name="People"]}[Data],
report = Facts.Summarize(facts)
][report];
Facendo clic su Esegui nel progetto verranno valutati tutti i fatti e verrà visualizzato un output del report simile
al seguente:
Usando alcuni principi dello sviluppo basato su test,si aggiungerà ora un test che attualmente ha esito negativo,
ma verrà presto reimplementato e risolto (alla fine di questa esercitazione). In particolare, si aggiungerà un test
che controlla uno dei record annidati (messaggi di posta elettronica) restituiti nell'entità People.
Se si esegue di nuovo il codice, si dovrebbe ora verificare che si è verificata un'operazione di test non riuscita.
A questo punto è sufficiente implementare la funzionalità per eseguire questa operazione.
Un valore tipo è un valore che classifica altri valori. Si dice che un valore classificato in base a un tipo sia
conforme a quel tipo. Il sistema di tipi del linguaggio M è costituito dai tipi seguenti:
Tipi primitivi, che classificano i valori primitivi ( binary , date , datetime , datetimezone , duration , list
, logical , null , number , record , text , time , type ) e includono anche alcuni tipi astratti ( function ,
table , any e none )
Tipi record, che classificano i valori record in base ai nomi dei campi e ai tipi di valore
Tipi elenco, che classificano gli elenchi usando un tipo di base a elemento singolo
Tipi funzione, che classificano i valori funzione in base ai rispettivi tipi di parametri e valori restituiti
Tipi tabella, che classificano i valori tabella in base ai nomi delle colonne, ai tipi di colonna e alle chiavi
Tipi nullable, che classificano il valore Null, oltre a tutti i valori classificati a partire da un tipo di base
Tipi "tipo", che classificano i valori costituiti da tipi
Usando l'outputJSON non elaborato che si ottiene (e/o cercando le definizioni nel $metadata del servizio), è
possibile definire i tipi di record seguenti per rappresentare i tipi complessi OData:
LocationType = type [
Address = text,
City = CityType,
Loc = LocType
];
CityType = type [
CountryRegion = text,
Name = text,
Region = text
];
LocType = type [
#"type" = text,
coordinates = {number},
crs = CrsType
];
CrsType = type [
#"type" = text,
properties = record
];
Si noti come LocationType fa riferimento a e per rappresentare le colonne CityType LocType strutturate.
Per le entità di primo livello (che si desidera rappresentare come tabelle), si definiscono i tipi di tabella:
Aggiornare quindi la variabile (che viene utilizzata come "tabella di ricerca" per i mapping tra entità e tipi) per
usare SchemaTable queste nuove definizioni di tipo:
L'elenco completo del codice per la funzione è Table.ChangeType disponibile nel file Table.ChangeType.pqm.
NOTE
Per la flessibilità, la funzione può essere usata nelle tabelle, nonché negli elenchi di record, ovvero come le tabelle
verrebbero rappresentate in un documento JSON.
È quindi necessario aggiornare il codice del connettore per modificare il parametro da schema a e aggiungere
una chiamata a in table type Table.ChangeType GetEntity .
GetPage viene aggiornato per usare l'elenco dei campi dello schema (per conoscere i nomi degli elementi da
espandere quando si ottengono i risultati), ma lascia l'applicazione effettiva dello schema a GetEntity .
L'esecuzione di nuovo degli unit test mostra che sono ora tutti superati.
Refactoring di codice comune in file separati
NOTE
Il motore M avrà migliorato il supporto per fare riferimento a moduli esterni/codice comune in futuro, ma questo
approccio dovrebbe portare avanti fino ad allora.
A questo punto, l'estensione ha quasi tutto il codice "comune" del codice del connettore TripPin. In futuro queste
funzioni comuni saranno parte della libreria di funzioni standard predefinita oppure sarà possibile fare
riferimento a tali funzioni da un'altra estensione. Per il momento, eseguire il refactoring del codice nel modo
seguente:
1. Spostare le funzioni riutilizzabili in file separati (con estensione pqm).
2. Impostare la proprietà Azione di compilazione nel file su Compila per assicurarsi che venga inclusa nel
file di estensione durante la compilazione.
3. Definire una funzione per caricare il codice usando Expression.Evaluate.
4. Caricare ognuna delle funzioni comuni da usare.
Il codice a tale scopo è incluso nel frammento di codice seguente:
Table.ChangeType = Extension.LoadFunction("Table.ChangeType.pqm");
Table.GenerateByPage = Extension.LoadFunction("Table.GenerateByPage.pqm");
Table.ToNavigationTable = Extension.LoadFunction("Table.ToNavigationTable.pqm");
Conclusione
Questa esercitazione ha apportato diversi miglioramenti al modo in cui si applica uno schema ai dati che si
ottengono da un'API REST. Il connettore sta attualmente codificando a livello di codice le informazioni sullo
schema, che hanno un vantaggio in termini di prestazioni in fase di esecuzione, ma non è in grado di adattarsi
alle modifiche nel tempo di straordinario dei metadati del servizio. Le esercitazioni future verranno spostate in
un approccio puramente dinamico che dedurrà lo schema dal documento $metadata servizio.
Oltre alle modifiche dello schema, questa esercitazione ha aggiunto unit test per il codice ed è stato refactoring
delle funzioni helper comuni in file separati per migliorare la leggibilità complessiva.
Passaggi successivi
Parte 8 di TripPin - Aggiunta di diagnostica
Parte 8 di TripPin - Aggiunta di diagnostica
07/12/2021 • 8 minutes to read
Questa esercitazione in più parti illustra la creazione di una nuova estensione per l'origine dati per Power Query.
L'esercitazione deve essere eseguita in sequenza ogni lezione si basa sul connettore creato nelle lezioni
precedenti, aggiungendo in modo incrementale nuove — funzionalità al connettore.
In questa lezione si apprenderà come:
Informazioni sulla funzione Diagnostics.Trace
Usare le funzioni helper di diagnostica per aggiungere informazioni di traccia che consentono di eseguire il
debug del connettore
Una volta abilitate, tutte le query successive causeranno la creazione di informazioni di traccia nei file di log che
si trovano in una directory utente fissa.
Quando si eseguono query M dall'POWER QUERY SDK, la traccia è abilitata a livello di progetto. Nella pagina
delle proprietà del progetto sono disponibili tre impostazioni correlate alla traccia:
Cancella log — Quando questa proprietà è impostata su true , il log verrà reimpostato/cancellato quando
si eseguono le query. È consigliabile mantenere questa impostazione su true .
Mostra tracce motore — questa impostazione controlla l'output delle tracce predefinite dal motore M.
Queste tracce sono in genere utili solo per i membri del team di Power Query, quindi in genere è
consigliabile mantenere questa impostazione su false .
Mostra tracce utente — questa impostazione controlla l'output delle informazioni di traccia da parte del
connettore. È necessario impostare questa proprietà su true .
Una volta abilitate, si inizieranno a visualizzare le voci di log nella finestra Output query M, nella scheda Log.
Diagnostics.Trace
La funzione Diagnostics.Trace viene usata per scrivere messaggi nel log di traccia del motore M.
Diagnostics.Trace = (traceLevel as number, message as text, value as any, optional delayed as nullable
logical as any) => ...
IMPORTANT
M è un linguaggio funzionale con valutazione differita. Quando si usa , tenere presente che la funzione verrà chiamata
solo se l'espressione di cui fa Diagnostics.Trace parte viene effettivamente valutata. Alcuni esempi sono disponibili più
avanti in questa esercitazione.
Il traceLevel parametro può essere uno dei valori seguenti (in ordine decrescente):
TraceLevel.Critical
TraceLevel.Error
TraceLevel.Warning
TraceLevel.Information
TraceLevel.Verbose
Quando la traccia è abilitata, l'utente può selezionare il livello massimo di messaggi che vuole visualizzare. Tutti i
messaggi di traccia di questo livello e in verranno restituiti nel log. Ad esempio, se l'utente seleziona il livello
"Avviso", i messaggi di traccia di TraceLevel.Warning , e verranno visualizzati nei TraceLevel.Error
TraceLevel.Critical log.
Il messageparametro è il testo effettivo che verrà restituito nel file di traccia. Si noti che il testo non conterrà il
value parametro a meno che non venga incluso in modo esplicito nel testo.
Il value parametro è ciò che la funzione restituirà. Quando il parametro è impostato su , sarà una funzione di
parametro zero che restituisce il valore effettivo che delayed true si sta value valutando. Quando delayed è
impostato su , sarà il valore false value effettivo. Di seguito è riportato un esempio del funzionamento di.
Uso di Diagnostics.Trace nel connettore TripPin
Per un esempio pratico dell'uso di Diagnostics.Trace e dell'impatto del parametro , aggiornare la funzione del
connettore TripPin per eseguire delayed il wrapping GetSchemaForEntity error dell'eccezione:
È possibile forzare un errore durante la valutazione (a scopo di test) passando un nome di entità non valido alla
GetEntity funzione. In questo caso withData si modifica la riga nella funzione , sostituendo con
TripPinNavTable [Name] "DoesNotExist" .
Abilitare la traccia per il progetto ed eseguire le query di test. Nella scheda Errors dovrebbe essere visualizzato
il testo dell'errore generato:
Inoltre, nella Log scheda dovrebbe essere visualizzato lo stesso messaggio. Si noti che se si usano valori diversi
per message i parametri e , questi saranno value diversi.
Si noti anche che Action il campo del messaggio di log contiene il nome (Tipo origine dati) dell'estensione (in
questo caso, Engine/Extension/TripPin ). In questo modo è più semplice trovare i messaggi correlati
all'estensione quando sono coinvolte più query e/o la traccia di sistema (motore mashup) è abilitata.
Valutazione posticipata
Come esempio del funzionamento del parametro , si apportare alcune delayed modifiche ed eseguire di nuovo
le query.
Per prima cosa, delayed impostare il valore su , ma lasciare il parametro così come false value è:
Quando si esegue la query, viene visualizzato un errore che indica che non è possibile convertire un valore di
tipo Function nel tipo Type e non l'errore effettivo generato. Ciò è dovuto al fatto che la chiamata ora restituisce
un function valore, anziché il valore stesso.
Rimuovere quindi la funzione dal value parametro :
Quando si esegue la query, viene visualizzato l'errore corretto, ma se si seleziona la scheda Log non verranno
visualizzati messaggi. Ciò è dovuto al error fatto che l'oggetto viene generato/valutato durante la chiamata a ,
quindi il messaggio non Diagnostics.Trace viene mai effettivamente restituito.
Ora che si è compreso l'impatto del parametro, assicurarsi di ripristinare lo stato di funzionamento del
connettore delayed prima di procedere.
// Diagnostics module contains multiple functions. We can take the ones we need.
Diagnostics = Extension.LoadFunction("Diagnostics.pqm");
Diagnostics.LogValue = Diagnostics[LogValue];
Diagnostics.LogFailure = Diagnostics[LogFailure];
Diagnostics.LogValue
La funzione è molto simile a e può essere usata per ottenere il valore di ciò Diagnostics.LogValue
Diagnostics.Trace che si sta valutando.
Il prefix parametro viene anteposto al messaggio di log. Si userebbe questa opzione per determinare quale
chiamata restituisce il messaggio. Il parametro è ciò che la funzione restituirà e verrà scritto anche nella traccia
come value rappresentazione testuale del valore M. Ad esempio, se value è uguale a con le colonne A e
table B, il log conterrà la rappresentazione #table equivalente:
#table({"A", "B"}, {{"row1 A", "row1 B"}, {"row2 A", row2 B"}})
NOTE
La serializzazione dei valori M in testo può essere un'operazione costosa. Tenere presente le dimensioni potenziali dei
valori restituiti nella traccia.
NOTE
La maggior Power Query ambienti tronca i messaggi di traccia a una lunghezza massima.
Ad esempio, si aggiornerà la TripPin.Feed funzione per tracciare gli url argomenti e passati alla schema
funzione.
TripPin.Feed = (url as text, optional schema as type) as table =>
let
_url = Diagnostics.LogValue("Accessing url", url),
_schema = Diagnostics.LogValue("Schema type", schema),
//result = GetAllPagesByNextLink(url, schema)
result = GetAllPagesByNextLink(_url, _schema)
in
result;
Si noti che è necessario usare i valori _url new e nella chiamata a _schema GetAllPagesByNextLink . Se sono
stati usati i parametri della funzione originale, le chiamate non verrebbero mai effettivamente valutate e non
verrebbero scritti messaggi Diagnostics.LogValue nella traccia. La programmazione funzionale è divertente.
Quando si eseguono le query, nel log dovrebbero essere visualizzati nuovi messaggi.
Accesso all'URL:
Tipo di schema:
Si noti che viene visualizzata la versione serializzata del parametro , anziché quella che si ottiene quando si
esegue un'operazione semplice su un valore di tipo (il risultato schema type è Text.FromValue "type").
Diagnostics.LogFailure
La funzione può essere usata per eseguire il wrapping delle chiamate di funzione e scriverà nella traccia solo se
la chiamata di funzione ha esito negativo, ovvero Diagnostics.LogFailure restituisce un oggetto error .
Nella traccia è possibile trovare il messaggio di errore risultante contenente text , e le informazioni sull'errore
originale.
Assicurarsi di reimpostare lo stato di funzionamento della funzione prima di procedere con l'esercitazione
successiva.
Conclusione
Questa breve lezione ( ma importante! ) ha illustrato come usare le funzioni helper di diagnostica per accedere
ai Power Query di traccia. Se usate correttamente, queste funzioni sono estremamente utili per il debug dei
problemi all'interno del connettore.
NOTE
Gli sviluppatori di connettori devono assicurarsi di non registrare informazioni riservate o personali come parte della
registrazione diagnostica. È anche necessario prestare attenzione a non visualizzare troppe informazioni di traccia, in
quanto possono avere un impatto negativo sulle prestazioni.
Passaggi successivi
Parte 9 di TripPin - TestConnection
Parte 9 di TripPin - TestConnection
07/12/2021 • 4 minutes to read
Questa esercitazione in più parti illustra la creazione di una nuova estensione per l'origine dati per Power Query.
L'esercitazione deve essere eseguita in sequenza ogni lezione si basa sul connettore creato nelle lezioni
precedenti, aggiungendo in modo incrementale nuove — funzionalità al connettore.
In questa lezione si:
Aggiungere un gestore TestConnection
Configurare il gateway dati locale (modalità personale)
Testare l'aggiornamento pianificato tramite Power BI servizio
Il supporto del connettore personalizzato è stato aggiunto alla versione di aprile 2018 del gateway dati locale
personale. Questa nuova funzionalità (anteprima) consente l'aggiornamento pianificato dei report che usano il
connettore personalizzato.
Questa esercitazione illustra il processo di abilitazione del connettore per l'aggiornamento e fornisce una rapida
procedura dettagliata per configurare il gateway. In particolare, si:
1. Aggiungere un gestore TestConnection al connettore
2. Installare il gateway dati locale in modalità personale
3. Abilitare il supporto del connettore personalizzato nel gateway
4. Pubblicare una cartella di lavoro che usa il connettore per PowerBI.com
5. Configurare l'aggiornamento pianificato per testare il connettore
Per altre informazioni sul gestore TestConnection, vedere Gestione del supporto del gateway.
Sfondo
Esistono tre prerequisiti per la configurazione di un'origine dati per l'aggiornamento pianificato PowerBI.com:
L'origine dati è suppor tata: Ciò significa che l'ambiente del gateway di destinazione è a conoscenza di
tutte le funzioni contenute nella query da aggiornare.
Vengono fornite le credenziali: Per presentare la finestra di dialogo di immissione delle credenziali Power
BI necessario conoscere il meccanismo di autenticazione del supporto per una determinata origine dati.
Le credenziali sono valide: Dopo aver fornito le credenziali, l'utente viene convalidato chiamando il
gestore dell'origine TestConnection dati.
I primi due elementi vengono gestiti registrando il connettore con il gateway. Quando l'utente tenta di
configurare l'aggiornamento pianificato in PowerBI.com, le informazioni sulla query vengono inviate al gateway
personale per determinare se sono disponibili origini dati non riconosciute dal servizio Power BI, ovvero quelle
personalizzate create. Il terzo elemento viene gestito richiamando il gestore TestConnection definito per l'origine
dati.
NOTE
Le versioni future di Power Query SDK offriranno un modo per convalidare il gestore TestConnection da Visual Studio.
Attualmente, l'unico meccanismo che usa TestConnection è il gateway dati locale.
NOTE
Se viene visualizzato un errore simile a quello riportato di seguito ("Impossibile aggiornare le credenziali dell'origine dati"),
molto probabilmente si verifica un problema con il gestore TestConnection.
Dopo una chiamata a TestConnection riuscita, le credenziali verranno accettate. È ora possibile pianificare
l'aggiornamento oppure selezionare l'ellisse del set di dati e quindi selezionare Aggiorna ora . È possibile
selezionare il collegamento Cronologia aggiornamenti per visualizzare lo stato dell'aggiornamento, che in
genere richiede alcuni minuti per l'avvio.
Conclusione
A questo punto, È ora disponibile un connettore personalizzato pronto per la produzione che supporta
l'aggiornamento automatico tramite il Power BI servizio.
Passaggi successivi
Parte 10 di TripPin - Query Folding
TripPin Part 10 — Basic Query Folding
07/12/2021 • 16 minutes to read
Questa esercitazione in più parti illustra la creazione di una nuova estensione per l'origine dati per Power Query.
L'esercitazione deve essere eseguita in sequenza ogni lezione si basa sul connettore creato nelle lezioni
precedenti, aggiungendo in modo incrementale nuove — funzionalità al connettore.
In questa lezione si apprenderà come:
Informazioni di base sulla funzionalità di folding delle query
Informazioni sulla Table.View funzione
Replicare i gestori di folding delle query OData per:
$top
$skip
$count
$select
$orderby
Una delle potenti funzionalità del linguaggio M è la possibilità di eseguire il push del lavoro di trasformazione
nelle origini dati sottostanti. Questa funzionalità è detta folding delle query (altri strumenti/tecnologie fanno
anche riferimento a funzioni simili a Predicate Pushdown o Delega query). Quando si crea un connettore
personalizzato che usa una funzione M con funzionalità di ripiegamento delle query incorporate, ad esempio o ,
il connettore erediterà automaticamente OData.Feed Odbc.DataSource questa funzionalità gratuitamente.
In questa esercitazione verrà replicato il comportamento predefinito di ripiegamento delle query per OData
implementando gestori di funzione per la Table.View funzione. Questa parte dell'esercitazione implementerà
alcuni dei gestori più semplici da implementare, ovvero quelli che non richiedono l'analisi delle espressioni e il
rilevamento dello stato.
Per altre informazioni sulle funzionalità di query offerte da un servizio OData, vedere Convenzioni degli URL
OData v4.
NOTE
Come indicato in precedenza, OData.Feed la funzione fornirà automaticamente funzionalità di folding delle query. Poiché
la serie TripPin tratta il servizio OData come una normale API REST, usando anziché , sarà necessario implementare
manualmente i gestori di Web.Contents OData.Feed folding delle query. Per l'utilizzo reale, è consigliabile usare
OData.Feed ogni volta che è possibile.
Per altre informazioni sul ripiegamento delle query in M, vedere la documentazione di Table.View.
Uso di Table.View
La funzione Table.View consente a un connettore personalizzato di eseguire l'override dei gestori di
trasformazione predefiniti per l'origine dati. Table.View Un'implementazione di fornirà una funzione per uno o
più gestori supportati. Se un gestore non è implementato o restituisce un durante la valutazione, il motore M
restituirà il error gestore predefinito.
Quando un connettore personalizzato usa una funzione che non supporta la conversione implicita delle query,
ad esempio , i gestori di trasformazione predefiniti verranno Web.Contents sempre eseguiti in locale. Se l'API
REST a cui ci si connette supporta i parametri di query come parte della query, sarà possibile aggiungere
ottimizzazioni che consentono il push delle operazioni di trasformazione Table.View al servizio.
La Table.View funzione ha la firma seguente:
L'implementazione esegue il wrapping della funzione dell'origine dati principale. Esistono due gestori
obbligatori per Table.View :
GetType —restituisce il valore table type previsto del risultato della query
GetRows —restituisce il risultato table effettivo della funzione dell'origine dati
Se si rieseguono gli unit test, si verificherà che il comportamento della funzione non è stato modificato. In
questo caso, l'implementazione di Table.View passa semplicemente attraverso la chiamata a GetEntity . Poiché
non è ancora stato implementato alcun gestore di trasformazione, il parametro url originale rimane invariato.
//
// Helper functions
//
// Retrieves the cached schema. If this is the first call
// to CalculateSchema, the table type is calculated based on
// the entity name that was passed into the function.
CalculateSchema = (state) as type =>
if (state[Schema]? = null) then
GetSchemaForEntity(entity)
else
state[Schema],
Se si osserva la chiamata a , verrà visualizzata una Table.View funzione wrapper aggiuntiva intorno al
handlers record — Diagnostics.WrapHandlers . Questa funzione helper si trova nel modulo Diagnostica
(introdotta in un'esercitazione precedente) e offre un modo utile per tracciare automaticamente eventuali errori
generati dai singoli gestori.
Le GetTypefunzioni e sono state aggiornate per usare due nuove funzioni helper e GetRows —
CalculateSchema CaculateUrl . Al momento le implementazioni di queste funzioni sono piuttosto semplici, si
noterà che contengono parti di quanto precedentemente — fatto dalla GetEntity funzione.
Si noterà infine che si sta definendo una funzione interna ( View ) che accetta un state parametro. Quando si
implementano più gestori, questi chiameranno in modo ricorsivo la funzione interna, aggiornando e passando
View state contemporaneamente.
Aggiornare di nuovo la funzione , sostituendo la chiamata a con una chiamata alla nuova funzione ed eseguire
TripPinNavTable TripPin.SuperSimpleView nuovamente gli unit TripPin.View test. Non saranno ancora
disponibili nuove funzionalità, ma è ora disponibile una solida baseline per i test.
NOTE
L'impostazione Errore in caso di errore di ripiegamento è un approccio "tutto o niente". Se si vogliono testare query
che non sono progettate per essere eseguite come parte degli unit test, è necessario aggiungere una logica condizionale
per abilitare o disabilitare i test di conseguenza.
Le sezioni rimanenti di questa esercitazione aggiungeranno ognuna un nuovo gestore Table.View. Si esaminerà
un approccio TDD (Test Driven Development), in cui si aggiungeranno prima unit test non superati e quindi si
implementerà il codice M per risolverli.
Ogni sezione del gestore riportata di seguito descrive la funzionalità fornita dal gestore, la sintassi di query
equivalente OData, gli unit test e l'implementazione. Usando il codice di scaffolding descritto in precedenza, ogni
implementazione del gestore richiede due modifiche:
Aggiunta del gestore a Table.View che aggiornerà il state record.
Modifica per CalculateUrl recuperare i valori da e aggiungere ai parametri url state e/o della stringa di
query.
Gestione di Table.FirstN con OnTake
Il gestore OnTake riceve un count parametro, ovvero il numero massimo di righe da prendere. In termini
OData, è possibile tradurlo nel parametro $top query.
Si useranno gli unit test seguenti:
// Query folding tests
Fact("Fold $top 1 on Airlines",
#table( type table [AirlineCode = text, Name = text] , {{"AA", "American Airlines"}} ),
Table.FirstN(Airlines, 1)
),
Fact("Fold $top 0 on Airports",
#table( type table [Name = text, IataCode = text, Location = record] , {} ),
Table.FirstN(Airports, 0)
),
Entrambi i test usano Table.FirstN per filtrare il set di risultati sul primo numero X di righe. Se si eseguono
questi test con Errore in caso di errore di ripiegamento impostato su (impostazione predefinita), i test
dovrebbero avere esito positivo, ma se si esegue Fiddler (o si controllano i log di traccia), si verificherà che la
richiesta inviata non contiene parametri di False query OData.
Se si imposta Errore in caso di errore di ripiegamento su , l'operazione avrà esito negativo con il
messaggio True "Provare un'espressione più semplice". errore. Per risolvere questo problema, si definirà il
primo gestore Table.View per OnTake .
Il gestore OnTake è simile al seguente:
La CalculateUrl funzione viene aggiornata per estrarre il valore dal record e impostare il parametro giusto
nella stringa di Top state query.
// Calculates the final URL based on the current state.
CalculateUrl = (state) as text =>
let
urlWithEntity = Uri.Combine(state[Url], state[Entity]),
encodedQueryString = Uri.BuildQueryString(qsWithTop),
finalUrl = urlWithEntity & "?" & encodedQueryString
in
finalUrl
Rieseguindo gli unit test, è possibile vedere che l'URL a cui si accede ora contiene il $top parametro . Si noti che
a causa della codifica URL, $top viene visualizzato come , ma il servizio OData è sufficientemente intelligente
da %24top convertirlo automaticamente.
// OnSkip
Fact("Fold $skip 14 on Airlines",
#table( type table [AirlineCode = text, Name = text] , {{"EK", "Emirates"}} ),
Table.Skip(Airlines, 14)
),
Fact("Fold $skip 0 and $top 1",
#table( type table [AirlineCode = text, Name = text] , {{"AA", "American Airlines"}} ),
Table.FirstN(Table.Skip(Airlines, 0), 1)
),
Implementazione:
qsWithSkip =
if (state[Skip]? <> null) then
qsWithTop & [ #"$skip" = Number.ToText(state[Skip]) ]
else
qsWithTop,
// OnSelectColumns
Fact("Fold $select single column",
#table( type table [AirlineCode = text] , {{"AA"}} ),
Table.FirstN(Table.SelectColumns(Airlines, {"AirlineCode"}), 1)
),
Fact("Fold $select multiple column",
#table( type table [UserName = text, FirstName = text, LastName = text],{{"russellwhyte", "Russell",
"Whyte"}}),
Table.FirstN(Table.SelectColumns(People, {"UserName", "FirstName", "LastName"}), 1)
),
Fact("Fold $select with ignore column",
#table( type table [AirlineCode = text] , {{"AA"}} ),
Table.FirstN(Table.SelectColumns(Airlines, {"AirlineCode", "DoesNotExist"}, MissingField.Ignore), 1)
),
I primi due test selezionano numeri diversi di colonne con e includono una chiamata per semplificare la
Table.SelectColumns Table.FirstN test case.
NOTE
Se il test restituiva semplicemente i nomi di colonna (usando ) e non i dati, la richiesta al servizio OData non
Table.ColumnNames verrà mai effettivamente inviata. Ciò è dovuto al fatto che la chiamata a restituirà lo schema , che
contiene tutte le informazioni necessarie al motore GetType M per calcolare il risultato.
Il terzo test usa l'opzione , che indica al motore M di ignorare le colonne selezionate che MissingField.Ignore
non esistono nel set di risultati. Il gestore non deve preoccuparsi di questa opzione che verrà gestita
automaticamente dal motore M, ovvero le colonne mancanti non OnSelectColumns — verranno incluse columns
nell'elenco.
NOTE
L'altra opzione Table.SelectColumns per , , richiede un MissingField.UseNull connettore per implementare il
OnAddColumn gestore. Questa operazione verrà eseguita in una lezione successiva.
CalculateUrl viene aggiornato per recuperare l'elenco di colonne dallo stato e combinarle (con un separatore)
per il $select parametro .
Unit test:
// OnSort
Fact("Fold $orderby single column",
#table( type table [AirlineCode = text, Name = text], {{"TK", "Turkish Airlines"}}),
Table.FirstN(Table.Sort(Airlines, {{"AirlineCode", Order.Descending}}), 1)
),
Fact("Fold $orderby multiple column",
#table( type table [UserName = text], {{"javieralfred"}}),
Table.SelectColumns(Table.FirstN(Table.Sort(People, {{"LastName", Order.Ascending}, {"UserName",
Order.Descending}}), 1), {"UserName"})
)
Implementazione:
Aggiornamenti a CalculateUrl :
qsWithOrderBy =
if (state[OrderBy]? <> null) then
qsWithSelect & [ #"$orderby" = state[OrderBy] ]
else
qsWithSelect,
// GetRowCount
Fact("Fold $count", 15, Table.RowCount(Airlines)),
Poiché il segmento di percorso restituisce un singolo valore (in formato testo normale) anziché un set di risultati
JSON, sarà necessario aggiungere anche una nuova funzione interna ( ) per effettuare la richiesta e gestire il
/$count TripPin.Scalar risultato.
L'implementazione userà quindi questa funzione (se non vengono trovati altri parametri di query in state ):
La CalculateUrl funzione viene aggiornata per l'aggiunta /$count all'URL se RowCountOnly il campo è
impostato in state .
// Check for $count. If all we want is a row count,
// then we add /$count to the path value (following the entity name).
urlWithRowCount =
if (state[RowCountOnly]? = true) then
urlWithEntity & "/$count"
else
urlWithEntity,
// Returns true if there is a folding error, or the original record (for logging purposes) if not.
Test.IsFoldingError = (tryResult as record) =>
if ( tryResult[HasError]? = true and tryResult[Error][Message] = "We couldn't fold the expression to the
data source. Please try a simpler expression.") then
true
else
tryResult;
Aggiungere quindi un test che usa sia Table.RowCount che Table.FirstN per forzare l'errore.
Una nota importante in questo caso è che questo test restituirà ora un errore se Error on Folding Error è
impostato su , perché l'operazione verrà eseguita il fall back al gestore locale false Table.RowCount
(predefinito). L'esecuzione dei test con Errore in caso di errore di compilazione impostata su causerà l'esito
negativo e consentirà true Table.RowCount l'esito positivo del test.
Conclusione
Table.View L'implementazione per il connettore aggiunge una notevole quantità di complessità al codice. Poiché
il motore M è in grado di elaborare tutte le trasformazioni in locale, l'aggiunta di gestori non abilita nuovi
scenari per gli utenti, ma comporta un'elaborazione più efficiente (e, potenzialmente, un numero maggiore di
Table.View utenti). Uno dei principali vantaggi dei gestori è che consente di aggiungere nuove funzionalità in
modo incrementale senza influire sulla compatibilità con le versioni precedenti Table.View del connettore.
Per la maggior parte dei connettori, un gestore importante (e di base) da implementare è (che si traduce in
OData), poiché limita la quantità OnTake $top di righe restituite. L Power Query esegue sempre un'operazione
di righe quando si visualizzano anteprime nello strumento di navigazione e nell'editor di query, pertanto gli
utenti potrebbero vedere miglioramenti significativi delle prestazioni quando si lavora con set di dati di
dimensioni OnTake 1000 maggiori.
GitHub Esempio di connettore
07/12/2021 • 7 minutes to read
L GitHub'estensione M illustra come aggiungere il supporto per un flusso di autenticazione del protocollo
OAuth 2.0. Per altre informazioni sulle specifiche del flusso di GitHub di autenticazione di GitHub Developer.
Prima di iniziare a creare un'estensione M, è necessario registrare una nuova app in GitHub e sostituire i file e
con i client_id client_secret valori appropriati per l'app.
Nota sui problemi di compatibilità Visual Studio: l'SDK Power Query usa un controllo Internet Explorer
per visualizzare popup finestre di dialogo OAuth. GitHub ha deprecato il supporto per la versione di IE usata da
questo controllo, che impedirà di completare la concessione di autorizzazioni per l'app se eseguita dall'interno
di Visual Studio. In alternativa, caricare l'estensione con Power BI Desktop e completare il primo flusso OAuth.
Dopo che all'applicazione è stato concesso l'accesso all'account, gli accessi successivi funzionano correttamente
Visual Studio.
OAuth e Power BI
OAuth è una forma di delega delle credenziali. Accedendo a GitHub e autorizzando l'"applicazione" creata per
GitHub, l'utente consente all'"applicazione" di accedere per conto dell'utente per recuperare i dati Power BI.
All'applicazione devono essere concessi i diritti per recuperare i dati (ottenere un access_token) e aggiornare i
dati in base a una pianificazione (ottenere e usare un refresh_token). L'"applicazione" in questo contesto è il
connettore dati usato per eseguire query all'interno Power BI. Power BI archivia e gestisce i access_token e
refresh_token per conto dell'utente.
NOTE
Per consentire Power BI ottenere e usare il access_token, è necessario specificare l'URL di reindirizzamento come
https://oauth.powerbi.com/views/oauthredirect.html .
Quando si specifica questo URL e GitHub esegue correttamente l'autenticazione e concede le autorizzazioni,
GitHub reindirizza all'endpoint oauthredirect di PowerBI in modo che Power BI possa recuperare il access_token
e refresh_token.
NOTE
A un'applicazione OAuth registrata vengono assegnati un ID client e un segreto client univoci. Il segreto client non deve
essere condiviso. È possibile ottenere l'ID client e il segreto client dalla GitHub dell'applicazione. Aggiornare i file nel
progetto Connettore dati con l'ID client_id client (file) e il segreto client client_secret (file).
Come implementare GitHub OAuth
Questo esempio illustra i passaggi seguenti:
1. Creare una definizione del tipo di origine dati che dichiara di supportare OAuth.
2. Specificare i dettagli in modo che il motore M possa avviare il flusso OAuth ( StartLogin ).
3. Convertire il codice ricevuto da GitHub in un access_token ( FinishLogin e TokenMethod ).
4. Definire funzioni che accedono all'API GitHub ( GithubSample.Contents ).
Passaggio 1: Creare una definizione di origine dati
Un connettore dati inizia con un record che descrive l'estensione, incluso il nome univoco (ovvero il nome del
record), i tipi di autenticazione supportati e un nome visualizzato descrittivo (etichetta) per l'origine dati.
Quando si supporta OAuth, la definizione contiene le funzioni che implementano il contratto OAuth — in questo
caso e StartLogin FinishLogin .
//
// Data Source definition
//
GithubSample = [
Authentication = [
OAuth = [
StartLogin = StartLogin,
FinishLogin = FinishLogin
]
],
Label = Extension.LoadString("DataSourceLabel")
];
Passaggio 2: Specificare i dettagli in modo che il motore M possa avviare il flusso OAuth
Il GitHub OAuth viene avviato quando si indirizzano gli utenti alla https://github.com/login/oauth/authorize
pagina. Per l'accesso dell'utente, è necessario specificare diversi parametri di query:
Il frammento di codice seguente descrive come implementare una StartLogin funzione per avviare il flusso di
accesso. Una StartLogin funzione accetta un valore , e resourceUrl state display . Nella funzione creare un
oggetto AuthorizeUrl che concatena l'URL GitHub l'URL di autorizzazione con i parametri seguenti:
client_id : si ottiene l'ID client dopo aver registrato l'estensione con GitHub dalla pagina
GitHub'applicazione.
scope : impostare l'ambito su " user, repo ". In questo modo viene impostato l'ambito di autorizzazione
(ovvero ciò a cui l'app vuole accedere) per l'utente.
state : valore interno passato dal motore M.
redirect_uri : impostata su https://oauth.powerbi.com/views/oauthredirect.html .
Se questa è la prima volta che l'utente accede con l'app (identificata dal relativo valore), verrà visualizzata una
pagina in cui viene chiesto di concedere client_id l'accesso all'app. I tentativi di accesso successivi
richiederanno semplicemente le credenziali.
Passaggio 3: Convertire il codice ricevuto da GitHub in un access_token
Se l'utente completa il flusso di autenticazione, GitHub reindirizza all'URL di reindirizzamento Power BI con un
codice temporaneo in un parametro , nonché lo stato specificato nel passaggio precedente in un parametro
code state . La FinishLogin funzione estrarrà il codice dal callbackUri parametro e lo scambierà con un
token di accesso (usando la TokenMethod funzione ).
FinishLogin = (context, callbackUri, state) =>
let
Parts = Uri.Parts(callbackUri)[Query]
in
TokenMethod(Parts[code]);
Per ottenere un token GitHub di accesso, passare il codice temporaneo dall'GitHub authorize response. Nella
funzione si formula una richiesta POST per TokenMethod GitHub'endpoint access_token (
https://github.com/login/oauth/access_token ). Per l'endpoint di GitHub sono necessari i parametri seguenti:
Questo frammento di codice descrive come implementare una funzione per scambiare un codice TokenMethod
di autenticazione per un token di accesso.
La risposta JSON del servizio conterrà un campo access_token json. Il TokenMethod metodo converte la risposta
JSON in un record M usando Json.Documente la restituisce al motore.
Risposta di esempio:
{
"access_token":"e72e16c7e42f292c6912e7710c838347ae178b4a",
"scope":"user,repo",
"token_type":"bearer"
}
[DataSource.Kind="GithubSample", Publish="GithubSample.UI"]
shared GithubSample.Contents = Value.ReplaceType(Github.Contents, type function (url as Uri.Type) as any);
[DataSource.Kind="GithubSample"]
shared GithubSample.PagedTable = Value.ReplaceType(Github.PagedTable, type function (url as Uri.Type) as
nullable table);
GithubSample.Contents("https://api.github.com/repos/microsoft/dataconnectors/commits")
Elenco di esempi
07/12/2021 • 2 minutes to read
Viene mantenuto un elenco di esempi nel repo DataConnectors in GitHub. Ognuno dei collegamenti seguenti
collega a una cartella nel repository di esempio. In genere queste cartelle includono un file Leggimi, uno o più
file con estensione pq/query.pq, un file di progetto per Visual Studio e, in alcuni casi, le icone. Per aprire questi
file in Visual Studio, assicurarsi di aver configurato correttamente l'SDK ed eseguire il file con estensione mproj
dalla cartella clonata o scaricata.
Funzionalità
ESEM P IO DESC RIZ IO N E C O L L EGA M EN TO
OAuth
ESEM P IO DESC RIZ IO N E C O L L EGA M EN TO
ODBC
ESEM P IO DESC RIZ IO N E C O L L EGA M EN TO
Direct Query per SQL In questo esempio viene creato un GitHub Link
connettore personalizzato basato su
ODBC che abilita Direct Query per SQL
Server.
TripPin
ESEM P IO DESC RIZ IO N E C O L L EGA M EN TO
Viene mantenuto un elenco di esempi nel repo DataConnectors in GitHub. Ognuno dei collegamenti seguenti
collega a una cartella nel repository di esempio. In genere queste cartelle includono un file Leggimi, uno o più
file con estensione pq/query.pq, un file di progetto per Visual Studio e, in alcuni casi, le icone. Per aprire questi
file in Visual Studio, assicurarsi di aver configurato correttamente l'SDK ed eseguire il file con estensione mproj
dalla cartella clonata o scaricata.
Funzionalità
ESEM P IO DESC RIZ IO N E C O L L EGA M EN TO
OAuth
ESEM P IO DESC RIZ IO N E C O L L EGA M EN TO
ODBC
ESEM P IO DESC RIZ IO N E C O L L EGA M EN TO
Direct Query per SQL In questo esempio viene creato un GitHub Link
connettore personalizzato basato su
ODBC che abilita Direct Query per SQL
Server.
TripPin
ESEM P IO DESC RIZ IO N E C O L L EGA M EN TO
Viene mantenuto un elenco di esempi nel repo DataConnectors in GitHub. Ognuno dei collegamenti seguenti
collega a una cartella nel repository di esempio. In genere queste cartelle includono un file Leggimi, uno o più
file con estensione pq/query.pq, un file di progetto per Visual Studio e, in alcuni casi, le icone. Per aprire questi
file in Visual Studio, assicurarsi di aver configurato correttamente l'SDK ed eseguire il file con estensione mproj
dalla cartella clonata o scaricata.
Funzionalità
ESEM P IO DESC RIZ IO N E C O L L EGA M EN TO
OAuth
ESEM P IO DESC RIZ IO N E C O L L EGA M EN TO
ODBC
ESEM P IO DESC RIZ IO N E C O L L EGA M EN TO
Direct Query per SQL In questo esempio viene creato un GitHub Link
connettore personalizzato basato su
ODBC che abilita Direct Query per SQL
Server.
TripPin
ESEM P IO DESC RIZ IO N E C O L L EGA M EN TO
Questo articolo fornisce informazioni sui diversi tipi di funzionalità aggiuntive dei connettori in cui gli
sviluppatori di connettori potrebbero voler investire. Per ogni tipo, questo articolo descrive la disponibilità e le
istruzioni per abilitare la funzionalità.
Autenticazione
Anche se l'implementazione dell'autenticazione è trattata nell'articolo sull'autenticazione, esistono altri metodi
che i proprietari dei connettori potrebbero essere interessati a offrire.
Autenticazione di Windows
Windows'autenticazione è supportata. Per abilitare Windows'autenticazione basata su certificati nel connettore,
aggiungere la riga seguente nella sezione Autenticazione del connettore.
The evaluation requires a permission that has not been provided. Data source kind: 'Extension'. Data source
path: 'test'. Permission kind: 'Native Query'
section Extension;
Extension = [
// MakeResourcePath overrides the default Data Source Path creation logic that serializes
// all required parameters as a JSON encoded value. This is required to keep the data source
// path the same between the Extension.DataSource and Extension.Query functions. Alternatively,
// you can provide a function documentation type and use DataSource.Path = false for the query
// parameter to exclude it from the data source path calculation.
Type="Custom",
MakeResourcePath = (server) => server,
ParseResourcePath = (resource) => { resource },
// Use NativeQuery to enable a Native Database Query prompt in the Power Query user experience.
NativeQuery = (optional query) => query,
Authentication=[Anonymous=null]
];
Quando viene valutata, se è possibile eseguire il mapping dei nomi dei parametri della funzione dell'origine dati
ai nomi dei parametri della funzione nella definizione dell'origine dati e la funzione restituisce testo, il sito di
chiamata genera un prompt di NativeQuery NativeQuery query nativo. In questo caso, genera una richiesta per
il testo della query nativa, mentre non genera una richiesta Extension.Query("server", "select 1") di query
select 1 Extension.DataSource("server") nativa.
Tipi di autenticazione
Un'estensione può supportare uno o più tipi di autenticazione. Ogni tipo di autenticazione è un tipo diverso di
credenziale. L'interfaccia utente di autenticazione visualizzata agli utenti Power Query è basata sul tipo di
credenziali supportato da un'estensione.
L'elenco dei tipi di autenticazione supportati è definito come parte della definizione del tipo di origine dati di
un'estensione. Ogni valore di Autenticazione è un record con campi specifici. Nella tabella seguente sono
elencati i campi previsti per ogni tipo. Tutti i campi sono obbligatori, a meno che non siano contrassegnati
diversamente.
L'esempio seguente illustra il record di autenticazione per un connettore che supporta OAuth, Key, Windows,
Basic (nome utente e password) e credenziali anonime.
Esempio:
Authentication = [
OAuth = [
StartLogin = StartLogin,
FinishLogin = FinishLogin,
Refresh = Refresh,
Logout = Logout
],
Key = [],
UsernamePassword = [],
Windows = [],
Implicit = []
]
L'esempio di codice seguente accede alle credenziali correnti per una chiave API e la usa per popolare
un'intestazione personalizzata ( x-APIKey ).
Esempio:
#"x-APIKey" = apiKey,
Accept = "application/vnd.api+json",
#"Content-Type" = "application/json"
],
request = Web.Contents(_url, [ Headers = headers, ManualCredentials = true ])
in
request
Implementazione di un Flow OAuth
Il tipo di autenticazione OAuth consente a un'estensione di implementare la logica personalizzata per il servizio.
A tale scopo, un'estensione fornirà funzioni per (restituzione dell'URI di autorizzazione per avviare il flusso
OAuth) e (scambio del codice di autorizzazione per StartLogin FinishLogin un token di accesso).
Facoltativamente, le estensioni possono implementare (scambiando un token di aggiornamento per un nuovo
token di accesso) e (che scadono anche i token di aggiornamento e di accesso Refresh Logout correnti).
NOTE
Power Query le estensioni vengono valutate nelle applicazioni in esecuzione nei computer client. I connettori dati non
devono usare segreti riservati nei flussi OAuth, perché gli utenti possono controllare l'estensione o il traffico di rete per
apprendere il segreto. Per altre informazioni dettagliate sulla fornitura di flussi che non si basano su segreti condivisi,
vedere proof key for Code Exchange by OAuth Public Clients RFC (Rfc dei client pubblici OAuth) (nota anche come PKCE).
Un'implementazione di esempio di questo flusso è disponibile nel sito GitHub web.
Esistono due set di firme di funzione OAuth. firma originale che contiene un numero minimo di parametri e una
firma avanzata che accetta parametri aggiuntivi. La maggior parte dei flussi OAuth può essere implementata
usando le firme originali. È anche possibile combinare e associare tipi di firma nell'implementazione. Le
chiamate di funzione sono corrispondenze in base al numero di parametri (e ai relativi tipi). I nomi dei parametri
non vengono presi in considerazione.
Per altri dettagli, vedere l'esempio github.
Firme OAuth originali
NOTE
Se l'origine dati richiede ambiti diversi da o non è compatibile con l'uso di , è necessario user_impersonation usare il
tipo di autenticazione user_impersonation OAuth .
NOTE
Se si implementa il proprio flusso OAuth per Azure AD, gli utenti che hanno abilitato l'accesso condizionale per il tenant
potrebbero riscontrare problemi durante l'aggiornamento usando il Power BI servizio. Questo non influisce
sull'aggiornamento basato su gateway, ma influisce su un connettore certificato che supporta l'aggiornamento dal Power
BI servizio. Gli utenti potrebbero verificarsi un problema derivante dal connettore usando un'applicazione client pubblica
quando si configurano le credenziali basate sul Web tramite il Power BI servizio. Il token di accesso generato da questo
flusso verrà infine usato in un computer diverso (ovvero il servizio Power BI in un'istanza di Azure data center, non nella
rete aziendale) rispetto a quello usato per autenticare in origine (ovvero il computer dell'utente che configura le credenziali
dell'origine dati nella rete aziendale). Il tipo predefinito consente di risolvere questo problema usando un client Azure AD
diverso quando si configurano le credenziali nel Aad Power BI servizio. Questa opzione non sarà disponibile per i
connettori che usano il tipo OAuth di autenticazione.
La maggior parte dei connettori dovrà fornire valori per i AuthorizationUri campi Resource e . Entrambi i
campi possono essere text valori o una singola funzione di argomento che restituisce un oggetto text value .
AuthorizationUri = "https://login.microsoftonline.com/common/oauth2/authorize"
I connettori che usano un identificatore basato su URI non devono fornire un Resource valore. Per impostazione
predefinita, il valore sarà uguale al percorso radice del parametro URI del connettore. Se la risorsa Azure AD
dell'origine dati è diversa dal valore di dominio (ad esempio, usa un GUID), è necessario Resource immettere un
valore.
Esempi di tipo di autenticazione Aad
In questo caso, l'origine dati supporta l'Azure AD cloud globale usando il tenant comune (nessun supporto di
Azure B2B).
Authentication = [
Aad = [
AuthorizationUri = "https://login.microsoftonline.com/common/oauth2/authorize",
Resource = "77256ee0-fe79-11ea-adc1-0242ac120002" // Azure AD resource value for your service - Guid
or URL
]
]
In questo caso, l'origine dati supporta l'individuazione dei tenant basata su OpenID Connessione (OIDC) o un
protocollo simile. Ciò consente al connettore di determinare l'endpoint Azure AD corretto da usare in base a uno
o più parametri nel percorso dell'origine dati. Questo approccio di individuazione dinamica consente al
connettore di supportare Azure B2B.
// Implement this function to retrieve or calculate the service URL based on the data source path parameters
GetServiceRootFromDataSourcePath = (dataSourcePath) as text => ...;
Authentication = [
Aad = [
AuthorizationUri = (dataSourcePath) =>
GetAuthorizationUrlFromWwwAuthenticate(
GetServiceRootFromDataSourcePath(dataSourcePath)
),
Resource = "https://myAadResourceValue.com", // Azure AD resource value for your service - Guid or
URL
]
]
Per impostazione predefinita, è possibile visualizzare il valore stringa effettivo nella finestra di dialogo
Impostazioni origine dati in Power BI Desktop e nella richiesta di credenziali. Se la definizione Tipo origine dati
include un Label valore, verrà invece visualizzato il valore dell'etichetta.
Ad esempio, la funzione dell'origine dati nell'esempio HelloWorldWithDocs ha la firma seguente:
La funzione ha un singolo parametro obbligatorio ( ) di tipo e verrà usata message text per calcolare il
percorso dell'origine dati. Il parametro facoltativo ( count ) verrà ignorato. Verrà visualizzato il percorso
Richiesta di credenziali:
Interfaccia utente delle impostazioni dell'origine dati:
Quando viene definito un valore Label, il valore del percorso dell'origine dati non viene visualizzato:
NOTE
È attualmente consigliabile non includere un'etichetta per l'origine dati se la funzione ha parametri obbligatori, in quanto
gli utenti non saranno in grado di distinguere le diverse credenziali immesse. Si spera di migliorare questa situazione in
futuro, ovvero consentire ai connettori di dati di visualizzare i propri percorsi di origine dati personalizzati.
Come è un tipo ascritto anziché un tipo primitivo nel linguaggio M, è necessario usare la funzione Uri.Type
Value.ReplaceType per indicare che il parametro di testo deve essere considerato come URI.
[DataSource.Kind="HelloWorld", Publish="HelloWorld.Publish"]
shared HelloWorld.Contents = (optional message as text) =>
let
message = if (message <> null) then message else "Hello world"
in
message;
HelloWorld = [
Authentication = [
Implicit = []
],
Label = Extension.LoadString("DataSourceLabel")
];
Proprietà
Nella tabella seguente sono elencati i campi per il record di definizione dell'origine dati.
CAMPO T IP O DET TA GL I
HelloWorld.Publish = [
Beta = true,
ButtonText = { Extension.LoadString("FormulaTitle"), Extension.LoadString("FormulaHelp") },
SourceImage = HelloWorld.Icons,
SourceTypeImage = HelloWorld.Icons
];
HelloWorld.Icons = [
Icon16 = { Extension.Contents("HelloWorld16.png"), Extension.Contents("HelloWorld20.png"),
Extension.Contents("HelloWorld24.png"), Extension.Contents("HelloWorld32.png") },
Icon32 = { Extension.Contents("HelloWorld32.png"), Extension.Contents("HelloWorld40.png"),
Extension.Contents("HelloWorld48.png"), Extension.Contents("HelloWorld64.png") }
];
Proprietà
Nella tabella seguente sono elencati i campi per il record Publish.
CAMPO T IP O DET TA GL I
Panoramica
L'uso della funzione Odbc.DataSource incorporata di M è il modo consigliato per creare connettori
personalizzati per le origini dati con un driver ODBC esistente e/o supportano una sintassi SQL query. Il
wrapping della funzione Odbc.DataSource consentirà al connettore di ereditare il comportamento predefinito di
ripiegamento delle query in base alle funzionalità segnalate dal driver. Questo consentirà al motore M di
generare istruzioni SQL in base ai filtri e ad altre trasformazioni definite dall'utente all'interno dell'esperienza
Power Query, senza dover fornire questa logica all'interno del connettore stesso.
Le estensioni ODBC possono facoltativamente abilitare la modalità Direct Query, consentendo Power BI
generare dinamicamente query in fase di esecuzione senza pre-memorizzare nella cache il modello di dati
dell'utente.
NOTE
L'abilitazione del supporto di Direct Query aumenta il livello di difficoltà e complessità del connettore. Quando Direct
Query è abilitato, Power BI il motore M non compenserà le operazioni di cui non è possibile eseguire completamente il
push nell'origine dati sottostante.
Questa sezione si basa sui concetti presentati nelle informazioni di riferimento sull'estendibilità M e presuppone
familiarità con la creazione di un connettore dati di base.
Vedere l'esempio SqlODBC per la maggior parte degli esempi di codice nelle sezioni seguenti. Altri esempi sono
disponibili nella directory degli esempi ODBC.
Nella tabella seguente vengono descritti i campi di record delle opzioni disponibili solo tramite estendibilità. I
campi che non sono valori letterali semplici sono descritti nelle sezioni successive.
Override di AstVisitor
Il campo AstVisitor viene impostato tramite il record di opzioni Odbc.DataSource. Viene usato per modificare le
SQL generate per scenari di query specifici.
NOTE
I driver che supportano le clausole e (anziché ) vogliono fornire LIMIT OFFSET un override TOP LimitClause per
AstVisitor.
Costante
L'impostazione di un override per questo valore è stata deprecata e potrebbe essere rimossa dalle
implementazioni future.
LimitClause
Questo campo è una funzione che riceve due argomenti (skip, take) e restituisce un record con due campi di
testo Int64.Type (Text, Location).
Il parametro skip è il numero di righe da ignorare, ovvero l'argomento per OFFSET. Se non viene specificato un
offset, il valore skip sarà Null. Se il driver supporta , ma non supporta , la funzione LimitClause deve restituire un
errore non implementata (...) quando skip è LIMIT OFFSET maggiore di 0.
Il parametro take è il numero di righe da prendere, ovvero l'argomento per LIMIT.
Il Text campo del risultato contiene il SQL da aggiungere alla query generata.
Il Location campo specifica dove inserire la clausola . Nella tabella seguente vengono descritti i valori
supportati.
Il frammento di codice seguente fornisce un'implementazione LimitClause per un driver che prevede una
clausola LIMIT, con un offset facoltativo, nel formato seguente: [OFFSET <offset> ROWS] LIMIT <row_count>
LimitClause = (skip, take) =>
let
offset = if (skip > 0) then Text.Format("OFFSET #{0} ROWS", {skip}) else "",
limit = if (take <> null) then Text.Format("LIMIT #{0}", {take}) else ""
in
[
Text = Text.Format("#{0} #{1}", {offset, limit}),
Location = "AfterQuerySpecification"
]
Il frammento di codice seguente fornisce un'implementazione LimitClause per un driver che supporta LIMIT, ma
non OFFSET. Formato: LIMIT <row_count> .
Override di SqlCapabilities
CAMPO DET TA GL I
Override di SQLColumns
SQLColumns è un gestore di funzioni che riceve i risultati di una chiamata ODBC a SQLColumns. Il parametro
source contiene una tabella con le informazioni sul tipo di dati. Questo override viene in genere usato per
correggere le mancate corrispondenze dei tipi di dati tra le chiamate SQLGetTypeInfo a e SQLColumns .
Per informazioni dettagliate sul formato del parametro della tabella di origine, vedere Funzione SQLColumns.
Override di SQLGetFunctions
Questo campo viene usato per eseguire l'override dei valori SQLFunctions restituiti da un driver ODBC.
Contiene un record i cui nomi di campo sono uguali alle costanti FunctionId definite per la funzione ODBC
SQLGetFunctions. Le costanti numeriche per ognuno di questi campi sono disponibili nella specifica ODBC.
CAMPO DET TA GL I
Il frammento di codice seguente fornisce un esempio che indica in modo esplicito al motore M di usare CAST
anziché CONVERT.
SQLGetFunctions = [
SQL_CONVERT_FUNCTIONS = 0x2 /* SQL_FN_CVT_CAST */
]
Override di SQLGetInfo
Questo campo viene usato per eseguire l'override dei valori SQLGetInfo restituiti da un driver ODBC. Contiene
un record i cui campi sono nomi uguali alle costanti InfoType definite per la funzione ODBC SQLGetInfo. Le
costanti numeriche per ognuno di questi campi sono disponibili nella specifica ODBC. L'elenco completo degli
InfoType verificati è disponibile nei file di traccia del motore Mashup.
La tabella seguente contiene le proprietà SQLGetInfo comunemente sottoposte a override:
CAMPO DET TA GL I
La funzione helper seguente può essere usata per creare valori di maschera di bit da un elenco di valori integer:
Flags = (flags as list) =>
let
Loop = List.Generate(
()=> [i = 0, Combined = 0],
each [i] < List.Count(flags),
each [i = [i]+1, Combined =*Number.BitwiseOr([Combined], flags{i})],
each [Combined]),
Result = List.Last(Loop, 0)
in
Result;
Override di SQLGetTypeInfo
SQLGetTypeInfo può essere specificato in due modi:
Valore table fisso che contiene le stesse informazioni sul tipo di una chiamata ODBC a SQLGetTypeInfo .
Funzione che accetta un argomento table e restituisce una tabella. L'argomento conterrà i risultati originali
della chiamata ODBC a SQLGetTypeInfo . L'implementazione della funzione può modificare o aggiungere a
questa tabella.
Il primo approccio viene usato per eseguire completamente l'override dei valori restituiti dal driver ODBC. Il
secondo approccio viene usato se si desidera aggiungere o modificare questi valori.
Per informazioni dettagliate sul formato del parametro di tabella dei tipi e sul valore restituito previsto, vedere le
informazioni di riferimento sulla funzione SQLGetTypeInfo.
SQLGetTypeInfo con una tabella statica
Il frammento di codice seguente fornisce un'implementazione statica per SQLGetTypeInfo.
SQLGetTypeInfo = #table(
{ "TYPE_NAME", "DATA_TYPE", "COLUMN_SIZE", "LITERAL_PREF", "LITERAL_SUFFIX", "CREATE_PARAS",
"NULLABLE", "CASE_SENSITIVE", "SEARCHABLE", "UNSIGNED_ATTRIBUTE", "FIXED_PREC_SCALE", "AUTO_UNIQUE_VALUE",
"LOCAL_TYPE_NAME", "MINIMUM_SCALE", "MAXIMUM_SCALE", "SQL_DATA_TYPE", "SQL_DATETIME_SUB", "NUM_PREC_RADIX",
"INTERNAL_PRECISION", "USER_DATA_TYPE" }, {
[DataSource.Kind="SqlODBC", Publish="SqlODBC.Publish"]
shared SqlODBC.Contents = (server as text) =>
let
ConnectionString = [
Driver = "SQL Server Native Client 11.0",
Server = server,
MultiSubnetFailover = "Yes",
ApplicationIntent = "ReadOnly",
APP = "PowerBICustomConnector"
],
OdbcDatasource = Odbc.DataSource(ConnectionString)
in
OdbcDatasource;
Dopo aver creato query semplici, è possibile provare gli scenari di Direct Query, ad esempio la creazione di
report nelle visualizzazioni report. Le query generate in modalità Direct Query saranno notevolmente più
complesse, ovvero l'uso di sub-select, istruzioni COALESCE e aggregazioni.
Concatenazione di stringhe in modalità Direct Query
Il motore M esegue la convalida dei limiti delle dimensioni del tipo di base come parte della logica di folding
della query. Se si riceve un errore di tipo folding quando si tenta di concatenare due stringhe che
potenzialmente superano le dimensioni massime del tipo di database sottostante:
1. Assicurarsi che il database sia in grado di supportare la conversione in tipi CLOB quando si verifica l'overflow
concat della stringa.
2. Impostare TolerateConcatOverflow l'opzione per Odbc.DataSource su true .
La funzione DAX CONCATENATE non è attualmente supportata dalle Power Query/ODBC. Gli autori di
estensioni devono assicurarsi che la concatenazione delle stringhe funzioni tramite l'editor di query
aggiungendo colonne calcolate ( [stringCol1] & [stringCol2] ). Quando in futuro viene aggiunta la
possibilità di eseguire la fold dell'operazione CONCATENATE, l'operazione dovrebbe funzionare senza
problemi con le estensioni esistenti.
Abilitazione di Direct Query per un connettore
basato su ODBC
07/12/2021 • 23 minutes to read
Panoramica
L'uso della funzione Odbc.DataSource incorporata di M è il modo consigliato per creare connettori
personalizzati per le origini dati con un driver ODBC esistente e/o supportano una sintassi SQL query. Il
wrapping della funzione Odbc.DataSource consentirà al connettore di ereditare il comportamento predefinito di
ripiegamento delle query in base alle funzionalità segnalate dal driver. Questo consentirà al motore M di
generare istruzioni SQL in base ai filtri e ad altre trasformazioni definite dall'utente all'interno dell'esperienza
Power Query, senza dover fornire questa logica all'interno del connettore stesso.
Le estensioni ODBC possono facoltativamente abilitare la modalità Direct Query, consentendo Power BI
generare dinamicamente query in fase di esecuzione senza pre-memorizzare nella cache il modello di dati
dell'utente.
NOTE
L'abilitazione del supporto di Direct Query aumenta il livello di difficoltà e complessità del connettore. Quando Direct
Query è abilitato, Power BI il motore M non compenserà le operazioni di cui non è possibile eseguire completamente il
push nell'origine dati sottostante.
Questa sezione si basa sui concetti presentati nelle informazioni di riferimento sull'estendibilità M e presuppone
familiarità con la creazione di un connettore dati di base.
Vedere l'esempio SqlODBC per la maggior parte degli esempi di codice nelle sezioni seguenti. Altri esempi sono
disponibili nella directory degli esempi ODBC.
Nella tabella seguente vengono descritti i campi di record delle opzioni disponibili solo tramite estendibilità. I
campi che non sono valori letterali semplici sono descritti nelle sezioni successive.
Override di AstVisitor
Il campo AstVisitor viene impostato tramite il record di opzioni Odbc.DataSource. Viene usato per modificare le
SQL generate per scenari di query specifici.
NOTE
I driver che supportano le clausole e (anziché ) vogliono fornire LIMIT OFFSET un override TOP LimitClause per
AstVisitor.
Costante
L'impostazione di un override per questo valore è stata deprecata e potrebbe essere rimossa dalle
implementazioni future.
LimitClause
Questo campo è una funzione che riceve due argomenti (skip, take) e restituisce un record con due campi di
testo Int64.Type (Text, Location).
Il parametro skip è il numero di righe da ignorare, ovvero l'argomento per OFFSET. Se non viene specificato un
offset, il valore skip sarà Null. Se il driver supporta , ma non supporta , la funzione LimitClause deve restituire un
errore non implementata (...) quando skip è LIMIT OFFSET maggiore di 0.
Il parametro take è il numero di righe da prendere, ovvero l'argomento per LIMIT.
Il Text campo del risultato contiene il SQL da aggiungere alla query generata.
Il Location campo specifica dove inserire la clausola . Nella tabella seguente vengono descritti i valori
supportati.
Il frammento di codice seguente fornisce un'implementazione LimitClause per un driver che prevede una
clausola LIMIT, con un offset facoltativo, nel formato seguente: [OFFSET <offset> ROWS] LIMIT <row_count>
LimitClause = (skip, take) =>
let
offset = if (skip > 0) then Text.Format("OFFSET #{0} ROWS", {skip}) else "",
limit = if (take <> null) then Text.Format("LIMIT #{0}", {take}) else ""
in
[
Text = Text.Format("#{0} #{1}", {offset, limit}),
Location = "AfterQuerySpecification"
]
Il frammento di codice seguente fornisce un'implementazione LimitClause per un driver che supporta LIMIT, ma
non OFFSET. Formato: LIMIT <row_count> .
Override di SqlCapabilities
CAMPO DET TA GL I
Override di SQLColumns
SQLColumns è un gestore di funzioni che riceve i risultati di una chiamata ODBC a SQLColumns. Il parametro
source contiene una tabella con le informazioni sul tipo di dati. Questo override viene in genere usato per
correggere le mancate corrispondenze dei tipi di dati tra le chiamate SQLGetTypeInfo a e SQLColumns .
Per informazioni dettagliate sul formato del parametro della tabella di origine, vedere Funzione SQLColumns.
Override di SQLGetFunctions
Questo campo viene usato per eseguire l'override dei valori SQLFunctions restituiti da un driver ODBC.
Contiene un record i cui nomi di campo sono uguali alle costanti FunctionId definite per la funzione ODBC
SQLGetFunctions. Le costanti numeriche per ognuno di questi campi sono disponibili nella specifica ODBC.
CAMPO DET TA GL I
Il frammento di codice seguente fornisce un esempio che indica in modo esplicito al motore M di usare CAST
anziché CONVERT.
SQLGetFunctions = [
SQL_CONVERT_FUNCTIONS = 0x2 /* SQL_FN_CVT_CAST */
]
Override di SQLGetInfo
Questo campo viene usato per eseguire l'override dei valori SQLGetInfo restituiti da un driver ODBC. Contiene
un record i cui campi sono nomi uguali alle costanti InfoType definite per la funzione ODBC SQLGetInfo. Le
costanti numeriche per ognuno di questi campi sono disponibili nella specifica ODBC. L'elenco completo degli
InfoType verificati è disponibile nei file di traccia del motore Mashup.
La tabella seguente contiene le proprietà SQLGetInfo comunemente sottoposte a override:
CAMPO DET TA GL I
La funzione helper seguente può essere usata per creare valori di maschera di bit da un elenco di valori integer:
Flags = (flags as list) =>
let
Loop = List.Generate(
()=> [i = 0, Combined = 0],
each [i] < List.Count(flags),
each [i = [i]+1, Combined =*Number.BitwiseOr([Combined], flags{i})],
each [Combined]),
Result = List.Last(Loop, 0)
in
Result;
Override di SQLGetTypeInfo
SQLGetTypeInfo può essere specificato in due modi:
Valore table fisso che contiene le stesse informazioni sul tipo di una chiamata ODBC a SQLGetTypeInfo .
Funzione che accetta un argomento table e restituisce una tabella. L'argomento conterrà i risultati originali
della chiamata ODBC a SQLGetTypeInfo . L'implementazione della funzione può modificare o aggiungere a
questa tabella.
Il primo approccio viene usato per eseguire completamente l'override dei valori restituiti dal driver ODBC. Il
secondo approccio viene usato se si desidera aggiungere o modificare questi valori.
Per informazioni dettagliate sul formato del parametro di tabella dei tipi e sul valore restituito previsto, vedere le
informazioni di riferimento sulla funzione SQLGetTypeInfo.
SQLGetTypeInfo con una tabella statica
Il frammento di codice seguente fornisce un'implementazione statica per SQLGetTypeInfo.
SQLGetTypeInfo = #table(
{ "TYPE_NAME", "DATA_TYPE", "COLUMN_SIZE", "LITERAL_PREF", "LITERAL_SUFFIX", "CREATE_PARAS",
"NULLABLE", "CASE_SENSITIVE", "SEARCHABLE", "UNSIGNED_ATTRIBUTE", "FIXED_PREC_SCALE", "AUTO_UNIQUE_VALUE",
"LOCAL_TYPE_NAME", "MINIMUM_SCALE", "MAXIMUM_SCALE", "SQL_DATA_TYPE", "SQL_DATETIME_SUB", "NUM_PREC_RADIX",
"INTERNAL_PRECISION", "USER_DATA_TYPE" }, {
[DataSource.Kind="SqlODBC", Publish="SqlODBC.Publish"]
shared SqlODBC.Contents = (server as text) =>
let
ConnectionString = [
Driver = "SQL Server Native Client 11.0",
Server = server,
MultiSubnetFailover = "Yes",
ApplicationIntent = "ReadOnly",
APP = "PowerBICustomConnector"
],
OdbcDatasource = Odbc.DataSource(ConnectionString)
in
OdbcDatasource;
Dopo aver creato query semplici, è possibile provare gli scenari di Direct Query, ad esempio la creazione di
report nelle visualizzazioni report. Le query generate in modalità Direct Query saranno notevolmente più
complesse, ovvero l'uso di sub-select, istruzioni COALESCE e aggregazioni.
Concatenazione di stringhe in modalità Direct Query
Il motore M esegue la convalida dei limiti delle dimensioni del tipo di base come parte della logica di folding
della query. Se si riceve un errore di tipo folding quando si tenta di concatenare due stringhe che
potenzialmente superano le dimensioni massime del tipo di database sottostante:
1. Assicurarsi che il database sia in grado di supportare la conversione in tipi CLOB quando si verifica l'overflow
concat della stringa.
2. Impostare TolerateConcatOverflow l'opzione per Odbc.DataSource su true .
La funzione DAX CONCATENATE non è attualmente supportata dalle Power Query/ODBC. Gli autori di
estensioni devono assicurarsi che la concatenazione delle stringhe funzioni tramite l'editor di query
aggiungendo colonne calcolate ( [stringCol1] & [stringCol2] ). Quando in futuro viene aggiunta la
possibilità di eseguire la fold dell'operazione CONCATENATE, l'operazione dovrebbe funzionare senza
problemi con le estensioni esistenti.
Abilitazione di Direct Query per un connettore
basato su ODBC
07/12/2021 • 23 minutes to read
Panoramica
L'uso della funzione Odbc.DataSource incorporata di M è il modo consigliato per creare connettori
personalizzati per le origini dati con un driver ODBC esistente e/o supportano una sintassi SQL query. Il
wrapping della funzione Odbc.DataSource consentirà al connettore di ereditare il comportamento predefinito di
ripiegamento delle query in base alle funzionalità segnalate dal driver. Questo consentirà al motore M di
generare istruzioni SQL in base ai filtri e ad altre trasformazioni definite dall'utente all'interno dell'esperienza
Power Query, senza dover fornire questa logica all'interno del connettore stesso.
Le estensioni ODBC possono facoltativamente abilitare la modalità Direct Query, consentendo Power BI
generare dinamicamente query in fase di esecuzione senza pre-memorizzare nella cache il modello di dati
dell'utente.
NOTE
L'abilitazione del supporto di Direct Query aumenta il livello di difficoltà e complessità del connettore. Quando Direct
Query è abilitato, Power BI il motore M non compenserà le operazioni di cui non è possibile eseguire completamente il
push nell'origine dati sottostante.
Questa sezione si basa sui concetti presentati nelle informazioni di riferimento sull'estendibilità M e presuppone
familiarità con la creazione di un connettore dati di base.
Vedere l'esempio SqlODBC per la maggior parte degli esempi di codice nelle sezioni seguenti. Altri esempi sono
disponibili nella directory degli esempi ODBC.
Nella tabella seguente vengono descritti i campi di record delle opzioni disponibili solo tramite estendibilità. I
campi che non sono valori letterali semplici sono descritti nelle sezioni successive.
Override di AstVisitor
Il campo AstVisitor viene impostato tramite il record di opzioni Odbc.DataSource. Viene usato per modificare le
SQL generate per scenari di query specifici.
NOTE
I driver che supportano le clausole e (anziché ) vogliono fornire LIMIT OFFSET un override TOP LimitClause per
AstVisitor.
Costante
L'impostazione di un override per questo valore è stata deprecata e potrebbe essere rimossa dalle
implementazioni future.
LimitClause
Questo campo è una funzione che riceve due argomenti (skip, take) e restituisce un record con due campi di
testo Int64.Type (Text, Location).
Il parametro skip è il numero di righe da ignorare, ovvero l'argomento per OFFSET. Se non viene specificato un
offset, il valore skip sarà Null. Se il driver supporta , ma non supporta , la funzione LimitClause deve restituire un
errore non implementata (...) quando skip è LIMIT OFFSET maggiore di 0.
Il parametro take è il numero di righe da prendere, ovvero l'argomento per LIMIT.
Il Text campo del risultato contiene il SQL da aggiungere alla query generata.
Il Location campo specifica dove inserire la clausola . Nella tabella seguente vengono descritti i valori
supportati.
Il frammento di codice seguente fornisce un'implementazione LimitClause per un driver che prevede una
clausola LIMIT, con un offset facoltativo, nel formato seguente: [OFFSET <offset> ROWS] LIMIT <row_count>
LimitClause = (skip, take) =>
let
offset = if (skip > 0) then Text.Format("OFFSET #{0} ROWS", {skip}) else "",
limit = if (take <> null) then Text.Format("LIMIT #{0}", {take}) else ""
in
[
Text = Text.Format("#{0} #{1}", {offset, limit}),
Location = "AfterQuerySpecification"
]
Il frammento di codice seguente fornisce un'implementazione LimitClause per un driver che supporta LIMIT, ma
non OFFSET. Formato: LIMIT <row_count> .
Override di SqlCapabilities
CAMPO DET TA GL I
Override di SQLColumns
SQLColumns è un gestore di funzioni che riceve i risultati di una chiamata ODBC a SQLColumns. Il parametro
source contiene una tabella con le informazioni sul tipo di dati. Questo override viene in genere usato per
correggere le mancate corrispondenze dei tipi di dati tra le chiamate SQLGetTypeInfo a e SQLColumns .
Per informazioni dettagliate sul formato del parametro della tabella di origine, vedere Funzione SQLColumns.
Override di SQLGetFunctions
Questo campo viene usato per eseguire l'override dei valori SQLFunctions restituiti da un driver ODBC.
Contiene un record i cui nomi di campo sono uguali alle costanti FunctionId definite per la funzione ODBC
SQLGetFunctions. Le costanti numeriche per ognuno di questi campi sono disponibili nella specifica ODBC.
CAMPO DET TA GL I
Il frammento di codice seguente fornisce un esempio che indica in modo esplicito al motore M di usare CAST
anziché CONVERT.
SQLGetFunctions = [
SQL_CONVERT_FUNCTIONS = 0x2 /* SQL_FN_CVT_CAST */
]
Override di SQLGetInfo
Questo campo viene usato per eseguire l'override dei valori SQLGetInfo restituiti da un driver ODBC. Contiene
un record i cui campi sono nomi uguali alle costanti InfoType definite per la funzione ODBC SQLGetInfo. Le
costanti numeriche per ognuno di questi campi sono disponibili nella specifica ODBC. L'elenco completo degli
InfoType verificati è disponibile nei file di traccia del motore Mashup.
La tabella seguente contiene le proprietà SQLGetInfo comunemente sottoposte a override:
CAMPO DET TA GL I
La funzione helper seguente può essere usata per creare valori di maschera di bit da un elenco di valori integer:
Flags = (flags as list) =>
let
Loop = List.Generate(
()=> [i = 0, Combined = 0],
each [i] < List.Count(flags),
each [i = [i]+1, Combined =*Number.BitwiseOr([Combined], flags{i})],
each [Combined]),
Result = List.Last(Loop, 0)
in
Result;
Override di SQLGetTypeInfo
SQLGetTypeInfo può essere specificato in due modi:
Valore table fisso che contiene le stesse informazioni sul tipo di una chiamata ODBC a SQLGetTypeInfo .
Funzione che accetta un argomento table e restituisce una tabella. L'argomento conterrà i risultati originali
della chiamata ODBC a SQLGetTypeInfo . L'implementazione della funzione può modificare o aggiungere a
questa tabella.
Il primo approccio viene usato per eseguire completamente l'override dei valori restituiti dal driver ODBC. Il
secondo approccio viene usato se si desidera aggiungere o modificare questi valori.
Per informazioni dettagliate sul formato del parametro di tabella dei tipi e sul valore restituito previsto, vedere le
informazioni di riferimento sulla funzione SQLGetTypeInfo.
SQLGetTypeInfo con una tabella statica
Il frammento di codice seguente fornisce un'implementazione statica per SQLGetTypeInfo.
SQLGetTypeInfo = #table(
{ "TYPE_NAME", "DATA_TYPE", "COLUMN_SIZE", "LITERAL_PREF", "LITERAL_SUFFIX", "CREATE_PARAS",
"NULLABLE", "CASE_SENSITIVE", "SEARCHABLE", "UNSIGNED_ATTRIBUTE", "FIXED_PREC_SCALE", "AUTO_UNIQUE_VALUE",
"LOCAL_TYPE_NAME", "MINIMUM_SCALE", "MAXIMUM_SCALE", "SQL_DATA_TYPE", "SQL_DATETIME_SUB", "NUM_PREC_RADIX",
"INTERNAL_PRECISION", "USER_DATA_TYPE" }, {
[DataSource.Kind="SqlODBC", Publish="SqlODBC.Publish"]
shared SqlODBC.Contents = (server as text) =>
let
ConnectionString = [
Driver = "SQL Server Native Client 11.0",
Server = server,
MultiSubnetFailover = "Yes",
ApplicationIntent = "ReadOnly",
APP = "PowerBICustomConnector"
],
OdbcDatasource = Odbc.DataSource(ConnectionString)
in
OdbcDatasource;
Dopo aver creato query semplici, è possibile provare gli scenari di Direct Query, ad esempio la creazione di
report nelle visualizzazioni report. Le query generate in modalità Direct Query saranno notevolmente più
complesse, ovvero l'uso di sub-select, istruzioni COALESCE e aggregazioni.
Concatenazione di stringhe in modalità Direct Query
Il motore M esegue la convalida dei limiti delle dimensioni del tipo di base come parte della logica di folding
della query. Se si riceve un errore di tipo folding quando si tenta di concatenare due stringhe che
potenzialmente superano le dimensioni massime del tipo di database sottostante:
1. Assicurarsi che il database sia in grado di supportare la conversione in tipi CLOB quando si verifica l'overflow
concat della stringa.
2. Impostare TolerateConcatOverflow l'opzione per Odbc.DataSource su true .
La funzione DAX CONCATENATE non è attualmente supportata dalle Power Query/ODBC. Gli autori di
estensioni devono assicurarsi che la concatenazione delle stringhe funzioni tramite l'editor di query
aggiungendo colonne calcolate ( [stringCol1] & [stringCol2] ). Quando in futuro viene aggiunta la
possibilità di eseguire la fold dell'operazione CONCATENATE, l'operazione dovrebbe funzionare senza
problemi con le estensioni esistenti.
Abilitazione di Direct Query per un connettore
basato su ODBC
07/12/2021 • 23 minutes to read
Panoramica
L'uso della funzione Odbc.DataSource incorporata di M è il modo consigliato per creare connettori
personalizzati per le origini dati con un driver ODBC esistente e/o supportano una sintassi SQL query. Il
wrapping della funzione Odbc.DataSource consentirà al connettore di ereditare il comportamento predefinito di
ripiegamento delle query in base alle funzionalità segnalate dal driver. Questo consentirà al motore M di
generare istruzioni SQL in base ai filtri e ad altre trasformazioni definite dall'utente all'interno dell'esperienza
Power Query, senza dover fornire questa logica all'interno del connettore stesso.
Le estensioni ODBC possono facoltativamente abilitare la modalità Direct Query, consentendo Power BI
generare dinamicamente query in fase di esecuzione senza pre-memorizzare nella cache il modello di dati
dell'utente.
NOTE
L'abilitazione del supporto di Direct Query aumenta il livello di difficoltà e complessità del connettore. Quando Direct
Query è abilitato, Power BI il motore M non compenserà le operazioni di cui non è possibile eseguire completamente il
push nell'origine dati sottostante.
Questa sezione si basa sui concetti presentati nelle informazioni di riferimento sull'estendibilità M e presuppone
familiarità con la creazione di un connettore dati di base.
Vedere l'esempio SqlODBC per la maggior parte degli esempi di codice nelle sezioni seguenti. Altri esempi sono
disponibili nella directory degli esempi ODBC.
Nella tabella seguente vengono descritti i campi di record delle opzioni disponibili solo tramite estendibilità. I
campi che non sono valori letterali semplici sono descritti nelle sezioni successive.
Override di AstVisitor
Il campo AstVisitor viene impostato tramite il record di opzioni Odbc.DataSource. Viene usato per modificare le
SQL generate per scenari di query specifici.
NOTE
I driver che supportano le clausole e (anziché ) vogliono fornire LIMIT OFFSET un override TOP LimitClause per
AstVisitor.
Costante
L'impostazione di un override per questo valore è stata deprecata e potrebbe essere rimossa dalle
implementazioni future.
LimitClause
Questo campo è una funzione che riceve due argomenti (skip, take) e restituisce un record con due campi di
testo Int64.Type (Text, Location).
Il parametro skip è il numero di righe da ignorare, ovvero l'argomento per OFFSET. Se non viene specificato un
offset, il valore skip sarà Null. Se il driver supporta , ma non supporta , la funzione LimitClause deve restituire un
errore non implementata (...) quando skip è LIMIT OFFSET maggiore di 0.
Il parametro take è il numero di righe da prendere, ovvero l'argomento per LIMIT.
Il Text campo del risultato contiene il SQL da aggiungere alla query generata.
Il Location campo specifica dove inserire la clausola . Nella tabella seguente vengono descritti i valori
supportati.
Il frammento di codice seguente fornisce un'implementazione LimitClause per un driver che prevede una
clausola LIMIT, con un offset facoltativo, nel formato seguente: [OFFSET <offset> ROWS] LIMIT <row_count>
LimitClause = (skip, take) =>
let
offset = if (skip > 0) then Text.Format("OFFSET #{0} ROWS", {skip}) else "",
limit = if (take <> null) then Text.Format("LIMIT #{0}", {take}) else ""
in
[
Text = Text.Format("#{0} #{1}", {offset, limit}),
Location = "AfterQuerySpecification"
]
Il frammento di codice seguente fornisce un'implementazione LimitClause per un driver che supporta LIMIT, ma
non OFFSET. Formato: LIMIT <row_count> .
Override di SqlCapabilities
CAMPO DET TA GL I
Override di SQLColumns
SQLColumns è un gestore di funzioni che riceve i risultati di una chiamata ODBC a SQLColumns. Il parametro
source contiene una tabella con le informazioni sul tipo di dati. Questo override viene in genere usato per
correggere le mancate corrispondenze dei tipi di dati tra le chiamate SQLGetTypeInfo a e SQLColumns .
Per informazioni dettagliate sul formato del parametro della tabella di origine, vedere Funzione SQLColumns.
Override di SQLGetFunctions
Questo campo viene usato per eseguire l'override dei valori SQLFunctions restituiti da un driver ODBC.
Contiene un record i cui nomi di campo sono uguali alle costanti FunctionId definite per la funzione ODBC
SQLGetFunctions. Le costanti numeriche per ognuno di questi campi sono disponibili nella specifica ODBC.
CAMPO DET TA GL I
Il frammento di codice seguente fornisce un esempio che indica in modo esplicito al motore M di usare CAST
anziché CONVERT.
SQLGetFunctions = [
SQL_CONVERT_FUNCTIONS = 0x2 /* SQL_FN_CVT_CAST */
]
Override di SQLGetInfo
Questo campo viene usato per eseguire l'override dei valori SQLGetInfo restituiti da un driver ODBC. Contiene
un record i cui campi sono nomi uguali alle costanti InfoType definite per la funzione ODBC SQLGetInfo. Le
costanti numeriche per ognuno di questi campi sono disponibili nella specifica ODBC. L'elenco completo degli
InfoType verificati è disponibile nei file di traccia del motore Mashup.
La tabella seguente contiene le proprietà SQLGetInfo comunemente sottoposte a override:
CAMPO DET TA GL I
La funzione helper seguente può essere usata per creare valori di maschera di bit da un elenco di valori integer:
Flags = (flags as list) =>
let
Loop = List.Generate(
()=> [i = 0, Combined = 0],
each [i] < List.Count(flags),
each [i = [i]+1, Combined =*Number.BitwiseOr([Combined], flags{i})],
each [Combined]),
Result = List.Last(Loop, 0)
in
Result;
Override di SQLGetTypeInfo
SQLGetTypeInfo può essere specificato in due modi:
Valore table fisso che contiene le stesse informazioni sul tipo di una chiamata ODBC a SQLGetTypeInfo .
Funzione che accetta un argomento table e restituisce una tabella. L'argomento conterrà i risultati originali
della chiamata ODBC a SQLGetTypeInfo . L'implementazione della funzione può modificare o aggiungere a
questa tabella.
Il primo approccio viene usato per eseguire completamente l'override dei valori restituiti dal driver ODBC. Il
secondo approccio viene usato se si desidera aggiungere o modificare questi valori.
Per informazioni dettagliate sul formato del parametro di tabella dei tipi e sul valore restituito previsto, vedere le
informazioni di riferimento sulla funzione SQLGetTypeInfo.
SQLGetTypeInfo con una tabella statica
Il frammento di codice seguente fornisce un'implementazione statica per SQLGetTypeInfo.
SQLGetTypeInfo = #table(
{ "TYPE_NAME", "DATA_TYPE", "COLUMN_SIZE", "LITERAL_PREF", "LITERAL_SUFFIX", "CREATE_PARAS",
"NULLABLE", "CASE_SENSITIVE", "SEARCHABLE", "UNSIGNED_ATTRIBUTE", "FIXED_PREC_SCALE", "AUTO_UNIQUE_VALUE",
"LOCAL_TYPE_NAME", "MINIMUM_SCALE", "MAXIMUM_SCALE", "SQL_DATA_TYPE", "SQL_DATETIME_SUB", "NUM_PREC_RADIX",
"INTERNAL_PRECISION", "USER_DATA_TYPE" }, {
[DataSource.Kind="SqlODBC", Publish="SqlODBC.Publish"]
shared SqlODBC.Contents = (server as text) =>
let
ConnectionString = [
Driver = "SQL Server Native Client 11.0",
Server = server,
MultiSubnetFailover = "Yes",
ApplicationIntent = "ReadOnly",
APP = "PowerBICustomConnector"
],
OdbcDatasource = Odbc.DataSource(ConnectionString)
in
OdbcDatasource;
Dopo aver creato query semplici, è possibile provare gli scenari di Direct Query, ad esempio la creazione di
report nelle visualizzazioni report. Le query generate in modalità Direct Query saranno notevolmente più
complesse, ovvero l'uso di sub-select, istruzioni COALESCE e aggregazioni.
Concatenazione di stringhe in modalità Direct Query
Il motore M esegue la convalida dei limiti delle dimensioni del tipo di base come parte della logica di folding
della query. Se si riceve un errore di tipo folding quando si tenta di concatenare due stringhe che
potenzialmente superano le dimensioni massime del tipo di database sottostante:
1. Assicurarsi che il database sia in grado di supportare la conversione in tipi CLOB quando si verifica l'overflow
concat della stringa.
2. Impostare TolerateConcatOverflow l'opzione per Odbc.DataSource su true .
La funzione DAX CONCATENATE non è attualmente supportata dalle Power Query/ODBC. Gli autori di
estensioni devono assicurarsi che la concatenazione delle stringhe funzioni tramite l'editor di query
aggiungendo colonne calcolate ( [stringCol1] & [stringCol2] ). Quando in futuro viene aggiunta la
possibilità di eseguire la fold dell'operazione CONCATENATE, l'operazione dovrebbe funzionare senza
problemi con le estensioni esistenti.
Abilitazione di Direct Query per un connettore
basato su ODBC
07/12/2021 • 23 minutes to read
Panoramica
L'uso della funzione Odbc.DataSource incorporata di M è il modo consigliato per creare connettori
personalizzati per le origini dati con un driver ODBC esistente e/o supportano una sintassi SQL query. Il
wrapping della funzione Odbc.DataSource consentirà al connettore di ereditare il comportamento predefinito di
ripiegamento delle query in base alle funzionalità segnalate dal driver. Questo consentirà al motore M di
generare istruzioni SQL in base ai filtri e ad altre trasformazioni definite dall'utente all'interno dell'esperienza
Power Query, senza dover fornire questa logica all'interno del connettore stesso.
Le estensioni ODBC possono facoltativamente abilitare la modalità Direct Query, consentendo Power BI
generare dinamicamente query in fase di esecuzione senza pre-memorizzare nella cache il modello di dati
dell'utente.
NOTE
L'abilitazione del supporto di Direct Query aumenta il livello di difficoltà e complessità del connettore. Quando Direct
Query è abilitato, Power BI il motore M non compenserà le operazioni di cui non è possibile eseguire completamente il
push nell'origine dati sottostante.
Questa sezione si basa sui concetti presentati nelle informazioni di riferimento sull'estendibilità M e presuppone
familiarità con la creazione di un connettore dati di base.
Vedere l'esempio SqlODBC per la maggior parte degli esempi di codice nelle sezioni seguenti. Altri esempi sono
disponibili nella directory degli esempi ODBC.
Nella tabella seguente vengono descritti i campi di record delle opzioni disponibili solo tramite estendibilità. I
campi che non sono valori letterali semplici sono descritti nelle sezioni successive.
Override di AstVisitor
Il campo AstVisitor viene impostato tramite il record di opzioni Odbc.DataSource. Viene usato per modificare le
SQL generate per scenari di query specifici.
NOTE
I driver che supportano le clausole e (anziché ) vogliono fornire LIMIT OFFSET un override TOP LimitClause per
AstVisitor.
Costante
L'impostazione di un override per questo valore è stata deprecata e potrebbe essere rimossa dalle
implementazioni future.
LimitClause
Questo campo è una funzione che riceve due argomenti (skip, take) e restituisce un record con due campi di
testo Int64.Type (Text, Location).
Il parametro skip è il numero di righe da ignorare, ovvero l'argomento per OFFSET. Se non viene specificato un
offset, il valore skip sarà Null. Se il driver supporta , ma non supporta , la funzione LimitClause deve restituire un
errore non implementata (...) quando skip è LIMIT OFFSET maggiore di 0.
Il parametro take è il numero di righe da prendere, ovvero l'argomento per LIMIT.
Il Text campo del risultato contiene il SQL da aggiungere alla query generata.
Il Location campo specifica dove inserire la clausola . Nella tabella seguente vengono descritti i valori
supportati.
Il frammento di codice seguente fornisce un'implementazione LimitClause per un driver che prevede una
clausola LIMIT, con un offset facoltativo, nel formato seguente: [OFFSET <offset> ROWS] LIMIT <row_count>
LimitClause = (skip, take) =>
let
offset = if (skip > 0) then Text.Format("OFFSET #{0} ROWS", {skip}) else "",
limit = if (take <> null) then Text.Format("LIMIT #{0}", {take}) else ""
in
[
Text = Text.Format("#{0} #{1}", {offset, limit}),
Location = "AfterQuerySpecification"
]
Il frammento di codice seguente fornisce un'implementazione LimitClause per un driver che supporta LIMIT, ma
non OFFSET. Formato: LIMIT <row_count> .
Override di SqlCapabilities
CAMPO DET TA GL I
Override di SQLColumns
SQLColumns è un gestore di funzioni che riceve i risultati di una chiamata ODBC a SQLColumns. Il parametro
source contiene una tabella con le informazioni sul tipo di dati. Questo override viene in genere usato per
correggere le mancate corrispondenze dei tipi di dati tra le chiamate SQLGetTypeInfo a e SQLColumns .
Per informazioni dettagliate sul formato del parametro della tabella di origine, vedere Funzione SQLColumns.
Override di SQLGetFunctions
Questo campo viene usato per eseguire l'override dei valori SQLFunctions restituiti da un driver ODBC.
Contiene un record i cui nomi di campo sono uguali alle costanti FunctionId definite per la funzione ODBC
SQLGetFunctions. Le costanti numeriche per ognuno di questi campi sono disponibili nella specifica ODBC.
CAMPO DET TA GL I
Il frammento di codice seguente fornisce un esempio che indica in modo esplicito al motore M di usare CAST
anziché CONVERT.
SQLGetFunctions = [
SQL_CONVERT_FUNCTIONS = 0x2 /* SQL_FN_CVT_CAST */
]
Override di SQLGetInfo
Questo campo viene usato per eseguire l'override dei valori SQLGetInfo restituiti da un driver ODBC. Contiene
un record i cui campi sono nomi uguali alle costanti InfoType definite per la funzione ODBC SQLGetInfo. Le
costanti numeriche per ognuno di questi campi sono disponibili nella specifica ODBC. L'elenco completo degli
InfoType verificati è disponibile nei file di traccia del motore Mashup.
La tabella seguente contiene le proprietà SQLGetInfo comunemente sottoposte a override:
CAMPO DET TA GL I
La funzione helper seguente può essere usata per creare valori di maschera di bit da un elenco di valori integer:
Flags = (flags as list) =>
let
Loop = List.Generate(
()=> [i = 0, Combined = 0],
each [i] < List.Count(flags),
each [i = [i]+1, Combined =*Number.BitwiseOr([Combined], flags{i})],
each [Combined]),
Result = List.Last(Loop, 0)
in
Result;
Override di SQLGetTypeInfo
SQLGetTypeInfo può essere specificato in due modi:
Valore table fisso che contiene le stesse informazioni sul tipo di una chiamata ODBC a SQLGetTypeInfo .
Funzione che accetta un argomento table e restituisce una tabella. L'argomento conterrà i risultati originali
della chiamata ODBC a SQLGetTypeInfo . L'implementazione della funzione può modificare o aggiungere a
questa tabella.
Il primo approccio viene usato per eseguire completamente l'override dei valori restituiti dal driver ODBC. Il
secondo approccio viene usato se si desidera aggiungere o modificare questi valori.
Per informazioni dettagliate sul formato del parametro di tabella dei tipi e sul valore restituito previsto, vedere le
informazioni di riferimento sulla funzione SQLGetTypeInfo.
SQLGetTypeInfo con una tabella statica
Il frammento di codice seguente fornisce un'implementazione statica per SQLGetTypeInfo.
SQLGetTypeInfo = #table(
{ "TYPE_NAME", "DATA_TYPE", "COLUMN_SIZE", "LITERAL_PREF", "LITERAL_SUFFIX", "CREATE_PARAS",
"NULLABLE", "CASE_SENSITIVE", "SEARCHABLE", "UNSIGNED_ATTRIBUTE", "FIXED_PREC_SCALE", "AUTO_UNIQUE_VALUE",
"LOCAL_TYPE_NAME", "MINIMUM_SCALE", "MAXIMUM_SCALE", "SQL_DATA_TYPE", "SQL_DATETIME_SUB", "NUM_PREC_RADIX",
"INTERNAL_PRECISION", "USER_DATA_TYPE" }, {
[DataSource.Kind="SqlODBC", Publish="SqlODBC.Publish"]
shared SqlODBC.Contents = (server as text) =>
let
ConnectionString = [
Driver = "SQL Server Native Client 11.0",
Server = server,
MultiSubnetFailover = "Yes",
ApplicationIntent = "ReadOnly",
APP = "PowerBICustomConnector"
],
OdbcDatasource = Odbc.DataSource(ConnectionString)
in
OdbcDatasource;
Dopo aver creato query semplici, è possibile provare gli scenari di Direct Query, ad esempio la creazione di
report nelle visualizzazioni report. Le query generate in modalità Direct Query saranno notevolmente più
complesse, ovvero l'uso di sub-select, istruzioni COALESCE e aggregazioni.
Concatenazione di stringhe in modalità Direct Query
Il motore M esegue la convalida dei limiti delle dimensioni del tipo di base come parte della logica di folding
della query. Se si riceve un errore di tipo folding quando si tenta di concatenare due stringhe che
potenzialmente superano le dimensioni massime del tipo di database sottostante:
1. Assicurarsi che il database sia in grado di supportare la conversione in tipi CLOB quando si verifica l'overflow
concat della stringa.
2. Impostare TolerateConcatOverflow l'opzione per Odbc.DataSource su true .
La funzione DAX CONCATENATE non è attualmente supportata dalle Power Query/ODBC. Gli autori di
estensioni devono assicurarsi che la concatenazione delle stringhe funzioni tramite l'editor di query
aggiungendo colonne calcolate ( [stringCol1] & [stringCol2] ). Quando in futuro viene aggiunta la
possibilità di eseguire la fold dell'operazione CONCATENATE, l'operazione dovrebbe funzionare senza
problemi con le estensioni esistenti.
Gestione del percorso delle risorse
07/12/2021 • 2 minutes to read
Il motore M identifica un'origine dati usando una combinazione dei relativi Tipi e Percorso. Quando viene
rilevata un'origine dati durante una valutazione della query, il motore M tenterà di trovare le credenziali
corrispondenti. Se non viene trovata alcuna credenziale, il motore restituisce un errore speciale che restituisce
una richiesta di credenziali Power Query.
Il valore Kind deriva dalla definizione del tipo di [origine] dati.
Il valore Path deriva dai parametri obbligatori delle funzioni dell'origine dati. I parametri facoltativi non vengono
fattoriati nell'identificatore del percorso dell'origine dati. Di conseguenza, tutte le funzioni dell'origine dati
associate a un tipo di origine dati devono avere gli stessi parametri. È presente una gestione speciale per le
funzioni con un singolo parametro di tipo Uri.Type . Per altri dettagli, vedere di seguito.
È possibile visualizzare un esempio di come vengono archiviate le credenziali nella finestra di dialogo
Impostazioni origine dati Power BI Desktop. In questa finestra di dialogo il tipo è rappresentato da un'icona e
il valore Percorso viene visualizzato come testo.
[Nota] Se si modificano i parametri obbligatori della funzione origine dati durante lo sviluppo, le credenziali
archiviate in precedenza non funzioneranno più perché i valori del percorso non corrispondono più. È
necessario eliminare le credenziali archiviate ogni volta che si modificano i parametri della funzione
dell'origine dati. Se vengono trovate credenziali incompatibili, è possibile che venga visualizzato un errore in
fase di esecuzione.
Formato percorso origine dati
Il valore Path per un'origine dati deriva dai parametri obbligatori della funzione dell'origine dati.
Per impostazione predefinita, è possibile visualizzare il valore stringa effettivo nella finestra di dialogo
Impostazioni origine dati in Power BI Desktop e nella richiesta di credenziali. se la definizione Tipo origine dati
include un Label valore, verrà invece visualizzato il valore dell'etichetta.
Ad esempio, la funzione dell'origine dati [nell'esempio HelloWorldWithDocs] ha la firma seguente:
La funzione ha un singolo parametro obbligatorio ( ) di tipo e verrà usata message text per calcolare il
percorso dell'origine dati. Il parametro facoltativo ( count ) verrà ignorato. Il percorso verrà visualizzato come
segue:
Richiesta di credenziali:
[Nota] È attualmente consigliabile non includere un'etichetta per l'origine dati se la funzione ha parametri
obbligatori, in quanto gli utenti non saranno in grado di distinguere le diverse credenziali immesse. Si spera
di migliorare questa situazione in futuro, ovvero consentire ai connettori di dati di visualizzare i propri
percorsi di origine dati personalizzati.
Come è un tipo ascritto anziché un tipo primitivo nel linguaggio M, è necessario usare la funzione Uri.Type
Value.ReplaceType per indicare che il parametro di testo deve essere considerato come uri.
shared GithubSample.Contents = Value.ReplaceType(Github.Contents, type function (url as Uri.type) as any);
Paging
07/12/2021 • 2 minutes to read
Le API REST hanno in genere un meccanismo per trasmettere grandi volumi di record suddivisi in pagine di
risultati. Power Query offre la flessibilità necessaria per supportare molti meccanismi di paging diversi. Tuttavia,
poiché ogni meccanismo di paging è diverso, è probabile che sia necessario apportare alcune modifiche agli
esempi di paging per adattare la situazione.
Modelli tipici
La compilazione di tutti i risultati della pagina in un'unica tabella viene eseguita dalla funzione
Table.GenerateByPage() helper, che in genere può essere usata senza alcuna modifica. I frammenti di codice
presentati nella sezione Table.GenerateByPage() relativa alla funzione helper descrivono come implementare
alcuni modelli di paging comuni. Indipendentemente dal modello, è necessario comprendere:
1. Come si richiede la pagina di dati successiva?
2. Il meccanismo di paging implica il calcolo dei valori o si estrae l'URL per la pagina successiva dalla risposta?
3. Come è possibile sapere quando arrestare il paging?
4. Esistono parametri correlati al paging(ad esempio, "dimensioni pagina") di cui è necessario essere a
conoscenza?
Gestione delle trasformazioni
07/12/2021 • 3 minutes to read
Per le situazioni in cui la risposta dell'origine dati non viene presentata in un formato che Power BI può utilizzare
direttamente, Power Query può essere usata per eseguire una serie di trasformazioni.
Trasformazioni statiche
Nella maggior parte dei casi, i dati vengono presentati in modo coerente dall'origine dati: i nomi delle colonne, i
tipi di dati e la struttura gerarchica sono coerenti per un determinato endpoint. In questa situazione è opportuno
applicare sempre lo stesso set di trasformazioni per ottenere i dati in un formato accettabile per Power BI.
Un esempio di trasformazione statica è disponibile nell'esercitazione TripPin Part 2 - Data Connector for a REST
Service quando l'origine dati viene considerata un servizio REST standard:
let
Source = TripPin.Feed("https://services.odata.org/v4/TripPinService/Airlines"),
value = Source[value],
toTable = Table.FromList(value, Splitter.SplitByNothing(), null, null, ExtraValues.Error),
expand = Table.ExpandRecordColumn(toTable, "Column1", {"AirlineCode", "Name"}, {"AirlineCode", "Name"})
in
expand
È importante notare che una sequenza di trasformazioni statiche di questa specificità è applicabile solo a un
singolo endpoint. Nell'esempio precedente questa sequenza di trasformazioni funzionerà solo se ed esiste nella
risposta dell'endpoint REST, perché sono "AirlineCode" "Name" hard coded nel codice M. Pertanto, questa
sequenza di trasformazioni potrebbe non funzionare se si tenta di accedere /Event all'endpoint.
Questo livello elevato di specificità può essere necessario per eseguire il push dei dati in una tabella di
navigazione, ma per le funzioni di accesso ai dati più generali è consigliabile eseguire solo trasformazioni
appropriate per tutti gli endpoint.
NOTE
Assicurarsi di testare le trasformazioni in diverse circostanze dei dati. Se l'utente non ha dati nell'endpoint, le
trasformazioni comportano una tabella vuota /airlines con lo schema corretto? Oppure si è verificato un errore
durante la valutazione? Vedere TripPin Part 7: Advanced Schema with M Types (Parte 7: Schema avanzato con tipi M) per
una discussione sugli unit test.
Trasformazioni dinamiche
È talvolta necessaria una logica più complessa per convertire le risposte api in moduli stabili e coerenti
appropriati per Power BI di dati.
Risposte API incoerenti
Flusso di controllo M di base (istruzioni if, codici di stato HTTP, try... I blocchi catch e così via sono in genere
sufficienti per gestire situazioni in cui l'API risponde in diversi modi.
Determinazione dello schema in tempo reale
Alcune API sono progettate in modo che più informazioni devono essere combinate per ottenere il formato
tabulare corretto. Si consideri la risposta /sheets [dell'endpoint di]Smartsheet, che contiene una matrice di
nomi di colonna e una matrice di righe di dati. Smartsheet Connector è in grado di analizzare questa risposta nel
modo seguente:
raw = Web.Contents(...),
columns = raw[columns],
columnTitles = List.Transform(columns, each [title]),
columnTitlesWithRowNumber = List.InsertRange(columnTitles, 0, {"RowNumber"}),
1. Gestire innanzitutto le informazioni sull'intestazione di colonna. È possibile eseguire il pull del record di ogni
colonna in un elenco, anteponendo una colonna che verrà sempre rappresentata title RowNumber come
prima colonna.
2. Successivamente è possibile definire una funzione che consente di analizzare una riga in un elenco di value
celle. È anche possibile anteporre rowNumber le informazioni.
3. Applicare la RowAsList() funzione a ognuno degli elementi row restituiti nella risposta dell'API.
4. Convertire l'elenco in una tabella, specificando le intestazioni di colonna.
Gestione delle trasformazioni
07/12/2021 • 3 minutes to read
Per le situazioni in cui la risposta dell'origine dati non viene presentata in un formato che Power BI può utilizzare
direttamente, Power Query può essere usata per eseguire una serie di trasformazioni.
Trasformazioni statiche
Nella maggior parte dei casi, i dati vengono presentati in modo coerente dall'origine dati: i nomi delle colonne, i
tipi di dati e la struttura gerarchica sono coerenti per un determinato endpoint. In questa situazione è opportuno
applicare sempre lo stesso set di trasformazioni per ottenere i dati in un formato accettabile per Power BI.
Un esempio di trasformazione statica è disponibile nell'esercitazione TripPin Part 2 - Data Connector for a REST
Service quando l'origine dati viene considerata un servizio REST standard:
let
Source = TripPin.Feed("https://services.odata.org/v4/TripPinService/Airlines"),
value = Source[value],
toTable = Table.FromList(value, Splitter.SplitByNothing(), null, null, ExtraValues.Error),
expand = Table.ExpandRecordColumn(toTable, "Column1", {"AirlineCode", "Name"}, {"AirlineCode", "Name"})
in
expand
È importante notare che una sequenza di trasformazioni statiche di questa specificità è applicabile solo a un
singolo endpoint. Nell'esempio precedente questa sequenza di trasformazioni funzionerà solo se ed esiste nella
risposta dell'endpoint REST, perché sono "AirlineCode" "Name" hard coded nel codice M. Pertanto, questa
sequenza di trasformazioni potrebbe non funzionare se si tenta di accedere /Event all'endpoint.
Questo livello elevato di specificità può essere necessario per eseguire il push dei dati in una tabella di
navigazione, ma per le funzioni di accesso ai dati più generali è consigliabile eseguire solo trasformazioni
appropriate per tutti gli endpoint.
NOTE
Assicurarsi di testare le trasformazioni in diverse circostanze dei dati. Se l'utente non ha dati nell'endpoint, le
trasformazioni comportano una tabella vuota /airlines con lo schema corretto? Oppure si è verificato un errore
durante la valutazione? Vedere TripPin Part 7: Advanced Schema with M Types (Parte 7: Schema avanzato con tipi M) per
una discussione sugli unit test.
Trasformazioni dinamiche
È talvolta necessaria una logica più complessa per convertire le risposte api in moduli stabili e coerenti
appropriati per Power BI di dati.
Risposte API incoerenti
Flusso di controllo M di base (istruzioni if, codici di stato HTTP, try... I blocchi catch e così via sono in genere
sufficienti per gestire situazioni in cui l'API risponde in diversi modi.
Determinazione dello schema in tempo reale
Alcune API sono progettate in modo che più informazioni devono essere combinate per ottenere il formato
tabulare corretto. Si consideri la risposta /sheets [dell'endpoint di]Smartsheet, che contiene una matrice di
nomi di colonna e una matrice di righe di dati. Smartsheet Connector è in grado di analizzare questa risposta nel
modo seguente:
raw = Web.Contents(...),
columns = raw[columns],
columnTitles = List.Transform(columns, each [title]),
columnTitlesWithRowNumber = List.InsertRange(columnTitles, 0, {"RowNumber"}),
1. Gestire innanzitutto le informazioni sull'intestazione di colonna. È possibile eseguire il pull del record di ogni
colonna in un elenco, anteponendo una colonna che verrà sempre rappresentata title RowNumber come
prima colonna.
2. Successivamente è possibile definire una funzione che consente di analizzare una riga in un elenco di value
celle. È anche possibile anteporre rowNumber le informazioni.
3. Applicare la RowAsList() funzione a ognuno degli elementi row restituiti nella risposta dell'API.
4. Convertire l'elenco in una tabella, specificando le intestazioni di colonna.
Gestione dello schema
07/12/2021 • 7 minutes to read
A seconda dell'origine dati, le informazioni sui tipi di dati e sui nomi di colonna possono o meno essere fornite
in modo esplicito. Le API REST OData in genere gestiscono questa operazione usando la definizione $metadatae
il metodo Power Query gestisce automaticamente l'analisi di queste informazioni e l'applicazione ai dati
restituiti da OData.Feed un'origine OData.
Molte API REST non hanno un modo per determinarne lo schema a livello di codice. In questi casi è necessario
includere una definizione dello schema nel connettore.
Si consideri il codice seguente che restituisce una tabella semplice dal servizio di esempio TripPin OData:
let
url = "https://services.odata.org/TripPinWebApiService/Airlines",
source = Json.Document(Web.Contents(url))[value],
asTable = Table.FromRecords(source)
in
asTable
NOTE
TripPin è un'origine OData, quindi realisticamente sarebbe più opportuno usare semplicemente la gestione automatica
OData.Feed dello schema della funzione. In questo esempio l'origine verrà trattata come una tipica API REST e verrà
utilizzata per illustrare manualmente la tecnica di Web.Contents hardcoding di uno schema.
È possibile usare la funzione Table.Schema pratica per controllare il tipo di dati delle colonne:
let
url = "https://services.odata.org/TripPinWebApiService/Airlines",
source = Json.Document(Web.Contents(url))[value],
asTable = Table.FromRecords(source)
in
Table.Schema(asTable)
AirlineCode e Name sono di any tipo . Table.Schema restituisce molti metadati sulle colonne di una tabella,
inclusi nomi, posizioni, informazioni sul tipo e molte proprietà avanzate, ad esempio Precision, Scale e
MaxLength. Per il momento è necessario riguardare solo il tipo ascritto ( ), il tipo primitivo ( ) e se il valore della
colonna TypeName potrebbe essere Null ( Kind IsNullable ).
Definizione di una tabella di schema semplice
La tabella dello schema sarà composta da due colonne:
C O LO N N A DET TA GL I
La tabella dello schema hardcoded per la tabella ne imposta le colonne Airlines e su e ha un aspetto simile al
AirlineCode Name text seguente:
Quando si osservano alcuni degli altri endpoint, prendere in considerazione le tabelle dello schema seguenti:
La Airports tabella include quattro campi che è necessario mantenere (incluso uno di tipo record ):
La tabella include sette campi, tra cui s ( , ), una colonna nullable ( ) e una colonna con People list un tipo
Emails AddressInfo Gender ascritto ( Concurrency ):
People = #table({"Name", "Type"}, {
{"UserName", type text},
{"FirstName", type text},
{"LastName", type text},
{"Emails", type list},
{"AddressInfo", type list},
{"Gender", type nullable text},
{"Concurrency", Int64.Type}
})
È possibile inserire tutte queste tabelle in una singola tabella dello schema SchemaTable master:
PA RA M ET RO T IP O DESC RIZ IO N E
NOTE
L'ultimo passaggio per impostare il tipo di tabella elimina la necessità che l'interfaccia utente di Power Query deduca le
informazioni sul tipo quando si visualizzano i risultati nell'editor di query, che talvolta può comportare una doppia
chiamata all'API.
Approccio sofisticato
L'implementazione hardcoded descritta in precedenza consente di assicurarsi che gli schemi rimangano coerenti
per i semplici repson JSON, ma è limitato all'analisi del primo livello della risposta. I set di dati annidati in modo
approfondito traggono vantaggio dall'approccio seguente, che sfrutta i tipi M.
Ecco un rapido aggiornamento dei tipi nel linguaggio M dalla specifica del linguaggio:
Un valore tipo è un valore che classifica altri valori. Si dice che un valore classificato in base a un tipo sia
conforme a quel tipo. Il sistema di tipi del linguaggio M è costituito dai tipi seguenti:
Tipi primitivi, che classificano i valori primitivi ( , , , , , , , , , ) e includono anche diversi tipi binary date
datetime datetimezone duration list logical null number record text time type astratti ( , , ,
e function table any none ).
Tipi di record, che classificano i valori dei record in base ai nomi dei campi e ai tipi di valore.
Tipi di elenco, che classificano gli elenchi usando un singolo tipo di base dell'elemento.
Tipi di funzione, che classificano i valori delle funzioni in base ai tipi dei relativi parametri e valori
restituiti.
Tipi di tabella, che classificano i valori di tabella in base ai nomi di colonna, ai tipi di colonna e alle chiavi.
Tipi nullable, che classificano il valore Null oltre a tutti i valori classificati in base a un tipo di base.
Tipi, che classificano i valori che sono tipi.
Usando l'outputJSON non elaborato che si ottiene (e/o cercando le definizioni nel $metadata del servizio), è
possibile definire i tipi di record seguenti per rappresentare i tipi complessi OData:
LocationType = type [
Address = text,
City = CityType,
Loc = LocType
];
CityType = type [
CountryRegion = text,
Name = text,
Region = text
];
LocType = type [
#"type" = text,
coordinates = {number},
crs = CrsType
];
CrsType = type [
#"type" = text,
properties = record
];
Si noti LocationType come fa riferimento a e per rappresentare le colonne CityType LocType strutturate.
Per le entità di primo livello che si vuole rappresentare come tabelle, è possibile definire i tipi di tabella:
AirlinesType = type table [
AirlineCode = text,
Name = text
];
AirportsType = type table [
Name = text,
IataCode = text,
Location = LocationType
];
PeopleType = type table [
UserName = text,
FirstName = text,
LastName = text,
Emails = {text},
AddressInfo = {nullable LocationType},
Gender = nullable text,
Concurrency Int64.Type
];
È quindi possibile aggiornare la variabile (che è possibile usare come tabella di ricerca per i mapping da entità a
tipo) per usare SchemaTable queste nuove definizioni di tipo:
È possibile fare affidamento su una funzione comune ( ) per applicare uno schema ai dati, in modo simile a
quello Table.ChangeType SchemaTransformTable usato nell'esercizio precedente. A differenza di , accetta un tipo
di tabella M effettivo come argomento e applica lo schema in modo ricorsivo SchemaTransformTable per tutti i
tipi Table.ChangeType annidati. La firma è:
NOTE
Per la flessibilità, la funzione può essere usata nelle tabelle e negli elenchi di record, ovvero come le tabelle vengono
rappresentate in un documento JSON.
Sarà quindi necessario aggiornare il codice del connettore per modificare il parametro da schema a e
aggiungere una chiamata a table type Table.ChangeType . Anche in questo caso, i dettagli per questa
operazione sono molto specifici dell'implementazione e quindi non vale la pena di entrare in dettaglio qui.
Questo esempio di connettore TripPin esteso illustra una soluzione end-to-end che implementa questo
approccio più sofisticato alla gestione dello schema.
Gestione del codice di stato con Web.Contents
07/12/2021 • 2 minutes to read
La Web.Contents funzione include alcune funzionalità incorporate per la gestione di determinati codici di stato
HTTP. Il comportamento predefinito può essere sostituito nell'estensione usando il ManualStatusHandling campo
nel record delle opzioni.
C O DIC E STATO
Le richieste verranno ritentate fino a 3 volte prima dell'esito negativo. Il motore usa un algoritmo di back-off
esponenziale per determinare il tempo di attesa fino al successivo tentativo, a meno che la risposta non
contenga Retry-after un'intestazione. Quando viene trovata l'intestazione, il motore attenderà il numero
specificato di secondi prima del successivo tentativo. Il tempo di attesa minimo supportato è 0,5 secondi e il
valore massimo è 120 secondi.
NOTE
Il Retry-after formato del valore deve essere delta-seconds . Il HTTP-date formato non è attualmente supportato.
Eccezioni di autenticazione
I codici di stato seguenti generano un'eccezione per le credenziali, causando una richiesta di autenticazione che
richiede all'utente di fornire le credenziali o di eseguire nuovamente l'accesso nel caso di un token OAuth
scaduto.
C O DIC E STATO
Reindirizzamento
I codici di stato seguenti comportano un reindirizzamento automatico all'URI specificato Location
nell'intestazione. Location Un'intestazione mancante restituirà un errore.
C O DIC E STATO
302 Trovato
NOTE
Solo il codice di stato 307 manterà un POST metodo di richiesta. Tutti gli altri codici di stato di reindirizzamento
comportano il passaggio a GET .
Wait-Retry modello
07/12/2021 • 2 minutes to read
In alcune situazioni il comportamento di un'origine dati non corrisponde a quello previsto Power Query codice
HTTP predefinito di gestionedi . Gli esempi seguenti illustrano come risolvere questa situazione.
In questo scenario si lavora con un'API REST che restituisce in modo occassionale un codice di stato 500, che
indica un errore interno del server. In questi casi, è possibile attendere alcuni secondi e riprovare,
potenzialmente alcune volte prima di rinunciare.
ManualStatusHandling
Se ottiene una risposta del codice di stato Web.Contents 500, genera un'eccezione DataSource.Error per
impostazione predefinita. È possibile eseguire l'override di questo comportamento fornendo un elenco di codici
come argomento facoltativo per Web.Contents :
Specificando i codici di stato in questo modo, Power Query la risposta Web continuerà a essere elaborata
normalmente. Tuttavia, l'elaborazione della risposta normale spesso non è appropriata in questi casi. È
necessario comprendere che è stato ricevuto un codice di risposta anomalo ed eseguire una logica speciale per
gestirlo. Per determinare il codice di risposta restituito dal servizio Web, è possibile accedervi dal meta record
che accompagna la risposta:
responseCode = Value.Metadata(response)[Response.Status]
A seconda che sia 200 o 500, è possibile elaborare il risultato come di consueto o seguire la logica di ripetizione
dei tentativi di attesa che verrà elaborata nella responseCode sezione successiva.
NOTE
È consigliabile usare per forzare Power Query memorizzare nella cache i risultati se si implementa una logica complessa, ad
esempio il modello Wait-Retry Binary.Buffer Web.Contents illustrato di seguito. Ciò impedisce Power
Query'esecuzione multi-thread di eseguire più chiamate con risultati potenzialmente incoerenti.
Value.WaitFor
Value.WaitFor() è una funzione helper standard che in genere può essere usata senza alcuna modifica.
Funziona creando un elenco di tentativi.
producer Discussione
Contiene l'attività da (possibilmente) ritentare. È rappresentato come funzione in modo che il numero di
iterazione possa essere usato nella producer logica. Il comportamento previsto è che producer restituirà null
se un nuovo tentativo viene determinato come necessario. Se un valore diverso null da viene restituito da
producer , tale valore viene a sua volta restituito da Value.WaitFor .
delay Discussione
Contiene la logica da eseguire tra i tentativi. È rappresentato come funzione in modo che il numero di iterazione
possa essere usato nella delay logica. Il comportamento previsto è che delay restituisce un oggetto Duration.
count Argomento (facoltativo )
È possibile impostare un numero massimo di tentativi specificando un numero per count l'argomento .
let
waitForResult = Value.WaitFor(
(iteration) =>
let
result = Web.Contents(url, [ManualStatusHandling = {500}]),
buffered = Binary.Buffer(result),
status = Value.Metadata(result)[Response.Status],
actualResult = if status = 500 then null else buffered
in
actualResult,
(iteration) => #duration(0, 0, 0, Number.Power(2, iteration)),
5)
in
waitForResult,
Gestione degli unit test
07/12/2021 • 2 minutes to read
Per i connettori semplici e complessi, l'aggiunta di unit test è una procedura consigliata e altamente consigliata.
L'esecuzione di unit test viene eseguita nel contesto Visual Studio'SDK Power Query di . Ogni test è definito
come con Fact un nome, un valore previsto e un valore effettivo. Nella maggior parte dei casi, il "valore
effettivo" sarà un'espressione M che verifica parte dell'espressione.
Si consideri un'estensione molto semplice che esporta tre funzioni:
section Unittesting;
Questo unit test codice è costituito da una serie di fact e da una serie di codice comune per il framework unit
test ( ValueToText , Fact , , Facts Facts.Summarize ). Il codice seguente fornisce un set di fact di esempio
(vedere UnitTesting.query.pq per il codice comune):
section UnitTestingTests;
shared MyExtension.UnitTest =
[
// Put any common variables here if you only want them to be evaluated once
Eseguendo l'esempio Visual Studio verranno valutati tutti i fatti e verrà visualizzato un riepilogo visivo delle
velocità di passaggio:
L'implementazione di unit test nelle prime fasi del processo di sviluppo del connettore consente di seguire i
principi dello sviluppo basato su test. Imagine è necessario scrivere una funzione denominata Uri.GetHost che
restituisce solo i dati dell'host da un URI. È possibile iniziare scrivendo un test case per verificare che la funzione
esegua correttamente la funzione prevista:
È possibile scrivere test aggiuntivi per assicurarsi che la funzione gestisca in modo appropriato i casi limite.
Una versione precedente della funzione potrebbe superare alcuni ma non tutti i test:
La versione finale della funzione deve superare tutti gli unit test. In questo modo è anche facile assicurarsi che
gli aggiornamenti futuri della funzione non rimuovono accidentalmente alcuna funzionalità di base.
Funzioni di supporto
07/12/2021 • 10 minutes to read
Questo argomento contiene una serie di funzioni helper comunemente usate nelle estensioni M. Queste
funzioni possono infine essere spostate nella libreria ufficiale M, ma per il momento possono essere copiate nel
codice del file di estensione. Non contrassegnare nessuna di queste funzioni come shared all'interno del codice
dell'estensione.
Tabelle di spostamento
Table.ToNavigationTable
Questa funzione aggiunge i metadati del tipo di tabella necessari all'estensione per restituire un valore di tabella
Power Query può riconoscere come albero di navigazione. Per altre informazioni, vedere Tabelle di spostamento.
Table.ToNavigationTable = (
table as table,
keyColumns as list,
nameColumn as text,
dataColumn as text,
itemKindColumn as text,
itemNameColumn as text,
isLeafColumn as text
) as table =>
let
tableType = Value.Type(table),
newTableType = Type.AddTableKey(tableType, keyColumns, true) meta
[
NavigationTable.NameColumn = nameColumn,
NavigationTable.DataColumn = dataColumn,
NavigationTable.ItemKindColumn = itemKindColumn,
Preview.DelayColumn = itemNameColumn,
NavigationTable.IsLeafColumn = isLeafColumn
],
navigationTable = Value.ReplaceType(table, newTableType)
in
navigationTable;
PA RA M ET RO DET TA GL I
Utilizzo di esempio:
Manipolazione dell'URI
Uri.FromParts
Questa funzione costruisce un URL completo in base ai singoli campi del record. Agisce come il contrario di
Uri.Parts.
Uri.GetHost
Questa funzione restituisce lo schema, l'host e la porta predefinita (per HTTP/HTTPS) per un URL specificato. Ad
esempio, https://bing.com/subpath/query?param=1¶m2=hello diventerebbe https://bing.com:443 .
Ciò è particolarmente utile per la compilazione di ResourcePath .
Uri.GetHost = (url) =>
let
parts = Uri.Parts(url),
port = if (parts[Scheme] = "https" and parts[Port] = 443) or (parts[Scheme] = "http" and parts[Port]
= 80) then "" else ":" & Text.From(parts[Port])
in
parts[Scheme] & "://" & parts[Host] & port;
ValidateUrlScheme
Questa funzione controlla se l'utente ha immesso un URL HTTPS e genera un errore in caso di errore. Questa
operazione è necessaria per gli URL immessi dall'utente per i connettori certificati.
ValidateUrlScheme = (url as text) as text => if (Uri.Parts(url)[Scheme] <> "https") then error "Url scheme
must be HTTPS" else url;
Per applicarlo, è sufficiente eseguire il wrapping url del parametro nella funzione di accesso ai dati.
Recupero di dati
Value.WaitFor
Questa funzione è utile quando si effettua una richiesta HTTP asincrona ed è necessario eseguire il polling del
server fino al completamento della richiesta.
Value.WaitFor = (producer as function, interval as function, optional count as number) as any =>
let
list = List.Generate(
() => {0, null},
(state) => state{0} <> null and (count = null or state{0} < count),
(state) => if state{1} <> null then {null, state{1}} else {1 + state{0}, Function.InvokeAfter(()
=> producer(state{0}), interval(state{0}))},
(state) => state{1})
in
List.Last(list);
Table.GenerateByPage
Questa funzione viene usata quando un'API restituisce dati in un formato incrementale/di paginazione, che è
comune per molte API REST. L'argomento è una funzione che accetta un singolo parametro, che sarà il risultato
della chiamata precedente getNextPage a e deve restituire un oggetto getNextPage nullable table .
getNextPage viene chiamato ripetutamente fino a quando non restituisce null . La funzione regolerà tutte le
pagine in un'unica tabella. Quando il risultato della prima chiamata a getNextPage è Null, viene restituita una
tabella vuota.
// The getNextPage function takes a single argument and is expected to return a nullable table
Table.GenerateByPage = (getNextPage as function) as table =>
let
listOfPages = List.Generate(
() => getNextPage(null), // get the first page of data
(lastPage) => lastPage <> null, // stop when the function returns null
(lastPage) => getNextPage(lastPage) // pass the previous page to the next function call
),
// concatenate the pages together
tableOfPages = Table.FromList(listOfPages, Splitter.SplitByNothing(), {"Column1"}),
firstRow = tableOfPages{0}?
in
// if we didn't get back any pages of data, return an empty table
// otherwise set the table type based on the columns of the first page
if (firstRow = null) then
Table.FromRows({})
else
Value.ReplaceType(
Table.ExpandTableColumn(tableOfPages, "Column1", Table.ColumnNames(firstRow[Column1])),
Value.Type(firstRow[Column1])
);
Note aggiuntive:
La funzione dovrà recuperare l'URL della pagina successiva (o il numero di pagina o qualsiasi altro valore
usato getNextPage per implementare la logica di paging). Questa operazione viene in genere eseguita
aggiungendo meta valori alla pagina prima di restituirla.
Le colonne e il tipo di tabella della tabella combinata, ovvero tutte le pagine, derivano dalla prima pagina di
dati. La getNextPage funzione deve normalizzare ogni pagina di dati.
La prima chiamata a getNextPage riceve un parametro Null.
getNextPage deve restituire null quando non sono presenti pagine.
Un esempio di uso di questa funzione è disponibile nell'esempio githube nell'esempio di paging TripPin.
SchemaTransformTable
EnforceSchema.Strict = 1; // Add any missing columns, remove extra columns, set table type
EnforceSchema.IgnoreExtraColumns = 2; // Add missing columns, do not remove extra columns
EnforceSchema.IgnoreMissingColumns = 3; // Do not add or remove columns
SchemaTransformTable = (table as table, schema as table, optional enforceSchema as number) as table =>
let
// Default to EnforceSchema.Strict
_enforceSchema = if (enforceSchema <> null) then enforceSchema else EnforceSchema.Strict,
Table.ChangeType
let
// table should be an actual Table.Type, or a List.Type of Records
Table.ChangeType = (table, tableType as type) as nullable table =>
// we only operate on table types
if (not Type.Is(tableType, type table)) then error "type argument should be a table type" else
// if we have a null value, just return it
// if we have a null value, just return it
if (table = null) then table else
let
columnsForType = Type.RecordFields(Type.TableRow(tableType)),
columnsAsTable = Record.ToTable(columnsForType),
schema = Table.ExpandRecordColumn(columnsAsTable, "Value", {"Type"}, {"Type"}),
previousMeta = Value.Metadata(tableType),
// If given a generic record type (no predefined fields), the original record is returned
Record.ChangeType = (record as record, recordType as type) =>
let
// record field format is [ fieldName = [ Type = type, Optional = logical], ... ]
fields = try Type.RecordFields(recordType) otherwise error "Record.ChangeType: failed to get
record fields. Is this a record type?",
fieldNames = Record.FieldNames(fields),
fieldTable = Record.ToTable(fields),
optionalFields = Table.SelectRows(fieldTable, each [Value][Optional])[Name],
requiredFields = List.Difference(fieldNames, optionalFields),
// make sure all required fields exist
withRequired = Record.SelectFields(record, requiredFields, MissingField.UseNull),
// append optional fields
withOptional = withRequired & Record.SelectFields(record, optionalFields, MissingField.Ignore),
// set types
transforms = GetTransformsForType(recordType),
withTypes = Record.TransformFields(withOptional, transforms, MissingField.Ignore),
// order the same as the record type
reorder = Record.ReorderFields(withTypes, fieldNames, MissingField.Ignore)
in
if (List.IsEmpty(fieldNames)) then record else reorder,
Gli errori in Power Query in genere interrondono la valutazione delle query e visualizzano un messaggio
all'utente.
let
Source = "foo",
Output = error "error message"
in
Output
let
Source = "foo",
Output = error Error.Record("error reason", "error message", "error detail")
in
Output
try "foo"
try "foo"+1
Il record Error contiene i campi Reason, Message e Detail.
Power Query genererà automaticamente un'interfaccia utente di chiamata in base all'argomento per la funzione.
Per impostazione predefinita, questa interfaccia utente conterrà il nome della funzione e un input per ogni
parametro.
Analogamente, la valutazione del nome della funzione, senza specificare parametri, ne visualizza le informazioni.
È possibile notare che le funzioni incorporate offrono in genere un'esperienza utente migliore, con descrizioni,
descrizioni comando e anche valori di esempio. È possibile sfruttare questo stesso meccanismo definendo
metadati specifici nel tipo di funzione. Questo argomento descrive i metadati usati da Power Query e come
usarli nelle estensioni.
Tipi function
È possibile fornire la documentazione per la funzione definendo valori di tipo personalizzati. Il processo è simile
al seguente:
1. Definire un tipo per ogni parametro.
2. Definire un tipo per la funzione.
3. Aggiungere vari Documentation.* campi al record di metadati dei tipi.
4. Chiamare Value.ReplaceType per attribuire il tipo alla funzione condivisa.
Altre informazioni sui tipi e sui valori dei metadati sono disponibili in Specifica del linguaggio M.
Questo approccio consente di fornire descrizioni e nomi visualizzati per la funzione, nonché singoli parametri. È
anche possibile specificare valori di esempio per i parametri, nonché definire un elenco predefinito di valori
(trasformando il controllo casella di testo predefinito in un elenco a discesa).
L Power Query dei metadati recupera la documentazione dai metadati sul tipo della funzione, usando una
combinazione di chiamate a Value.Type, Type.FunctionParameterse Value.Metadata.
Documentazione delle funzioni
Nella tabella seguente sono elencati i campi della documentazione che è possibile impostare nei metadati per la
funzione. Tutti i campi sono facoltativi.
CAMPO T IP O DET TA GL I
CAMPO T IP O DET TA GL I
CAMPO T IP O DET TA GL I
Esempio di base
Il frammento di codice seguente (e le finestre di dialogo risultanti) sono disponibili nell'esempio
HelloWorldWithDocs.
[DataSource.Kind="HelloWorldWithDocs", Publish="HelloWorldWithDocs.Publish"]
shared HelloWorldWithDocs.Contents = Value.ReplaceType(HelloWorldImpl, HelloWorldType);
[DataSource.Kind="HelloWorld", Publish="HelloWorld.Publish"]
shared HelloWorld.Contents =
let
HelloWorldType = type function (
message1 as (type text meta [
Documentation.FieldCaption = "Message 1",
Documentation.FieldDescription = "Text to display for message 1",
Documentation.SampleValues = {"Hello world"},
Formatting.IsMultiLine = true,
Formatting.IsCode = true
]),
message2 as (type text meta [
Documentation.FieldCaption = "Message 2",
Documentation.FieldDescription = "Text to display for message 2",
Documentation.SampleValues = {"Hola mundo"},
Formatting.IsMultiLine = true,
Formatting.IsCode = false
])) as text,
HelloWorldFunction = (message1 as text, message2 as text) as text => message1 & message2
in
Value.ReplaceType(HelloWorldFunction, HelloWorldType);
Questo codice (con le informazioni di pubblicazione associate e così via) genera la finestra di dialogo seguente
Power BI. Le nuove righe verranno rappresentate nel testo con '#(lf)' o 'line feed'.
Gestione della navigazione
07/12/2021 • 3 minutes to read
Le tabelle di spostamento (o tabelle di spostamento) sono una parte fondamentale per offrire un'esperienza
semplice per il connettore. L Power Query'esperienza li visualizza all'utente dopo aver immesso i parametri
obbligatori per la funzione dell'origine dati e averli autenticati con l'origine dati.
In background, una tabella di spostamento è semplicemente un normale valore di tabella M con campi di
metadati specifici definiti nel relativo tipo. Quando la funzione dell'origine dati restituisce una tabella con questi
campi definiti, Power Query verrà visualizzata la finestra di dialogo strumento di navigazione. È effettivamente
possibile visualizzare i dati sottostanti come valore table facendo clic con il pulsante destro del mouse sul nodo
radice e scegliendo Modifica.
Table.ToNavigationTable
È possibile usare la Table.ToNavigationTable funzione per aggiungere i metadati del tipo di tabella necessari per
creare una tabella di spostamento.
NOTE
Attualmente è necessario copiare e incollare questa funzione nell'estensione M. In futuro verrà probabilmente spostato
nella libreria standard M.
CAMPO PA RA M ET RO
NavigationTable.NameColumn Namecolumn
NavigationTable.DataColumn Datacolumn
NavigationTable.ItemKindColumn itemKindColumn
NavigationTable.IsLeafColumn isLeafColumn
Preview.DelayColumn itemNameColumn
Questo codice comporta la visualizzazione dello strumento di navigazione seguente in Power BI Desktop:
Questo codice genera la visualizzazione dello strumento di navigazione seguente in Power BI Desktop:
È probabile che il metodo per l'implementazione della funzionalità TestConnection cambi mentre la Power BI
connettore dati personalizzato è in anteprima.
Per supportare l'aggiornamento pianificato tramite il gateway dati locale, il connettore deve implementare un
gestore TestConnection. La funzione viene chiamata quando l'utente configura le credenziali per l'origine e viene
usata per verificare che siano valide. Il gestore TestConnection viene impostato nel record Tipo di origine dati e
ha la firma seguente:
Dove dataSourcePath è il valore Percorso origine dati per la funzione e il valore restituito è un elenco costituito
da:
Nome della funzione da chiamare (questa funzione deve essere contrassegnata come e in genere #shared è
la funzione dell'origine dati primaria).
Uno o più argomenti da passare alla funzione.
Se la chiamata della funzione restituisce un errore, TestConnection viene considerato non riuscito e la
credenziale non viene mantenuta.
NOTE
Come indicato in precedenza, il nome della funzione fornito da TestConnection deve essere un shared membro.
TripPin = [
TestConnection = (dataSourcePath) => { "TripPin.Contents" },
Authentication = [
Anonymous = []
],
Label = "TripPin"
];
Esempio: Connettore con un parametro URL
Se la funzione dell'origine dati ha un solo parametro obbligatorio di tipo , sarà Uri.Type dataSourcePath
uguale all'URL fornito dall'utente. Il frammento di codice seguente illustra l'implementazione di TestConnection
dall'esempio github.
GithubSample = [
TestConnection = (dataSourcePath) => {"GithubSample.Contents", dataSourcePath},
Authentication = [
OAuth = [
StartLogin = StartLogin,
FinishLogin = FinishLogin,
Label = Extension.LoadString("AuthenticationLabel")
]
]
];
DirectSQL = [
TestConnection = (dataSourcePath) =>
let
json = Json.Document(dataSourcePath),
server = json[server],
database = json[database]
in
{ "DirectSQL.Database", server, database },
Authentication = [
Windows = [],
UsernamePassword = []
],
Label = "Direct Query for SQL"
];
Gestione della firma Power Query connettore
07/12/2021 • 3 minutes to read
In Power BI, il caricamento dei connettori personalizzati è limitato dall'impostazione di sicurezza scelta. Come
regola generale, quando la sicurezza per il caricamento dei connettori personalizzati è impostata su
"Consigliato", i connettori personalizzati non verranno caricati e sarà necessario abbassarli per caricarli.
L'eccezione è attendibile, "connettori firmati". I connettori firmati sono un formato speciale di connettore
personalizzato, un file con estensione pqx anziché mez, firmato con un certificato. Il firmatario può fornire
all'utente o al reparto IT dell'utente un'identificazione personale della firma, che può essere inserita nel registro
per indicare in modo sicuro l'attendibilità di un determinato connettore.
I passaggi seguenti consentono di usare un certificato (con una spiegazione su come generarne uno se non è
disponibile) e di firmare un connettore personalizzato con lo strumento "MakePQX".
NOTE
Per informazioni sulla creazione di un certificato autofirmato per testare queste istruzioni, vedere la documentazione
Microsoft in New-SelfSignedCertificate in PowerShell.
NOTE
Per informazioni sull'esportazione del certificato come file PFX, passare a Export-PfxCertificate.
1. Scaricare MakePQX.
2. Estrarre la cartella MakePQX nel file ZIP incluso nella destinazione desiderata.
3. Per eseguirlo, chiamare MakePQX nella riga di comando. Richiede le altre librerie nella cartella, quindi
non è possibile copiare solo l'eseguibile. L'esecuzione senza parametri restituirà le informazioni della
Guida.
Utilizzo: MakePQX [ opzioni] [ comando]
Opzioni:
O P Z IO N I DESC RIZ IO N E
Comandi:
C O M A N DO DESC RIZ IO N E
Pack
Il comando Pack accetta un file mez e lo racchiude in un file pqx, che può essere firmato. Il file pqx è anche in
grado di supportare alcune funzionalità che verranno aggiunte in futuro.
Utilizzo: opzioni del [ pacchetto MakePQX ]
Opzioni:
O P Z IO N E DESC RIZ IO N E
-c | --cer tificate Certificato (con estensione pfx) usato per firmare il file di
estensione.
Esempio
C:\Users\cpope\Downloads\MakePQX>MakePQX.exe pack -mz
"C:\Users\cpope\OneDrive\Documents\Power BI Desktop\Custom Connectors\HelloWorld.mez" -t
"C:\Users\cpope\OneDrive\Documents\Power BI Desktop\Custom
Connectors\HelloWorldSigned.pqx"
Sign
Il comando Firma firma il file pqx con un certificato, fornendo un'identificazione personale che può essere
verificata per l'attendibilità da Power BI client con l'impostazione di sicurezza superiore. Questo comando
accetta un file pqx e restituisce lo stesso file pqx firmato.
Utilizzo: opzioni per gli argomenti del segno ] [ [ MakePQX ]
Argomenti:
Opzioni:
O P Z IO N E DESC RIZ IO N E
-c | --cer tificate Certificato (con estensione pfx) usato per firmare il file di
estensione.
Esempio
C:\Users\cpope\Downloads\MakePQX>MakePQX sign
"C:\Users\cpope\OneDrive\Documents\Power BI Desktop\Custom
Connectors\HelloWorldSigned.pqx" --cer tificate ContosoTestCer tificate.pfx --password password
Verificare
Il comando Verifica verifica che il modulo sia stato firmato correttamente e visualizza lo stato del certificato.
Utilizzo: opzioni per verificare gli argomenti di ] [ [ MakePQX ]
Argomenti:
Opzioni:
O P Z IO N E DESC RIZ IO N E
Esempio
C:\Users\cpope\Downloads\MakePQX>MakePQX verify
"C:\Users\cpope\OneDrive\Documents\Power BI Desktop\Custom
Connectors\HelloWorldSigned.pqx"
{
"SignatureStatus": "Success",
"CertificateStatus": [
{
"Issuer": "CN=Colin Popell",
"Thumbprint": "16AF59E4BE5384CD860E230ED4AED474C2A3BC69",
"Subject": "CN=Colin Popell",
"NotBefore": "2019-02-14T22:47:42-08:00",
"NotAfter": "2020-02-14T23:07:42-08:00",
"Valid": false,
"Parent": null,
"Status": "UntrustedRoot"
}
]
}
NOTE
Questo articolo descrive i requisiti e il processo per inviare un Power Query connettore personalizzato per la certificazione.
Leggere attentamente l'intero articolo prima di avviare il processo di certificazione.
Introduzione
La certificazione di Power Query connettore personalizzato rende il connettore disponibile pubblicamente, in
modo Power BI Desktop. I connettori certificati sono supportati in PowerBI.com e in tutte le versioni di Power BI
Premium, ad eccezione dei flussi di dati. La certificazione è regolata dal Programma di certificazione connettore
di Microsoft, in cui Microsoft collabora con gli sviluppatori partner per estendere le funzionalità di connettività
dei dati Power BI.
I connettori certificati sono:
Gestito dallo sviluppatore partner
Supportato dallo sviluppatore partner
Certificato da Microsoft
Distribuito da Microsoft
Microsoft collabora con i partner per assicurarsi di avere supporto per la manutenzione, ma i problemi dei
clienti con il connettore stesso verranno indirizzati allo sviluppatore partner.
I connettori certificati vengono aggregati in modo Power BI Desktop. I connettori personalizzati devono essere
caricati in Power BI Desktop, come descritto in Caricamento dell'estensione in Power BI Desktop. Entrambi
possono essere aggiornati tramite Power BI Desktop o Power BI tramite un gateway dati locale implementando
un testConnection.
I connettori certificati con un'implementazione supportano anche l'aggiornamento end-to-end tramite il cloud
(Power BI Service) senza la necessità di TestConnection un gateway dati locale. L Power BI di servizio ospita
essenzialmente un "gateway cloud" che viene eseguito in modo simile al gateway locale. Dopo la certificazione,
il connettore verrà distribuito in questo ambiente in modo che sia disponibile per tutti Power BI clienti. Esistono
requisiti aggiuntivi per i connettori che devono usare componenti aggiuntivi, ad esempio un driver basato su
ODBC. Assicurarsi di contattare il contatto Microsoft se il connettore richiede l'uso di componenti aggiuntivi.
Requisiti di certificazione
È stato creato un determinato set di requisiti per la certificazione. Microsoft riconosce che non tutti gli
sviluppatori possono soddisfare questi requisiti ed è molto importante introdurre un set di funzionalità in grado
di gestire le esigenze degli sviluppatori in breve tempo.
File di invio (Artifacts)
Assicurarsi che i file del connettore inviati includano tutti gli elementi seguenti:
File del connettore (con estensione mez)
Il file con estensione mez deve seguire gli standard di stile e avere un nome simile al nome del
prodotto o del servizio. Non deve includere parole come "Power BI", "Connector" o "API".
Assegnare al file con estensione mez il nome seguente: ProductName.mez
Power BI Desktop file (con estensione pbix) per i test
È necessario un report di Power BI di esempio (con estensione pbix) con cui testare il connettore.
Il report deve includere almeno una query per testare ogni elemento nella tabella di navigazione.
Se non è presente alcuno schema impostato (ad esempio, database), il report deve includere una
query per ogni "tipo" di tabella che il connettore può gestire.
Testare l'account nell'origine dati
L'account di test verrà utilizzato per testare e risolvere i problemi del connettore.
Fornire un account di test persistente, in modo da poter usare lo stesso account per certificare
eventuali aggiornamenti futuri.
Istruzioni di test
Fornire qualsiasi documentazione su come usare il connettore e testarne la funzionalità.
Collegamenti a dipendenze esterne (ad esempio, driver ODBC)
Caratteristiche e stile
Il connettore deve seguire un set di regole di funzionalità e stile per soddisfare uno standard di usabilità
coerente con altri connettori certificati.
Il connettore DEVE:
Usare il formato del documento Section.
Disporre dell'area di controllo della versione nella sezione .
Fornire i metadati della documentazione della funzione.
Disporre del gestore TestConnection.
Seguire le convenzioni di denominazione (ad esempio, DataSourceKind.FunctionName ). Non deve
includere parole come "Power BI", "Connector" o "API".
dovrebbe FunctionName avere senso per il dominio,ad esempio "Contents", "Tables", "Document",
"Databases" e così via.
Il connettore DOVREBBE:
Avere icone.
Specificare una tabella di navigazione.
Inserire stringhe in un resources.resx file. Gli URL e i valori devono essere hardcoded nel codice del
connettore e non devono essere inseriti nel resources.resx file.
Sicurezza
Esistono considerazioni specifiche sulla sicurezza che il connettore deve gestire.
Se Extension.CurrentCredentials() viene usato:
L'utilizzo è obbligatorio? In tal caso, a dove vengono inviate le credenziali?
È garantito che le richieste siano effettuate tramite HTTPS?
È possibile usare la funzione helper di imposizione HTTPS.
Se le credenziali vengono inviate tramite Web.Contents() GET:
Può essere trasformato in un POST?
Se è richiesto GET, il connettore DEVE usare il CredentialQueryString record nel record delle
opzioni per passare credenziali Web.Contents() riservate.
Se vengono usate le funzioni Diagnostics.*:
Convalidare ciò che viene tracciato; i dati non devono contenere informazioni personali o
grandi quantità di dati non necessari.
Se è stata implementata una traccia significativa nello sviluppo, è necessario implementare una
variabile o un flag di funzionalità che determina se la traccia deve essere attivata. Questa opzione deve
essere disattivata prima dell'invio per la certificazione.
Se Expression.Evaluate() viene usato:
Verificare da dove proviene l'espressione e da che cosa si tratta, ovvero può costruire dinamicamente
chiamate a Extension.CurrentCredentials() e così via.
Non Expression deve essere fornito dall'utente né deve richiedere l'input dell'utente.
Expression L'oggetto non deve essere dinamico, ovvero recuperato da una chiamata Web.
NOTE
Le app modello non supportano i connettori che richiedono un gateway.
Power Query dell'invio del connettore
07/12/2021 • 3 minutes to read
Introduzione
Questo articolo fornisce istruzioni su come inviare il connettore personalizzato Power Query per la
certificazione. Non inviare il connettore per la certificazione a meno che non si sia stati indirizzati dal contatto
Microsoft.
Prerequisiti
Dopo aver approvato la certificazione, assicurarsi che il connettore soddisfi i requisiti di certificazione e segua
tutte le linee guida relative a funzionalità, stile e sicurezza. Preparare gli artefatti di invio per l'invio.
Dopo aver completato la progettazione del connettore personalizzato Power Query, è necessario inviare un
articolo che fornisce istruzioni su come usare il connettore per la pubblicazione in docs.microsoft.com. Questo
articolo illustra il layout di un articolo di questo tipo e come formattare il testo dell'articolo.
NOTE
L'articolo seguente sul connettore è fornito da , il proprietario di questo connettore e un membro del programma
<company name> di certificazione microsoft Power Query Connector. In caso di domande sul contenuto di questo
articolo o in caso di modifiche da apportare a questo articolo, visitare il sito Web e usare i canali <company name> di
supporto.
NOTE
Alcune funzionalità possono essere presenti in un prodotto, ma non in altre a causa di pianificazioni della distribuzione e
funzionalità specifiche dell'host.
Prerequisiti
Se il connettore personalizzato richiede l'installazione di altre applicazioni nel sistema che esegue il connettore o
richiede l'esecuzione di una procedura di configurazione prima di usare il connettore personalizzato, è
necessario includere una sezione Prerequisiti che descrive queste procedure di installazione e configurazione.
Questa sezione includerà anche tutte le informazioni sulla configurazione di varie versioni del connettore (se
applicabile).
Funzionalità supportate
Questa sezione deve contenere un elenco delle funzionalità supportate dal connettore personalizzato. Queste
funzionalità sono in genere un elenco puntato che indica se il connettore supporta le modalità Importazione e
DirectQuery e anche eventuali opzioni avanzate disponibili nella finestra di dialogo iniziale visualizzata dopo che
l'utente ha selezionato il connettore in Recuperare i dati.
Istruzioni di connessione
Questa sezione contiene le procedure necessarie per connettersi ai dati. Se il connettore personalizzato viene
usato solo in Power Query Desktop, è necessaria una sola procedura. Tuttavia, se il connettore personalizzato
viene usato sia in Power Query Desktop che in Power Query Online, è necessario specificare una procedura
separata in sezioni separate per ogni istanza. Ciò significa che se il connettore personalizzato viene usato solo da
Power Query Desktop, sarà disponibile una procedura che inizia con un'intestazione di secondo ordine e una
singola procedura dettagliata. Se il connettore personalizzato viene usato da Power Query Desktop e Power
Query Online, saranno disponibili due procedure. Ogni procedura inizia con una seconda intestazione
dell'ordine e contiene una procedura dettagliata separata sotto ogni intestazione. Per esempi di ognuno di
questi tipi di procedure, vedere gli articoli sui connettori di esempio.
La procedura è costituito da un elenco numerato che include ogni passaggio necessario per inserire le
informazioni necessarie per fornire una connessione normale (senza richiedere opzioni avanzate) ai dati.
Connessione l'uso di opzioni avanzate (facoltativo )
Se il connettore personalizzato contiene opzioni avanzate che possono essere usate per connettersi ai dati,
queste informazioni devono essere trattate in una sezione separata della documentazione. È consigliabile
documentare ognuna delle opzioni avanzate e illustrare lo scopo di ogni opzione avanzata illustrata in questa
sezione.
Risoluzione dei problemi (facoltativo )
Se si conoscono errori comuni che possono verificarsi con il connettore personalizzato, è possibile aggiungere
una sezione di risoluzione dei problemi per descrivere i modi per correggere l'errore o risolvere l'errore. Questa
sezione può includere anche informazioni su eventuali limitazioni note del connettore o sul recupero dei dati. È
anche possibile includere eventuali problemi noti relativi all'uso del connettore per connettersi ai dati.
Istruzioni aggiuntive (facoltativo )
Tutte le altre istruzioni o informazioni sul connettore che non sono state trattate nelle sezioni precedenti
possono essere fornite in questa sezione.