BigQuery ML-এর সাথে ছবির ডেটা শ্রেণীবিভাগ

1. ভূমিকা

এই কোডল্যাবে, আমরা BigQuery-এ যোগা পোজ-এর ছবিগুলি সংরক্ষণ ও বিশ্লেষণ করার ক্ষেত্রে এবং শুধুমাত্র SQL কনস্ট্রাক্ট ব্যবহার করে পোজগুলিকে লেবেল করার জন্য BigQuery ML-এর সাথে একটি শ্রেণীবিভাগ মডেল প্রয়োগ করার ক্ষেত্রে আলোচনা করব এবং অন্য কোনও কোড নয়৷

BigQuery এবং BQML

BigQuery হল একটি সার্ভারহীন, মাল্টি-ক্লাউড ডেটা গুদাম যা শূন্য অপারেশনাল ওভারহেড সহ বাইট থেকে পেটাবাইটে স্কেল করতে পারে। এটি ML প্রশিক্ষণ ডেটা সংরক্ষণের জন্য এটি একটি দুর্দান্ত পছন্দ করে তোলে। এছাড়াও, বিল্ট-ইন BigQuery মেশিন লার্নিং ( BQML ) এবং বিশ্লেষণ ক্ষমতা আপনাকে শুধুমাত্র SQL কোয়েরি ব্যবহার করে নো-কোড পূর্বাভাস তৈরি করতে দেয়। এবং আপনি জটিল ETL পাইপলাইনের প্রয়োজনীয়তা দূর করে ফেডারেটেড কোয়েরি সহ বাহ্যিক উত্স থেকে ডেটা অ্যাক্সেস করতে পারেন। আপনি BigQuery পৃষ্ঠাতে BigQuery-এর অফার করা সবকিছু সম্পর্কে আরও পড়তে পারেন।

এখনও অবধি, আমরা BigQuery কে এই সম্পূর্ণরূপে পরিচালিত ক্লাউড ডেটা গুদাম হিসাবে জানি যা ব্যবহারকারীদের কাঠামোগত এবং আধা-কাঠামোগত ডেটা বিশ্লেষণ করতে সহায়তা করে৷ কিন্তু,

  • বিগকুয়েরি অসংগঠিত ডেটাতেও সমস্ত বিশ্লেষণ এবং ML সম্পাদন করতে প্রসারিত হয়েছে
  • আমরা অতিরিক্ত কোড না লিখেই চিত্র, ভিডিও, অডিও ইত্যাদি স্কেলে অন্তর্দৃষ্টিপূর্ণ বিশ্লেষণ, বিশ্লেষণ এবং ML সঞ্চালনের জন্য এসকিউএল কোয়েরি ব্যবহার করতে পারি
  • আমাদের কাছে স্ট্রাকচার্ড এবং আনস্ট্রাকচার্ড ডেটা একত্রিত করার ক্ষমতা আছে যেন সেগুলি একটি টেবিলে একসাথে বিদ্যমান

আমরা পরবর্তী বিভাগে কভার করা আমাদের যোগ ভঙ্গি শ্রেণীবিভাগের ব্যবহার ক্ষেত্রে এগুলি নিয়ে আলোচনা করব।

BigQuery ML-এর সাথে ছবির ডেটা শ্রেণীবিভাগ

স্ট্রাকচার্ড ক্যোয়ারী ব্যবহার করে ইমেজগুলিকে প্রসেস এবং বিশ্লেষণ করার ক্ষমতা থাকা যেন সেগুলি স্ট্রাকচার্ড ডেটা ছিল। এখন আমরা BigQuery ML ব্যবহার করে মেশিন লার্নিং ক্লাসিফিকেশন মডেল ব্যবহার করে ফলাফলের পূর্বাভাস দিতে পারি। আমি সহজে বোঝার জন্য জড়িত ধাপগুলিকে 5টি ধাপে সংকুচিত করেছি:

fe97945bce996e1.jpeg

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

আপনি কি নির্মাণ করবেন

আপনি BQML এর সাথে একটি ইমেজ ডেটা ক্লাসিফিকেশন মডেল তৈরি করবেন যা নীচে কভার করবে:

  • একটি BigQuery ডেটাসেট যাতে টেবিল এবং মডেলের উপাদান থাকে
  • Google ক্লাউড স্টোরেজ (GCS) মডেলের জন্য যোগ ছবি সঞ্চয় করার জন্য বালতি
  • ক্লাউড স্টোরেজ ইমেজ অ্যাক্সেস করার জন্য একটি বাহ্যিক টেবিল
  • GCS-এ ছবিগুলি অ্যাক্সেস করার জন্য বাহ্যিক টেবিলের জন্য একটি BigLake সংযোগ
  • BigQuery ML-এ ResNet মডেল
  • তৈরি মডেল ব্যবহার করে অনুমান
  • ছবির ডেটা বিশ্লেষণের জন্য BigQuery SQL
  • বিগকুয়েরি এসকিউএল স্ট্রাকচার্ড এবং আনস্ট্রাকচার্ড ডেটা একসাথে জিজ্ঞাসা করতে

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

  • কীভাবে একটি ক্লাউড স্টোরেজ বাকেট তৈরি করবেন এবং চিত্রগুলি সংরক্ষণ করবেন
  • কিভাবে BigQuery ডেটাসেট, টেবিল এবং সংযোগ তৈরি করবেন
  • BQML ব্যবহার করে কিভাবে একটি ইমেজ ডেটা ক্লাসিফিকেশন মডেল তৈরি করবেন
  • BigQuery ML ব্যবহার করে তৈরি করা মডেল দিয়ে কীভাবে ভবিষ্যদ্বাণী করা যায়
  • BigQuery SQL ব্যবহার করে কীভাবে ছবিগুলিকে জিজ্ঞাসা করা যায় এবং স্ট্রাকচার্ড ডেটার সাথে একত্রিত করা যায়

2. প্রয়োজনীয়তা

  • একটি ব্রাউজার, যেমন ক্রোম বা ফায়ারফক্স
  • বিলিং সক্ষম সহ একটি Google ক্লাউড প্রকল্প যাতে আপনার BigQuery, ক্লাউড স্টোরেজ এবং BigLake সংযোগ পরিষেবা রয়েছে
  • পরবর্তী বিভাগে ইমেজ ডেটা ক্লাসিফিকেশন অ্যাপ্লিকেশন তৈরির ধাপগুলির তালিকা রয়েছে

3. ডেটাসেট এবং একটি BigLake সংযোগ তৈরি করুন

আমাদের 5টি যোগা ভঙ্গির চিত্র সনাক্তকরণের ক্ষেত্রে, আমি সর্বজনীনভাবে উপলব্ধ ডেটাসেট ব্যবহার করেছি এবং আপনি এই রেপো থেকে ডেটাসেটটি অ্যাক্সেস করতে পারেন। আমরা যে যোগের ভঙ্গিগুলি চিহ্নিত করছি তা ডাউনডগ, দেবী, তক্তা, গাছ এবং ওয়ারিয়র2 এর মধ্যে সীমাবদ্ধ। আপনি BigQuery ডেটাসেট তৈরির সাথে শুরু করার আগে, একটি Google ক্লাউড প্রকল্প নির্বাচন বা তৈরি করা নিশ্চিত করুন এবং প্রকল্পে বিলিং সক্ষম করা আছে কিনা তা পরীক্ষা করুন৷ BigQuery API এবং BigQuery সংযোগ API সক্ষম করুন ৷ অনুগ্রহ করে মনে রাখবেন এই বাস্তবায়নে ব্যবহৃত সমস্ত পরিষেবা পছন্দের একই অঞ্চলে হওয়া উচিত।

ক নীচে দেখানো ধাপগুলি ব্যবহার করে ডেটাসেট "yoga_set" তৈরি করুন:

BigQuery এডিটরে যান এবং কমান্ড টাইপ করুন:

CREATE SCHEMA `<<project_id>>.yoga_set`;

খ. BigLake সংযোগ আমাদেরকে সূক্ষ্ম-দানাযুক্ত BigQuery অ্যাক্সেস নিয়ন্ত্রণ এবং নিরাপত্তা বজায় রেখে বাহ্যিক ডেটা উৎসের সাথে সংযোগ করতে দেয়, যা আমাদের ক্ষেত্রে চিত্র ডেটার জন্য ক্লাউড স্টোরেজ। আমরা ক্লাউড স্টোরেজ থেকে অবজেক্ট পড়তে এই সংযোগটি ব্যবহার করব। BigLake সংযোগ তৈরি করতে নীচের পদক্ষেপগুলি অনুসরণ করুন৷

BigQuery পৃষ্ঠার এক্সপ্লোরার প্যানে ডেটা যোগ করুন ক্লিক করুন:

4cb42b1245bb0ba6.png BigQuery "বাহ্যিক ডেটা যোগ করুন" স্ক্রীন

বাহ্যিক ডেটা উত্সগুলিতে সংযোগগুলিতে ক্লিক করুন এবং BigLake এবং রিমোট ফাংশন বিকল্প নির্বাচন করুন:

9ffec2b2bfcc3cd5.png বাহ্যিক ডেটা উৎস সংযোগ কনফিগার করুন

সংযোগ আইডি প্রদান করুন এবং সংযোগ তৈরি করুন। পরিষেবা অ্যাকাউন্ট আইডির একটি নোট করতে ভুলবেন না যা সংযোগ তৈরি হয়ে গেলে স্ক্রিনে প্রদর্শিত হবে <<SERVICE_ACCOUNT>>। আমাদের উদাহরণে, সংযোগ আইডি হল "yoga-pose-conn"। অঞ্চলটি নোট করতে মনে রাখবেন।

4. Google ক্লাউড স্টোরেজ বাকেট তৈরি করুন এবং অনুমতি প্রদান করুন

আমরা Google ক্লাউড স্টোরেজ বালতি ব্যবহার করতে যাচ্ছি যোগা পোজের ইমেজ ফাইল ধারণ করতে যা আমরা মডেল তৈরি করতে চাই। বালতি হল ক্লাউড স্টোরেজ কন্টেইনার যাতে আমরা যে ছবিগুলি বিশ্লেষণ করতে যাচ্ছি তা ধারণ করে৷

ক কনসোলে এটি অনুসন্ধান করে Google ক্লাউড স্টোরেজ-এ যান এবং তারপরে Buckets হোম পেজে অবতরণ করতে Buckets-এ ক্লিক করুন এবং CREATE এ ক্লিক করুন

a6f6b26cffb53ae0.png Google ক্লাউড স্টোরেজ বাকেট পৃষ্ঠা

খ. একটি বালতি তৈরি করুন পৃষ্ঠায়, আপনার বালতি তথ্য লিখুন (একটি অনন্য নাম) এবং চালিয়ে যান, নিশ্চিত করুন যে এটি ডেটাসেট এবং সংযোগটি উপরের ধাপে আলোচনা করা একই অঞ্চলে রয়েছে এবং তৈরি করুন ক্লিক করুন

1280366a42b7bdf6.png Google ক্লাউড স্টোরেজ একটি বালতি পৃষ্ঠা তৈরি করুন

পরবর্তী ধাপে যাওয়ার আগে, নিশ্চিত করুন যে আপনি আপনার পরিষেবা অ্যাকাউন্ট, বালতির নাম এবং পথটি নোট করেছেন৷

গ. একবার বালতি তৈরি হয়ে গেলে, আপনার ছবিগুলি সংরক্ষণ করুন (কনসোল বা ক্লাউড শেল কমান্ডের মাধ্যমে বা প্রোগ্রাম্যাটিকভাবে) এবং ছবিগুলি অ্যাক্সেস করার জন্য সংযোগের পরিষেবা অ্যাকাউন্টের জন্য প্রয়োজনীয় অনুমতি প্রদান করুন (যেটি আমরা আগে সংরক্ষণ করেছি)

> export sa=<<"SERVICE_ACCOUNT">>
> gsutil iam ch serviceAccount:$sa:objectViewer "gs://<<bucket>>"

5. একটি অবজেক্ট টেবিল তৈরি করুন

আমাদের তৈরি করা সংযোগ ব্যবহার করে বালতিতে অসংগঠিত ডেটা অ্যাক্সেস করতে BigQuery থেকে একটি বাহ্যিক অবজেক্ট টেবিল তৈরি করুন। BigQuery সম্পাদক থেকে নিচের CREATE SQL চালান:

CREATE OR REPLACE EXTERNAL TABLE `<<dataset>>.<<table_name>>`
WITH CONNECTION `us.<<connection-name>>`
OPTIONS(
object_metadata="SIMPLE", uris=["gs://<<bucket>>/<<folder_if_exists>>/*.jpg"]);

নীচে দেখানো হিসাবে বহিরাগত টেবিল তৈরি করা হয়েছে:

bda48f566e0c292f.png

চলুন দ্রুত সদ্য নির্মিত বহিরাগত টেবিল থেকে একটি ভঙ্গি জিজ্ঞাসা করা যাক:

SELECT data , uri
FROM `yoga_set.yoga_poses`
WHERE REGEXP_CONTAINS(uri, 'gs://yoga_images/Downdog')
Limit 1;

আপনি নীচের স্ক্রিনশটটিতে দেখতে পাচ্ছেন, আপনি কাঠামোবিহীন চিত্রগুলি তৈরি করতে এবং পরিচালনা করতে পারেন যেন সেগুলি কাঠামোগত ডেটা:

7d1784122b5013f.png

এখন ফলাফলটি কল্পনা করতে উপরের থেকে একটি ছোট পাইথন স্নিপেটে কোয়েরি ফলাফল রপ্তানি করা যাক:

ফলাফল সংরক্ষণ করুন ক্লিক করুন এবং ফলাফল রপ্তানি করতে "CSV লোকালফাইল" বিকল্পটি নির্বাচন করুন৷ তারপর আপনার Colab নোটবুক খুলুন (বা একটি তৈরি করুন ) এবং নীচের কোডটি টাইপ করুন

from IPython.display import display
from PIL import Image
import io
import pandas as pd
import base64
df = pd.read_csv('/content/sample_data/<<your_csv>>')
imgdata = base64.b64decode(str(df.data[0]))
image = Image.open(io.BytesIO(imgdata))
display(image)

নিচের মত ফলাফল দেখতে চালান:

b8edd68cb281786a.png

এখন যেহেতু আমরা এক্সটার্নাল টেবিল তৈরি করেছি এবং ক্লাউড স্টোরেজ থেকে শুধুমাত্র এসকিউএল কোয়েরি ব্যবহার করে ইমেজগুলি অ্যাক্সেস করেছি, আসুন আমরা পরবর্তী বিভাগে চলে যাই যা ক্লাসিফিকেশন মডেল তৈরি করা।

6. মডেলটি তৈরি করুন এবং এটি Google ক্লাউড স্টোরেজে আপলোড করুন৷

এই বাস্তবায়নের জন্য, আমরা এইমাত্র তৈরি করা অবজেক্ট টেবিলে অনুমান চালানোর জন্য প্রাক-প্রশিক্ষিত ResNet 50 মডেল ব্যবহার করতে যাচ্ছি। ResNet 50 মডেল ইমেজ ফাইল বিশ্লেষণ করে এবং ভেক্টরের একটি ব্যাচ আউটপুট করে যা একটি ইমেজ সংশ্লিষ্ট শ্রেণীর (লগিট) অন্তর্গত হওয়ার সম্ভাবনার প্রতিনিধিত্ব করে।

এই ধাপে যাওয়ার আগে, নিশ্চিত করুন যে আপনার কাছে সমস্ত প্রয়োজনীয় অনুমতি রয়েছে। তারপর নিচের ধাপগুলো অনুসরণ করুন:

  1. এই অবস্থান থেকে মডেল ডাউনলোড করুন এবং আপনার স্থানীয় মধ্যে এটি সংরক্ষণ করুন
  2. এটি saved_model.pb এবং একটি ভেরিয়েবল ফোল্ডারে আনপ্যাকেজ করা উচিত
  3. এই দুটি (ফাইল এবং ফোল্ডার) আমরা পূর্ববর্তী বিভাগে তৈরি করা বালতিতে আপলোড করুন

2629ff3eda214946.png আপলোড করা ResNet মডেল ফাইল সহ Google ক্লাউড স্টোরেজ বাকেট "yoga_images"

একবার এই ধাপটি সম্পন্ন হলে, আপনার মডেল সম্পর্কিত ফাইলগুলি উপরের ছবিতে দেখানো আপনার চিত্রগুলির মতো একই বালতিতে উপস্থিত থাকা উচিত৷

7. BQML এ মডেল লোড করুন এবং ইনফার করুন

এই ধাপে, আমরা আগে তৈরি করা বাহ্যিক টেবিলের মতো একই BigQuery ডেটাসেটে মডেলটি লোড করতে যাচ্ছি এবং ক্লাউড স্টোরেজে আমাদের সংরক্ষিত ছবিগুলির জন্য এটি প্রয়োগ করতে যাচ্ছি।

ক BigQuery এডিটর থেকে, নিম্নলিখিত SQL স্টেটমেন্ট চালান

CREATE MODEL `<<Dataset>>.<<Model_Name>>`
OPTIONS(
model_type = 'TENSORFLOW',
model_path = 'gs://<<Bucket>>/*');

একবার এক্সিকিউশন সম্পূর্ণ হয়ে গেলে (যা আপনার ডেটাসেটের উপর নির্ভর করে কিছু সময় নিতে পারে), আপনি BigQuery-এ আপনার ডেটাসেট বিভাগে তালিকাভুক্ত মডেলটি দেখতে পাবেন।

435fa0919aeb57a6.png BigQuery ডেটাসেট তৈরি করা মডেলের তালিকা করছে

খ. এর ইনপুট এবং আউটপুট ক্ষেত্রগুলি দেখতে মডেলটি পরিদর্শন করুন।

ডেটাসেট প্রসারিত করুন এবং আমরা এইমাত্র "yoga_poses_resnet" তৈরি করা মডেলটিতে ক্লিক করুন। স্কিমা ট্যাবে ক্লিক করুন:

e88928764f10f6ff.png BigQuery মডেল ডেফিনিশন স্কিমা ট্যাব

লেবেল বিভাগে, আপনি "activation_49" ক্ষেত্রটি দেখতে পাচ্ছেন যা আউটপুট ক্ষেত্রকে প্রতিনিধিত্ব করে। বৈশিষ্ট্য বিভাগে, আপনি "ইনপুট_1" দেখতে পাবেন যা মডেলটিতে ইনপুট হওয়ার প্রত্যাশিত ক্ষেত্রের প্রতিনিধিত্ব করে৷ আপনি আপনার "পরীক্ষা" ডেটার জন্য যে ক্ষেত্রটি পাস করছেন তা হিসাবে আপনি আপনার অনুমান ক্যোয়ারীতে (বা পূর্বাভাস ক্যোয়ারী) "ইনপুট_1" উল্লেখ করবেন।

গ. আপনার যোগব্যায়াম ভঙ্গি অনুমান করুন!

আমাদের পরীক্ষার ইমেজ ডেটা শ্রেণীবদ্ধ করতে আমরা এইমাত্র তৈরি করা মডেলটি ব্যবহার করি। নিশ্চিত করুন যে আপনার ক্লাউড স্টোরেজ বাকেট থেকে চিহ্নিত কিছু পরীক্ষামূলক ছবি (যোগাভঙ্গি) আছে যা আমরা এটি তৈরি করার সময় এটিকে বহিরাগত টেবিলে পরিণত করেছি। আমরা এইমাত্র তৈরি করা BQML মডেল ব্যবহার করে অনুমান করার জন্য BigQuery-এ সেই পরীক্ষার ছবিগুলির জন্য বেছে বেছে প্রশ্ন করতে যাচ্ছি। পরীক্ষা ট্রিগার করতে নীচের ক্যোয়ারী ব্যবহার করুন.

SELECT *
FROM ML.PREDICT(
MODEL yoga_set.yoga_poses_resnet,
(SELECT uri, ML.DECODE_IMAGE(data) AS input_1
FROM yoga_set.yoga_poses where REGEXP_CONTAINS(uri,
'gs://yoga_images/Downdog/00000097.jpg')));

উপরের ক্যোয়ারীতে, আমরা একটি পরীক্ষার চিত্র নির্বাচন করি যা বহিরাগত সারণিতে একটি নির্দিষ্ট URI মান (00000097.jpg) ধারণ করে। এছাড়াও, ML.PREDICT ফাংশন কাজ করার জন্য SELECT অংশটি "input_1" ক্ষেত্র হিসাবে ML.DECODE_IMAGE গঠন ব্যবহার করে৷

একবার এক্সিকিউশন সম্পন্ন হলে, আপনি নিচের মত ফলাফল দেখতে পাবেন:

867018993845e943.png

এখন যারা রেসনেট মডেলটি গভীরভাবে জানেন তাদের জন্য এটি শ্রেণীবিভাগ বুঝতে সাহায্য করবে। অন্যথায়, শ্রেণীবিভাগটি দৃশ্যত বোঝার জন্য একটি ছোট স্নিপেট কোড করি।

d ফলাফল সমতল

উপরের আউটপুটটি ভিজ্যুয়ালাইজ করার একটি উপায় হল BigQuery SQL-এর UNNEST কনস্ট্রাক্ট ব্যবহার করে activation_49 ফিল্ডের মান সমতল করা। পূর্ববর্তী ধাপ থেকে ফলাফল সমতল করার জন্য অনুগ্রহ করে নীচের প্রশ্নটি পড়ুন। আপনি যদি ফলাফলের ক্লাসটিকে আরও পাঠ্যভাবে লেবেল করতে চান, আপনি ক্যোয়ারীতে স্থানধারক <<LABEL_LOGIC>> এর জায়গায় যুক্তি উপস্থাপন করতে পারেন (ব্যবহার করার সময় মন্তব্য করুন)।

with predictions as (
SELECT
Uri, data, SPLIT(uri, "/")[OFFSET(ARRAY_LENGTH(SPLIT(uri, "/")) - 1)] as img,  
i as label_i,
<<LABEL_LOGIC>> label,
Score
FROM ML.PREDICT(
MODEL yoga_set.yoga_poses_resnet,
(SELECT data, uri, ML.DECODE_IMAGE(data) AS input_1
FROM yoga_set.yoga_poses 
WHERE
REGEXP_CONTAINS(uri,'gs://yoga_images/Goddess/00000007.jpg'))),
UNNEST(activation_49) as score WITH OFFSET i)
SELECT * FROM predictions 
ORDER BY score DESC
LIMIT  5;

ক্লাস লেবেলিং লজিক ব্যতীত, নীচে ক্যোয়ারীটির আউটপুট রয়েছে:

71f580f41f0811f3.png

যাইহোক, আমার ক্ষেত্রে, আমি একটি নমুনা যুক্তি প্রয়োগ করেছি এবং নীচে ফলাফল রয়েছে:

1c6df6ecd14fba1.png

আপনি মডেল সম্পর্কে আরও পড়তে পারেন এবং যুক্তি প্রয়োগ করতে পারেন যা আপনার ডেটা এবং মডেল আউটপুটের সাথে সবচেয়ে ভাল কাজ করে।

e অনুমানটি ভিজ্যুয়ালাইজ করা

অবশেষে, শ্রেণীবিভাগ থেকে ফলাফল কল্পনা করার জন্য একটি দ্রুত পাইথন স্নিপেট! উপরের ক্যোয়ারী ফলাফলটি একটি CSV ফাইলে রপ্তানি করুন এবং এটিকে পাইথন কোডে উল্লেখ করুন।

68756e7e4b8d7a29.png

উপরের চিত্রের আউটপুটটি যোগা পোজ "ডাউনওয়ার্ড ডগ" কে নির্দেশ করে যা ঠিক একই পরীক্ষা ইনপুট যা আমরা BQML ব্যবহার করে শ্রেণীবিভাগের জন্য ML.PREDICT ক্যোয়ারীতে পাস করেছি!

8. স্ট্রাকচার্ড এবং আনস্ট্রাকচার্ড ডেটা একত্রিত করা

সবশেষে, এই বাস্তবায়নের আমার প্রিয় অংশটি হল আমার কাঠামোবদ্ধ রিলেশনাল টেবিল থেকে ক্ষেত্রগুলিকে এই অসংগঠিত চিত্র ডেটার সাথে একীভূত করা। পোজ এবং এর স্বাস্থ্য সম্পর্কিত ডেটা রাখার জন্য আমি বহিরাগত টেবিলের মতো একই ডেটাসেটে একটি স্ট্রাকচার্ড BigQuery টেবিল তৈরি করেছি।

125bdf848c86fbe.png BigQuery স্ট্রাকচার্ড টেবিল "yoga_health" স্কিমা

উপরের চিত্রটি "যোগ_স্বাস্থ্য" নামের স্ট্রাকচার্ড ডেটা টেবিলের স্কিমাকে উপস্থাপন করে এবং ক্ষেত্রগুলি হল পোজ, ফোকাস, স্বাস্থ্য_সুবিধা এবং শ্বাস। নীচের ক্যোয়ারীটি স্ট্রাকচার্ড এবং আনস্ট্রাকচার্ড উভয় ডেটাতে যোগ দেয়:

SELECT SPLIT(uri, "/")[OFFSET(ARRAY_LENGTH(SPLIT(uri, "/")) - 2)] as pose,
a.health_benefit, breath, focus, data
FROM `abis-345004.yoga_set.yoga_health` a, yoga_set.yoga_poses b
WHERE a.pose = SPLIT(uri, "/")[OFFSET(ARRAY_LENGTH(SPLIT(uri, "/")) - 2)];

নীচে ফলাফল দেওয়া হল:

469bdfcffa9e19fd.png

দ্রষ্টব্য: আমরা এই ব্লগে কভার করেছি সমস্ত প্রশ্ন সরাসরি আপনার পাইথন নোটবুক থেকে BigQuery ম্যাজিক কমান্ড ব্যবহার করে চালানো যেতে পারে।

9. পরিষ্কার করুন

এই পোস্টে ব্যবহৃত সংস্থানগুলির জন্য আপনার Google ক্লাউড অ্যাকাউন্টে চার্জ এড়াতে, এই পদক্ষেপগুলি অনুসরণ করুন৷

  1. Google ক্লাউড কনসোলে, সম্পদ পরিচালনা পৃষ্ঠাতে যান
  2. প্রকল্প তালিকায়, আপনি যে প্রকল্পটি মুছতে চান সেটি নির্বাচন করুন এবং তারপরে মুছুন ক্লিক করুন
  3. ডায়ালগে, প্রজেক্ট আইডি টাইপ করুন এবং তারপরে প্রোজেক্ট মুছে ফেলতে শাট ডাউন ক্লিক করুন

10. অভিনন্দন

অভিনন্দন! আপনি BigQuery-এ অসংগঠিত ডেটা সফলভাবে সঞ্চয় করেছেন, অনুসন্ধান করেছেন, BQML ব্যবহার করে একটি শ্রেণীবিভাগ মডেল তৈরি করেছেন এবং মডেলের সাথে পরীক্ষার যোগব্যায়ামের ভবিষ্যদ্বাণী করেছেন। আপনি যদি এটি বাস্তবায়ন করতে চান তবে আপনার Google ক্লাউড প্রকল্পের সাথে শুরু করুন৷ এছাড়াও, আপনি যদি Google ক্লাউডে ডেটাবেস বা অন্য প্রান্ত থেকে শেষ অ্যাপ্লিকেশন বাস্তবায়ন সম্পর্কে আরও জানতে চান, তাহলে অনুগ্রহ করে আমার ব্লগগুলিতে যান।