निजता की वजह से, हम यह तय करते हैं कि ADH में कौनसे SQL फ़ंक्शन इस्तेमाल किए जा सकते हैं.
स्केलर फ़ंक्शन
इनके अलावा, सभी स्केलर फ़ंक्शन इस्तेमाल किए जा सकते हैं:
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 |
किसी भी नॉन-आईडी टाइप की वैल्यू से एग्रीगेट किया गया स्केच |
इन टाइप को कार्डिनलिटी के अनुमानों में मर्ज और एक्सट्रैक्ट किया जा सकता है. हालांकि, इन्हें सीधे तौर पर किसी अन्य टाइप में नहीं बदला जा सकता. इन्हें 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;
उपयोगकर्ता सूची से जुड़ी क्वेरी
उपयोगकर्ता सूची की क्वेरी में, एग्रीगेट फ़ंक्शन इस्तेमाल किए जा सकते हैं. हालांकि, इनमें विश्लेषण फ़ंक्शन काम नहीं करते.