Kvůli ochraně soukromí umožňujeme ve službě Ads Data Hub používat pouze některé funkce jazyka SQL.
Skalární funkce
Povoleny jsou všechny skalární funkce kromě těchto:
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
Analytické dotazy
U agregovaných analytických dotazů omezujeme funkce, které kombinují data od různých uživatelů. Při zpracování dat od jednoho uživatele jsou povoleny všechny agregační a analytické funkce. Podrobnosti viz oddíl Agregace na úrovni uživatele níže.
Agregační funkce
Funkce | Povoleno? |
---|---|
ANY_VALUE |
Ano |
APPROX_QUANTILES |
Ne |
APPROX_TOP_COUNT |
Ne |
APPROX_TOP_SUM |
Ne |
ARRAY_AGG |
Ne |
ARRAY_CONCAT_AGG |
Ne |
AVG |
Ano |
BIT_AND |
Ne |
BIT_OR |
Ne |
BIT_XOR |
Ne |
COUNT |
Ano |
COUNTIF |
Ano |
LOGICAL_AND |
Ano |
LOGICAL_OR |
Ano |
MAX |
Ano |
MIN |
Ano |
SUM |
Ano |
CORR |
Ano |
COVAR_POP |
Ano |
COVAR_SAMP |
Ano |
STDDEV_POP |
Ano |
STDDEV_SAMP |
Ano |
STDDEV |
Ano |
STRING_AGG |
Ne |
VAR_POP |
Ano |
VAR_SAMP |
Ano |
VARIANCE |
Ano |
APPROX_COUNT_DISTINCT |
Ano |
Analytické funkce
Všechny analytické funkce jsou omezeny.
Funkce HyperLogLog++
Ads Data Hub podporuje funkce HyperLogLog++ (HLL++). Ty však používají speciální datové typy s přísnějšími omezeními.
Podporované typy
Typ | Popis |
---|---|
ADH.USER_HLL |
Výstup agregovaný z hodnot typu ADH.USER_ID |
ADH.BYTE_HLL |
Výstup agregovaný z hodnot jakéhokoli typu kromě ID |
Tyto typy podporují slučování a extrakci na odhady mohutnosti a nepodporují přímou konverzi na jiný typ. Ze služby Ads Data Hub je nelze přímo exportovat, takže pokud chcete, aby se uplatnily ve výstupu dotazu, musíte na ně použít příkaz HLL_COUNT.EXTRACT
nebo HLL_COUNT.MERGE
.
Výstupy HLL umožňují odhad mohutnosti ve více vrstvách agregace, ale ve službě Ads Data Hub nepřinášejí podstatné zlepšení výkonu ve srovnání s použitím příkazu COUNT(DISTINCT)
v jedné vrstvě.
Podporované funkce
Název funkce | Podporované typy | Návratový typ |
---|---|---|
HLL_COUNT.EXTRACT
|
ADH.USER_HLL ,
ADH.BYTE_HLL |
INT64
|
HLL_COUNT.INIT
|
Všechny standardní podporované typy,
ADH.USER_ID |
ADH.USER_HLL u vstupu ADH.USER_ID , jinak ADH.BYTE_HLL |
HLL_COUNT.INITNT.MERGE
|
ADH.USER_HLL ,
ADH.BYTE_HLL |
INT64
|
HLL_COUNT.MERGE_PARTIAL
|
ADH.USER_HLL ,
ADH.BYTE_HLL |
Stejný jako vstupní typ |
Omezení
Přidání šumu: funkce HLL++ nejsou v dotazech s přidáváním šumu podporovány.
Agregace na úrovni uživatele
V příkazech SELECT
, které provádějí sdružování nebo rozdělování podle user_id
, povolujeme všechny agregační a analytické funkce. K jejich správné funkci je nutno, aby všechna předchozí spojení jasně uváděla, že jsou data uchovávána na úrovni uživatele. To lze udělat spojením podle user_id
, jak ukazuje tento příklad:
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)
Dotazy na seznam uživatelů
V dotazech na seznam uživatelů jsou agregační funkce povoleny, analytické funkce však podporovány nejsou.