OData - Best practice e risoluzione dei problemi
Imparare a utilizzare al meglio il client OData con le best practice e i suggerimenti sulla risoluzione dei problemi.
Prestazioni
Le prestazioni dei servizi OData dipendono dai tipi di dati a cui si accede. Ad esempio, la lettura di punti dati 1M richiede approssimativamente da 2:30 a 3:00 minuti (6000 punti dati al secondo). Ogni richiesta completa richiede circa 120 ms e il client OData potrebbe dover sostenere un ulteriore carico di lavoro dovuto alle attività di elaborazione e gestione dei dati.
Seguire queste best practice generali per ottenere prestazioni ottimali:
- Non utilizzare le espressioni
OR
o l'espansione delle tabelle. - Se possibile, utilizzare più query.
- Utilizzare l'aggiornamento incrementale.
- Se possibile, eseguire il partizionamento dei set di dati.
- Conservare solo i dati necessari. Rimuovere i dati e le colonne non necessari.
- Mantenere i dati storici in un report separato se non sono necessari quotidianamente. Aggiornare il report dei dati storici quando sono necessari.
Scrittura di query performanti
I servizi OData accettano più richieste simultanee ed elaborano le richieste in parallelo. Inoltre, se possibile, i client OData recapitano più query simultaneamente.
È preferibile creare e utilizzare più query anziché una singola query complessa con, ad esempio, espressioni OR
o espansioni. Una singola query complessa deve essere ripetuta in sequenza con la latenza di andata e ritorno aggiunta per ogni richiesta.
Scaricare i dati utilizzando più query e unire le tabelle risultanti nel client OData per utilizzare le tabelle come se fossero una sola.
Utilizzo dell'aggiornamento incrementale
L'aggiornamento incrementale consente set di dati di grandi dimensioni con i seguenti vantaggi:
- Solo i dati modificati devono essere aggiornati.
- Non è necessario mantenere lunghe connessioni ai sistemi di origine.
- Aggiornando una quantità ridotta di dati si riduce il consumo generale di memoria e di altre risorse.
Ogni client OData potrebbe disporre di funzionalità di aggiornamento incrementale diverse. Per Microsoft Power BI, vedere Aggiornamento incrementale per i modelli semantici in Power BI.
Partizionamento di set di dati di grandi dimensioni
Se è necessario scaricare set di dati di grandi dimensioni, partizionarli e creare una query separata per leggere ogni partizione. Alcuni client OData, ad esempio Microsoft Power BI, possono elaborare più query simultaneamente. Il partizionamento del set di dati può contribuire a migliorare le prestazioni in modo significativo.
Ad esempio, se si leggono punti dati degli ultimi due anni, provare a suddividere la query in due, in modo che ogni query legga un anno di dati. Unire (concatenare) le tabelle in Power BI.
Denominazione delle proprietà nei metadati e nei dati CDF RAW
Le chiavi delle proprietà per i metadati e l'area di gestione temporanea di CDF (RAW) devono essere identificatori validi e possono contenere solo lettere, numeri o trattini di sottolineatura. I servizi OData riscrivono qualsiasi altro carattere in un trattino di sottolineatura. Per i risultati migliori e più prevedibili, assicurarsi che i dati inseriti seguano la convenzione di denominazione per le chiavi delle proprietà: ^[a-zA-Z][_a-za-z0-9]\*[a-zA-Z0-9]\$
.
Risoluzione dei problemi
Trovare informazioni per risolvere i problemi utilizzando CDF come origine dati per i client OData.
Le query richiedono troppo tempo
Un progetto CDF può contenere centinaia di milioni di righe di dati, pertanto non è fattibile caricarle tutte in un client OData. Se l'esecuzione della query richiede ore, è probabile che si stia cercando di caricare una quantità eccessiva di dati.
Vedere Filtro di elementi nei modelli di dati e Filtro di tipi di risorsa asset-centric per ulteriori informazioni sulle funzionalità di filtro supportate dai servizi OData.
Non si ottengono tutti i risultati
Se si ottengono meno risultati del previsto, è possibile che si stia utilizzando una funzione di filtro che CDF non supporta, ad esempio startswith
nella colonna Nome per Serie temporale.
Vedere Filtro di elementi nei modelli di dati e Filtro di tipi di risorsa asset-centric per ulteriori informazioni sulle funzionalità di filtro supportate dai servizi OData.
Impossibile recuperare valori minimi da CDF RAW
Se si utilizzano dati dall'area di gestione temporanea di CDF, CDF RAW, in un client OData, potrebbero verificarsi problemi nel recupero di numeri piccoli in notazione esponenziale.
CDF RAW non ha uno schema, ma le librerie OData in alcuni client OData come Power BI tentano di selezionare il formato corretto dei dati. Attualmente, Power BI sceglie il decoder errato per i numeri piccoli in notazione esponenziale, pertanto si potrebbe ricevere un errore simile al seguente:
DataSource,Error: OData: Cannot convert the literal '2.89999206870561 to the expected type 'Edm.Decimal',
Per risolvere il problema, inserire i valori in CDF RAW come stringhe e non come numeri, quindi convertire le stringhe in numeri in Power BI, ad esempio utilizzando la funzione M Decimal.From
Power Query. Non si perderà precisione e poiché la maggior parte dei decoder JSON accetta stringhe al posto di numeri, i client che si aspettano numeri continueranno a funzionare.