बल्क डेटा एक्सपोर्ट की क्वेरी के लिए सबसे सही तरीके
हमेशा एग्रीगेशन फ़ंक्शन का इस्तेमाल करें
इस बात की कोई गारंटी नहीं है कि डेटा को टेबल में तारीख, यूआरएल, साइट या किसी खास तरह की जानकारी के हिसाब से ही इकट्ठा किया जाएगा. इसलिए, आपको हमेशा अपने फ़ील्ड (SUM, COUNT वगैरह) को इकट्ठा करना चाहिए, ताकि यह पक्का किया जा सके कि आपकी पंक्ति की वैल्यू एक ही हैं. उदाहरण के लिए, टेबल में "fat cats" क्वेरी वाली कई पंक्तियां हो सकती हैं:
क्वेरी तारीख search_type इंप्रेशन ... fat cats 10-10-2022 वेब 1000 fat cats 10-10-2022 वेब 200 fat cats 10-10-2022 इमेज 5000
यहां तक कि किसी खास तारीख और खोज के टाइप के लिए भी, बस "fat cats" क्वेरी की खोज करने पर, एक से ज़्यादा पंक्तियां दिख सकती हैं. इसलिए, कुल इंप्रेशन देखने के लिए नीचे बताए गए तरीके के मुताबिक डेटा इकट्ठा करें:
/* सबसे ज़्यादा लोकप्रिय क्वेरी देखने का गलत तरीका: इससे आपको हर क्वेरी के लिए सिर्फ़ एक पंक्ति दिखेगी */ SELECT query, impressions FROM searchconsole.searchdata_site_impression ORDER BY 2 DESC LIMIT 1; नतीजा: fat cats 5000 /* सबसे लोकप्रिय क्वेरी देखने का सबसे सही तरीका*/ SELECT query, SUM(impressions) FROM searchconsole.searchdata_url_impression WHERE query != '' /* पहचान छिपाकर की गई क्वेरी को फ़िल्टर करें */ GROUP BY query ORDER BY 2 DESC LIMIT 1; नतीजा: fat cats 6200
प्रोसेसिंग की लागत बचाने के लिए, तारीख के हिसाब से क्वेरी की संख्या कम करना
याद रखें कि जब BigQuery पर कोई क्वेरी चलाई जाती है, तो आपसे इसके लिए शुल्क लिया जाएगा और आपकी टेबल काफ़ी बड़ी हो सकती हैं. एक्सपोर्ट की गई टेबल तारीख के हिसाब से बांटी जाती हैं. इससे इनपुट स्कैन में सिर्फ़ उन दिनों को शामिल किया जा सकता है जिनके डेटा की आपको ज़रूरत हो. इससे बड़ी साइटों के लिए, BigQuery पर किसी क्वेरी को चलाने का खर्च कम हो सकता है. क्वेरी पर आने वाले खर्च को कम करने का एक अच्छा तरीका यह है कि तारीख के हिसाब से सेगमेंट में बांटी गई टेबल में WHERE क्लॉज़ का इस्तेमाल किया जाए. इससे तारीख की सीमा कम की जा सकती है.
शून्य वैल्यू वाली क्वेरी स्ट्रिंग को फ़िल्टर करना
पहचान छिपाकर की गई क्वेरी में किसी साइट की एक ही सबसे आम क्वेरी शामिल होती है. ऐसी क्वेरी के लिए, टेबल में किसी वर्ण का इस्तेमाल नहीं किया जाता. अगर आपको किसी खास शर्त के हिसाब से सबसे लोकप्रिय क्वेरी देखनी है, तो हो सकता है कि आप अपनी एसक्यूएल क्वेरी से बिना वर्ण वाली क्वेरी को फ़िल्टर करना चाहें.
सैंपल क्वेरी
यहां कुछ सैंपल क्वेरी दी गई हैं, जिनकी मदद से आपको डेटा पाने और उसका इस्तेमाल करने के बारे में जानकारी मिल सकती है.
साइट के हिसाब से नतीजे
दिन के हिसाब से सभी वेब आंकड़े (पिछले दो हफ़्तों में)
SELECT data_date AS date, sum(impressions) AS impressions, sum(clicks) as clicks, sum(clicks) / sum(impressions) AS ctr, /* Added one below, because position is zero-based */ ((sum(sum_top_position) / sum(impressions)) + 1.0) AS avg_position FROM searchconsole.searchdata_site_impression WHERE search_type = 'WEB' AND data_date between DATE_SUB(CURRENT_DATE(), INTERVAL 14 day) and CURRENT_DATE() GROUP BY data_date ORDER BY date desc LIMIT 1000
क्लिक के हिसाब से अमेरिका में मोबाइल वेब पर सबसे ज़्यादा की गई क्वेरी (पिछले दो हफ़्तों में)
SELECT query, device, sum(impressions) AS impressions, sum(clicks) AS clicks, sum(clicks) / sum(impressions) AS ctr, ((sum(sum_top_position) / sum(impressions)) + 1.0) AS avg_position FROM searchconsole.searchdata_site_impression WHERE search_type = 'WEB' AND country = 'usa' AND device = 'MOBILE' AND data_date between DATE_SUB(CURRENT_DATE(), INTERVAL 14 day) and CURRENT_DATE() GROUP BY 1,2 ORDER BY clicks LIMIT 1000
यूआरएल के हिसाब से नतीजे
क्लिक के हिसाब से 'डिस्कवर' के सबसे लोकप्रिय यूआरएल (किसी एक खास दिन में)
SELECT url, sum(impressions), sum(clicks) FROM searchconsole.searchdata_url_impression WHERE search_type = 'DISCOVER' AND data_date = DATE(2022, 02, 01) GROUP BY url ORDER BY 3 LIMIT 1000
अक्सर पूछे जाने वाले सवालों के ज़्यादा बेहतर नतीजों (रिच रिज़ल्ट) के लिए, क्वेरी और यूआरएल के कुल आंकड़े (पिछले दो हफ़्तों में)
SELECT url, query, sum(impressions) AS impressions, sum(clicks) AS clicks, sum(clicks) / sum(impressions) AS ctr, ((sum(sum_position) / sum(impressions)) + 1.0) AS avg_position FROM searchconsole.searchdata_url_impression WHERE search_type = 'WEB' AND is_tpf_faq = true AND data_date between DATE_SUB(CURRENT_DATE(), INTERVAL 14 day) and CURRENT_DATE() GROUP BY 1,2 ORDER BY clicks LIMIT 1000
यूआरएल से आने वाला सारा ट्रैफ़िक (पिछले दो हफ़्तों में)
SELECT url, search_type, sum(impressions) as impressions, sum(clicks) as clicks FROM searchconsole.searchdata_url_impression WHERE data_date between DATE_SUB(CURRENT_DATE(), INTERVAL 14 day) and CURRENT_DATE() GROUP BY 1,2 ORDER BY 3 desc LIMIT 1000
"your_brand" वाली क्वेरी के लिए इंप्रेशन (पिछले दो हफ़्तों में)
SELECT regexp_contains(query, 'your_brand') AS contains_brand, sum(impressions) AS impressions, sum(clicks) AS clicks FROM searchconsole.searchdata_url_impression WHERE search_type = 'WEB' AND data_date between DATE_SUB(CURRENT_DATE(), INTERVAL 14 day) and CURRENT_DATE() GROUP BY 1 ORDER BY 2 desc LIMIT 1000