מטעמי פרטיות, אנחנו מגבילים את הפונקציות של SQL שבהן אפשר להשתמש ב-ADH.
פונקציות סקלריות
מותרות כל הפונקציות הסקלריות, מלבד הפונקציות הבאות:
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
שאילתות ניתוח
לשאילתות ניתוח מצטברות, אנחנו מגבילים פונקציות שמשלבות נתונים מכמה משתמשים. כל פונקציות הצבירה והניתוח מותרות כשמעבדים נתונים של משתמש יחיד. פרטים נוספים זמינים במאמר בנושא צבירות ברמת המשתמש.
פונקציות צבירה
הפונקציות הבאות מותרות לצורך צבירה בין משתמשים:
SUMCOUNTCOUNTIFAPPROX_COUNT_DISTINCTAVG
במצב הפרטיות של בדיקת ההבדלים, מותרות גם הפונקציות הבאות:
ANY_VALUELOGICAL_ANDLOGICAL_ORMAXMINCORRCOVAR_POPCOVAR_SAMPSTDDEV_POPSTDDEV_SAMPSTDDEVVAR_POPVAR_SAMPVARIANCE
במאמר בנושא הוספת רעשי רקע מפורטות פונקציות מצטברות ותכונות נוספות שקשורות לרעשי רקע.
פונקציות אנליטיות
כל הפונקציות האנליטיות מוגבלות.
פונקציות HyperLogLog++
Ads Data Hub תומך בפונקציות HyperLogLog++ (HLL++). עם זאת, הם משתמשים בסוגי נתונים מיוחדים עם יותר מגבלות.
סוגים נתמכים
| סוג | תיאור |
|---|---|
ADH.USER_HLL |
סקיצה שמצטברת מערכים מסוג ADH.USER_ID |
ADH.BYTE_HLL |
סקיצה שמצטברת מערכים מכל סוג שאינו מזהה |
הסוגים האלה תומכים במיזוג ובחילוץ של הערכות עוצמה (cardinality), ולא תומכים בהמרה מִכניסה ישירה לסוג אחר. אי אפשר לייצא אותם ישירות מ-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 for
ADH.USER_ID input,
otherwise 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;
שאילתות של רשימות משתמשים
בשאלות לגבי רשימות משתמשים, מותר להשתמש בפונקציות צבירה, אבל אי אפשר להשתמש בפונקציות ניתוח.