Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Utilizzando l'accelerazione delle query, applicazioni e framework di analisi possono ottimizzare l'elaborazione dei dati. Recuperano solo i dati necessari per eseguire una determinata operazione. Questo approccio riduce il tempo e la potenza di calcolo necessari per ottenere informazioni sui dati memorizzati.
Informazioni generali
L'accelerazione delle query accetta predicati di filtro e proiezioni di colonna. Utilizzando questi predicati e proiezioni, le applicazioni possono filtrare righe e colonne durante la lettura dei dati dal disco. Solo i dati che soddisfano le condizioni di un predicato vengono trasferiti attraverso la rete all'applicazione. Questo approccio riduce la latenza di rete e i costi di calcolo.
Usa SQL per specificare i predicati del filtro a riga e le proiezioni di colonne in una richiesta di accelerazione di query. Tenere presenti i vincoli seguenti:
- Una richiesta elabora un solo file.
- L'accelerazione delle query non supporta funzionalità relazionali avanzate di SQL, come join e gruppi per aggregati.
- L'accelerazione delle query supporta i dati in formato CSV e JSON come input per ogni richiesta.
La funzionalità di accelerazione delle query non è limitata a Data Lake Storage (account di archiviazione in cui è abilitato lo spazio dei nomi gerarchico). L'accelerazione query è compatibile con i BLOB negli account di archiviazione che non hanno uno spazio dei nomi gerarchico abilitato. Questa compatibilità significa che puoi ottenere la stessa riduzione della latenza di rete e dei costi di calcolo quando elabori dati che hai già memorizzati come blob negli account di archiviazione.
Per un esempio di come usare l'accelerazione delle query in un'applicazione client, vedere Filtrare i dati usando l'accelerazione delle query di Azure Data Lake Storage.
Flusso di dati
Il diagramma seguente illustra come un'applicazione tipica usa l'accelerazione delle query per elaborare i dati.
L'applicazione client richiede dati di file specificando predicati e proiezioni di colonne.
L'accelerazione delle query analizza la query SQL specificata e distribuisce il lavoro per analizzare e filtrare i dati.
I processori leggono i dati dal disco, li analizzano utilizzando il formato appropriato e poi filtrano i dati applicando i predicati e le proiezioni a colonne specificati.
L'accelerazione query combina i frammenti di risposta per ritrasmetterli all'applicazione client.
L'applicazione client riceve e analizza la risposta trasmessa. L'applicazione non deve filtrare altri dati e può applicare direttamente il calcolo o la trasformazione desiderata.
Prestazioni migliori a un costo inferiore
L'accelerazione delle query ottimizza le prestazioni riducendo la quantità di dati che la tua applicazione trasferisce e elabora.
Per calcolare un valore aggregato, le applicazioni in genere recuperano tutti i dati da un file e quindi elaborano e filtrano i dati in locale. Un'analisi dei modelli di input e output (I/O) per i carichi di lavoro analitici rivela che le applicazioni richiedono tipicamente solo 20% dei dati che leggono per eseguire un calcolo specifico. Questo dato rimane valido anche dopo aver applicato tecniche come il partition pruning. Questo risultato significa che le applicazioni trasferiscono, analizzano e filtrano inutilmente 80% dei dati. Questo modello, progettato per rimuovere i dati non necessario, comporta un costo di calcolo significativo.
Anche se Azure offre una rete ad alte prestazioni, sia in termini di throughput che di latenza, trasferire dati inutilmente su quella rete è comunque costoso per le prestazioni delle applicazioni. Filtrando i dati indesiderati durante la richiesta di archiviazione, l'accelerazione delle query elimina questo costo.
Inoltre, il carico della CPU necessario per analizzare e filtrare i dati non necessari richiede che l'applicazione fornisca VM più grandi e più grandi per svolgere il proprio lavoro. Trasferendo questo carico di calcolo all'accelerazione delle query, le applicazioni possono realizzare risparmi significativi sui costi.
Applicazioni che possono trarre vantaggio dall'accelerazione delle query
L'accelerazione delle query è progettata per framework di analisi distribuita e applicazioni di elaborazione dati:
I framework di analisi distribuita come Apache Spark e Apache Hive includono uno strato di astrazione dello storage all'interno del framework. Questi motori includono anche ottimizzatori di query che possono incorporare la conoscenza delle funzionalità del servizio di I/O sottostante nel determinare un piano di esecuzione ottimale della query per le query degli utenti. Questi framework integrano l'accelerazione delle query. Di conseguenza, gli utenti di questi framework vedono una latenza delle query migliorata e un costo totale inferiore di proprietà senza dover apportare modifiche alle query.
Le applicazioni di elaborazione dati tipicamente eseguono trasformazioni dati su larga scala che potrebbero non portare direttamente a insight analitici, quindi non sempre utilizzano framework di analisi distribuita consolidati. Queste applicazioni spesso hanno un rapporto più diretto con il servizio di archiviazione sottostante, quindi possono beneficiare direttamente di funzionalità come l'accelerazione delle query.
Per un esempio di come un'applicazione può integrare l'accelerazione delle query, vedere Filtrare i dati usando l'accelerazione delle query di Azure Data Lake Storage.
Tariffazione
A causa dell'aumento del carico di calcolo all'interno del servizio Azure Data Lake Storage, il modello di prezzo per l'accelerazione delle query differisce dal normale modello di transazione di Azure Data Lake Storage. L'accelerazione delle query addebita un costo per la quantità di dati analizzati e un costo per la quantità di dati restituiti al chiamante. Per altre informazioni, vedere Prezzi di Azure Data Lake Storage.
Nonostante il passaggio al modello di fatturazione, il modello tariffario dell'accelerazione delle query è progettato per ridurre il costo totale di gestione di un carico di lavoro, considerata la riduzione dei costi, molto più elevati, delle VM.