Che cos'è BI Engine?

BigQuery BI Engine è un servizio di analisi in memoria rapido che accelera molte query SQL in BigQuery memorizzando nella cache in modo intelligente i dati che utilizzi più di frequente. BI Engine può accelerare le query SQL da qualsiasi origine, incluse quelle scritte da strumenti di visualizzazione dei dati, e può gestire le tabelle memorizzate nella cache per l'ottimizzazione continua. In questo modo puoi migliorare le prestazioni delle query senza ottimizzazione manuale o suddivisione dei dati in livelli. Puoi utilizzare il clustering e il partizionamento per ottimizzare ulteriormente il rendimento delle tabelle di grandi dimensioni con BI Engine.

Ad esempio, se la dashboard mostra solo i dati dell'ultimo trimestre, valuta la possibilità di partizionare le tabelle in base al tempo in modo che solo le partizioni più recenti vengano caricate in memoria. Puoi anche combinare i vantaggi delle viste materializzate e di BI Engine. Questa operazione funziona particolarmente bene quando le viste materializzate vengono utilizzate per unire e appiattire i dati per ottimizzarne la struttura per BI Engine.

BI Engine offre i seguenti vantaggi:

  1. API BigQuery:BI Engine si integra direttamente con l'API BigQuery. Qualsiasi soluzione di BI o applicazione personalizzata che funzioni con l'API BigQuery tramite meccanismi standard come REST o driver JDBC e ODBC può utilizzare BI Engine senza modifiche.
  2. Runtime vettorizzato:con BI Engine, BigQuery utilizza una tecnica moderna chiamata elaborazione vettorizzata. L'utilizzo dell'elaborazione vettoriale in un motore di esecuzione consente di utilizzare in modo più efficiente l'architettura della CPU moderna, operando su batch di dati alla volta. BI Engine utilizza anche codifiche avanzate dei dati, in particolare la codifica di dizionario e di lunghezza di esecuzione, per comprimere ulteriormente i dati archiviati nel livello in memoria.
  3. Integrazione perfetta: BI Engine funziona con le funzionalità e i metadati di BigQuery, tra cui viste autorizzate, sicurezza a livello di colonna e riga e mascheramento dei dati.
  4. Prenotazioni:le prenotazioni BI Engine gestiscono l'allocazione della memoria a livello di località del progetto. BI Engine memorizza nella cache colonne o partizioni specifiche sottoposte a query, dando la priorità a quelle nelle tabelle contrassegnate come preferite.

Architettura di BI Engine

BI Engine si integra con qualsiasi strumento di business intelligence (BI), inclusi Looker, Tableau, Power BI e applicazioni personalizzate per accelerare l'esplorazione e l'analisi dei dati.

Architettura di BI Engine

Casi d'uso di BI Engine

BI Engine può accelerare in modo significativo molte query SQL, incluse quelle utilizzate per i dashboard BI. L'accelerazione è più efficace se identifichi le tabelle essenziali per le tue query e le contrassegni come tabelle preferite. Per utilizzare BI Engine, crea una prenotazione che definisca la capacità di archiviazione dedicata a BI Engine. Puoi lasciare che BigQuery determini le tabelle da memorizzare nella cache in base ai modelli di utilizzo del progetto oppure puoi contrassegnare tabelle specifiche per impedire che altro traffico interferisca con l'accelerazione.

BI Engine è utile nei seguenti casi d'uso:

  • Utilizzi strumenti di BI per analizzare i dati: BI Engine può accelerare le query BigQuery indipendentemente dal fatto che vengano eseguite nella console BigQuery, nella libreria client o tramite un'API o un connettore ODBC o JDBC. In questo modo, le prestazioni dei cruscotti connessi a BigQuery tramite una connessione integrata (API) o connettori possono migliorare in modo significativo.
  • Hai determinate tabelle su cui vengono eseguite query più frequentemente: BI Engine ti consente di designare tabelle preferite specifiche da accelerare. Questo è utile se hai un sottoinsieme di tabelle su cui vengono eseguite query più frequentemente o che vengono utilizzate per dashboard ad alta visibilità.

BI Engine potrebbe non soddisfare le tue esigenze nei seguenti casi:

  • Utilizzi caratteri jolly nelle query: le query che fanno riferimento a tabelle con caratteri jolly non sono supportate da BI Engine e non beneficiano dell'accelerazione.

  • Fai molto affidamento a funzionalità BigQuery non supportate: anche se BI Engine supporta la maggior parte delle funzioni e degli operatori SQL quando connetti gli strumenti di business intelligence (BI) a BigQuery, esistono funzionalità non supportate, tra cui tabelle esterne e funzioni definite dall'utente non SQL.

Considerazioni per BI Engine

Quando decidi come configurare BI Engine, tieni presente quanto segue:

Garantire l'accelerazione per query specifiche

Puoi assicurarti che un determinato insieme di query venga sempre accelerato creando un progetto separato con una prenotazione BI Engine. Per farlo, devi assicurarti che la prenotazione BI Engine in quel progetto sia sufficientemente grande da corrispondere alle dimensioni di tutte le tabelle utilizzate in queste query e designare queste tabelle come tabelle preferite per BI Engine. In questo progetto devono essere eseguite solo le query che devono essere accelerate.

Riduci al minimo le unioni

BI Engine funziona meglio con dati pre-uniti o pre-aggregati e con dati in un numero ridotto di unioni. Ciò è particolarmente vero quando un lato del join è grande e gli altri sono molto più piccoli, ad esempio quando esegui una query su una tabella dei fatti di grandi dimensioni unita a una tabella delle dimensioni di piccole dimensioni. Puoi combinare BI Engine con le viste materializzate che eseguono join per produrre una singola tabella grande e piatta. In questo modo, gli stessi join non devono essere eseguiti su ogni query.

Comprendere l'impatto di BI Engine

Puoi comprendere meglio in che modo i tuoi carichi di lavoro traggono vantaggio da BI Engine esaminando le statistiche di utilizzo in Cloud Monitoring o eseguendo query su INFORMATION_SCHEMA in BigQuery. Assicurati di disattivare l'opzione Utilizza risultati memorizzati nella cache in BigQuery per ottenere il confronto più accurato. Per ulteriori informazioni, consulta la sezione Utilizzare i risultati delle query memorizzati nella cache.

Limitazioni

Le query che contengono la funzione VECTOR_SEARCH non vengono accelerate da BigQuery BI Engine.

Quote e limiti

Consulta Quote e limiti di BigQuery per le quote e i limiti che si applicano a BI Engine.

Prezzi

Per informazioni sui prezzi di BI Engine, consulta la pagina Prezzi di BigQuery.

Ottimizzazione e accelerazione delle query

BigQuery e, per estensione, BI Engine, suddivide il piano di query prodotto per una query SQL in sottoquery. Una sottoquery contiene una serie di operazioni, come la scansione, il filtraggio o l'aggregazione dei dati, e spesso è l'unità di esecuzione su uno shard.

Sebbene tutte le query SQL supportate da BigQuery vengano eseguite correttamente da BI Engine, solo alcune subquery vengono ottimizzate. In particolare, BI Engine è ottimizzato soprattutto per le sottoquery a livello di foglia che analizzano i dati dallo spazio di archiviazione ed eseguono operazioni come filtro, calcolo, aggregazione, ordinamento e determinati tipi di join. Le altre sottoquery che non sono ancora completamente accelerate da BI Engine tornano a BigQuery per l'esecuzione.

A causa di questa ottimizzazione selettiva, le query di business intelligence o di tipo dashboard più semplici traggono il massimo vantaggio da BI Engine (con conseguente riduzione del numero di subquery) perché la maggior parte del tempo di esecuzione viene speso per le subquery a livello di foglia che elaborano i dati non elaborati.

Passaggi successivi