В целях обеспечения конфиденциальности мы запрещаем использовать в ADH некоторые функции SQL.
Скалярные функции
Разрешены все скалярные функции, кроме следующих:
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
Запросы анализа
Для запросов агрегированного анализа запрещены функции, объединяющие данные нескольких пользователей. При обработке данных одного пользователя разрешены все функции агрегирования и аналитические функции. Подробная информация приведена в разделе Агрегирование на уровне пользователя.
Функции агрегирования
Функция | Разрешена? |
---|---|
ANY_VALUE |
Да |
APPROX_QUANTILES |
Нет |
APPROX_TOP_COUNT |
Нет |
APPROX_TOP_SUM |
Нет |
ARRAY_AGG |
Нет |
ARRAY_CONCAT_AGG |
Нет |
AVG |
Да |
BIT_AND |
Нет |
BIT_OR |
Нет |
BIT_XOR |
Нет |
COUNT |
Да |
COUNTIF |
Да |
LOGICAL_AND |
Да |
LOGICAL_OR |
Да |
MAX |
Да |
MIN |
Да |
SUM |
Да |
CORR |
Да |
COVAR_POP |
Да |
COVAR_SAMP |
Да |
STDDEV_POP |
Да |
STDDEV_SAMP |
Да |
STDDEV |
Да |
STRING_AGG |
Нет |
VAR_POP |
Да |
VAR_SAMP |
Да |
VARIANCE |
Да |
APPROX_COUNT_DISTINCT |
Да |
Аналитические функции
Все аналитические функции запрещены.
Функции HyperLogLog++
Ads Data Hub поддерживает функции HyperLogLog++ (HLL++). Однако в них используются особые типы данных, для которых действуют дополнительные ограничения.
Поддерживаемые типы
Тип | Описание |
---|---|
ADH.USER_HLL |
Схематический график, агрегированный по значениям с типом ADH.USER_ID . |
ADH.BYTE_HLL |
Схематический график, агрегированный по значениям любых типов, кроме идентификаторов. |
Эти типы поддерживают объединение и извлечение для расчета количества уникальных значений, но не поддерживают прямое преобразование в другой тип. Их нельзя экспортировать напрямую из Ads Data Hub, поэтому для включения их в результат запроса нужно использовать HLL_COUNT.EXTRACT
или HLL_COUNT.MERGE
.
Схематические графики HLL поддерживают расчет количества уникальных значений для нескольких уровней агрегирования, но следует иметь в виду, что в Ads Data Hub они не помогут существенно повысить эффективность по сравнению с COUNT(DISTINCT)
на одном уровне.
Поддерживаемые функции
Название функции | Поддерживаемые типы | Тип возвращаемого значения |
---|---|---|
HLL_COUNT.EXTRACT
|
ADH.USER_HLL , ADH.BYTE_HLL |
INT64
|
HLL_COUNT.INIT
|
Все поддерживаемые стандартные типы, ADH.USER_ID |
ADH.USER_HLL для входных данных ADH.USER_ID или ADH.BYTE_HLL в остальных случаях |
HLL_COUNT.INITNT.MERGE
|
ADH.USER_HLL , ADH.BYTE_HLL |
INT64
|
HLL_COUNT.MERGE_PARTIAL
|
ADH.USER_HLL , ADH.BYTE_HLL |
Совпадает с типом входных данных |
Ограничения
Добавление шума: функции HLL++ не поддерживаются, если при выполнении запроса добавляется шум.
Агрегирование на уровне пользователя
Разрешено использовать все функции агрегирования и аналитические функции в инструкциях SQL SELECT
, которые выполняют группирование или сегментирование по user_id
. Чтобы использовать их, по предшествующим объединениям должно быть очевидно, что по-прежнему используются только данные на уровне пользователя. Для этого следует использовать объединение по user_id
, например:
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)
Запросы по списку пользователей
В запросах по списку пользователей функции агрегирования разрешены, а аналитические функции не поддерживаются.