Funciones y operadores de SQL optimizado

BigQuery BI Engine optimiza los siguientes operadores y funciones de GoogleSQL cuando se conectan herramientas de inteligencia empresarial (IE) con BigQuery mediante consultas o vistas personalizadas. Es posible que las consultas que usan funciones y operadores que no están en esta lista se ejecuten más lento.

Para obtener una lista de funciones de SQL no compatibles, consulta la sección Funciones no compatibles.

Si deseas obtener más información para usar consultas y vistas personalizadas en Looker Studio, consulta Conéctate a BigQuery. Si deseas obtener más información para conectar otras herramientas de IE a BigQuery, consulta la descripción general de la interfaz de SQL de BigQuery BI Engine.

Para obtener una lista de todos los operadores y funciones de GoogleSQL, consulta Funciones y operadores de GoogleSQL.

Operadores optimizados

  • ORDER BY
  • LIMIT recuento [OFFSET skip_rows]
  • UNION ALL
  • HAVING
  • GROUP BY
  • WHERE
  • INNER, LEFT y RIGHT JOIN (con límites de tamaño más pequeños)

Funciones optimizadas

Comparación

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

Lógica

  • NOT
  • AND
  • OR

Math

  • - Menos unario
  • +
  • - (Menos 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

Nivel de bits

  • BIT_COUNT
  • ~ (Nivel de bits NOT)
  • & (Nivel de bits AND)
  • | (Nivel de bits OR)
  • ^ (Nivel de bits XOR)
  • << (Desplazamiento de bits a la izquierda)
  • >> (Desplazamiento de bits a la derecha)

Strings y bytes

  • 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

Marcas de tiempo, fechas y horas

  • Funciones de marca de tiempo
    • 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
  • Funciones de fecha
    • DATE(año, mes, día)
    • DATE_FROM_UNIX_DATE
    • UNIX_DATE
    • FORMAT_DATE
    • PARSE_DATE
    • DATE_ADD
    • DATE_SUB
    • DATE_DIFF
    • EXTRACT (from DATE)
    • DATE_TRUNC
    • CURRENT_TIMESTAMP
  • Funciones de tiempo
    • EXTRACT
    • FORMAT_TIME
    • PARSE_TIME
    • TIME_ADD
    • TIME_SUB
    • TIME_DIFF
    • TIME_TRUNC
    • CURRENT_TIME
  • Funciones de fecha y hora
    • DATETIME
    • EXTRACT
    • FORMAT_DATETIME
    • PARSE_DATETIME
    • DATETIME_ADD
    • DATETIME_SUB
    • DATETIME_DIFF
    • DATETIME_TRUNC
    • CURRENT_DATETIME

Hash

  • FARM_FINGERPRINT
  • MD5
  • SHA1
  • SHA256
  • SHA512

Redes

  • 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

Datos geográficos

  • Constructores
    • ST_GEOGPOINT
    • ST_MAKELINE
    • ST_MAKEPOLYGON
    • ST_MAKEPOLYGONORIENTED
  • Analizadores
    • ST_GEOGFROMGEOJSON
    • ST_GEOGFROMTEXT
    • ST_GEOGFROMWKB
    • ST_GEOGFROMWKB
    • ST_GEOGPOINTFROMGEOHASH
  • Formateadores
    • ST_ASBINARY
    • ST_ASGEOJSON
    • ST_ASKML
    • ST_GEOHASH
  • Transformaciones
    • ST_BOUNDARY
    • ST_CENTROID
    • ST_CLOSESTPOINT
    • ST_CONVEXHULL
    • ST_DIFFERENCE
    • ST_EXTERIORRING
    • ST_INTERSECTION
    • ST_SIMPLIFY
    • ST_SNAPTOGRID
  • Descriptores de acceso
    • ST_DIMENSION
    • ST_ENDPOINT
    • ST_GEOMETRYTYPE
    • ST_ISCOLLECTION
    • ST_ISEMPTY
    • ST_NPOINTS
    • ST_NUMGEOMETRIES
    • ST_NUMPOINTS
    • ST_POINTN
    • ST_STARTPOINT
    • ST_X
    • ST_Y
  • Predicados
    • ST_CONTAINS
    • ST_COVEREDBY
    • ST_COVERS
    • ST_DISJOINT
    • ST_DWITHIN
    • ST_EQUALS
    • ST_INTERSECTS
    • ST_INTERSECTSBOX
    • ST_TOUCHES
    • ST_WITHIN
  • Medidas
    • ST_ANGLE
    • ST_AREA
    • ST_AZIMUTH
    • ST_DISTANCE
    • ST_LENGTH
    • ST_MAXDISTANCE
    • ST_PERIMETER

Funciones SAFE

  • Matemáticas
    • 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
  • Strings
    • REGEXP_CONTAINS
    • REGEXP_EXTRACT
    • REGEXP_REPLACE
    • FORMAT
    • SUBSTR
    • ASCII
    • SAFE_CONVERT_BYTES_TO_STRING
    • INSTR
    • LEFT
    • RIGHT
    • TRANSLATE
    • INITCAP
  • Marcas de tiempo, fechas y horas
    • DATE_FROM_UNIX_DATE
    • PARSE_DATE
    • PARSE_DATETIME
    • PARSE_TIME
    • PARSE_TIMESTAMP
    • FORMAT_TIMESTAMP
    • TIMESTAMP_SECONDS
    • TIMESTAMP_MILLIS
    • TIMESTAMP_MICROS
  • Herramientas de redes
    • NET.SAFE_IP_FROM_STRING
  • Otro
    • SAFE_CAST

Funciones de agregación

  • SUM
  • COUNT
  • COUNTIF
  • ANY_VALUE
  • AVG
  • MAX
  • MIN
  • HLL_COUNT.INIT
  • HLL_COUNT.MERGE
  • HLL_COUNT.MERGE_PARTIAL
  • La cláusula 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

Funciones analíticas

Las funciones analíticas tienen compatibilidad limitada. Las consultas con funciones analíticas solo se admiten si se cumplen todas las siguientes condiciones:

  • La consulta analiza exactamente una tabla.
    • La tabla no está particionada.
    • La tabla tiene menos de 5 millones de filas.
  • La consulta no tiene ningún operador JOIN.
  • Las funciones analíticas a las que se hace referencia se encuentran en la siguiente lista de funciones compatibles.
  • El tamaño de la tabla analizada multiplicado por la cantidad de operadores de funciones analíticas no supera los 300 MB. Dos funciones analíticas con cláusulas OVER idénticas y las mismas entradas directas pueden compartir el mismo operador de función analítica. Por ejemplo:
    • La consulta SELECT ROW_NUMBER() OVER (ORDER BY x), SUM(x) OVER (ORDER BY x) FROM my_table solo tiene un operador de función analítica.
    • La consulta SELECT ROW_NUMBER() OVER (ORDER BY x), SUM(x) OVER (PARTITION BY y ORDER BY x) FROM my_table tiene dos operadores de funciones analíticas porque no tienen la misma cláusula OVER.
    • La consulta SELECT ROW_NUMBER() OVER (ORDER BY x) FROM (SELECT SUM(x) OVER (ORDER BY x) AS x FROM my_table) tiene dos operadores de funciones analíticas porque ambas tienen entradas directas diferentes, aunque sus cláusulas OVER parezcan iguales.

Lista de funciones analíticas compatibles:

  • 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

    Otro

  • CAST

  • HLL_COUNT.EXTRACT

  • El operador de punto para los campos STRUCT

  • ARRAY_LENGTH

Características no compatibles

La aceleración de BI Engine no está disponible para las siguientes funciones:

  • UDF de JavaScript
  • Tablas externas
  • Consulta de datos JSON nativos
  • Escritura de resultados en una tabla de BigQuery permanente
  • Tablas que contienen operaciones upsert a través de la captura de datos modificados de BigQuery
  • Transacciones
  • Consultas que muestran más de 1 GB de datos. En el caso de las aplicaciones sensibles a la latencia, se recomienda un tamaño de respuesta inferior a 1 MB.

Las siguientes funciones tienen asistencia limitada en Looker Studio:

  • UDF de SQL
  • Consulta las columnas ARRAY

Si bien algunas funciones de SQL no son compatibles con las consultas personalizadas de BigQuery BI Engine, existe una solución alternativa disponible:

  1. Crea una consulta personalizada en BigQuery.
  2. Guarda los resultados de la consulta en una tabla.
  3. Programa tu consulta personalizada para actualizar la tabla de forma periódica. Una frecuencia de actualización diaria o por hora funciona mejor, ya que actualizar cada minuto invalidará la caché de BI Engine con mayor frecuencia.
  4. Haz referencia a esta tabla en las consultas de rendimiento crítico.