توابع مجاز 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

پرس‌وجوهای تحلیل

برای پرس‌وجوهای تحلیلی تجمیعی، توابعی را که داده‌های چندین کاربر را ترکیب می‌کنند، محدود می‌کنیم. همه توابع تجمیعی و تحلیلی هنگام پردازش داده‌های یک کاربر مجاز هستند. برای جزئیات بیشتر به تجمیع‌های سطح کاربر مراجعه کنید.

توابع تجمیعی

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

  • SUM
  • COUNT
  • COUNTIF
  • APPROX_COUNT_DISTINCT
  • AVG

در حالت بررسی تفاوت حریم خصوصی، عملکردهای زیر نیز مجاز هستند:

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

برای جزئیات بیشتر در مورد توابع و ویژگی‌های تجمیع‌شده‌ی مختص نویز، به تزریق نویز مراجعه کنید.

توابع تحلیلی

تمام توابع تحلیلی محدود شده‌اند.

توابع HyperLogLog++

مرکز داده تبلیغات از توابع HyperLogLog++ (HLL++) پشتیبانی می‌کند. با این حال، آنها از انواع داده‌های تخصصی با محدودیت‌های بیشتری استفاده می‌کنند.

انواع پشتیبانی شده

نوع توضیحات
ADH.USER_HLL یک طرح جمع‌آوری‌شده از مقادیر نوع ADH.USER_ID
ADH.BYTE_HLL یک طرح جمع‌آوری‌شده از مقادیر هر نوع غیر ID

این نوع‌ها از ادغام و استخراج به تخمین‌های کاردینالیتی پشتیبانی می‌کنند و تبدیل مستقیم به هیچ نوع دیگری را پشتیبانی نمی‌کنند. آن‌ها را نمی‌توان مستقیماً از 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_creative_conversions
    USING(query_id, user_id)
GROUP BY user_id;

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

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