توابع مجاز SQL

به دلایل حفظ حریم خصوصی، عملکردهای SQL را که می‌توانید در ADH استفاده کنید، محدود می‌کنیم.

توابع اسکالر

همه توابع اسکالر به جز موارد زیر مجاز هستند:

  • 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++ هنگام اجرای یک پرس و جو با استفاده از تزریق نویز پشتیبانی نمی شوند.

تجمعات در سطح کاربر

ما به همه توابع انبوه و تحلیلی در عبارات 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)

پرس و جوهای لیست کاربران

در جستارهای فهرست کاربر، توابع انبوه مجاز هستند و توابع تحلیلی پشتیبانی نمی شوند.