Funções SQL permitidas

Por motivos de privacidade, restringimos as funções SQL que pode usar no ADH.

Funções escalares

São permitidas todas as funções escalares, exceto as seguintes:

  • 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álise

Para consultas de análise agregadas, restringimos funções que combinam dados de vários utilizadores. São permitidas todas as funções analíticas e de agregação no tratamento de dados de um único utilizador. Consulte Agregações ao nível do utilizador abaixo para ver mais detalhes.

Funções de agregação

Função Permitido?
ANY_VALUE Sim
APPROX_QUANTILES Não
APPROX_TOP_COUNT Não
APPROX_TOP_SUM Não
ARRAY_AGG Não
ARRAY_CONCAT_AGG Não
AVG Sim
BIT_AND Não
BIT_OR Não
BIT_XOR Não
COUNT Sim
COUNTIF Sim
LOGICAL_AND Sim
LOGICAL_OR Sim
MAX Sim
MIN Sim
SUM Sim
CORR Sim
COVAR_POP Sim
COVAR_SAMP Sim
STDDEV_POP Sim
STDDEV_SAMP Sim
STDDEV Sim
STRING_AGG Não
VAR_POP Sim
VAR_SAMP Sim
VARIANCE Sim
APPROX_COUNT_DISTINCT Sim

Funções analíticas

Estão restritas todas as funções analíticas.

Funções HyperLogLog++

O Ads Data Hub suporta funções HyperLogLog++ (HLL++). No entanto, estas usam tipos de dados especializados com mais limitações.

Tipos suportados

Tipo Descrição
ADH.USER_HLL Um esboço agregado de valores do tipo ADH.USER_ID
ADH.BYTE_HLL Um esboço agregado de valores do tipo diferente de ID

Estes tipos suportam a união e a extração para fazer estimativas de cardinalidade, mas não suportam a conversão direta em nenhum outro tipo. Não podem ser exportados diretamente do Ads Data Hub, pelo que têm de usar HLL_COUNT.EXTRACT ou HLL_COUNT.MERGE antes de chegar ao resultado da consulta.

Os esboços HLL possibilitam as estimativas de cardinalidade em várias camadas de agregação. No entanto, tenha em atenção que, no Ads Data Hub, tais esboços não oferecem uma melhoria de desempenho substancial em relação a COUNT(DISTINCT) numa única camada.

Funções suportadas

Nome da função Tipos suportados Tipo devolvido
HLL_COUNT.EXTRACT ADH.USER_HLL, ADH.BYTE_HLL INT64
HLL_COUNT.INIT Todos os tipos suportados padrão, ADH.USER_ID ADH.USER_HLL para entrada de ADH.USER_ID, caso contrário, 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 ao tipo de entrada

Limitações

Injeção de ruído: as funções HLL++ não são suportadas quando se usa a injeção de ruído para executar uma consulta.

Agregações ao nível do utilizador

São permitidas todas as funções analíticas e de agregação em declarações SELECT que agrupam ou separam por user_id. Para que tal funcione, as junções anteriores têm de deixar claro que os dados são mantidos ao nível do utilizador nas junções em user_id, conforme o seguinte exemplo:

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_clicks
    USING(query_id, user_id)
GROUP BY user_id)

Consultas da lista de utilizadores

Nas consultas da lista de utilizadores, são permitidas funções de agregação e as funções analíticas não são suportadas.