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
eRIGHT 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 bitAND
)|
(a livello di bitOR
)^
(a livello di bitXOR
)<<
(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
(daDATE
)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 reportbi_engine_statistics
.acceleration_mode
sotto forma diFULL_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 reportbi_engine_statistics
.acceleration_mode
comeFULL_INPUT
oFULL_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 clausolaOVER
. - 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 clausoleOVER
avere lo stesso aspetto.
- La query
- 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:
- Scrivi una query in BigQuery.
- Salva i risultati della query in una tabella.
- 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.
- Fai riferimento a questa tabella nelle query critiche per le prestazioni.