टेम्पररी टेबल और पर्सिस्टेंट टेबल की मदद से, क्वेरी को आसानी से मैनेज किया जा सकता है. साथ ही, उन्हें समझना भी आसान हो जाता है. कुछ समय के लिए डेटा को इकट्ठा किए बिना, बीच में ऐसे नतीजे बनाए जा सकते हैं जिनका फिर से इस्तेमाल किया जा सकता है. इससे क्वेरी को लागू करने के लिए ज़रूरी संसाधनों की संख्या कम हो जाती है और परफ़ॉर्मेंस बेहतर होती है.
बनाई गई टेबल पर, 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
अस्थायी टेबल
अस्थायी (या temp) टेबल, क्वेरी को पढ़ने में आसानी बनाती हैं. साथ ही, इनकी मदद से ऐसे इंटरमीडिएट नतीजे बनाए जा सकते हैं जो एग्रीगेशन या अंतर की ज़रूरी शर्तों के दायरे में नहीं आते.
अस्थायी टेबल:
- ये सिर्फ़ सेशन लेवल पर मौजूद होते हैं और क्वेरी लागू होने के बाद खत्म हो जाते हैं
- इसका इस्तेमाल सिर्फ़ उस क्वेरी में किया जा सकता है जिसमें इसे बनाया गया था
- जिन पर एग्रीगेशन या अलग-अलग तरह की निजता से जुड़ी ज़रूरी शर्तें लागू न होती हों
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
);
दूसरी क्वेरी
-- 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 में लागू की गई निजता जांच की शर्तें लागू होती हैं.
मुख्य एसक्यूएल एक्सप्रेशन के साथ टेबल एक्सपोर्ट करने का सिंटैक्स यह है:
CREATE TABLE <project_name.dataset_name.table_name>
OPTIONS(privacy_checked_export=true) AS query_statement;
उदाहरण के लिए, टेबल adh.google_ads_impressions
से हर कैंपेन आईडी के लिए लाइनों की गिनती वाली टेबल को, BigQuery डेस्टिनेशन myproject.mydataset.mytable
में एक्सपोर्ट करने के लिए:
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
के साथ
इन टेबल में, फ़िल्टर की गई लाइन की खास जानकारी भी जोड़ी जा सकती है. फ़िल्टर की गई पंक्तियों की खास जानकारी के बारे में पढ़ें.