BigQuery-এ উইকিপিডিয়া ডেটাসেট জিজ্ঞাসা করুন

1. ওভারভিউ

BigQuery হল Google-এর সম্পূর্ণরূপে পরিচালিত, NoOps, কম খরচের অ্যানালিটিক্স ডেটাবেস৷ BigQuery-এর সাহায্যে, আপনি টেরাবাইট এবং টেরাবাইট ডেটা ম্যানেজ করার জন্য কোনও পরিকাঠামো ছাড়াই জিজ্ঞাসা করতে পারেন এবং কোনও ডাটাবেস অ্যাডমিনিস্ট্রেটরের প্রয়োজন নেই৷ BigQuery পরিচিত SQL ব্যবহার করে এবং এটি একটি পে-অ্যাজ-ইউ-গো মডেলের সুবিধা নিতে পারে। BigQuery আপনাকে অর্থপূর্ণ অন্তর্দৃষ্টি খুঁজতে ডেটা বিশ্লেষণে ফোকাস করতে দেয়।

এই কোডল্যাবে, আপনি BigQuery ব্যবহার করে উইকিপিডিয়া ডেটাসেট অন্বেষণ করেন।

আপনি কি শিখবেন

  • কিভাবে BigQuery ব্যবহার করবেন
  • BigQuery-এ কীভাবে একটি বাস্তব-বিশ্বের ডেটাসেট লোড করবেন
  • একটি বড় ডেটাসেটের অন্তর্দৃষ্টি পেতে একটি প্রশ্ন কীভাবে লিখতে হয়

আপনি কি প্রয়োজন হবে

সমীক্ষা

আপনি কিভাবে এই টিউটোরিয়াল ব্যবহার করবেন?

শুধু পড়ুন এটি পড়ুন এবং ব্যায়াম সম্পূর্ণ করুন

Google ক্লাউডের সাথে আপনার অভিজ্ঞতাকে কীভাবে মূল্যায়ন করবে?

নবজাতক মধ্যবর্তী দক্ষ

2. সেটআপ এবং প্রয়োজনীয়তা

BigQuery সক্ষম করুন

আপনার যদি ইতিমধ্যে একটি Google অ্যাকাউন্ট না থাকে তবে আপনাকে অবশ্যই একটি তৈরি করতে হবে৷

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

একটি প্রকল্পের নাম চয়ন করুন এবং প্রকল্প আইডি নোট করুন। 1884405a64ce5765.png

প্রোজেক্ট আইডি সমস্ত Google ক্লাউড প্রোজেক্ট জুড়ে একটি অনন্য নাম। এটি পরে এই কোডল্যাবে PROJECT_ID হিসাবে উল্লেখ করা হবে।

এই কোডল্যাব BigQuery স্যান্ডবক্স সীমার মধ্যে BigQuery সম্পদ ব্যবহার করে। একটি বিলিং অ্যাকাউন্ট প্রয়োজন হয় না. আপনি যদি পরে স্যান্ডবক্স সীমা সরাতে চান, তাহলে আপনি Google ক্লাউড বিনামূল্যে ট্রায়ালের জন্য সাইন আপ করে একটি বিলিং অ্যাকাউন্ট যোগ করতে পারেন।

আপনি পরবর্তী বিভাগে উইকিপিডিয়া ডেটাসেট লোড করুন।

3. একটি ডেটাসেট তৈরি করুন

প্রথমে, প্রকল্পে একটি নতুন ডেটাসেট তৈরি করুন। একটি ডেটাসেট একাধিক টেবিলের সমন্বয়ে গঠিত।

  1. একটি ডেটাসেট তৈরি করতে, সংস্থান ফলকের অধীনে প্রকল্পের নামটি ক্লিক করুন, তারপরে ডেটাসেট তৈরি করুন ক্লিক করুন:

4a5983b4dc299705.png

  1. ডেটাসেট আইডি হিসাবে lab লিখুন:

a592b5b9be20fdec.png

  1. একটি খালি ডেটাসেট তৈরি করতে ডেটাসেট তৈরি করুন ক্লিক করুন।

4. bq কমান্ড-লাইন প্রোগ্রামের সাথে ডেটা লোড করুন

ক্লাউড শেল সক্রিয় করুন

  1. ক্লাউড কনসোল থেকে, ক্লাউড শেল সক্রিয় করুন ক্লিক করুন 4292cbf4971c9786.png .

bce75f34b2c53987.png

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

70f315d7b402b476.png

ক্লাউড শেলের সাথে সংযোগ করতে এবং সংযোগ করতে এটির মাত্র কয়েক মুহূর্ত লাগবে৷

fbe3a0674c982259.png

এই ভার্চুয়াল মেশিনটি আপনার প্রয়োজনীয় সমস্ত ডেভেলপমেন্ট টুল দিয়ে লোড করা হয়েছে। এটি একটি ক্রমাগত 5GB হোম ডিরেক্টরি অফার করে এবং Google ক্লাউডে চলে, যা নেটওয়ার্ক কর্মক্ষমতা এবং প্রমাণীকরণকে ব্যাপকভাবে উন্নত করে। এই কোডল্যাবে আপনার অনেক কাজ, যদি সব না হয়, শুধুমাত্র একটি ব্রাউজার বা আপনার Chromebook দিয়ে করা যেতে পারে।

একবার ক্লাউড শেলের সাথে সংযুক্ত হয়ে গেলে, আপনি দেখতে পাবেন যে আপনি ইতিমধ্যেই প্রমাণীকরণ করেছেন এবং প্রকল্পটি ইতিমধ্যে আপনার প্রকল্প আইডিতে সেট করা আছে।

  1. আপনি প্রমাণীকৃত কিনা তা নিশ্চিত করতে ক্লাউড শেলে নিম্নলিখিত কমান্ডটি চালান:
gcloud auth list

কমান্ড আউটপুট

 Credentialed Accounts
ACTIVE  ACCOUNT
*       <my_account>@<my_domain.com>

To set the active account, run:
    $ gcloud config set account `ACCOUNT`
  1. gcloud কমান্ড আপনার প্রকল্প সম্পর্কে জানে তা নিশ্চিত করতে ক্লাউড শেলে নিম্নলিখিত কমান্ডটি চালান:
gcloud config list project

কমান্ড আউটপুট

[core]
project = <PROJECT_ID>

যদি এটি না হয়, আপনি এই কমান্ড দিয়ে এটি সেট করতে পারেন:

gcloud config set project <PROJECT_ID>

কমান্ড আউটপুট

Updated property [core/project].

BigQuery-এ ডেটা লোড করুন

আপনার সুবিধার জন্য, উইকিমিডিয়া পেজভিউ ডেটাসেট থেকে 10 এপ্রিল, 2019-এর কিছু ডেটা Google ক্লাউড স্টোরেজে gs://cloud-samples-data/third-party/wikimedia/pageviews/pageviews-20190410-140000.gz ডেটা ফাইলটি একটি GZip'ed CSV ফাইল। আপনি bq কমান্ড-লাইন ইউটিলিটি ব্যবহার করে সরাসরি এই ফাইলটি লোড করতে পারেন। লোড কমান্ডের অংশ হিসাবে, আপনি ফাইলের স্কিমাও বর্ণনা করেন।

bq load \
  --source_format CSV \
  --field_delimiter " " \
  --allow_jagged_rows \
  --quote "" \
  --max_bad_records 3 \
  $GOOGLE_CLOUD_PROJECT:lab.pageviews_20190410_140000 \
  gs://cloud-samples-data/third-party/wikimedia/pageviews/pageviews-20190410-140000.gz \
  wiki,title,requests:integer,zero:integer

আপনি পৃষ্ঠা-দর্শন ফাইল লোড করতে কয়েকটি উন্নত বিকল্প ব্যবহার করেছেন:

  • ফাইলটিকে একটি CSV ফাইল হিসাবে পার্স করা উচিত নির্দেশ করতে --source_format CSV সেট করুন৷ এই ধাপটি ঐচ্ছিক কারণ CSV হল ডিফল্ট ফর্ম্যাট৷
  • ক্ষেত্রগুলিকে সীমাবদ্ধ করতে একটি একক স্থান ব্যবহার করা হয় তা নির্দেশ করতে --field_delimiter " " সেট করুন।
  • কম সংখ্যক কলাম সহ সারি অন্তর্ভুক্ত করতে --allow_jagged_rows সেট করুন এবং CSV ফাইল লোড করার সময় ত্রুটিগুলি উপেক্ষা করুন৷
  • স্ট্রিংগুলি উদ্ধৃত নয় তা বোঝাতে --quote "" সেট করুন।
  • CSV ফাইল পার্স করার সময় সর্বাধিক 3টি ত্রুটি উপেক্ষা করতে --max_bad_records 3 সেট করুন৷

আপনি ডকুমেন্টেশনে bq কমান্ড লাইন সম্পর্কে আরও জানতে পারেন।

5. ডেটাসেটের পূর্বরূপ দেখুন

BigQuery কনসোলে, আপনি এইমাত্র লোড করেছেন এমন একটি টেবিল খুলুন।

  1. প্রকল্প প্রসারিত করুন।
  2. ডেটাসেট প্রসারিত করুন।
  3. টেবিল নির্বাচন করুন. 99f875c838ed9a58.png

আপনি স্কিমা ট্যাবে টেবিল স্কিমা দেখতে পারেন। 4. বিস্তারিত ট্যাবে নেভিগেট করে টেবিলে কত ডেটা আছে তা খুঁজে বের করুন:

742cd54fbf17085.png

  1. টেবিল থেকে সারিগুলির একটি নির্বাচন দেখতে পূর্বরূপ ট্যাবটি খুলুন৷

397a9c25480735cc.png

6. একটি প্রশ্ন রচনা করুন

  1. নতুন ক্যোয়ারী রচনা করুন ক্লিক করুন:

cc28282a25c9746e.png

এটি ক্যোয়ারী সম্পাদক নিয়ে আসে:

e881286d275ab4ec.png

  1. এই ক্যোয়ারীটি লিখে 10 এপ্রিল 2019 তারিখে 2 থেকে 3 PM এর মধ্যে মোট উইকিমিডিয়া দর্শনের সংখ্যা খুঁজুন:
SELECT SUM(requests)
FROM `lab.pageviews_20190410_140000`
  1. রান ক্লিক করুন:

9abb7c4039961f5b.png

কয়েক সেকেন্ডের মধ্যে, ফলাফলটি নীচে তালিকাভুক্ত করা হয়েছে এবং এটি আপনাকে বলে যে কত ডেটা প্রক্রিয়া করা হয়েছিল:

a119b65f2ca49e41.png

এই ক্যোয়ারীটি 123.9MB প্রক্রিয়া করা হয়েছে, যদিও টেবিলটি 691.4MB। BigQuery শুধুমাত্র কলামের বাইটগুলিকে প্রসেস করে যা ক্যোয়ারীতে ব্যবহার করা হয়, তাই প্রক্রিয়াকৃত ডেটার মোট পরিমাণ টেবিলের আকারের থেকে উল্লেখযোগ্যভাবে কম হতে পারে। ক্লাস্টারিং এবং পার্টিশনিংয়ের সাথে, প্রক্রিয়াকৃত ডেটার পরিমাণ আরও কমানো যেতে পারে।

7. আরও উন্নত প্রশ্ন

উইকিপিডিয়া পেজ ভিউ খুঁজুন

উইকিমিডিয়া ডেটাসেটে সমস্ত উইকিমিডিয়া প্রকল্পের (উইকিপিডিয়া, উইকশনারি, উইকিবুক এবং উইকিকোট সহ) পৃষ্ঠা দর্শন রয়েছে। একটি WHERE বিবৃতি যোগ করে শুধুমাত্র ইংরেজি উইকিপিডিয়া পৃষ্ঠাগুলিতে প্রশ্নটি সংকীর্ণ করুন:

SELECT SUM(requests), wiki
FROM `lab.pageviews_20190410_140000`
WHERE wiki = "en"
GROUP BY wiki

d6c6c7901c314da7.png

লক্ষ্য করুন যে, একটি অতিরিক্ত কলাম, wiki জিজ্ঞাসা করার মাধ্যমে, প্রক্রিয়াকৃত ডেটার পরিমাণ 124MB থেকে 204MB-তে বৃদ্ধি পেয়েছে৷

BigQuery অনেক পরিচিত SQL ক্লজকে সমর্থন করে, যেমন CONTAINS , GROUP BY, ORDER BY , এবং বেশ কিছু একত্রীকরণ ফাংশন। উপরন্তু, আপনি টেক্সট ক্ষেত্র অনুসন্ধান করতে নিয়মিত এক্সপ্রেশন ব্যবহার করতে পারেন! একটি চেষ্টা করুন:

SELECT title, SUM(requests) requests
FROM `lab.pageviews_20190410_140000`
WHERE
  wiki = "en"
  AND REGEXP_CONTAINS(title, 'Red.*t')
GROUP BY title
ORDER BY requests DESC

একাধিক টেবিল জুড়ে প্রশ্ন

আপনি একটি ওয়াইল্ডকার্ড টেবিল ব্যবহার করে ইউনিয়ন গঠন করতে টেবিলের একটি পরিসর নির্বাচন করতে পারেন।

  1. প্রথমত, একটি নতুন টেবিলে পরবর্তী ঘন্টার পৃষ্ঠা দর্শন লোড করে প্রশ্ন করার জন্য একটি দ্বিতীয় টেবিল তৈরি করুন:
bq load \
  --source_format CSV \
  --field_delimiter " " \
  --quote "" \
  $GOOGLE_CLOUD_PROJECT:lab.pageviews_20190410_150000 \
  gs://cloud-samples-data/third-party/wikimedia/pageviews/pageviews-20190410-150000.gz \
  wiki,title,requests:integer,zero:integer
  1. ক্যোয়ারী এডিটরে , একটি উপসর্গ হিসাবে " pageviews_2019 " এর সাথে ক্যোয়ারী করার মাধ্যমে আপনি লোড করা উভয় টেবিলের উপর ক্যোয়ারী করুন:
SELECT title, SUM(requests) requests
FROM `lab.pageviews_2019*`
WHERE
  wiki = "en"
  AND REGEXP_CONTAINS(title, 'Red.*t')
GROUP BY title
ORDER BY requests DESC

আপনি _TABLE_SUFFIX ছদ্ম কলাম দিয়ে আরও বেছে বেছে টেবিলগুলি ফিল্টার করতে পারেন। এই ক্যোয়ারীটি 10 ​​এপ্রিলের সাথে সম্পর্কিত টেবিলে সীমাবদ্ধ।

SELECT title, SUM(requests) requests
FROM `lab.pageviews_2019*`
WHERE
  _TABLE_SUFFIX BETWEEN '0410' AND '0410_9999999'
  AND wiki = "en"
  AND REGEXP_CONTAINS(title, 'Red.*t')
GROUP BY title
ORDER BY requests DESC

8. পরিষ্কার করা

ঐচ্ছিকভাবে, bq rm কমান্ড দিয়ে আপনার তৈরি করা ডেটাসেট মুছুন। এটিতে থাকা যেকোনো টেবিল অপসারণ করতে -r পতাকা ব্যবহার করুন।

bq rm -r lab

9. অভিনন্দন!

আপনি বাস্তব-বিশ্বের উইকিপিডিয়া পৃষ্ঠা-দর্শন ডেটাসেট অনুসন্ধান করতে BigQuery এবং SQL ব্যবহার করেছেন। আপনার কাছে পেটাবাইট-স্কেল ডেটাসেটগুলি অনুসন্ধান করার ক্ষমতা আছে!

আরও জানুন