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:
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
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:
SUMCOUNTCOUNTIFAPPROX_COUNT_DISTINCTAVG
W trybie sprawdzania różnic dozwolone są też te funkcje:
ANY_VALUELOGICAL_ANDLOGICAL_ORMAXMINCORRCOVAR_POPCOVAR_SAMPSTDDEV_POPSTDDEV_SAMPSTDDEVVAR_POPVAR_SAMPVARIANCE
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.