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