Povolené funkce SQL

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.