Dozwolone funkcje SQL

Ze względu na ochronę prywatności ograniczamy zakres funkcji SQL dostępnych w CDR.

Funkcje skalarne

Dozwolone są wszystkie funkcje skalarne oprócz tych:

  • 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

Zapytania na potrzeby analizy

W przypadku zapytań wykonywanych na potrzeby analiz zbiorczych ograniczamy dostęp do funkcji, które łączą dane pochodzące od wielu użytkowników. Podczas przetwarzania danych pojedynczego użytkownika dozwolone są wszystkie funkcje agregujące i analityczne. Więcej informacji znajdziesz w sekcji Agregacje na poziomie użytkownika.

Funkcje agregujące

W przypadku agregacji danych użytkowników dozwolone są te funkcje:

  • SUM
  • COUNT
  • COUNTIF
  • APPROX_COUNT_DISTINCT
  • AVG

W trybie sprawdzania różnic dozwolone są też te funkcje:

  • ANY_VALUE
  • LOGICAL_AND
  • LOGICAL_OR
  • MAX
  • MIN
  • CORR
  • COVAR_POP
  • COVAR_SAMP
  • STDDEV_POP
  • STDDEV_SAMP
  • STDDEV
  • VAR_POP
  • VAR_SAMP
  • VARIANCE

Szczegółowe informacje o dodatkowych funkcjach i funkcjach agregacji dotyczących szumu znajdziesz w artykule Wstrzykiwanie szumu.

Funkcje analityczne

Wszystkie funkcje analityczne są objęte ograniczeniami dostępu.

Funkcje HyperLogLog++

Centrum danych reklam obsługuje funkcje HyperLogLog++ (HLL++). Używają one jednak specjalnych typów danych objętych większymi ograniczeniami.

Obsługiwane typy

Typ Opis
ADH.USER_HLL Szkic zagregowany z wartości typu ADH.USER_ID
ADH.BYTE_HLL Szkic zagregowany z wartości dowolnego typu niebędącego identyfikatorem

Te typy obsługują scalanie i wyodrębnianie do wartości szacunkowych mocy zbioru i nie obsługują bezpośredniej konwersji do żadnego innego typu. Nie można ich eksportować bezpośrednio z Centrum danych reklam, więc zanim zostaną uwzględnione w danych wyjściowych zapytania, muszą używać funkcji HLL_COUNT.EXTRACT lub HLL_COUNT.MERGE.

Szkice HLL umożliwiają szacowanie mocy zbioru w różnych warstwach agregacji, ale pamiętaj, że w Centrum danych reklam nie przynoszą one istotnego wzrostu wydajności w porównaniu z funkcją COUNT(DISTINCT) w pojedynczej warstwie.

Obsługiwane funkcje

Nazwa funkcji Obsługiwane typy Typ zwracanej wartości
HLL_COUNT.EXTRACT ADH.USER_HLL, ADH.BYTE_HLL INT64
HLL_COUNT.INIT Wszystkie typy obsługiwane standardowo, ADH.USER_ID ADH.USER_HLL w przypadku danych wejściowych ADH.USER_ID, a w pozostałych sytuacjach – ADH.BYTE_HLL
HLL_COUNT.INITNT.MERGE ADH.USER_HLL, ADH.BYTE_HLL INT64
HLL_COUNT.MERGE_PARTIAL ADH.USER_HLL, ADH.BYTE_HLL Taki sam jak typ danych wejściowych

Ograniczenia

Wstrzykiwanie szumu: w przypadku wykonywania zapytania z użyciem wstrzykiwania szumu funkcje HLL++ nie są obsługiwane.

Agregacje na poziomie użytkownika

W instrukcjach SELECT, które grupują lub partycjonują według identyfikatora user_id, dopuszczamy wszystkie funkcje agregujące i analityczne. Aby one działały, każde poprzednie połączenie musi jasno wskazywać, że dane są przechowywane na poziomie użytkownika. Można to uzyskać przez łączenie danych na podstawie identyfikatora user_id jak w tym przykładzie:

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;

Zapytania dotyczące list użytkowników

W zapytaniach dotyczących list użytkowników funkcje agregujące są dozwolone, a funkcje analityczne nie są obsługiwane.