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 ulteriori dettagli, consulta Aggregazioni a livello di utente.

Funzioni di aggregazione

Le seguenti funzioni sono consentite per l'aggregazione tra gli utenti:

  • SUM
  • COUNT
  • COUNTIF
  • APPROX_COUNT_DISTINCT
  • AVG

Nella modalità di privacy per il controllo delle differenze, sono consentite anche le seguenti funzioni:

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

Per informazioni dettagliate su funzioni e funzionalità aggregate aggiuntive specifiche per il rumore, consulta Inserimento del rumore.

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_creative_conversions
    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.