Funciones de SQL permitidas

Por motivos de privacidad, restringimos las funciones de SQL que puedes usar en ADH.

Funciones escalares

Se permiten todas las funciones escalares, excepto las siguientes:

  • ERROR
  • ST_AREA
  • ST_ASBINARY
  • ST_ASGEOJSON
  • ST_ASTEXT
  • ST_BOUNDARY
  • ST_CENTROID
  • ST_CENTROID_AGG
  • ST_CLOSESTPOINT
  • ST_CLUSTERDBSCAN
  • ST_CONTAINS
  • ST_CONVEXHULL
  • ST_COVEREDBY
  • ST_COVERS
  • ST_DIFFERENCE
  • ST_DIMENSION
  • ST_DISJOINT
  • ST_DISTANCE
  • ST_DUMP
  • ST_DWITHIN
  • ST_EQUALS
  • ST_GEOGFROMGEOJSON
  • ST_GEOGFROMTEXT
  • ST_GEOGFROMWKB
  • ST_GEOGPOINT
  • ST_GEOGPOINTFROMGEOHASH
  • ST_GEOHASH
  • ST_INTERSECTION
  • ST_INTERSECTS
  • ST_INTERSECTSBOX
  • ST_ISCOLLECTION
  • ST_ISEMPTY
  • ST_LENGTH
  • ST_MAKELINE
  • ST_MAKEPOLYGON
  • ST_MAKEPOLYGONORIENTED
  • ST_MAXDISTANCE
  • ST_NPOINTS
  • ST_NUMPOINTS
  • ST_PERIMETER
  • ST_SIMPLIFY
  • ST_SNAPTOGRID
  • ST_TOUCHES
  • ST_UNION
  • ST_UNION_AGG
  • ST_WITHIN
  • ST_X
  • ST_Y

Consultas de análisis

Para las consultas de análisis agregadas, restringimos las funciones que combinan datos de varios usuarios. Se permiten todas las funciones agregadas y analíticas cuando se procesan los datos de un solo usuario. Consulta Agregaciones a nivel del usuario para obtener más información.

Funciones de agregación

Se permiten las siguientes funciones para la agregación entre usuarios:

  • SUM
  • COUNT
  • COUNTIF
  • APPROX_COUNT_DISTINCT
  • AVG

En el modo de privacidad de verificación de diferencias, también se permiten las siguientes funciones:

  • ANY_VALUE
  • LOGICAL_AND
  • LOGICAL_OR
  • MAX
  • MIN
  • CORR
  • COVAR_POP
  • COVAR_SAMP
  • STDDEV_POP
  • STDDEV_SAMP
  • STDDEV
  • VAR_POP
  • VAR_SAMP
  • VARIANCE

Consulta Inyección de ruido para obtener detalles sobre las funciones y características agregadas adicionales específicas del ruido.

Funciones analíticas

Todas las funciones analíticas están restringidas.

Funciones HyperLogLog++

Centro de Datos de Anuncios admite funciones HyperLogLog++ (HLL++). Sin embargo, usan tipos de datos especializados con más limitaciones.

Tipos admitidos

Tipo Descripción
ADH.USER_HLL Un esquema agregado a partir de valores de tipo ADH.USER_ID
ADH.BYTE_HLL Un esquema agregado a partir de valores de cualquier tipo que no sea de ID

Estos tipos admiten la combinación y la extracción para las estimaciones de cardinalidad, y no admiten la conversión directa a ningún otro tipo. No se pueden exportar directamente desde el Centro de Datos de Anuncios, por lo que deben usar HLL_COUNT.EXTRACT o HLL_COUNT.MERGE antes de llegar al resultado de la consulta.

Los esquemas HLL permiten la estimación de cardinalidad en varias capas de agregación, pero ten en cuenta que, en Centro de Datos de Anuncios, no ofrecen una mejora significativa del rendimiento en comparación con COUNT(DISTINCT) en una sola capa.

Funciones compatibles

Nombre de la función Tipos admitidos Tipo de datos que se devuelve
HLL_COUNT.EXTRACT ADH.USER_HLL, ADH.BYTE_HLL INT64
HLL_COUNT.INIT Todos los tipos estándar admitidos, ADH.USER_ID ADH.USER_HLL para la entrada ADH.USER_ID; de lo contrario, ADH.BYTE_HLL
HLL_COUNT.INITNT.MERGE ADH.USER_HLL, ADH.BYTE_HLL INT64
HLL_COUNT.MERGE_PARTIAL ADH.USER_HLL, ADH.BYTE_HLL Igual que el tipo de entrada

Limitaciones

Inyección de ruido: Las funciones HLL++ no se admiten cuando se ejecuta una consulta con inyección de ruido.

Agregaciones a nivel del usuario

Permitimos todas las funciones agregadas y analíticas en las instrucciones SELECT que agrupan o particionan por user_id. Para que esto funcione, cualquier combinación anterior debe dejar en claro que los datos se mantienen a nivel del usuario combinando en user_id, como en este ejemplo:

CREATE TABLE paths AS
SELECT ARRAY_AGG(campaign_id ORDER BY query_id.time_usec) AS path
FROM
  adh.google_ads_impressions
  LEFT JOIN adh.google_ads_creative_conversions
    USING(query_id, user_id)
GROUP BY user_id;

Consultas de listas de usuarios

En las consultas de listas de usuarios, se permiten las funciones agregadas, pero no las analíticas.