Condividi tramite


Problemi comuni

Power Query

Mantenimento dell'ordinamento

Si potrebbe presupporre che se si ordinano i dati, le operazioni downstream mantengono l'ordinamento.

Ad esempio, se si ordina una tabella di vendita in modo che la vendita più grande di ogni negozio venga visualizzata per prima, è possibile prevedere che l'operazione "Rimuovi duplicati" restituisca solo la vendita più alta per ogni negozio. E questa operazione potrebbe, infatti, sembra funzionare. Tuttavia, questo comportamento non è garantito.

A causa del modo in cui Power Query ottimizza determinate operazioni, tra cui ignorarle o eseguirne l'offload in origini dati (che possono avere un proprio comportamento di ordinamento univoco), l'ordinamento non è garantito che venga mantenuto tramite aggregazioni (ad Table.Groupesempio ), merge (ad esempio Table.NestedJoin) o rimozione duplicata (ad esempio Table.Distinct).

Esistono diversi modi per aggirare questo problema. Di seguito sono riportati alcuni suggerimenti:

  • Eseguire un ordinamento dopo l'applicazione dell'operazione downstream. Ad esempio, quando si raggruppano righe, ordinare la tabella nidificata in ogni gruppo prima di applicare altri passaggi. Ecco alcuni esempi di codice M che illustrano questo approccio: Table.Group(Sales_SalesPerson, {"TerritoryID"}, {{"SortedRows", each Table.Sort(_, {"SalesYTD", Order.Descending})}})
  • Memorizzare nel buffer i dati (utilizzando Table.Buffer) prima di applicare l'operazione downstream. In alcuni casi, questa operazione fa sì che l'operazione downstream mantenga l'ordinamento memorizzato nel buffer.
  • Usare la classificazione. Ad esempio, invece di usare Table.Distinct, è possibile ordinare in base alle colonne contenenti i valori duplicati, classificare in base a una colonna tie-breaker (ad esempio modified_date) e quindi filtrare per mantenere solo le righe di rango 1.

Inferenza del tipo di dati

In alcuni casi Power Query potrebbe rilevare erroneamente il tipo di dati di una colonna. Ciò è dovuto al fatto che Power Query deduce i tipi di dati usando solo le prime 200 righe di dati. Se i dati nelle prime 200 righe sono in qualche modo diversi rispetto ai dati dopo la riga 200, Power Query può finire per raccogliere il tipo errato. Tenere presente che un tipo non corretto non genera sempre errori. A volte i valori risultanti sono semplicemente errati, rendendo il problema più difficile da rilevare.

Si supponga, ad esempio, una colonna contenente numeri interi nelle prime 200 righe (ad esempio tutti gli zeri), ma contiene numeri decimali dopo la riga 200. In questo caso, Power Query deduce il tipo di dati della colonna come Numero intero (Int64.Type). Questa inferenza comporta il troncamento delle parti decimali di qualsiasi numero non intero.

In alternativa, si immagini una colonna contenente valori di data testuale nelle prime 200 righe e altri tipi di valori di testo dopo la riga 200. In questo caso, Power Query deduce il tipo di dati della colonna come Date. Questa inferenza comporta che i valori di testo non data vengano considerati come errori di conversione del tipo.

Poiché il rilevamento dei tipi funziona sulle prime 200 righe, ma la profilatura dei dati può funzionare sull'intero set di dati, è possibile prendere in considerazione l'uso della funzionalità Profiling dati per ottenere un'indicazione anticipata nella Editor di query sugli errori (dal rilevamento dei tipi o da un numero qualsiasi di altri motivi) oltre le prime N righe.

Connessioni chiuse forzatamente dall'host remoto

Quando ci si connette a varie API, è possibile che venga visualizzato l'avviso seguente:

Data source error: Unable to read data from the transport connection: An existing connection was forcibly closed by the remote host

Se si verifica questo errore, è molto probabile che si verifichi un problema di rete. In genere, le prime persone a cui rivolgersi sono i proprietari dell'origine dati a cui si sta tentando di connettersi. Se non pensano che siano quelli che chiudono la connessione, è possibile qualcosa lungo la strada (ad esempio, un server proxy, router/gateway intermedi e così via).

Indipendentemente dal fatto che questa operazione venga riprodotta solo con dati o solo dimensioni di dati maggiori, è probabile che si verifichi 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 i modi alternativi per estrarre dati dall'API (procedure consigliate per le origini dati seguenti).

Le suite di crittografia TLS RSA sono deprecate

A partire dal 30 ottobre 2020, le seguenti suite di crittografia verranno ritirate dai nostri server.

  • "TLS_RSA_WITH_AES_256_GCM_SHA384"
  • "TLS_RSA_WITH_AES_128_GCM_SHA256"
  • "TLS_RSA_WITH_AES_256_CBC_SHA256"
  • "TLS_RSA_WITH_AES_128_CBC_SHA256"

Di seguito sono elencati i pacchetti di crittografia supportati:

  • "TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256"
  • "TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384"
  • "TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256"
  • "TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384"
  • "TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256"
  • "TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA384"
  • "TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256"
  • "TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384"

Le suite di crittografia vengono utilizzate per crittografare i messaggi per proteggere una connessione di rete tra client/server e altri server. Stiamo rimuovendo l'elenco precedente di suite di crittografia per rispettare i nostri attuali protocolli di sicurezza. A partire dal 1 marzo 2021, i clienti possono utilizzare solo le nostre suite di crittografia standard.

Si tratta dei pacchetti di crittografia a cui ci si connette il server a cui ci si connette deve supportare per la connessione da Power Query Online o Power BI.

In Power Query Desktop (Power BI, Excel) non vengono controllate le suite di crittografia. Se si sta provando a connettersi a Power Platform (ad esempio flussi di dati di Power Platform) o al servizio Power BI, è necessaria una di queste suite di crittografia abilitate nel sistema operativo. Puoi aggiornare la versione di Windows o aggiornare il registro TLS di Windows per assicurarti che l'endpoint del server supporti una di queste crittografie.

Per verificare che il server sia conforme al protocollo di sicurezza, è possibile eseguire un test usando uno strumento di crittografia e scanner TLS. Un esempio potrebbe essere SSLLABS.

I clienti devono aggiornare i propri server prima del 1 marzo 2021. Per altre informazioni sulla configurazione dell'ordine TLS Cipher Suite, vedi Gestire Transport Layer Security (TLS).

Revoca del certificato

Una versione futura di Power BI Desktop causa un errore di connessione SSL da Desktop quando tutti i certificati nella catena SSL mancano lo stato di revoca dei certificati. Si tratta di una modifica dello stato corrente, in cui la revoca ha causato solo un errore di connessione nel caso in cui il certificato sia stato revocato in modo esplicito. Altri problemi di certificato possono includere firme non valide e scadenza del certificato.

Poiché sono presenti configurazioni in cui lo stato di revoca potrebbe essere rimosso, ad esempio con i server proxy aziendali, verrà offerta un'altra opzione per ignorare i certificati che non dispongono di informazioni di revoca. Questa opzione consente situazioni in cui le informazioni di revoca vengono rimosse in determinati casi, ma non si vuole ridurre completamente la sicurezza, per continuare a funzionare.

Non è consigliabile, ma gli utenti possono continuare a disattivare completamente i controlli di revoca.

Errore: Valutazione annullata

Power Query restituisce il messaggio "Valutazione annullata" quando l'analisi in background è disabilitata e l'utente passa tra query o chiude il Editor di query mentre una query è in corso di aggiornamento.

Errore: la chiave non corrisponde ad alcuna riga nella tabella

Esistono molti motivi per cui Power Query potrebbe restituire un errore per cui la chiave non corrisponde ad alcuna riga nella tabella. Quando si verifica questo errore, il motore Mashup non riesce a trovare il nome della tabella che sta cercando. I motivi per cui questo errore può verificarsi includono:

  • Il nome della tabella è stato modificato, ad esempio nell'origine dati stessa.
  • L'account usato per accedere alla tabella non dispone di privilegi sufficienti per leggere la tabella.
  • È possibile avere più credenziali per una singola origine dati, che non è supportata nel servizio Power BI quando si usano connessioni cloud personali. Questo errore può verificarsi, ad esempio, quando l'origine dati è un'origine dati cloud e vengono usati più account per accedere all'origine dati contemporaneamente con credenziali diverse. Se l'origine dati è locale, è necessario usare il gateway dati locale.

Limitazione: requisito aggiunto al dominio per i computer gateway quando si usa autenticazione di Windows

L'uso di autenticazione di Windows con un gateway locale richiede che il computer gateway sia aggiunto a un dominio. Questo vale per tutte le connessioni configurate con "autenticazione di Windows tramite il gateway*. Gli account di Windows usati per accedere a un'origine dati potrebbero richiedere l'accesso in lettura ai componenti condivisi nella directory di Windows e all'installazione del gateway.

Limitazione: l'aggiornamento OAuth2 tra tenant non è supportato in servizio Power BI

Se si vuole connettersi a un'origine dati da servizio Power BI usando OAuth2, l'origine dati deve trovarsi nello stesso tenant di servizio Power BI. Attualmente, gli scenari di connessione multi-tenant non sono supportati con OAuth2.

Limitazione: l'endpoint di autenticazione ad AD FS personalizzato non è supportato in servizio Power BI

La possibilità di usare un endpoint di autenticazione di Active Directory Federation Services (AD FS) personalizzato non è supportato in servizio Power BI. Gli utenti potrebbero riscontrare l'errore seguente: il servizio token segnalato dalla risorsa non è attendibile.

Limitazione: gli account guest non sono supportati

L'uso di account guest di un tenant per connettersi ai dati usando i connettori di Power Query non è attualmente supportato.

Expression.Error: la valutazione ha generato un overflow dello stack e non può continuare

Gli errori di overflow dello stack possono essere causati da un bug nel codice M. Ad esempio, la funzione seguente genera un overflow dello stack perché richiama ripetutamente in se stessa senza alcun tipo di condizione finale. Una funzione che chiama se stessa come questa è nota come una funzione "ricorsiva".

let f = (x) => @f(x + 1) in f(0)

Ecco alcuni modi comuni per risolvere un overflow dello stack nel codice M.

  • Assicurarsi che le funzioni ricorsive terminino effettivamente quando viene raggiunta la condizione finale prevista.
  • Sostituire la ricorsione con l'iterazione , ad esempio usando funzioni come List.Transform, List.Generate o List.Accumulate.

Expression.Error: valutazione esaurita della memoria e non può continuare

Gli errori di memoria insufficiente (o gli OEM) possono essere causati da un numero eccessivo di operazioni di memoria su tabelle molto grandi. Ad esempio, il codice M seguente produce un OOM perché tenta di caricare un miliardo di righe in memoria contemporaneamente.

Table.Buffer(Table.FromList({1..1000000000}, Splitter.SplitByNothing()))

Per risolvere gli errori di memoria insufficiente, ottimizzare le operazioni a elevato utilizzo di memoria, ad esempio ordinamenti, join, raggruppamenti e valori distinti, assicurandosi che vengano piegati all'origine o rimuovendoli del tutto, se possibile. Gli ordinamenti, ad esempio, spesso non sono necessari.

Flussi di dati

Annullare l'aggiornamento del flusso di dati

In alcuni casi si avvia un aggiornamento del flusso di dati, ma dopo averla avviata, ci si rende conto di voler modificare un'altra cosa prima di aggiornare i dati. In tal caso, è necessario attendere il completamento dell'aggiornamento. L'arresto di un aggiornamento a metà strada perché il processo sta già lavorando per ottenere i dati e aggiornare le tabelle nell'area di lavoro o nell'ambiente non è attualmente supportato.

Si prevede di aggiungere il supporto per annullare un aggiornamento del flusso di dati in futuro.