इस्तेमाल किए जा सकने वाले SQL फ़ंक्शन

निजता की वजह से, हम यह तय करते हैं कि 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

विश्लेषण क्वेरी

एग्रीगेट किए गए डेटा के विश्लेषण से जुड़ी क्वेरी के लिए, हम ऐसे फ़ंक्शन को सीमित करते हैं जो कई उपयोगकर्ताओं के डेटा को एक साथ जोड़ते हैं. किसी एक उपयोगकर्ता के डेटा को प्रोसेस करते समय, सभी एग्रीगेट और विश्लेषण फ़ंक्शन इस्तेमाल किए जा सकते हैं. ज़्यादा जानकारी के लिए, उपयोगकर्ता-लेवल के एग्रीगेशन देखें.

एग्रीगेट फ़ंक्शन

उपयोगकर्ताओं के डेटा को इकट्ठा करने के लिए, इन फ़ंक्शन का इस्तेमाल किया जा सकता है:

  • 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++ फ़ंक्शन

Ads Data Hub, HyperLogLog++ (HLL++) फ़ंक्शन के साथ काम करता है. हालांकि, ये ज़्यादा पाबंदियों वाले खास डेटा टाइप का इस्तेमाल करते हैं.

इस्तेमाल किए जा सकने वाले टाइप

टाइप ब्यौरा
ADH.USER_HLL ADH.USER_ID टाइप की वैल्यू से एग्रीगेट किया गया स्केच
ADH.BYTE_HLL किसी भी नॉन-आईडी टाइप की वैल्यू से एग्रीगेट किया गया स्केच

इन टाइप को कार्डिनलिटी के अनुमानों में मर्ज और एक्सट्रैक्ट किया जा सकता है. हालांकि, इन्हें सीधे तौर पर किसी अन्य टाइप में नहीं बदला जा सकता. इन्हें Ads Data Hub से सीधे एक्सपोर्ट नहीं किया जा सकता. इसलिए, क्वेरी के आउटपुट तक पहुंचने से पहले, इन्हें HLL_COUNT.EXTRACT या HLL_COUNT.MERGE का इस्तेमाल करना होगा.

एचएलएल स्केच की मदद से, एग्रीगेशन की कई लेयर में कार्डिनलिटी का अनुमान लगाया जा सकता है. हालांकि, ध्यान दें कि 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;

उपयोगकर्ता सूची से जुड़ी क्वेरी

उपयोगकर्ता सूची की क्वेरी में, एग्रीगेट फ़ंक्शन इस्तेमाल किए जा सकते हैं. हालांकि, इनमें विश्लेषण फ़ंक्शन काम नहीं करते.