Funzioni SQL consentite

Per motivi di privacy, limitiamo le funzioni SQL che puoi utilizzare in ADH.

Funzioni scalari

Sono consentite tutte le funzioni scalari ad eccezione di quanto segue:

  • 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

Query di analisi

Per le query di analisi aggregate, limitiamo le funzioni che combinano i dati di più utenti. Tutte le funzioni di aggregazione e di analisi sono consentite durante l'elaborazione dei dati di un singolo utente. Per scoprire di più, consulta Aggregazioni a livello di utente di seguito.

Funzioni di aggregazione

Funzione Consentito?
ANY_VALUE
APPROX_QUANTILES No
APPROX_TOP_COUNT No
APPROX_TOP_SUM No
ARRAY_AGG No
ARRAY_CONCAT_AGG No
AVG
BIT_AND No
BIT_OR No
BIT_XOR No
COUNT
COUNTIF
LOGICAL_AND
LOGICAL_OR
MAX
MIN
SUM
CORR
COVAR_POP
COVAR_SAMP
STDDEV_POP
STDDEV_SAMP
STDDEV
STRING_AGG No
VAR_POP
VAR_SAMP
VARIANCE
APPROX_COUNT_DISTINCT

Funzioni di analisi

Tutte le funzioni di analisi presentano limitazioni.

Funzioni HyperLogLog++

Ads Data Hub supporta le funzioni HyperLogLog++ (HLL++). Tuttavia, queste utilizzano tipi di dati specializzati con più limitazioni.

Tipi supportati

Tipo Descrizione
ADH.USER_HLL Una bozza aggregata a partire dai valori di tipo ADH.USER_ID.
ADH.BYTE_HLL Una bozza aggregata a partire dai valori di qualsiasi tipo non ID.

Questi tipi supportano l'unione e l'estrazione per le stime di cardinalità e non supportano la conversione diretta a qualsiasi altro tipo. Non possono essere esportati direttamente da Ads Data Hub, quindi devono utilizzare HLL_COUNT.EXTRACT o HLL_COUNT.MERGE prima di raggiungere l'output della query.

Le bozze HLL consentono di stimare la cardinalità su più livelli di aggregazione, ma tieni presente che in Ads Data Hub non forniscono un miglioramento sostanziale del rendimento rispetto a COUNT(DISTINCT) in un livello singolo.

Funzioni supportate

Nome funzione Tipi supportati Tipo restituito
HLL_COUNT.EXTRACT ADH.USER_HLL, ADH.BYTE_HLL INT64
HLL_COUNT.INIT Tutti i tipi supportati standard, ADH.USER_ID ADH.USER_HLL per input ADH.USER_ID, altrimenti ADH.BYTE_HLL
HLL_COUNT.INITNT.MERGE ADH.USER_HLL, ADH.BYTE_HLL INT64
HLL_COUNT.MERGE_PARTIAL ADH.USER_HLL, ADH.BYTE_HLL Uguale al tipo di input

Limitazioni

Inserimento del rumore: le funzioni HLL++ non sono supportate quando viene eseguita una query che utilizza l'inserimento del rumore.

Aggregazioni a livello di utente

Consentiamo tutte le funzioni di aggregazione e di analisi nelle istruzioni SELECT che raggruppano o suddividono i dati in base a user_id. Affinché questo comando funzioni, tutti i join precedenti devono indicare chiaramente che i dati vengono mantenuti a livello di utente unendo user_id, come in questo esempio:

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)

Query elenco utenti

Nelle query degli elenchi di utenti, sono consentite le funzioni di aggregazione, mentre le funzioni di analisi non sono supportate.