इस कोडलैब (कोड बनाना सीखने के लिए ट्यूटोरियल) के बारे में जानकारी
1. खास जानकारी
BigQuery, Google का पूरी तरह से मैनेज किया गया डेटा वेयरहाउस है. इसमें, कम कीमत में कई पेटाबाइट डेटा के विश्लेषण की सुविधा मिलती है. BigQuery NoOps है—इसे मैनेज करने के लिए कोई इन्फ़्रास्ट्रक्चर नहीं है और आपको डेटाबेस एडमिन की भी ज़रूरत नहीं है. इसलिए, डेटा के विश्लेषण पर फ़ोकस करके काम की इनसाइट पाएं, जाने-पहचाने एसक्यूएल का इस्तेमाल करें, और इस्तेमाल के हिसाब से पैसे चुकाने वाले मॉडल का फ़ायदा पाएं.
इस कोडलैब में, C# के साथ BigQuery के सार्वजनिक डेटासेट की क्वेरी करने के लिए, .NET के लिए Google Cloud क्लाइंट लाइब्रेरी का इस्तेमाल किया जाएगा.
आपको इनके बारे में जानकारी मिलेगी
- Cloud Shell का इस्तेमाल कैसे करें
- BigQuery API चालू करने का तरीका
- एपीआई अनुरोधों की पुष्टि करने का तरीका
- C# के लिए Google Cloud क्लाइंट लाइब्रेरी इंस्टॉल करने का तरीका
- शेक्सपियर के काम के बारे में क्वेरी करने का तरीका
- GitHub के डेटासेट से जुड़ी क्वेरी करने का तरीका
- कैश मेमोरी और डिसप्ले आंकड़ों में बदलाव करने का तरीका
आपको इन चीज़ों की ज़रूरत होगी
- Google Cloud Platform प्रोजेक्ट
- ब्राउज़र, जैसे कि Chrome या Firefox
- C# का इस्तेमाल करना कितना आसान है
सर्वे
इस ट्यूटोरियल का इस्तेमाल कैसे किया जाएगा?
C# का इस्तेमाल करने का आपका अनुभव कैसा रहा?
Google Cloud Platform की सेवाएं इस्तेमाल करने का आपका अनुभव कैसा रहा?
2. सेटअप और ज़रूरी शर्तें
अपने हिसाब से एनवायरमेंट सेटअप करना
- Google Cloud Console में साइन इन करें और नया प्रोजेक्ट बनाएं या किसी मौजूदा प्रोजेक्ट का फिर से इस्तेमाल करें. अगर आपके पास पहले से Gmail या Google Workspace खाता नहीं है, तो आपको नया खाता बनाना होगा.
- प्रोजेक्ट का नाम, इस प्रोजेक्ट में हिस्सा लेने वाले लोगों का डिसप्ले नेम होता है. यह एक वर्ण स्ट्रिंग है, जिसका इस्तेमाल Google API नहीं करता. इसे कभी भी अपडेट किया जा सकता है.
- प्रोजेक्ट आईडी, Google Cloud के सभी प्रोजेक्ट के लिए यूनीक होता है. साथ ही, इसे बदला नहीं जा सकता. इसे सेट करने के बाद बदला नहीं जा सकता. Cloud Console, एक यूनीक स्ट्रिंग अपने-आप जनरेट करता है; आम तौर पर, आपको उसके होने की कोई परवाह नहीं होती. ज़्यादातर कोडलैब में, आपको अपना प्रोजेक्ट आईडी बताना होगा. आम तौर पर, इसकी पहचान
PROJECT_ID
के रूप में की जाती है. अगर आपको जनरेट किया गया आईडी पसंद नहीं है, तो किसी भी क्रम में एक और आईडी जनरेट किया जा सकता है. दूसरा तरीका यह है कि आप खुद भी आज़माकर देखें कि वह उपलब्ध है या नहीं. इस चरण के बाद, इसे बदला नहीं जा सकता. साथ ही, यह प्रोजेक्ट के खत्म होने तक बना रहता है. - आपकी जानकारी के लिए, प्रोजेक्ट नंबर नाम की एक तीसरी वैल्यू दी गई है. इसका इस्तेमाल कुछ एपीआई करते हैं. दस्तावेज़ में इन तीनों वैल्यू के बारे में ज़्यादा जानें.
- इसके बाद, आपको क्लाउड संसाधनों/एपीआई का इस्तेमाल करने के लिए, Cloud Console में बिलिंग चालू करनी होगी. इस कोडलैब का इस्तेमाल करने पर, आपको ज़्यादा पैसे नहीं चुकाने होंगे. इस ट्यूटोरियल के अलावा, बिलिंग से बचने के लिए संसाधनों को बंद करें. इसके लिए, अपने बनाए गए संसाधनों को मिटाएं या प्रोजेक्ट को मिटाएं. Google Cloud के नए उपयोगकर्ता, 300 डॉलर के मुफ़्त ट्रायल वाले प्रोग्राम में हिस्सा ले सकते हैं.
Cloud Shell शुरू करना
Google Cloud को आपके लैपटॉप से, कहीं से भी ऑपरेट किया जा सकता है. हालांकि, इस कोडलैब में Google Cloud Shell का इस्तेमाल किया जा रहा है. यह क्लाउड में चलने वाला कमांड लाइन एनवायरमेंट है.
Cloud Shell चालू करें
- Cloud Console में, Cloud Shell चालू करें
पर क्लिक करें.
अगर आपने Cloud Shell का इस्तेमाल पहली बार किया है, तो आपको बीच में आने वाली स्क्रीन दिखेगी. इसमें यह बताया जाएगा कि यह क्या है. अगर आपको बीच के लेवल पर मिलने वाली स्क्रीन दिखती है, तो जारी रखें पर क्लिक करें.
प्रावधान करने और Cloud Shell से कनेक्ट होने में कुछ ही समय लगेगा.
इस वर्चुअल मशीन में डेवलपमेंट के सभी ज़रूरी टूल मौजूद हैं. इसमें लगातार पांच जीबी की होम डायरेक्ट्री मिलती है और यह Google Cloud में काम करती है. यह नेटवर्क की परफ़ॉर्मेंस और ऑथेंटिकेशन को बेहतर बनाने में मदद करती है. अगर सभी नहीं, तो इस कोडलैब में आपका बहुत सारा काम ब्राउज़र से किया जा सकता है.
Cloud Shell से कनेक्ट करने के बाद, आपको दिखेगा कि आपकी पुष्टि हो चुकी है और प्रोजेक्ट आपके प्रोजेक्ट आईडी पर सेट है.
- यह पुष्टि करने के लिए Cloud Shell में नीचे दिया गया कमांड चलाएं कि आपकी पुष्टि हो गई है:
gcloud auth list
कमांड आउटपुट
Credentialed Accounts ACTIVE ACCOUNT * <my_account>@<my_domain.com> To set the active account, run: $ gcloud config set account `ACCOUNT`
- Cloud Shell में यह कमांड चलाएं, ताकि यह पुष्टि की जा सके कि gcloud के लिए कमांड को आपके प्रोजेक्ट के बारे में जानकारी है:
gcloud config list project
कमांड आउटपुट
[core] project = <PROJECT_ID>
अगर ऐसा नहीं है, तो आप इसे इस निर्देश की मदद से सेट कर सकते हैं:
gcloud config set project <PROJECT_ID>
कमांड आउटपुट
Updated property [core/project].
3. BigQuery API चालू करना
Google Cloud के सभी प्रोजेक्ट में BigQuery API, डिफ़ॉल्ट रूप से चालू होना चाहिए. Cloud Shell में यह कमांड इस्तेमाल करके यह पता लगाया जा सकता है कि यह बात सही है या नहीं: आपको BigQuery की सूची में शामिल होना चाहिए:
gcloud services list
आपको सूची में BigQuery दिखेगा:
NAME TITLE
bigquery-json.googleapis.com BigQuery API
...
अगर BigQuery API चालू नहीं है, तो इसे चालू करने के लिए Cloud Shell में इस कमांड का इस्तेमाल किया जा सकता है:
gcloud services enable bigquery-json.googleapis.com
4. C# के लिए BigQuery क्लाइंट लाइब्रेरी इंस्टॉल करें
सबसे पहले, एक आसान C# कंसोल ऐप्लिकेशन बनाएं, जिसका इस्तेमाल आप BigQuery API नमूने चलाने के लिए करेंगे.
dotnet new console -n BigQueryDemo
आपको बनाया गया ऐप्लिकेशन और डिपेंडेंसी हल की गई देखनी चाहिए:
The template "Console Application" was created successfully.
Processing post-creation actions...
...
Restore succeeded.
इसके बाद, BigQueryDemo
फ़ोल्डर पर जाएं:
cd BigQueryDemo
और प्रोजेक्ट में Google.Cloud.BigQuery.V2
NuGet पैकेज जोड़ें:
dotnet add package Google.Cloud.BigQuery.V2
info : Adding PackageReference for package 'Google.Cloud.BigQuery.V2' into project '/home/atameldev/BigQueryDemo/BigQueryDemo.csproj'.
log : Restoring packages for /home/atameldev/BigQueryDemo/BigQueryDemo.csproj...
...
info : PackageReference for package 'Google.Cloud.BigQuery.V2' version '1.2.0' added to file '/home/atameldev/BigQueryDemo/BigQueryDemo.csproj'.
अब आप BigQuery API का इस्तेमाल करने के लिए तैयार हैं!
5. शेक्सपियर के काम के बारे में क्वेरी करें
सार्वजनिक डेटासेट, ऐसा डेटासेट होता है जिसे BigQuery में सेव करके आम लोगों के लिए उपलब्ध कराया जाता है. आपके लिए क्वेरी करने के लिए कई अन्य सार्वजनिक डेटासेट उपलब्ध हैं, जिनमें से कुछ को Google भी होस्ट करता है. हालांकि, कई और डेटासेट तीसरे पक्षों के ज़रिए होस्ट किए जाते हैं. सार्वजनिक डेटासेट के पेज पर ज़्यादा जानकारी पाएं.
सार्वजनिक डेटासेट के अलावा, BigQuery सीमित संख्या में सैंपल टेबल उपलब्ध कराता है, जिनके लिए क्वेरी की जा सकती है. ये टेबल bigquery-public-data:samples dataset
में मौजूद हैं. इनमें से एक टेबल का नाम shakespeare.
है. इसमें शेक्सपियर के काम का वर्ड इंडेक्स मौजूद है. इससे पता चलता है कि हर कॉर्पस (संग्रह) में कोई शब्द कितनी बार दिखता है.
इस चरण में आपको शेक्सपियर टेबल पर क्वेरी करनी होगी.
सबसे पहले, क्लाउड शेल के सबसे ऊपर दाईं ओर से कोड एडिटर खोलें:
BigQueryDemo
फ़ोल्डर में मौजूद Program.cs
फ़ाइल पर जाएं और कोड को इन कोड से बदलें. projectId
को अपने असल प्रोजेक्ट आईडी से बदलना न भूलें:
using System;
using Google.Cloud.BigQuery.V2;
namespace BigQueryDemo
{
class Program
{
static void Main(string[] args)
{
var client = BigQueryClient.Create("projectId");
var table = client.GetTable("bigquery-public-data", "samples", "shakespeare");
var sql = $"SELECT corpus AS title, COUNT(word) AS unique_words FROM {table} GROUP BY title ORDER BY unique_words DESC LIMIT 10";
var results = client.ExecuteQuery(sql, parameters: null);
foreach (var row in results)
{
Console.WriteLine($"{row["title"]}: {row["unique_words"]}");
}
}
}
}
कोड को समझने में कुछ समय लगेगा. इससे आपको पता चलेगा कि टेबल के बारे में किस तरह से क्वेरी की जा रही है.
Cloud Shell पर वापस जाकर, इस ऐप्लिकेशन को चलाएं:
dotnet run
आपको शब्दों और उनकी घटनाओं की सूची दिखेगी:
hamlet: 5318
kinghenryv: 5104
cymbeline: 4875
troilusandcressida: 4795
kinglear: 4784
kingrichardiii: 4713
2kinghenryvi: 4683
...
6. GitHub डेटासेट की क्वेरी करें
BigQuery के बारे में ज़्यादा जानने के लिए, अब आपको GitHub के सार्वजनिक डेटासेट के लिए एक क्वेरी जारी करनी होगी. आपको GitHub पर सबसे ज़्यादा इस्तेमाल होने वाले मैसेज मिलेंगे. ऐड-हॉक क्वेरी का पूर्वावलोकन करने और उन्हें चलाने के लिए, आप BigQuery के वेब कंसोल का इस्तेमाल भी करेंगे.
डेटा कैसा दिखेगा, यह देखने के लिए BigQuery वेब यूज़र इंटरफ़ेस (यूआई) में GitHub डेटासेट खोलें:
डेटा कैसा दिखता है, इसकी तुरंत झलक देखने के लिए 'झलक देखें' बटन का इस्तेमाल करें:
BigQueryDemo
फ़ोल्डर में मौजूद Program.cs
फ़ाइल पर जाएं और कोड को इन कोड से बदलें. projectId
को अपने असल प्रोजेक्ट आईडी से बदलना न भूलें:
using System;
using Google.Cloud.BigQuery.V2;
namespace BigQueryDemo
{
class Program
{
static void Main(string[] args)
{
var client = BigQueryClient.Create("projectId");
var table = client.GetTable("bigquery-public-data", "github_repos", "commits");
var sql = $"SELECT subject AS subject, COUNT(*) AS num_duplicates FROM {table} GROUP BY subject ORDER BY num_duplicates DESC LIMIT 10";
var results = client.ExecuteQuery(sql, parameters: null);
foreach (var row in results)
{
Console.WriteLine($"{row["subject"]}: {row["num_duplicates"]}");
}
}
}
}
कुछ समय निकालकर कोड को समझ लें और देखें कि आम तौर पर सबसे ज़्यादा बताए गए मैसेज के लिए, टेबल पर किस तरह क्वेरी की जा रही है.
Cloud Shell पर वापस जाकर, इस ऐप्लिकेशन को चलाएं:
dotnet run
आपको तय किए गए मैसेज और उनके इस्तेमाल की सूची दिखेगी:
Update README.md: 2509242
: 1971725
Initial commit: 1942149
Mirroring from Micro.blog.: 838586
update: 575188
Update data.json: 548651
Update data.js: 548339
Add files via upload: 379941
*** empty log message ***: 358528
Can't you see I'm updating the time?: 286863
7. कैश मेमोरी में सेव करना और आंकड़े
शुरुआती क्वेरी के बाद, BigQuery नतीजों को कैश मेमोरी में सेव कर लेता है. इस वजह से, बाद की क्वेरी में बहुत कम समय लगता है. क्वेरी के विकल्पों की मदद से कैश मेमोरी में डेटा सेव करने की सुविधा बंद की जा सकती है. BigQuery, क्वेरी बनाने का समय, खत्म होने का समय, प्रोसेस की गई कुल बाइट जैसी क्वेरी से जुड़े कुछ आंकड़ों का भी ट्रैक रखता है.
इस चरण में, कैश मेमोरी में डेटा सेव होने की सुविधा बंद की जाती है और क्वेरी के बारे में कुछ आंकड़े भी दिखाए जाते हैं.
BigQueryDemo
फ़ोल्डर में मौजूद Program.cs
फ़ाइल पर जाएं और कोड को इन कोड से बदलें. projectId
को अपने असल प्रोजेक्ट आईडी से बदलना न भूलें:
using System;
using Google.Cloud.BigQuery.V2;
namespace BigQueryDemo
{
class Program
{
static void Main(string[] args)
{
var client = BigQueryClient.Create("projectId");
var table = client.GetTable("bigquery-public-data", "github_repos", "commits");
var sql = $"SELECT subject AS subject, COUNT(*) AS num_duplicates FROM {table} GROUP BY subject ORDER BY num_duplicates DESC LIMIT 10";
var queryOptions = new QueryOptions {
UseQueryCache = false
};
var results = client.ExecuteQuery(sql, parameters: null, queryOptions: queryOptions);
foreach (var row in results)
{
Console.WriteLine($"{row["subject"]}: {row["num_duplicates"]}");
}
var job = client.GetJob(results.JobReference);
var stats = job.Statistics;
Console.WriteLine("----------");
Console.WriteLine($"Creation time: {stats.CreationTime}");
Console.WriteLine($"End time: {stats.EndTime}");
Console.WriteLine($"Total bytes processed: {stats.TotalBytesProcessed}");
}
}
}
कोड के बारे में ध्यान देने वाली कुछ बातें. सबसे पहले, क्वेरी के विकल्प शुरू करने और UseQueryCache
को 'गलत है' पर सेट करने से, कैश मेमोरी की सुविधा बंद हो जाती है. इसके बाद, आपने जॉब ऑब्जेक्ट से क्वेरी के आंकड़े को ऐक्सेस किया.
Cloud Shell पर वापस जाकर, इस ऐप्लिकेशन को चलाएं:
dotnet run
पहले की तरह ही, आपको रिपोर्ट किए गए मैसेज और उनके इस्तेमाल की सूची दिखेगी. इसके अलावा, आपको आखिर में क्वेरी के बारे में कुछ आंकड़े भी दिखेंगे
Update README.md: 2509242
: 1971725
Initial commit: 1942149
Mirroring from Micro.blog.: 838586
update: 575188
Update data.json: 548651
Update data.js: 548339
Add files via upload: 379941
*** empty log message ***: 358528
Can't you see I'm updating the time?: 286863
----------
Creation time: 1533052057398
End time: 1533052066961
Total bytes processed: 9944197093
8. BigQuery में डेटा लोड हो रहा है
अपने डेटा के लिए क्वेरी करने के लिए, पहले आपको अपने डेटा को BigQuery में लोड करना होगा. BigQuery की मदद से, Google Cloud Storage और Google की अन्य सेवाओं जैसे कई सोर्स से डेटा लोड किया जा सकता है. साथ ही, डेटा को आसानी से पढ़ा जा सकता है. स्ट्रीमिंग इन्सर्ट का इस्तेमाल करके भी अपना डेटा स्ट्रीम किया जा सकता है. BigQuery में डेटा लोड करना पेज के बारे में ज़्यादा जानकारी पाएं.
इस चरण में, Google Cloud Storage में सेव की गई JSON फ़ाइल को, BigQuery टेबल में लोड किया जाएगा. JSON फ़ाइल, gs://cloud-samples-data/bigquery/us-states/us-states.json
पर मौजूद है
अगर आपको JSON फ़ाइल के कॉन्टेंट के बारे में जानना है, तो gsutil
कमांड-लाइन टूल का इस्तेमाल करके, उसे Cloud Shell में डाउनलोड किया जा सकता है:
gsutil cp gs://cloud-samples-data/bigquery/us-states/us-states.json .
Copying gs://cloud-samples-data/bigquery/us-states/us-states.json...
/ [1 files][ 2.0 KiB/ 2.0 KiB]
Operation completed over 1 objects/2.0 KiB.
यहां अमेरिका के राज्यों की सूची दी गई है और हर राज्य एक अलग लाइन में JSON दस्तावेज़ है:
less us-states.json
{"name": "Alabama", "post_abbr": "AL"}
{"name": "Alaska", "post_abbr": "AK"}
...
इस JSON फ़ाइल को BigQuery में लोड करने के लिए, BigQueryDemo
फ़ोल्डर में Program.cs
फ़ाइल पर जाएं और कोड को यहां दिए गए कोड से बदलें. projectId
को अपने असल प्रोजेक्ट आईडी से बदलना न भूलें:
using System;
using Google.Cloud.BigQuery.V2;
namespace BigQueryDemo
{
class Program
{
static void Main(string[] args)
{
var gcsUri = "gs://cloud-samples-data/bigquery/us-states/us-states.json";
var client = BigQueryClient.Create("projectId");
var dataset = client.GetOrCreateDataset("us_states_dataset");
var schema = new TableSchemaBuilder
{
{ "name", BigQueryDbType.String },
{ "post_abbr", BigQueryDbType.String }
}.Build();
var jobOptions = new CreateLoadJobOptions
{
SourceFormat = FileFormat.NewlineDelimitedJson
};
var table = dataset.GetTableReference("us_states_table");
var loadJob = client.CreateLoadJob(gcsUri, table, schema, jobOptions);
loadJob.PollUntilCompleted();
loadJob.ThrowOnAnyError();
Console.WriteLine("Json file loaded to BigQuery");
}
}
}
दो मिनट का समय निकालें और यह पता लगाएं कि कोड, JSON फ़ाइल को कैसे लोड करता है और डेटासेट के अंदर स्कीमा के साथ टेबल कैसे बनाता है.
Cloud Shell पर वापस जाकर, इस ऐप्लिकेशन को चलाएं:
dotnet run
BigQuery में डेटासेट और टेबल बनाई जाती हैं
Json file loaded to BigQuery
BigQuery कंसोल पर जाकर, पुष्टि करें कि डेटासेट बना है या नहीं. आपको एक नया डेटासेट और एक टेबल बन जाएगी. टेबल के झलक टैब पर जाने पर, आपको असल डेटा दिखेगा:
9. बधाई हो!
आपने C#! का इस्तेमाल करके BigQuery को इस्तेमाल करने का तरीका सीखा है!
व्यवस्थित करें
इस क्विकस्टार्ट में इस्तेमाल किए गए संसाधनों के लिए, आपके Google Cloud Platform खाते पर लगने वाले शुल्क से बचने के लिए:
- Cloud Platform कंसोल पर जाएं.
- वह प्रोजेक्ट चुनें जिसे शट डाउन करना है. इसके बाद, ‘मिटाएं' पर क्लिक करें सबसे ऊपर: यह प्रोजेक्ट को मिटाने के लिए शेड्यूल करता है.
ज़्यादा जानें
- Google BigQuery: https://cloud.google.com/bigquery/docs/
- Google Cloud Platform पर C#/.NET: https://cloud.google.com/dotnet/
- Google Cloud .NET क्लाइंट: https://googlecloudplatform.github.io/google-cloud-dotnet/
लाइसेंस
इस काम को क्रिएटिव कॉमंस एट्रिब्यूशन 2.0 जेनरिक लाइसेंस के तहत लाइसेंस मिला है.