Funzioni e operatori SQL ottimizzati

BigQuery BI Engine ottimizza le seguenti funzioni e operatori GoogleSQL quando colleghi gli strumenti di business intelligence (BI) a BigQuery utilizzando query o visualizzazioni personalizzate. Le query che utilizzano funzioni e operatori non inclusi in questo elenco potrebbero essere eseguite più lentamente.

Per un elenco delle funzionalità SQL non supportate, consulta Sezione Funzionalità non supportate.

Per ulteriori informazioni sull'utilizzo di query e visualizzazioni personalizzate in Looker Studio, consulta Eseguire il collegamento a BigQuery. Per ulteriori informazioni su come collegare altri strumenti di BI a BigQuery, consulta Panoramica dell'interfaccia SQL di BigQuery BI Engine.

Per un elenco di tutte le funzioni GoogleSQL, consulta Funzioni GoogleSQL. Per un elenco di tutti gli operatori GoogleSQL, vedi Operatori GoogleSQL.

Operatori ottimizzati

  • ORDER BY
  • LIMIT numero [OFFSET skip_rows]
  • UNION ALL
  • HAVING
  • GROUP BY
  • WHERE
  • INNER, LEFT e RIGHT JOIN (con limiti di dimensioni inferiori)

Funzioni ottimizzate

Confronto

  • =
  • <>
  • <
  • <=
  • >
  • >=
  • BETWEEN
  • IN
  • LEAST
  • GREATEST
  • CASE
  • COALESCE
  • IF
  • ISNULL
  • IS [NOT] NULL
  • IS [NOT] TRUE
  • IS [NOT] FALSE
  • IFNULL
  • NULLIF

Logico

  • NOT
  • AND
  • OR

Matematica

  • - (meno unitario)
  • +
  • - (meno binario)
  • *
  • /
  • IEEE_DIVIDE
  • DIV
  • MOD
  • ROUND
  • TRUNC
  • FLOOR
  • CEIL
  • ABS
  • SIGN
  • SQRT
  • EXP
  • POW
  • IS_INF
  • IS_NAN
  • SIN
  • SINH
  • ASIN
  • ASINH
  • COS
  • COSH
  • ACOS
  • ACOSH
  • TAN
  • TANH
  • ATAN
  • ATAN2
  • ATANH
  • LOG
  • LN
  • LOG10

A livello di bit

  • BIT_COUNT
  • ~ (NOT bit a bit)
  • & (a livello di bit AND)
  • | (a livello di bit OR)
  • ^ (a livello di bit XOR)
  • << (spostamento a sinistra bit per via)
  • >> (spostamento a destra bit a destra)

Stringhe e byte

  • ASCII
  • BYTE_LENGTH
  • CHAR_LENGTH
  • CHR
  • CODE_POINTS_TO_BYTES
  • CODE_POINTS_TO_STRING
  • CONCAT
  • ENDS_WITH
  • FORMAT
  • FROM_BASE32
  • FROM_BASE64
  • FROM_HEX
  • INITCAP
  • INSTR
  • JSON_EXTRACT_SCALAR
  • JSON_EXTRACT
  • LEFT
  • LENGTH
  • LOWER
  • LPAD
  • LTRIM
  • NORMALIZE
  • NORMALIZE_AND_CASEFOLD
  • REGEXP_CONTAINS
  • REGEXP_EXTRACT
  • REGEXP_INSTR
  • REGEXP_REPLACE
  • REPEAT
  • REPLACE
  • REVERSE
  • RIGHT
  • RPAD
  • RTRIM
  • SAFE_CONVERT_BYTES_TO_STRING
  • SOUNDEX
  • STARTS_WITH
  • STRING_LIKE
  • STRPOS
  • SUBSTR
  • TO_BASE32
  • TO_BASE64
  • TO_HEX
  • TRANSLATE
  • TRIM
  • UNICODE
  • UPPER

Timestamp, date e ore

  • Funzioni di timestamp
    • TIMESTAMP_MICROS
    • TIMESTAMP_MILLIS
    • TIMESTAMP_SECONDS
    • TIMESTAMP
    • STRING(timestamp_expression,[timezone])
    • UNIX_SECONDS
    • UNIX_MILLIS
    • UNIX_MICROS
    • FORMAT_TIMESTAMP
    • PARSE_TIMESTAMP
    • TIMESTAMP_ADD
    • TIMESTAMP_SUB
    • TIMESTAMP_DIFF
    • EXTRACT
    • DATE
    • TIME
    • DATETIME
    • TIMESTAMP_TRUNC
  • Funzioni di data
    • DATE(anno, mese, giorno)
    • DATE_FROM_UNIX_DATE
    • UNIX_DATE
    • FORMAT_DATE
    • PARSE_DATE
    • DATE_ADD
    • DATE_SUB
    • DATE_DIFF
    • EXTRACT (da DATE)
    • DATE_TRUNC
    • CURRENT_TIMESTAMP
  • Funzioni temporali
    • EXTRACT
    • FORMAT_TIME
    • PARSE_TIME
    • TIME_ADD
    • TIME_SUB
    • TIME_DIFF
    • TIME_TRUNC
    • CURRENT_TIME
  • Funzioni di data/ora
    • DATETIME
    • EXTRACT
    • FORMAT_DATETIME
    • PARSE_DATETIME
    • DATETIME_ADD
    • DATETIME_SUB
    • DATETIME_DIFF
    • DATETIME_TRUNC
    • CURRENT_DATETIME

Hashing

  • FARM_FINGERPRINT
  • MD5
  • SHA1
  • SHA256
  • SHA512

Networking

  • NET_IP_IN_NET
  • NET_MAKE_NET
  • NET.HOST
  • NET.REG_DOMAIN
  • NET.PUBLIC_SUFFIX
  • NET.IP_FROM_STRING
  • NET.IP_TO_STRING
  • NET.IP_NET_MASK
  • NET.IP_TRUNC
  • NET.IPV4_FROM_INT64
  • NET.IPV4_TO_INT64

Area geografica

  • Costruttori
    • ST_GEOGPOINT
    • ST_MAKELINE
    • ST_MAKEPOLYGON
    • ST_MAKEPOLYGONORIENTED
  • Parser
    • ST_GEOGFROMGEOJSON
    • ST_GEOGFROMTEXT
    • ST_GEOGFROMWKB
    • ST_GEOGFROMWKB
    • ST_GEOGPOINTFROMGEOHASH
  • Formattatori
    • ST_ASBINARY
    • ST_ASGEOJSON
    • ST_ASKML
    • ST_GEOHASH
  • Trasformazioni
    • ST_BOUNDARY
    • ST_CENTROID
    • ST_CLOSESTPOINT
    • ST_CONVEXHULL
    • ST_DIFFERENCE
    • ST_EXTERIORRING
    • ST_INTERSECTION
    • ST_SIMPLIFY
    • ST_SNAPTOGRID
  • Accessori
    • ST_DIMENSION
    • ST_ENDPOINT
    • ST_GEOMETRYTYPE
    • ST_ISCOLLECTION
    • ST_ISEMPTY
    • ST_NPOINTS
    • ST_NUMGEOMETRIES
    • ST_NUMPOINTS
    • ST_POINTN
    • ST_STARTPOINT
    • ST_X
    • ST_Y
  • Predicati
    • ST_CONTAINS
    • ST_COVEREDBY
    • ST_COVERS
    • ST_DISJOINT
    • ST_DWITHIN
    • ST_EQUALS
    • ST_INTERSECTS
    • ST_INTERSECTSBOX
    • ST_TOUCHES
    • ST_WITHIN
  • Misure
    • ST_ANGLE
    • ST_AREA
    • ST_AZIMUTH
    • ST_DISTANCE
    • ST_LENGTH
    • ST_MAXDISTANCE
    • ST_PERIMETER

Funzioni SICURO

  • Matematico
    • MOD
    • ROUND
    • ABS
    • SQRT
    • POW
    • SINH
    • ASIN
    • COSH
    • ACOS
    • ACOSH
    • ATANH
    • LN
    • LOG
    • LOG10
    • FLOOR
    • CEIL
    • DIV
    • EXP
    • ROUND
    • SAFE_NEGATE
    • SAFE_ADD
    • SAFE_SUBTRACT
    • SAFE_MULTIPLY
    • SAFE_DIVIDE
  • Stringhe
    • REGEXP_CONTAINS
    • REGEXP_EXTRACT
    • REGEXP_REPLACE
    • FORMAT
    • SUBSTR
    • ASCII
    • SAFE_CONVERT_BYTES_TO_STRING
    • INSTR
    • LEFT
    • RIGHT
    • TRANSLATE
    • INITCAP
  • Timestamp, date e ore
    • DATE_FROM_UNIX_DATE
    • PARSE_DATE
    • PARSE_DATETIME
    • PARSE_TIME
    • PARSE_TIMESTAMP
    • FORMAT_TIMESTAMP
    • TIMESTAMP_SECONDS
    • TIMESTAMP_MILLIS
    • TIMESTAMP_MICROS
  • Networking
    • NET.SAFE_IP_FROM_STRING
  • Altro
    • SAFE_CAST

Funzioni di aggregazione

  • SUM
  • COUNT
  • COUNTIF
  • ANY_VALUE
  • AVG
  • MAX
  • MIN
  • HLL_COUNT.INIT
  • HLL_COUNT.MERGE
  • HLL_COUNT.MERGE_PARTIAL
  • La clausola GROUP BY
  • BIT_AND
  • BIT_OR
  • BIT_XOR
  • LOGICAL_AND
  • LOGICAL_OR
  • DISJUNCTION_AGG
  • STRING_AGG
  • CORR
  • COVAR_POP
  • COVAR_SAMP
  • STDDEV_POP
  • STDDEV_SAMP
  • STDDEV
  • VAR_POP
  • VAR_SAMP
  • VARIANCE
  • APPROX_COUNT_DISTINCT

Funzioni finestra

Funzioni finestra, note anche come funzioni analitiche, presentano le seguenti limitazioni quando accelerata da BigQuery BI Engine:

  • Le fasi di input vengono accelerate da BigQuery BI Engine se non hanno funzioni finestra. In questo caso, INFORMATION_SCHEMA.JOBS visualizza i report bi_engine_statistics.acceleration_mode sotto forma di FULL_INPUT.
  • Le fasi di input delle query con funzioni finestra nelle fasi di input sono accelerate da BI Engine, ma non possono avere limitazioni descritto nella sezione sui limiti delle funzioni della finestra di BI Engine. In questo caso, le fasi di input o la query completa vengono eseguite e BI Engine. In questo caso, INFORMATION_SCHEMA.JOBS visualizza i report bi_engine_statistics.acceleration_mode come FULL_INPUT o FULL_QUERY.

Per ulteriori informazioni sul campo BiEngineStatistics, consulta Riferimento attività.

Limitazioni delle funzioni finestra di BI Engine

Le query con funzioni finestra vengono eseguite in BI Engine solo se si verificano tutte le seguenti condizioni:

  • La query scansiona esattamente una tabella.
    • La tabella non è partizionata.
    • La tabella contiene meno di 5 milioni di righe.
  • La query non contiene operatori JOIN.
  • Le dimensioni della tabella sottoposta a scansione moltiplicate per il numero di operatori di funzioni di finestra non devono superare i 300 MB. Due funzioni finestra con clausole OVER identiche e gli stessi input diretti possono condividere lo stesso operatore di funzione finestra. Ad esempio:
    • La query SELECT ROW_NUMBER() OVER (ORDER BY x), SUM(x) OVER (ORDER BY x) FROM my_table ha un solo operatore di funzione finestra.
    • La query SELECT ROW_NUMBER() OVER (ORDER BY x), SUM(x) OVER (PARTITION BY y ORDER BY x) FROM my_table ha due operatori di funzione finestra perché le due funzioni non hanno la stessa clausola OVER.
    • La query SELECT ROW_NUMBER() OVER (ORDER BY x) FROM (SELECT SUM(x) OVER (ORDER BY x) AS x FROM my_table) ha due operatori di funzione finestra perché le due funzioni hanno input diretti diversi anche se le loro clausole OVER avere lo stesso aspetto.
  • Le funzioni finestra a cui si fa riferimento sono riportate nel seguente elenco di funzioni supportate.

Elenco delle funzioni finestra supportate:

  • ANY_VALUE
  • AVG
  • BIT_AND
  • BIT_OR
  • BIT_XOR
  • CORR
  • COUNT
  • COUNTIF
  • COVAR_POP
  • COVAR_SAMP
  • CUME_DIST
  • DENSE_RANK
  • FIRST_VALUE
  • LAG
  • LAST_VALUE
  • LEAD
  • LOGICAL_AND
  • LOGICAL_OR
  • MAX
  • MIN
  • NTH_VALUE
  • NTILE
  • PERCENT_RANK
  • PERCENTILE_CONT
  • PERCENTILE_DISC
  • RANK
  • ROW_NUMBER
  • ST_CLUSTERDBSCAN
  • STDDEV_POP
  • STDDEV_SAMP
  • STDDEV
  • STRING_AGG
  • SUM
  • VAR_POP
  • VAR_SAMP
  • VARIANCE

Se le funzioni finestra non sono supportate, potrebbe essere visualizzato il seguente errore:

La funzione di analisi non è compatibile con altri operatori o anche i suoi input lo sono grande

Altre funzioni

  • CAST
  • HLL_COUNT.EXTRACT
  • L'operatore punto per i campi STRUCT
  • ARRAY_LENGTH

Limitazioni

A BI Engine si applicano le seguenti limitazioni e restrizioni Supporto di operatori e funzioni SQL.

Funzionalità non supportate di BI Engine

L'accelerazione di BI Engine non è disponibile per le seguenti funzionalità:

  • Funzioni definite dall'utente JavaScript
  • Tabelle esterne
  • Query sui dati JSON nativi - Messaggio di errore: Il tipo nativo JSON non è supportato
  • Scrittura dei risultati in una tabella BigQuery permanente
  • Tabelle contenenti upsert tramite acquisizione dei dati delle modifiche di BigQuery
  • Transazioni
  • Query che restituiscono più di 1 GB di dati. Per le applicazioni sensibili alla latenza, è consigliata una dimensione della risposta inferiore a 1 MB.

Supporto di Looker Studio limitato

Le seguenti funzionalità hanno un supporto limitato in Looker Studio:

  • Funzioni definite dall'utente SQL
  • Query su ARRAY colonne in corso...

Soluzione alternativa per le funzionalità non supportate

Sebbene alcune funzionalità SQL non siano supportate in BigQuery BI Engine, è disponibile una soluzione alternativa:

  1. Scrivi una query in BigQuery.
  2. Salva i risultati della query in una tabella.
  3. Pianifica la query per aggiornare la tabella regolarmente. È preferibile una frequenza di aggiornamento oraria o giornaliera, poiché l'aggiornamento ogni minuto invalida la cache di BI Engine più di frequente.
  4. Fai riferimento a questa tabella nelle query critiche per le prestazioni.