टेबल बनाना

अस्थायी टेबल और स्थायी टेबल, क्वेरी को व्यवस्थित करने में आपकी मदद करती हैं. इससे उन्हें समझना और मैनेज करना आसान हो जाता है. बीच के लेवल पर नतीजे फिर से इस्तेमाल करके दोबारा इस्तेमाल किए जा सकते हैं. साथ ही, आपको अस्थायी डेटा को एग्रीगेट न करने का विकल्प देकर, क्वेरी एक्ज़ीक्यूट करने के लिए ज़रूरी संसाधन कम किए जा सकते हैं, और परफ़ॉर्मेंस को बेहतर बनाया जा सकता है.

बनाई गई टेबल पर, पूरे Ads Data Hub में एक जैसी स्टैटिक निजता जांच, अनुमति वाले फ़ंक्शन, और फ़ील्ड को जोड़ने की सीमाएं लागू होती हैं. जब SELECT स्टेटमेंट का डेटा BigQuery में आउटपुट होता है, तब निजता से जुड़ी सामान्य जांच लागू होती है.

टेबल बनाने के लिए, BigQuery सिंटैक्स का पालन करें:

CREATE [OR REPLACE] [TEMP | TEMPORARY] TABLE TABLE_NAME
 [OPTIONS(privacy_checked_export=<true | false>)] AS query_statement;

ये क्लॉज़ इस्तेमाल नहीं किए जा सकते:

  • IF NOT EXISTS
  • PARTITION BY
  • CLUSTER BY

अस्थायी टेबल

अस्थायी (या अस्थायी) टेबल से क्वेरी को आसानी से पढ़ा जा सकता है. साथ ही, इसकी मदद से, ऐसे इंटरमीडिएट नतीजे बनाए जा सकते हैं जिन पर एग्रीगेशन या अंतर की ज़रूरत नहीं होती.

अस्थायी टेबल:

  • ये सिर्फ़ सेशन लेवल पर मौजूद होते हैं और क्वेरी के चलने के बाद इनकी समयसीमा खत्म हो जाती है
  • इसका इस्तेमाल सिर्फ़ उस क्वेरी के अंदर किया जा सकता है जिसमें इसे बनाया गया था
  • उन्हें एग्रीगेट या डिफ़रेंशियल निजता से जुड़ी ज़रूरी शर्तों के मुताबिक नहीं बनाया गया हो
  • वैकल्पिक tmp नेमस्पेस का इस्तेमाल करना

अस्थायी टेबल बनाने के लिए, CREATE TEMP TABLE स्टेटमेंट का इस्तेमाल करें. इस उदाहरण में, क्वेरी के नतीजों को स्टोर करने के लिए एक अस्थायी टेबल बनाई जाती है. इसके बाद, एक सबक्वेरी में अस्थायी टेबल का इस्तेमाल किया जाता है:

-- Get a list of creative IDs and store in a temporary table called creative_list:
CREATE TEMP TABLE creative_list AS (
  SELECT
    adgroup_id,
    advertiser_id,
    creative_id
  FROM
    adh.dv360_youtube_impressions
);
-- Return creatives with a count of impressions greater than 100
SELECT
  creative_id,
  COUNT(*) AS imps
FROM
  creative_list -- Alternative: tmp.creative_list
WHERE
  imps > 100
GROUP BY
  creative_id;

परसिस्टेंट टेबल

अगर आपको दूसरी क्वेरी में इस्तेमाल करने के लिए इंटरमीडिएट टेबल बनानी है, तो परसिस्टेंट टेबल बनाएं. सिंटैक्स, TEMP क्लॉज़ के बिना, अस्थायी टेबल की तरह ही है. स्थायी टेबल पहले से फ़िल्टर की जाती हैं. इसका मतलब है कि एग्रीगेशन की जांच नहीं की जाती हैं और ये 72 घंटों तक काम करती हैं. अगर चुने गए नाम वाली कोई टेबल पहले से मौजूद है, तो उसे ओवरराइट कर दिया जाता है.

परसिस्टेंट टेबल:

  • समयसीमा 72 घंटे बाद खत्म हो जाएगी
  • इसका इस्तेमाल उस क्वेरी के बाहर किया जा सकता है जिससे इसे बनाया गया था
  • एग्रीगेशन की ज़रूरी शर्तों के मुताबिक हों
  • सिर्फ़ किसी बाद की क्वेरी से टेबल को ऐक्सेस करने के लिए, tmp नेमस्पेस की ज़रूरत होती है

स्थायी टेबल बनाने के लिए, CREATE TABLE स्टेटमेंट का इस्तेमाल करें. यह उदाहरण किसी क्वेरी के नतीजों को स्टोर करने के लिए एक परसिस्टेंट टेबल बनाता है, फिर बाद की क्वेरी में परसिस्टेंट टेबल का इस्तेमाल करता है:

क्वेरी 1

-- Get a list of creative IDs and store in a persistent table called creative_list:
CREATE TABLE creative_list AS (
  SELECT
    adgroup_id,
    advertiser_id,
    creative_id
  FROM
    adh.dv360_youtube_impressions
);

क्वेरी 2

-- Return creatives which had more than 100 impressions
SELECT
  creative_id,
  COUNT(*) AS imps
FROM
  tmp.creative_list
WHERE
  imps > 100;

निजता जांच लागू करें

Ads Data Hub, एसक्यूएल सिंटैक्स के साथ भी काम करता है. इसकी मदद से, इंटरमीडिएट नतीजे की ऐसी टेबल बनाई जा सकती हैं जो निजता जांच के दायरे में आती हैं.

ऐसी टेबल बनाने के लिए जिस पर निजता की जांच की जा सके, अपनी क्वेरी में OPTIONS क्लॉज़ जोड़ें:

OPTIONS(privacy_checked_export=true)

इस उदाहरण में, सेशन-लेवल का तापमान टेबल बनाया गया है और निजता से जुड़ी जांच लागू की गई है:

-- Get a list of creative IDs and store in a temporary table called creative_list:
CREATE TEMP TABLE creative_list OPTIONS(privacy_checked_export=true) AS (
  SELECT
    adgroup_id,
    advertiser_id,
    creative_id
  FROM
    adh.dv360_youtube_impressions
);

यह उदाहरण एक स्थायी टेबल बनाता है, निजता जांच लागू करता है, और उसे आपके Google Cloud प्रोजेक्ट में एक्सपोर्ट करता है:

-- Get a list of creative IDs and store in a persistent table called creative_list:
CREATE TABLE `myproject.mydataset.creative_list` OPTIONS(privacy_checked_export=true) AS (
  SELECT
    adgroup_id,
    advertiser_id,
    creative_id
  FROM
    adh.dv360_youtube_impressions
);

एक ही क्वेरी का इस्तेमाल करके कई टेबल एक्सपोर्ट करना

अगर किसी क्वेरी के लिए एक टेबल देना काफ़ी नहीं होता, तो Ads Data Hub, नतीजे की टेबल एक्सपोर्ट करने के लिए, सुविधाजनक SQL सिंटैक्स का इस्तेमाल करता है. इन टेबल की निजता जांच एक जैसी होती है, जो पूरे Ads Data Hub पर लागू होती है.

मुख्य SQL एक्सप्रेशन के साथ-साथ टेबल एक्सपोर्ट करने के लिए सिंटैक्स यह है:


CREATE TABLE <project_name.dataset_name.table_name>
  OPTIONS(privacy_checked_export=true) AS query_statement;

उदाहरण के लिए, किसी टेबल को BigQuery डेस्टिनेशन myproject.mydataset.mytable में एक्सपोर्ट करने के लिए, जिसमें adh.google_ads_impressions टेबल से हर कैंपेन आईडी के लिए लाइनों की संख्या शामिल है:


CREATE TABLE `myproject.mydataset.mytable` OPTIONS(privacy_checked_export=true) AS
  SELECT campaign_id, COUNT(*) AS ct
  FROM adh.google_ads_impressions
  GROUP BY campaign_id;

टेबल का रेफ़रंस उसी क्वेरी में भी दिया जा सकता है जिसमें उन्हें बनाया गया था. उदाहरण के लिए, क्वेरी:


CREATE TABLE `myproject.mydataset.mytable` OPTIONS(privacy_checked_export=true) AS
  SELECT campaign_id, COUNT(*) AS ct
  FROM adh.google_ads_impressions
  GROUP BY campaign_id;
SELECT ct FROM `myproject.mydataset.mytable`;

दो टेबल देता है:

  • myproject.mydataset.mytable पर एक, जिसमें campaign_id और ct कॉलम हैं
  • जॉब आर्ग्युमेंट के डेस्टिनेशन टेबल फ़ील्ड में दी गई जगह के लिए एक कॉलम, जिसमें ct कॉलम होगा

इन टेबल में, फ़िल्टर की गई पंक्ति की खास जानकारी भी जोड़ी जा सकती है. फ़िल्टर की गई पंक्ति के सारांश के बारे में पढ़ें.