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:
ERRORST_AREAST_ASBINARYST_ASGEOJSONST_ASTEXTST_BOUNDARYST_CENTROIDST_CENTROID_AGGST_CLOSESTPOINTST_CLUSTERDBSCANST_CONTAINSST_CONVEXHULLST_COVEREDBYST_COVERSST_DIFFERENCEST_DIMENSIONST_DISJOINTST_DISTANCEST_DUMPST_DWITHINST_EQUALSST_GEOGFROMGEOJSONST_GEOGFROMTEXTST_GEOGFROMWKBST_GEOGPOINTST_GEOGPOINTFROMGEOHASHST_GEOHASHST_INTERSECTIONST_INTERSECTSST_INTERSECTSBOXST_ISCOLLECTIONST_ISEMPTYST_LENGTHST_MAKELINEST_MAKEPOLYGONST_MAKEPOLYGONORIENTEDST_MAXDISTANCEST_NPOINTSST_NUMPOINTSST_PERIMETERST_SIMPLIFYST_SNAPTOGRIDST_TOUCHESST_UNIONST_UNION_AGGST_WITHINST_XST_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 |
Sì |
APPROX_QUANTILES |
No |
APPROX_TOP_COUNT |
No |
APPROX_TOP_SUM |
No |
ARRAY_AGG |
No |
ARRAY_CONCAT_AGG |
No |
AVG |
Sì |
BIT_AND |
No |
BIT_OR |
No |
BIT_XOR |
No |
COUNT |
Sì |
COUNTIF |
Sì |
LOGICAL_AND |
Sì |
LOGICAL_OR |
Sì |
MAX |
Sì |
MIN |
Sì |
SUM |
Sì |
CORR |
Sì |
COVAR_POP |
Sì |
COVAR_SAMP |
Sì |
STDDEV_POP |
Sì |
STDDEV_SAMP |
Sì |
STDDEV |
Sì |
STRING_AGG |
No |
VAR_POP |
Sì |
VAR_SAMP |
Sì |
VARIANCE |
Sì |
APPROX_COUNT_DISTINCT |
Sì |
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.