1. ভূমিকা
BigQuery হল Google-এর সম্পূর্ণরূপে পরিচালিত, NoOps, কম খরচের বিশ্লেষণ ডাটাবেস। BigQuery-এর সাহায্যে, আপনি কোনও ডাটাবেস প্রশাসক বা অবকাঠামো ছাড়াই টেরাবাইট ডেটা অনুসন্ধান করতে পারেন। BigQuery পরিচিত SQL এবং একটি পে- অনলি -ফর-ওনলি-ইউ-ও
তুমি কি শিখবে
- BigQuery-এর জন্য bq কমান্ড-লাইন টুল কীভাবে ব্যবহার করবেন
- কিভাবে একটি BigQuery টেবিলে স্থানীয় ডেটা ফাইল লোড করবেন
তোমার যা লাগবে
- একটি গুগল ক্লাউড প্রকল্প
- একটি ব্রাউজার, যেমন গুগল ক্রোম
2. সেট আপ করুন
BigQuery সক্ষম করুন
যদি আপনার ইতিমধ্যেই একটি Google অ্যাকাউন্ট না থাকে, তাহলে আপনাকে অবশ্যই একটি তৈরি করতে হবে।
- গুগল ক্লাউড কনসোলে সাইন ইন করুন এবং BigQuery-তে নেভিগেট করুন। আপনার ব্রাউজারে নিম্নলিখিত URL টি প্রবেশ করে আপনি সরাসরি BigQuery ওয়েব UI খুলতে পারেন।
https://console.cloud.google.com/bigquery
- পরিষেবার শর্তাবলী গ্রহণ করুন।
- BigQuery ব্যবহার করার আগে, আপনাকে একটি প্রকল্প তৈরি করতে হবে। আপনার নতুন প্রকল্প তৈরি করতে প্রম্পটগুলি অনুসরণ করুন।
একটি প্রকল্পের নাম নির্বাচন করুন এবং প্রকল্পের আইডিটি নোট করুন। 
সমস্ত Google ক্লাউড প্রোজেক্টে প্রোজেক্ট আইডি একটি অনন্য নাম। এই কোডল্যাবে পরে এটিকে PROJECT_ID হিসেবে উল্লেখ করা হবে।
এই কোডল্যাবটি BigQuery স্যান্ডবক্স সীমার মধ্যে থাকা BigQuery রিসোর্স ব্যবহার করে। একটি বিলিং অ্যাকাউন্টের প্রয়োজন নেই। আপনি যদি পরে স্যান্ডবক্স সীমা অপসারণ করতে চান, তাহলে আপনি Google Cloud বিনামূল্যে ট্রায়ালের জন্য সাইন আপ করে একটি বিলিং অ্যাকাউন্ট যোগ করতে পারেন।
ক্লাউড শেল
আপনি ক্লাউড শেল ব্যবহার করবেন, যা গুগল ক্লাউডে চলমান একটি কমান্ড-লাইন পরিবেশ।
ক্লাউড শেল সক্রিয় করুন
- ক্লাউড কনসোল থেকে, ক্লাউড শেল সক্রিয় করুন ক্লিক করুন
.

যদি আপনি আগে কখনও ক্লাউড শেল শুরু না করে থাকেন, তাহলে আপনাকে একটি মধ্যবর্তী স্ক্রিন (ভাঁজের নীচে) দেখানো হবে যেখানে এটি কী তা বর্ণনা করা হবে। যদি তাই হয়, তাহলে Continue এ ক্লিক করুন (এবং আপনি এটি আর কখনও দেখতে পাবেন না)। এই এককালীন স্ক্রিনটি কেমন দেখাবে:

ক্লাউড শেলের সাথে সংযোগ স্থাপন এবং সংযোগ স্থাপন করতে মাত্র কয়েক মুহূর্ত সময় লাগবে।

এই ভার্চুয়াল মেশিনটি আপনার প্রয়োজনীয় সকল ডেভেলপমেন্ট টুল দিয়ে পূর্ণ। এটি একটি স্থায়ী 5GB হোম ডিরেক্টরি অফার করে এবং Google Cloud-এ চলে, যা নেটওয়ার্ক কর্মক্ষমতা এবং প্রমাণীকরণকে ব্যাপকভাবে উন্নত করে। এই কোডল্যাবে আপনার বেশিরভাগ কাজ, যদি সব না হয়, কেবল একটি ব্রাউজার বা আপনার Chromebook দিয়ে করা যেতে পারে।
একবার ক্লাউড শেলের সাথে সংযুক্ত হয়ে গেলে, আপনি দেখতে পাবেন যে আপনি ইতিমধ্যেই প্রমাণিত এবং প্রকল্পটি ইতিমধ্যেই আপনার প্রকল্প আইডিতে সেট করা আছে।
- আপনি প্রমাণিত কিনা তা নিশ্চিত করতে ক্লাউড শেলে নিম্নলিখিত কমান্ডটি চালান:
gcloud auth list
কমান্ড আউটপুট
Credentialed Accounts
ACTIVE ACCOUNT
* <my_account>@<my_domain.com>
To set the active account, run:
$ gcloud config set account `ACCOUNT`
- gcloud কমান্ড আপনার প্রকল্প সম্পর্কে জানে কিনা তা নিশ্চিত করতে ক্লাউড শেলে নিম্নলিখিত কমান্ডটি চালান:
gcloud config list project
কমান্ড আউটপুট
[core] project = <PROJECT_ID>
যদি তা না হয়, তাহলে আপনি এই কমান্ড দিয়ে এটি সেট করতে পারেন:
gcloud config set project <PROJECT_ID>
কমান্ড আউটপুট
Updated property [core/project].
৩. একটি ডেটাসেট তৈরি করুন
আপনার টেবিলগুলি ধারণ করার জন্য একটি ডেটাসেট তৈরি করুন।
একটি ডেটাসেট কী?
একটি BigQuery ডেটাসেট হল টেবিলের একটি সংগ্রহ। একটি ডেটাসেটের সমস্ত টেবিল একই ডেটা লোকেশনে সংরক্ষণ করা হয়। আপনি একটি ডেটাসেট এবং এর টেবিলগুলিতে অ্যাক্সেস সীমিত করতে কাস্টম অ্যাক্সেস নিয়ন্ত্রণও সংযুক্ত করতে পারেন।
একটি ডেটাসেট তৈরি করুন
ক্লাউড শেলে, " bq_load_codelab " নামক একটি ডেটাসেট তৈরি করতে bq mk কমান্ড ব্যবহার করুন।
bq mk bq_load_codelab
ডেটাসেটের বৈশিষ্ট্য দেখুন
bq show কমান্ড ব্যবহার করে ডেটাসেটের বৈশিষ্ট্য দেখে যাচাই করুন যে আপনি ডেটাসেটটি তৈরি করেছেন।
bq show bq_load_codelab
আপনি নিম্নলিখিতগুলির মতো আউটপুট দেখতে পাবেন:
Dataset my-project:bq_load_codelab
Last modified ACLs Labels
----------------- -------------------- --------
15 Jun 14:12:49 Owners:
projectOwners,
your-email@example.com
Writers:
projectWriters
Readers:
projectReaders
৪. ডেটা ফাইল তৈরি করুন
BigQuery বিভিন্ন ডেটা ফর্ম্যাট থেকে ডেটা লোড করতে পারে, যার মধ্যে রয়েছে newline-delimited JSON , Avro , এবং CSV । সহজতার জন্য, আপনি CSV ব্যবহার করবেন।
একটি CSV ফাইল তৈরি করুন
ক্লাউড শেলে, একটি খালি CSV ফাইল তৈরি করুন।
touch customer_transactions.csv
ক্লাউড শেলের কোড এডিটরে CSV ফাইলটি খুলতে ক্লাউডশেল এডিট কমান্ডটি ব্যবহার করুন, যা একটি কোড এডিটর এবং ক্লাউড শেল প্যানেল সহ একটি নতুন ব্রাউজার উইন্ডো খুলবে।
cloudshell edit customer_transactions.csv
কোড এডিটরে, BigQuery-তে লোড করার জন্য কিছু কমা-বিভাজিত মান লিখুন।
ID,Zipcode,Timestamp,Amount,Feedback,SKU c123,78757,2018-02-14 17:01:39Z,1.20,4.7,he4rt5 c456,10012,2018-03-14 15:09:26Z,53.60,3.1,ppiieee c123,78741,2018-04-01 05:59:47Z,5.98,2.0,ch0c0
ফাইল > সম্পাদনা ক্লিক করে CSV ফাইলটি সংরক্ষণ করুন।
৫. ডেটা লোড করুন
আপনার CSV ফাইলটি একটি BigQuery টেবিলে লোড করতে bq load কমান্ডটি ব্যবহার করুন।
bq load \
--source_format=CSV \
--skip_leading_rows=1 \
bq_load_codelab.customer_transactions \
./customer_transactions.csv \
id:string,zip:string,ttime:timestamp,amount:numeric,fdbk:float,sku:string
আপনি নিম্নলিখিত বিকল্পগুলি ব্যবহার করেছেন:
-
--source_format=CSVডেটা ফাইল পার্স করার সময় CSV ডেটা ফর্ম্যাট ব্যবহার করে। -
--skip_leading_rows=1CSV ফাইলের প্রথম লাইনটি এড়িয়ে যায় কারণ এটি একটি হেডার সারি। -
Bq_load_codelab.customer_transactions—the first positional argument—কোন টেবিলে ডেটা লোড করা উচিত তা নির্ধারণ করে। -
./customer_transactions.csv— দ্বিতীয় অবস্থানগত যুক্তি — কোন ফাইলটি লোড করতে হবে তা নির্ধারণ করে। স্থানীয় ফাইলগুলি ছাড়াও, bq load কমান্ডgs://my_bucket/path/to/file URIsব্যবহার করে ক্লাউড স্টোরেজ থেকে ফাইল লোড করতে পারে। - একটি স্কিমা, যা একটি JSON স্কিমা ফাইলে অথবা একটি কমা দ্বারা পৃথক তালিকা হিসাবে সংজ্ঞায়িত করা যেতে পারে। (আপনি সরলতার জন্য একটি কমা দ্বারা পৃথক তালিকা ব্যবহার করেছেন।)
আপনি customer_transactions টেবিলে নিম্নলিখিত স্কিমা ব্যবহার করেছেন:
-
Id:string: একটি গ্রাহক শনাক্তকারী -
Zip:string: একটি মার্কিন পোস্টাল জিপ কোড -
Ttime:timestamp: লেনদেনের তারিখ এবং সময় -
Amount:numeric: একটি লেনদেনের পরিমাণ (একটি সংখ্যাসূচক কলাম দশমিক আকারে তথ্য সংরক্ষণ করে, যা আর্থিক মূল্যের জন্য কার্যকর।) -
Fdbk:float: লেনদেন সম্পর্কে একটি প্রতিক্রিয়া জরিপের রেটিং -
Sku:string: কেনা জিনিসের জন্য একটি শনাক্তকারী।
টেবিলের বিবরণ পান
টেবিলের বৈশিষ্ট্যগুলি দেখিয়ে টেবিলটি লোড হয়েছে কিনা তা যাচাই করুন।
bq show bq_load_codelab.customer_transactions
আউটপুট:
Table my-project:bq_load_codelab.customer_transactions
Last modified Schema Total Rows Total Bytes
----------------- --------------------- ------------ -------------
15 Jun 15:13:55 |- id: string 3 159
|- zip: string
|- ttime: timestamp
|- amount: numeric
|- fdbk: float
|- sku: string
৬. তথ্য অনুসন্ধান করুন
এখন আপনার ডেটা লোড হয়ে গেছে, আপনি BigQuery ওয়েব UI , bq কমান্ড, অথবা API ব্যবহার করে এটি অনুসন্ধান করতে পারেন। আপনার প্রশ্নগুলি আপনার ডেটা যেকোনো ডেটাসেটের (অথবা ডেটাসেট, যতক্ষণ না তারা একই স্থানে থাকে) সাথে যুক্ত করতে পারে যা পড়ার অনুমতি আপনার কাছে রয়েছে।
একটি স্ট্যান্ডার্ড SQL কোয়েরি চালান যা আপনার ডেটাসেটকে মার্কিন জিপ কোড ডেটাসেটের সাথে সংযুক্ত করে এবং মার্কিন রাজ্য অনুসারে লেনদেনের সারসংক্ষেপ করে। কোয়েরিটি কার্যকর করতে bq কোয়েরি কমান্ড ব্যবহার করুন।
bq query --nouse_legacy_sql ' SELECT SUM(c.amount) AS amount_total, z.state_code AS state_code FROM `bq_load_codelab.customer_transactions` c JOIN `bigquery-public-data.utility_us.zipcode_area` z ON c.zip = z.zipcode GROUP BY state_code '
সেই কমান্ডটি এরকম কিছু আউটপুট দেবে:
Waiting on bqjob_r26...05a15b38_1 ... (1s) Current status: DONE +--------------+------------+ | amount_total | state_code | +--------------+------------+ | 53.6 | NY | | 7.18 | TX | +--------------+------------+
আপনি যে কোয়েরিটি চালান তাতে একটি পাবলিক ডেটাসেট এবং আপনার ব্যক্তিগত ডেটাসেট ব্যবহার করা হয়েছে। একই কোয়েরির এই মন্তব্য করা সংস্করণটি পড়ে আরও জানুন:
#standardSQL SELECT /* Total of all transactions in the state. */ SUM(c.amount) AS amount_total, /* State corresponding to the transaction's zipcode. */ z.state_code AS state_code /* Query the table you just constructed. * Note: If you omit the project from the table ID, * the dataset is read from your project. */ FROM `bq_load_codelab.customer_transactions` c /* Join the table to the zipcode public dataset. */ JOIN `bigquery-public-data.utility_us.zipcode_area` z /* Find the state corresponding to the transaction's zipcode. */ ON c.zip = z.zipcode /* Group over all transactions by state. */ GROUP BY state_code
৭. পরিষ্কার করা
bq rm কমান্ড দিয়ে তৈরি করা ডেটাসেটটি মুছে ফেলুন। এতে থাকা যেকোনো টেবিল মুছে ফেলতে -r ফ্ল্যাগ ব্যবহার করুন।
bq rm -r bq_load_codelab
৮. অভিনন্দন!
আপনি BigQuery-তে একটি টেবিল আপলোড করেছেন এবং এটি সম্পর্কে জিজ্ঞাসা করেছেন!
তুমি যা কভার করেছো
- BigQuery এর সাথে ইন্টারঅ্যাক্ট করার জন্য
bqকমান্ড-লাইন টুল ব্যবহার করা। - আপনার ডেটা এবং একটি পাবলিক ডেটাসেটকে একটি BigQuery কোয়েরির সাথে সংযুক্ত করা।
এরপর কি?
সম্পর্কে আরও জানুন:
-
bqকমান্ড-লাইন টুল - BigQuery-তে ডেটা লোড করার অন্যান্য উপায়।
- BigQuery এর মাধ্যমে উপলব্ধ অন্যান্য পাবলিক ডেটাসেট ।
- BigQuery-এর মাধ্যমে TIL- তে আবহাওয়া, অপরাধ এবং অন্যান্য ধরণের ডেটা।