इस्तेमाल किए जा सकने वाले 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

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

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

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

फ़ंक्शन अनुमति है?
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 का इस्तेमाल करना होगा.

एचएलएल स्केच, एग्रीगेशन की कई लेयर में एलिमेंट की संख्या का अनुमान लगाने की सुविधा देते हैं. हालांकि, ध्यान दें कि Ads Data Hub में, ये एक लेयर में COUNT(DISTINCT) की तुलना में परफ़ॉर्मेंस में काफ़ी सुधार नहीं करते.

सहायता करने वाले फ़ंक्शन

प्रकार्य का नाम इस तरह के कोड काम करते हैं रिटर्न टाइप
HLL_COUNT.EXTRACT ADH.USER_HLL, ADH.BYTE_HLL INT64
HLL_COUNT.INIT काम करने वाले सभी स्टैंडर्ड टाइप, ADH.USER_ID ADH.USER_ID इनपुट के लिए ADH.USER_HLL, अन्यथा 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)

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

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