Pour des raisons de confidentialité, nous limitons les fonctions SQL que vous pouvez utiliser dans ADH.
Fonctions scalaires
Toutes les fonctions scalaires sont autorisées, à l'exception des suivantes :
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
Requêtes d'analyse
Pour les requêtes d'analyse agrégées, nous limitons les fonctions combinant des données provenant de plusieurs utilisateurs. Toutes les fonctions d'agrégation et analytiques sont autorisées lors du traitement des données d'un seul utilisateur. Pour en savoir plus, consultez la section Agrégations au niveau de l'utilisateur ci-dessous.
Fonctions d'agrégation
Fonction | autorisée ? |
---|---|
ANY_VALUE |
Oui |
APPROX_QUANTILES |
Non |
APPROX_TOP_COUNT |
Non |
APPROX_TOP_SUM |
Non |
ARRAY_AGG |
Non |
ARRAY_CONCAT_AGG |
Non |
AVG |
Oui |
BIT_AND |
Non |
BIT_OR |
Non |
BIT_XOR |
Non |
COUNT |
Oui |
COUNTIF |
Oui |
LOGICAL_AND |
Oui |
LOGICAL_OR |
Oui |
MAX |
Oui |
MIN |
Oui |
SUM |
Oui |
CORR |
Oui |
COVAR_POP |
Oui |
COVAR_SAMP |
Oui |
STDDEV_POP |
Oui |
STDDEV_SAMP |
Oui |
STDDEV |
Oui |
STRING_AGG |
Non |
VAR_POP |
Oui |
VAR_SAMP |
Oui |
VARIANCE |
Oui |
APPROX_COUNT_DISTINCT |
Oui |
Fonctions analytiques
Toutes les fonctions analytiques sont limitées.
Fonctions HyperLogLog++
Ads Data Hub est compatible avec les fonctions HyperLogLog++ (HLL++). Toutefois, celles-ci utilisent des types de données spécifiques avec des limites supplémentaires.
Types acceptés
Type | Description |
---|---|
ADH.USER_HLL |
Résumé agrégé à partir de valeurs de type ADH.USER_ID |
ADH.BYTE_HLL |
Résumé agrégé à partir de valeurs autres que de type "ID" |
Ces types acceptent la fusion et l'extraction pour les estimations de cardinalité, mais pas la conversion directe vers un autre type. Comme ils ne peuvent pas être directement exportés à partir d'Ads Data Hub, ils doivent utiliser HLL_COUNT.EXTRACT
ou HLL_COUNT.MERGE
avant d'obtenir le résultat de la requête.
Les résumés HLL permettent d'estimer la cardinalité dans plusieurs couches d'agrégation. Toutefois, notez que dans Ads Data Hub, ils ne génèrent pas de gains de performances importants par rapport à COUNT(DISTINCT)
dans une couche unique.
Fonctions compatibles
Nom de la fonction | Types acceptés | Type renvoyé |
---|---|---|
HLL_COUNT.EXTRACT
|
ADH.USER_HLL ,
ADH.BYTE_HLL |
INT64
|
HLL_COUNT.INIT
|
Tous les types acceptés standards,
ADH.USER_ID |
ADH.USER_HLL pour l'entrée de ADH.USER_ID (sinon, ADH.BYTE_HLL ) |
HLL_COUNT.INITNT.MERGE
|
ADH.USER_HLL ,
ADH.BYTE_HLL |
INT64
|
HLL_COUNT.MERGE_PARTIAL
|
ADH.USER_HLL ,
ADH.BYTE_HLL |
Identique au type d'entrée |
Limites
Injection de bruit : les fonctions HLL++ ne sont pas acceptées lorsque l'injection de bruit est utilisée pour exécuter une requête.
Agrégations au niveau de l'utilisateur
Nous autorisons toutes les fonctions d'agrégation et analytiques dans les instructions SELECT
qui effectuent des regroupements ou des partitionnements par user_id
. Pour que cela fonctionne, toutes les jointures précédentes doivent indiquer clairement que les données sont conservées au niveau de l'utilisateur en effectuant une jointure sur user_id
, comme dans l'exemple :
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)
Requêtes de liste d'utilisateurs
Dans les requêtes de liste d'utilisateurs, les fonctions d'agrégation sont autorisées, mais les fonctions analytiques ne sont pas compatibles.