ল্যাব ২: ডেটা বিশ্লেষণ এবং মাল্টিমোডাল অন্তর্দৃষ্টি

১. ভূমিকা

কন্টেইনার অনুপস্থিত

পূর্ববর্তী ল্যাবে, আপনি খণ্ডিত শিপিং লগগুলো একত্রিত করে কার্গো ট্রান্সপন্ডারটির উৎস খুঁজে নিউ ইয়র্কে পৌঁছেছিলেন। তবে, আগমন রেকর্ড থেকে দেখা যায় যে কাস্টমসের নজর এড়াতে কন্টেইনারটি সঙ্গে সঙ্গে অন্য পথে পাঠানো হয়েছিল। এই সূত্র এখন আপনাকে রিও ডি জেনিরো বন্দরে নিয়ে এসেছে, যা হাজার হাজার কন্টেইনার সমৃদ্ধ একটি বিশাল বন্দর। হাজার হাজার কন্টেইনারের মধ্যে সঠিকটি খুঁজে বের করা একটি কঠিন কাজ।

এই ল্যাবে, আপনি BigQuery- এর অন্তর্নির্মিত AI সক্ষমতা ব্যবহার করে সাধারণ SQL-এর সাহায্যে অসংগঠিত পোর্ট নিরাপত্তা চিত্র "পড়বেন" এবং সেন্সর ডেটাতে তাপীয় অসঙ্গতি শনাক্ত করবেন। এরপর আপনি ভেক্টর এমবেডিংগুলো AlloyDB- তে এক্সপোর্ট করবেন এবং একটি খণ্ডিত টেলিমেট্রি সংকেতকে অনুপস্থিত কন্টেইনারের সাথে মেলানোর জন্য একটি ভেক্টর অনুসন্ধান চালাবেন।

আপনি যা করবেন

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

আপনার যা যা লাগবে

  • ক্রোমের মতো একটি ওয়েব ব্রাউজার
  • বিলিং সক্ষম একটি গুগল ক্লাউড প্রজেক্ট
  • SQL এবং গুগল ক্লাউড কনসোল সম্পর্কে প্রাথমিক ধারণা

এই কোডল্যাবটি মধ্যবর্তী স্তরের ডেভেলপারদের জন্য।

এই কোডল্যাবে তৈরি রিসোর্সগুলোর খরচ ৫ ডলারের কম হওয়া উচিত।

২. শুরু করার আগে

ক্লাউড শেল শুরু করুন

আপনি গুগল ক্লাউড শেল ব্যবহার করে কোড ডাউনলোড করবেন, সেটআপ স্ক্রিপ্ট চালাবেন এবং অ্যাপ্লিকেশনটি ডেপ্লয় করবেন।

  1. একটি নতুন ব্রাউজার ট্যাবে ক্লাউড শেল খুলুন: shell.cloud.google.com
  2. সংযুক্ত হয়ে গেলে, আপনার প্রজেক্ট আইডি সেট করুন এবং আপনার পরিবেশ নিশ্চিত করুন:
gcloud config set project <<YOUR_PROJECT_ID>>
export PROJECT_ID=$(gcloud config get-value project)
export REGION=us-central1

আপনি নিম্নলিখিতের মতো একটি বার্তা দেখতে পাবেন:

Your active configuration is: [cloudshell-####]
Updated property [core/project]

রিপোজিটরি ক্লোন করুন

আপনার ক্লাউড শেল পরিবেশে কোডল্যাব রিপোজিটরিটি ক্লোন করুন:

cd ~/
git clone --filter=blob:none --no-checkout https://github.com/GoogleCloudPlatform/devrel-demos.git
cd ~/devrel-demos
git sparse-checkout init --cone
git sparse-checkout set codelabs/bigquery-alloydb-insights
git checkout main
cd codelabs/bigquery-alloydb-insights/

এপিআই সক্ষম করুন

এই ল্যাবের জন্য প্রয়োজনীয় সকল এপিআই (API) সক্রিয় করতে ক্লাউড শেলে এই কমান্ডটি চালান:

gcloud services enable \
  aiplatform.googleapis.com \
  bigquery.googleapis.com \
  bigqueryconnection.googleapis.com \
  alloydb.googleapis.com

সফলভাবে কার্যকর হলে, আপনি নিম্নলিখিতের মতো একটি বার্তা দেখতে পাবেন:

Operation "operations/..." finished successfully.

৩. আপনার পরিবেশ প্রস্তুত করুন

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

ধাপ ১: AlloyDB ডেপ্লয়মেন্ট শুরু করুন (পটভূমি)

AlloyDB ক্লাস্টার প্রোভিশনিং-এ প্রায় ১০ মিনিট সময় লাগে, তাই আপনি প্রথমে এটি চালু করে দেবেন এবং BigQuery সেকশনগুলোর কাজ করার সময় এটিকে ব্যাকগ্রাউন্ডে চলতে দেবেন। স্ক্রিপ্টটি স্বয়ংক্রিয়ভাবে আপনার সক্রিয় প্রোজেক্ট সেটিংস একটি স্থানীয় .env ফাইলে রেকর্ড করবে, যাতে আপনার ক্লাউড শেল টার্মিনাল বন্ধ বা রিস্টার্ট হলেও আপনার কনফিগারেশন সংরক্ষিত থাকে।

chmod +x scripts/setup_alloydb.sh
nohup ./scripts/setup_alloydb.sh > /dev/null 2>&1 &
echo "AlloyDB deployment started in background (PID: $!)"

ধাপ ২: সেটআপ স্ক্রিপ্টটি চালান

এই স্ক্রিপ্টটি BigQuery ডেটাসেট, ক্লাউড রিসোর্স কানেকশন, IAM গ্রান্ট, GCS বাকেট তৈরি করে এবং এই ল্যাবে আপনি যে সমস্ত সেন্সর ডেটা বিশ্লেষণ করবেন তা লোড করে। এটি .env ফাইলে সংরক্ষিত এনভায়রনমেন্ট ভেরিয়েবলগুলোও পড়বে এবং যাচাই করবে।

chmod +x scripts/setup_lab.sh
./scripts/setup_lab.sh

স্ক্রিপ্টটি চলতে প্রায় এক মিনিট সময় নেয়। এটি শেষ হলে, এটি যা যা তৈরি করেছে তার একটি সারসংক্ষেপ আপনি দেখতে পাবেন।

📝 পরিবেশ রিসেট সংক্রান্ত দ্রষ্টব্য: এই ল্যাব চলাকালীন যেকোনো মুহূর্তে যদি আপনার ক্লাউড শেল সেশন টাইম আউট হয়ে যায় বা রিস্টার্ট হয়, তাহলে নিম্নলিখিত কমান্ডটি চালিয়ে আপনি অবিলম্বে আপনার টার্মিনাল ভেরিয়েবলগুলো পুনরুদ্ধার করতে পারেন:

source scripts/setenv.sh

ধাপ ৩: ক্লাউড শেল এডিটর চালু করুন

আপনি এতদিন ক্লাউড শেল টার্মিনাল ব্যবহার করে এসেছেন। এখন সম্পূর্ণ ক্লাউড শেল এডিটরে চলে যান, যা আপনাকে ইন্টিগ্রেটেড বিগকোয়েরি সাপোর্টসহ ভিএস কোডের মতো একটি ওয়ার্কস্পেস দেবে।

  1. আপনার স্ক্রিনের নীচে থাকা ক্লাউড শেল টার্মিনাল প্যানে, ক্লাউড শেল এডিটর ওয়ার্কস্পেসটি চালু করতে ওপেন এডিটর বোতামে ক্লিক করুন।

ওপেন ক্লাউড শেল এডিটর

ধাপ ৪: ডেটা এজেন্ট কিট এক্সটেনশনটি ইনস্টল করুন।

গুগল ক্লাউড ডেটা এজেন্ট কিট এক্সটেনশনটি আপনার এডিটরের মধ্যেই সরাসরি গুগল ক্লাউড ডেটা পরিষেবাগুলির সাথে গভীর ইন্টিগ্রেশন প্রদান করে, যার ফলে আপনি কনটেক্সট পরিবর্তন না করেই BigQuery, AlloyDB, ক্লাউড স্টোরেজ এবং আরও অনেক কিছুর সাথে ইন্টারঅ্যাক্ট করতে পারেন।

  1. ক্লাউড শেল এডিটরে, স্ক্রিনের একেবারে বাম দিকে অ্যাক্টিভিটি বারে থাকা এক্সটেনশন আইকনে (যা দেখতে চারটি বর্গক্ষেত্রের মতো) ক্লিক করুন।
  2. এক্সটেনশন প্যানেলের উপরের সার্চ বারে googlecloudtools.datacloud টাইপ করুন।
  3. গুগল ক্লাউড কর্তৃক প্রকাশিত Google Cloud Data Agent Kit নামের এক্সটেনশনটি খুঁজুন।
  4. ইনস্টল বোতামে ক্লিক করুন।
  5. একটি প্রম্পট আসবে যেখানে জিজ্ঞাসা করা হবে, "আপনি কি প্রকাশক 'googlecloudtools' এবং তাদের এক্সটেনশনগুলোকে বিশ্বাস করেন?"। এগিয়ে যেতে 'Trust Publishers & Install'-এ ক্লিক করুন।

ডেটা এজেন্ট কিট এক্সটেনশন ইনস্টল করুন

ধাপ ৫: এক্সটেনশনটি প্রমাণীকরণ ও কনফিগার করুন

ইনস্টলেশনের পরে, এক্সটেনশনটি আপনার গুগল ক্লাউড প্রজেক্টের সাথে সংযুক্ত করুন।

  1. 'Google Cloud Data Agent Kit Onboarding' শিরোনামের একটি অনবোর্ডিং পেজ স্বয়ংক্রিয়ভাবে খুলে যাবে। 'Sign in to Google Cloud'-এ ক্লিক করুন। অ্যাক্সেসের অনুমতি দেওয়ার জন্য ব্রাউজারের নির্দেশাবলী অনুসরণ করুন।
  2. একটি "সেটআপ চলছে" মোডাল প্রদর্শিত হবে। এক্সটেনশনটি স্বয়ংক্রিয়ভাবে গুগল ক্লাউড সিএলআই-এর মতো প্রয়োজনীয় নির্ভরতাগুলো পরীক্ষা করবে।
  3. কনফিগারেশন সামারি সেকশনে, প্রজেক্ট ফিল্ডটি খুঁজুন। ড্রপডাউনে ক্লিক করে আপনার গুগল ক্লাউড প্রজেক্টটি সিলেক্ট করুন। আপনার রিজিয়ন us-central1 হিসেবে সেট করুন।
  4. সেটআপ যাচাইকরণ শেষ হওয়া পর্যন্ত অপেক্ষা করুন। "সেটআপ সম্পূর্ণ!" দেখতে পেলে, "এমসিপি সার্ভার কনফিগার করুন " এ ক্লিক করুন।

এক্সটেনশনটি কনফিগার করুন

  1. MCP কনফিগারেশন-এর অধীনে BigQuery এবং AlloyDB নির্বাচন করুন এবং তারপর Get Started-এ ক্লিক করুন।

ধাপ ৬: কনফিগারেশন বিকল্পগুলি অন্বেষণ করুন

সেটআপ সম্পন্ন হলে, আপনি 'Get started with Google Cloud Data Agent Kit' ড্যাশবোর্ডে চলে আসবেন।

  1. "সেটআপ ও কনফিগারেশন"-এর অধীনে, "শুরু করুন "-এ ক্লিক করুন।
  2. এটি ডেটা এজেন্ট কনফিগারেশন প্যানেলটি খোলে। ট্যাবগুলো ঘুরে দেখুন:
    • প্রজেক্ট এবং অঞ্চল: আপনার নির্বাচিত প্রজেক্ট আইডি যাচাই করুন এবং নিশ্চিত করুন যে প্রয়োজনীয় এপিআইগুলো (ক্লাউড স্টোরেজ এপিআই, বিগকোয়েরি এপিআই, ক্যাটালগ এপিআই, এবং অ্যালয়ডিবি এপিআই) সক্রিয় আছে।
    • BigQuery: আপনার BigQuery কোয়েরিগুলোর জন্য ডিফল্ট অবস্থান কনফিগার করুন। us-central1 অঞ্চলটি ব্যবহার করুন।
    • এমসিপি সার্ভার কনফিগার করুন: সক্রিয় এমসিপি সার্ভারগুলো (বিগকোয়েরি, নোটবুক, অ্যালয়ডিবি, ইত্যাদি) দেখুন, যেগুলো এআই এজেন্টদের আপনার ডেটার সাথে নিরাপদে ইন্টারঅ্যাক্ট করতে দেয়।
    • দক্ষতা: আগে থেকে তৈরি দক্ষতাগুলো অন্বেষণ করুন যা এজেন্টদের জটিল ডেটা সংক্রান্ত কাজের জন্য বিশেষায়িত সক্ষমতা প্রদান করে।

ডেটা এজেন্ট কনফিগারেশন প্যানেল

ধাপ ৭: BigQuery দিয়ে যাচাই করুন

একটি পাবলিক ডেটাসেটে দ্রুত একটি কোয়েরি চালিয়ে সবকিছু ঠিকঠাক কাজ করছে কিনা তা নিশ্চিত করুন।

  1. বাম দিকের ডেটা এজেন্ট কিট প্যানে, BigQuery সেকশনটি এক্সপ্যান্ড করুন এবং একটি নতুন কোয়েরি এডিটর ট্যাব খুলতে New Query-তে ক্লিক করুন।
  2. Ctrl+S (Windows/Linux) বা Cmd+S (macOS) চেপে ফাইলটি সেভ করুন এবং এর নাম দিন bigquery । আপনার সমস্ত BigQuery অপারেশনের জন্য এই ট্যাবটি ব্যবহার করা হবে।
  3. bigquery.sql ট্যাবটি সক্রিয় থাকা অবস্থায় Query Settings-এ ক্লিক করুন, Data Source হিসেবে BigQuery নির্বাচন করুন এবং Save-এ ক্লিক করুন।

কোয়েরি সেটিংস খুলুন

  1. একটি পাবলিক ডেটাসেটের বিরুদ্ধে নিম্নলিখিত কোয়েরিটি চালান:
SELECT
  term,
  MIN(rank) AS peak_rank,
  ROUND(AVG(score)) AS avg_score
FROM `bigquery-public-data.google_trends.top_terms`
WHERE refresh_date = DATE_SUB(CURRENT_DATE(), INTERVAL 2 DAY)
GROUP BY term
ORDER BY peak_rank ASC
LIMIT 10;
  1. আপনি গত কয়েক দিনের শীর্ষ ১০টি ট্রেন্ডিং গুগল সার্চ টার্ম দেখতে পাবেন। ফলাফল দেখা গেলে, আপনার এক্সটেনশনটি সংযুক্ত এবং প্রস্তুত আছে।

BigQuery কোয়েরির ফলাফল যাচাই করুন

এখন আপনার সেটআপ স্ক্রিপ্ট দ্বারা তৈরি করা ল্যাব ডেটার উপর একটি কোয়েরি চালিয়ে দেখুন। বিদ্যমান কোয়েরিটি এই কোয়েরিটি দিয়ে প্রতিস্থাপন করুন :

SELECT * FROM `lost_cargo_dataset.telemetry_data` LIMIT 5;

আপনি shipment_id এবং telemetry_string কলামসহ টেলিমেট্রি লগ এন্ট্রিগুলো দেখতে পাবেন। এই ডেটাটিই আপনি ল্যাব জুড়ে বিশ্লেষণ করবেন।

অধ্যায়ের পুনরালোচনা: আপনি ব্যাকগ্রাউন্ডে AlloyDB ডেপ্লয়মেন্ট চালু করেছেন, সেটআপ স্ক্রিপ্টটি চালিয়েছেন এবং ডেটা এজেন্ট কিট এক্সটেনশন দিয়ে ক্লাউড শেল এডিটর কনফিগার করেছেন।

৪. নিরাপত্তা ফুটেজ স্ক্যান করা

তদন্তকারী দল রিও ডি জেনিরো বন্দর থেকে সারি সারি শিপিং কন্টেইনার সম্বলিত নিরাপত্তা ফুটেজ উদ্ধার করেছে। ল্যাব ১ থেকে আপনি জানেন যে লক্ষ্যবস্তু কন্টেইনারটি লাল রঙের । এখন আপনাকে সঠিকভাবে শনাক্ত করতে হবে যে এটি কোন লাল কন্টেইনার।

আপনি একটি অবজেক্ট টেবিল তৈরি করবেন যা BigQuery-কে ক্লাউড স্টোরেজে থাকা সিকিউরিটি ইমেজগুলো "দেখতে" দেবে, তারপর প্রতিটি ইমেজ থেকে স্ট্রাকচার্ড ডেটা এক্সট্র্যাক্ট করার জন্য Gemini-কে নির্দেশ দিতে AI.GENERATE ফাংশনটি ব্যবহার করবেন।

ধাপ ১: অবজেক্ট টেবিল তৈরি করুন

অবজেক্ট টেবিল হলো BigQuery-এর একটি বিশেষ টেবিল যা ক্লাউড স্টোরেজে সংরক্ষিত অসংগঠিত ফাইলগুলির (যেমন ছবি, পিডিএফ, অডিও) উপর ইনডেক্স হিসেবে কাজ করে। এটি ফাইলগুলিকে BigQuery-তে কপি করে না; বরং এটি একটি কোয়েরিযোগ্য রেফারেন্স তৈরি করে, যাতে AI ফাংশনগুলি সেগুলিকে "দেখতে" পারে।

আপনার প্রোজেক্টের বাকেটে থাকা পোর্ট সিকিউরিটি ইমেজগুলোকে নির্দেশকারী অবজেক্ট টেবিলটি তৈরি করতে, এডিটরের bigquery.sql ট্যাবে নিম্নলিখিত স্টেটমেন্টটি চালান:

SET @@location = 'us-central1';

EXECUTE IMMEDIATE CONCAT("""
  CREATE OR REPLACE EXTERNAL TABLE `lost_cargo_dataset.port_security_images`
  WITH CONNECTION `us-central1.lost_cargo_conn`
  OPTIONS (
    object_metadata = 'SIMPLE',
    uris = ['gs://""", @@project_id, """-lab2/images/*']
  );
""");

BigQuery এখন কী দেখতে পারে তা এক নজরে দেখে নিন:

SELECT uri, content_type FROM `lost_cargo_dataset.port_security_images` LIMIT 5;

প্রতিটি সারি ক্লাউড স্টোরেজের একটি ইমেজ ফাইলকে প্রতিনিধিত্ব করে। BigQuery এখন এই ইমেজগুলো সরাসরি এআই মডেলে পাঠাতে পারে।

ধাপ ২: নিরাপত্তা চিত্রগুলি বিশ্লেষণ করুন

এখন প্রতিটি সিকিউরিটি ইমেজ বিশ্লেষণ করতে BigQuery-এর AI.GENERATE ফাংশনটি ব্যবহার করুন। এই একটিমাত্র SQL কোয়েরি Gemini-কে প্রতিটি ইমেজ পরীক্ষা করতে এবং স্ট্রাকচার্ড ডেটা ফেরত দিতে নির্দেশ দেয়:

SELECT
  uri,
  AI.GENERATE(
    (
      'Examine this port security image. Identify any shipping container IDs visible on the container and provide a one-word color of the container.',
      ref
    ),
    output_schema => 'detected_container_id STRING, color STRING'
  ).* EXCEPT (full_response, status)
FROM `lost_cargo_dataset.port_security_images`;

ধাপ ৩: লক্ষ্য পাত্রটি শনাক্ত করুন

ফলাফলগুলো পরীক্ষা করুন। সেই সারিটি খুঁজুন যেখানে color কলামে "লাল" (বা লালের কোনো ভিন্ন রূপ) লেখা আছে। detected_container_id টি লিখে নিন। এটাই আপনার লক্ষ্য: MV-CAPYBARA-003

ধাপ ৪: চাক্ষুষ মিল যাচাই করুন

আপনার এডিটর থেকে বের না হয়েই বিশ্লেষণ করা আসল ছবিটি দেখতে:

  1. বামদিকের ডেটা এজেন্ট কিট প্যানে ক্লাউড স্টোরেজ- এ ক্লিক করুন।
  2. আপনার বাকেটটি ( YOUR_PROJECT_ID-lab2/images/ ) প্রসারিত করুন এবং লাল কন্টেইনারের সাথে সম্পর্কিত ইমেজ ফাইলটিতে ক্লিক করে সরাসরি এডিটরে এটি দেখুন।

ক্লাউড স্টোরেজ ইমেজ প্রিভিউ

অধ্যায়ের সারসংক্ষেপ: আপনি BigQuery-কে পোর্ট সিকিউরিটি ইমেজগুলিতে অ্যাক্সেস দেওয়ার জন্য একটি অবজেক্ট টেবিল তৈরি করেছেন, তারপর প্রতিটি ইমেজ থেকে স্ট্রাকচার্ড কন্টেইনার ডেটা এক্সট্র্যাক্ট করতে AI.GENERATE ব্যবহার করেছেন। লাল কন্টেইনারটিকে MV-CAPYBARA-003 হিসাবে শনাক্ত করা হয়েছে।

৫. চুরির বিষয়টি নিশ্চিত করা

আপনি নিখোঁজ কন্টেইনারটিকে MV-CAPYBARA-003 হিসেবে শনাক্ত করেছেন, কিন্তু এটি কি চুরি হয়েছে নাকি কেবল ভুল জায়গায় রাখা হয়েছে? ম্যানিফেস্ট লগ থেকে জানা যায় যে এই নির্দিষ্ট কন্টেইনারটি পরিবেশগত সেন্সর SENS-99- এর পাশে রাখা ছিল। যদি চোরেরা কন্টেইনারটি সরানোর আগে ইচ্ছাকৃতভাবে এর ভেতরের রেফ্রিজারেশন ইউনিটটি অচল করে দিয়ে থাকে, তাহলে SENS-99 হঠাৎ করে তাপ নির্গমনের মাত্রা হঠাৎ বেড়ে যাওয়ার রেকর্ড হতে পারত।

কন্টেইনারটির সাথে छेड़छाड़ করা হয়েছে তা প্রমাণ করতে চলুন অ্যানোমালি ডিটেকশন ব্যবহার করি।

  1. প্রথমে, ঐতিহাসিক বেসলাইনটি খতিয়ে দেখুন। গত কয়েক ঘণ্টায় SENS-99 থেকে প্রাপ্ত স্বাভাবিক রিডিংগুলো হলো:
SELECT * FROM `lost_cargo_dataset.thermal_history`
ORDER BY reading_time DESC
LIMIT 50;

লক্ষ্য করুন, তাপমাত্রা ৭৫-৭৮° ফারেনহাইটের একটি সীমিত পরিসরে ঘোরাফেরা করে। স্বাভাবিক অবস্থাটা এমনই হয়।

  1. এখন একই সেন্সর থেকে প্রাপ্ত বর্তমান পাঠগুলো দেখুন:
SELECT * FROM `lost_cargo_dataset.thermal_current`
ORDER BY thermal_reading DESC
LIMIT 50;

উপরের দিকে ওই ১৪৮.৪°F রিডিংটা দেখছেন? বাকি সবকিছু স্বাভাবিক দেখাচ্ছে। এই আকস্মিক বৃদ্ধিটি হয় রেফ্রিজারেশন ইউনিটের ত্রুটি অথবা ইচ্ছাকৃতভাবে কারসাজির ইঙ্গিত দেয়। চলুন, বিষয়টি খতিয়ে দেখা যাক।

  1. অ্যানোমালি ডিটেকশন চালান। BigQuery-এর AI.DETECT_ANOMALIES প্রি-ট্রেইনড TimesFM ফাউন্ডেশন মডেল ব্যবহার করে টাইম-সিরিজ প্যাটার্ন বিশ্লেষণ করে এবং স্বয়ংক্রিয়ভাবে আউটলায়ার চিহ্নিত করে, যার জন্য কোনো মডেল প্রশিক্ষণের প্রয়োজন হয় না:
SELECT *
FROM AI.DETECT_ANOMALIES(
  TABLE `lost_cargo_dataset.thermal_history`,
  TABLE `lost_cargo_dataset.thermal_current`,
  data_col => 'thermal_reading',
  timestamp_col => 'reading_time',
  id_cols => ['sensor_id']
)
WHERE is_anomaly = TRUE;
  1. ফলাফলগুলো পরীক্ষা করুন। ১৪৮.৪°F রিডিংটিকে উচ্চ অস্বাভাবিকতার সম্ভাবনাসহ একটি ব্যতিক্রমী ঘটনা হিসেবে চিহ্নিত করা উচিত, যা নিশ্চিত করে যে কন্টেইনার এলাকার কাছাকাছি অস্বাভাবিক কিছু ঘটেছে।

অধ্যায়ের সারসংক্ষেপ: আপনি প্রি-ট্রেইনড TimesFM মডেলটিকে কাজে লাগাতে BigQuery-এর AI.DETECT_ANOMALIES ফাংশনটি ব্যবহার করেছেন। কোনো জটিল মেশিন লার্নিং কোড না লিখে বা মডেলগুলোকে গোড়া থেকে ট্রেইন না করেই, একটিমাত্র SQL কোয়েরি চালানোর মাধ্যমে আপনি স্বয়ংক্রিয়ভাবে আউটলায়ার শনাক্ত করেছেন এবং অস্বাভাবিক টেম্পারিং ইভেন্টটিকে আলাদা করেছেন।

৬. ট্র্যাকিং সিস্টেম প্রস্তুত করা

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

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

আপনি আগে ব্যাকগ্রাউন্ডে যে AlloyDB ক্লাস্টারটি চালু করেছিলেন, সেটি এতক্ষণে প্রস্তুত হয়ে যাওয়ার কথা। চলুন, সরাসরি আপনার এডিটর থেকেই এটি কনফিগার করা যাক।

ধাপ ১: এডিটর থেকে AlloyDB-তে সংযোগ করুন

ক্লাউড কনসোলে যাওয়ার পরিবর্তে, আপনি ডেটা এজেন্ট কিট এক্সটেনশন ব্যবহার করে সরাসরি AlloyDB-এর সাথে সংযোগ করতে পারেন।

  1. বামদিকের ডেটা এজেন্ট কিট প্যানে BigQuery সেকশনের অধীনে, একটি নতুন কোয়েরি এডিটর ট্যাব খোলার জন্য New Query-তে ক্লিক করুন।
  2. Ctrl+S (Windows/Linux) বা Cmd+S (macOS) চেপে ফাইলটি সেভ করুন এবং এর নাম দিন alloydb । এই ট্যাবটি সমস্ত AlloyDB কোয়েরির জন্য ব্যবহৃত হবে।
  3. কোয়েরি সেটিংস মডালটি খুলতে গিয়ার আইকনে ক্লিক করুন।

AlloyDB-এর জন্য কোয়েরি সেটিংস খুলুন

  1. কোয়েরি সেটিংস মডালে, ডেটা সোর্স-এর অধীনে, ডেটাবেস নির্বাচন করুন।
  2. ডেটাবেস-এর অধীনে AlloyDB নির্বাচন করুন।
  3. সম্পদ নির্বাচনের বিবরণ পূরণ করুন:
    • প্রজেক্ট আইডি : আপনার গুগল ক্লাউড প্রজেক্ট আইডি লিখুন।
    • ক্লাস্টার : lost-cargo-cluster নির্বাচন করুন।
    • ইনস্ট্যান্স : lost-cargo-instance নির্বাচন করুন।
    • ডাটাবেস : postgres নির্বাচন করুন।
  4. সংরক্ষণ করুন- এ ক্লিক করুন।

কোয়েরি সেটিংস অ্যালয়ডিবি মডেল

ধাপ ২: ভেক্টর এক্সটেনশন সক্রিয় করুন এবং টেবিলটি তৈরি করুন।

এখন যেহেতু আপনি AlloyDB-এর সাথে সংযুক্ত হয়েছেন, আপনাকে প্রয়োজনীয় AI এক্সটেনশনগুলো সক্রিয় করতে হবে এবং সেই টেবিলটি তৈরি করতে হবে যেটি এমবেডেড টেলিমেট্রি ডেটা গ্রহণ করবে।

  1. আপনার সক্রিয় .sql ট্যাবে, প্রয়োজনীয় এক্সটেনশনগুলো সক্রিয় করতে নিম্নলিখিত কমান্ডগুলো পেস্ট করুন:
CREATE EXTENSION IF NOT EXISTS vector;
CREATE EXTENSION IF NOT EXISTS google_ml_integration CASCADE;
  1. টেক্সটটি হাইলাইট করুন এবং এডিটরের উপরের ডানদিকে থাকা রান কোয়েরি বাটনে (প্লে আইকন) ক্লিক করুন।
  2. আপনার স্ক্রিনের নীচে থাকা কোয়েরি রেজাল্টস টার্মিনাল প্যানেলটি দেখুন। সেখানে Statement executed successfully লেখা থাকা উচিত।

AlloyDB এক্সটেনশন তৈরি করুন

  1. এরপরে, টেলিমেট্রি টেবিলটি তৈরি করতে আপনার এডিটরের টেক্সটটি নিচের স্টেটমেন্টটি দিয়ে প্রতিস্থাপন করুন:
CREATE TABLE IF NOT EXISTS vessel_telemetry (
    entry_id SERIAL PRIMARY KEY,
    shipment_id VARCHAR(50),
    telemetry_string TEXT,
    embedding_vector vector(768)
);
  1. আগেরটির মতোই এই কোয়েরিটি চালান। নিচের প্যানেলে এটি সফলভাবে সম্পাদিত হয়েছে কিনা তা নিশ্চিত করুন।

vector(768) টাইপটি আপনার এইমাত্র সক্রিয় করা pgvector এক্সটেনশন থেকে এসেছে। ৭৬৮ ডাইমেনশনটি গুগলের text-embedding-005 মডেলের আউটপুটের সাথে মিলে যায়, যা আপনি BigQuery-তে এমবেডিং তৈরি করতে ব্যবহার করবেন।

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

৭. সার্চ ইনডেক্স তৈরি করা

এখন আপনাকে টেলিমেট্রি ডেটা AlloyDB-তে আনতে হবে, যাতে এটি রিয়েল-টাইম বীকন ম্যাচিং-এর কাজ করতে পারে। কাঁচা টেলিমেট্রি লগগুলো অগোছালো এবং পরিবর্তনশীল দৈর্ঘ্যের হয়, যা সাদৃশ্য অনুসন্ধানের জন্য আদর্শ নয়। আপনি BigQuery-এর AI ফাংশন ব্যবহার করে Gemini-এর সাহায্যে প্রতিটি লগের সারসংক্ষেপ করবেন এবং প্রতিটি সারসংক্ষেপকে একটি ৭৬৮-মাত্রিক ভেক্টর এমবেডিং-এ রূপান্তর করবেন। তারপর আপনি এই সমৃদ্ধ ডেটা ক্লাউড স্টোরেজে এক্সপোর্ট করে AlloyDB-তে ইম্পোর্ট করবেন।

ধাপ ১: BigQuery-তে এমবেডিং তৈরি করুন

আপনার এডিটর ট্যাবটি আবার bigquery.sql এ ফিরিয়ে নিয়ে যান (যেটি BigQuery-এর সাথে সংযুক্ত থাকে)।

এখন, জেমিনি ব্যবহার করে প্রতিটি টেলিমেট্রি লগের সারসংক্ষেপ করতে এবং ভেক্টর এমবেডিং তৈরি করতে নিম্নলিখিত কোয়েরিটি চালান:

CREATE OR REPLACE TABLE `lost_cargo_dataset.telemetry_embeddings_export` AS
WITH summarized_telemetry AS (
  SELECT
    shipment_id,
    telemetry_string,
    AI.GENERATE(
      CONCAT('Summarize this telemetry log for vector search: ', telemetry_string)
    ).result AS summary
  FROM `lost_cargo_dataset.telemetry_data`
),
telemetry_embeddings AS (
  SELECT
    shipment_id,
    telemetry_string,
    AI.EMBED(summary, endpoint => 'text-embedding-005').result AS embedding
  FROM summarized_telemetry
)
SELECT
  shipment_id,
  telemetry_string,
  TO_JSON_STRING(embedding) AS embedding_vector
FROM telemetry_embeddings;

ধাপ ২: সমৃদ্ধ ডেটার প্রিভিউ দেখুন

এক্সপোর্ট করার আগে, আপনি যা তৈরি করেছেন তা একবার দেখে নিন। এই কোয়েরিটি শিপমেন্ট আইডি এবং প্রতিটি সামারি ও এমবেডিং-এর প্রথম ৮০টি অক্ষর দেখায়:

SELECT
  shipment_id,
  SUBSTR(telemetry_string, 1, 80) AS telemetry_preview,
  SUBSTR(embedding_vector, 1, 80) AS embedding_preview
FROM `lost_cargo_dataset.telemetry_embeddings_export`
LIMIT 5;

প্রতিটি সারিতে এখন একটি চালান আইডি, মূল টেলিমেট্রি লগ এবং একটি ৭৬৮-মাত্রিক এমবেডিং ভেক্টর রয়েছে। এই ডেটাটিই আপনি AlloyDB-তে পুশ করবেন।

ধাপ ৩: এমবেডিংগুলো ক্লাউড স্টোরেজে রপ্তানি করুন

BigQuery-এর EXPORT DATA স্টেটমেন্ট ব্যবহার করে এমবেডিংস টেবিলটিকে একটি CSV ফাইল হিসেবে আপনার ল্যাবের GCS বাকেটে লিখুন।

EXECUTE IMMEDIATE CONCAT("""
  EXPORT DATA OPTIONS (
    uri = 'gs://""", @@project_id, """-lab2/data/embeddings_export/*.csv',
    format = 'CSV',
    overwrite = true,
    header = false
  ) AS
  SELECT
    shipment_id,
    telemetry_string,
    embedding_vector
  FROM `lost_cargo_dataset.telemetry_embeddings_export`;
""");

ধাপ ৪: ক্লাউড স্টোরেজ থেকে AlloyDB-তে ইম্পোর্ট করুন

  1. আপনার ক্লাউড শেল এডিটরে, একটি টার্মিনাল সেশন খোলার জন্য স্ক্রিনের নিচের দিকে থাকা টার্মিনাল ট্যাবে ক্লিক করুন।
  2. আপনার এনভায়রনমেন্ট লোড করতে এবং CSV ফাইলটি সরাসরি AlloyDB-এর vessel_telemetry টেবিলে ইম্পোর্ট করতে নিম্নলিখিত কমান্ডগুলো চালান:
source devrel-demos/codelabs/bigquery-alloydb-insights/scripts/setenv.sh

gcloud alloydb clusters import lost-cargo-cluster \
  --region=$REGION \
  --gcs-uri="gs://${PROJECT_ID}-lab2/data/embeddings_export/000000000000.csv" \
  --database=postgres \
  --user=postgres \
  --table=vessel_telemetry \
  --columns=shipment_id,telemetry_string,embedding_vector \
  --csv

টার্মিনাল ট্যাবে gcloud alloydb clusters import কমান্ডটি দেখানো হচ্ছে

অধ্যায়ের সারসংক্ষেপ: আপনি BigQuery-এর AI ফাংশন ব্যবহার করে টেলিমেট্রি ডেটা সারসংক্ষেপ ও এমবেড করেছেন, ফলাফলগুলো CSV হিসেবে ক্লাউড স্টোরেজে এক্সপোর্ট করেছেন, এবং তারপর gcloud ব্যবহার করে সেগুলো AlloyDB-তে ইম্পোর্ট করেছেন। অপারেশনাল ট্র্যাকিং ডেটাবেসটি এখন লোড হয়ে গেছে এবং ব্যবহারের জন্য প্রস্তুত।

৮. বীকন সংকেত মেলানো

সিডনির নিকটবর্তী একটি ফিল্ড টিম একটি খণ্ডিত টেলিমেট্রি বীকন সংকেত শনাক্ত করেছে। আংশিক লগটিতে লেখা আছে:

রেফ্রিজারেশন ইউনিট অফলাইন। ম্যানুয়াল ওভাররাইড।

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

ধাপ ১: আমদানি করা ডেটা যাচাই করুন

আপনার এডিটর ট্যাবটি আবার alloydb.sql এ নিয়ে যান (যেটি AlloyDB-এর সাথে সংযুক্ত থাকে)।

নিম্নলিখিত কমান্ডটি চালিয়ে টেলিমেট্রি ডেটা সফলভাবে লোড হয়েছে কিনা তা নিশ্চিত করুন:

SELECT shipment_id, LEFT(telemetry_string, 80) AS telemetry_preview
FROM vessel_telemetry
LIMIT 10;

আপনি shipment_id ভ্যালু এবং telemetry টেক্সট সহ সারিগুলো দেখতে পাবেন। এগুলো হলো ফ্লিটের টেলিমেট্রি সিগনেচার, যা এখন রিয়েল-টাইম ম্যাচিংয়ের জন্য প্রস্তুত।

ধাপ ২: হারানো কন্টেইনারটি খুঁজুন।

এখন, ইন্টারসেপ্ট করা সিগন্যাল ফ্র্যাগমেন্টটি ব্যবহার করে একটি ম্যাচ খোঁজার জন্য AlloyDB-এর google_ml_integration এক্সটেনশনটি ব্যবহার করুন:

SELECT
    shipment_id,
    telemetry_string,
    1 - (embedding_vector <=> embedding('text-embedding-005', 'Refrigeration unit offline. Manual override.')::vector) AS search_relevance_score
FROM vessel_telemetry
ORDER BY embedding_vector <=> embedding('text-embedding-005', 'Refrigeration unit offline. Manual override.')::vector
LIMIT 5;

AlloyDB-এর google_ml_integration এক্সটেনশন দ্বারা প্রদত্ত embedding() ফাংশনটি, ইনলাইনে একটি ভেক্টর এমবেডিং তৈরি করার জন্য সরাসরি SQL থেকে এজেন্ট প্ল্যাটফর্মকে কল করে। <=> অপারেটরটি দুটি ভেক্টরের মধ্যে কোসাইন দূরত্ব গণনা করে (এর মান ০-এর যত কাছাকাছি হয়, ভেক্টর দুটি তত বেশি অভিন্ন হয়)। ফলাফলকে একটি প্রাসঙ্গিকতা স্কোর হিসাবে প্রকাশ করার জন্য আমরা ১ থেকে বিয়োগ করি, যেখানে স্কোর যত বেশি, ফলাফল তত ভালো।

ধাপ ৩: মিলটি নিশ্চিত করুন

ফলাফলগুলো পরীক্ষা করুন। সর্বোচ্চ প্রাসঙ্গিকতা স্কোরসহ শীর্ষ ফলাফলটি হওয়া উচিত MV-CAPYBARA-003

এটাই সেই কন্টেইনার, যেটিকে আপনি এই তদন্তের প্রতিটি ধাপে ট্র্যাক করে আসছেন:

  • 📷 নিরাপত্তা ফুটেজে এটিকে রাতে রিও ডি জেনিরো বন্দর ত্যাগ করতে শনাক্ত করা হয়েছে।
  • 🌡️ তাপীয় অস্বাভাবিকতা শনাক্তকরণে নিশ্চিত হওয়া গেছে যে এর রেফ্রিজারেশন ইউনিটটি ইচ্ছাকৃতভাবে নিষ্ক্রিয় করা হয়েছিল।
  • 📡 বীকন সিগন্যাল ম্যাচিংয়ের মাধ্যমে সিডনির কাছে এর টেলিমেট্রি সিগনেচারটি সুনির্দিষ্টভাবে শনাক্ত করা হয়েছে।

তিনটি স্বতন্ত্র প্রমাণ। গুগল ক্লাউডের তিনটি ভিন্ন এআই সক্ষমতা। একটি চুরি যাওয়া কন্টেইনার।

🎯 মামলার নিষ্পত্তি: MV-CAPYBARA-003-কে সিডনির কাছে খুঁজে পাওয়া গেছে!

সিডনি ডকে ডিটেকটিভ বাগড্রয়েড একটি ক্যাপিবারার সাথে হাই-ফাইভ করছেন, এবং পটভূমিতে 'খুঁজে পাওয়া গেছে' লেখা MV-CAPYBARA-003 কন্টেইনারটি দেখা যাচ্ছে।

অধ্যায়ের সারসংক্ষেপ: আপনি AlloyDB-এর বিল্ট-ইন এআই ইন্টিগ্রেশন ব্যবহার করে একটিমাত্র SQL কোয়েরিতে সার্চ এমবেডিং তৈরি করেছেন এবং কোসাইন সিমিলারিটি সার্চ সম্পন্ন করেছেন। বীকন ম্যাচটি চুরি হওয়া কন্টেইনারটির অবস্থান নিশ্চিত করার মাধ্যমে তদন্তটি সম্পূর্ণ হয়েছে।

৯. প্রমাণ অন্বেষণ

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

ধাপ ১: নলেজ ক্যাটালগে ডেটাটি সনাক্ত করুন

ডেটা এজেন্ট কিট-এ একটি ইউনিভার্সাল সার্চ ফিচার রয়েছে, যা আপনাকে আপনার গুগল ক্লাউড এনভায়রনমেন্ট জুড়ে ডেটা অ্যাসেট খুঁজে বের করতে ও অন্বেষণ করতে সাহায্য করে।

  1. বামদিকের ডেটা এজেন্ট কিট প্যানেলে, ক্যাটালগ বিভাগটি প্রসারিত করুন।
  2. ইউনিভার্সাল সার্চ-এ ক্লিক করুন।
  3. সার্চ বারে telemetry_data টাইপ করুন।
  4. অনুসন্ধানের ফলাফল থেকে ( lost_cargo_dataset অধীনে থাকা) telemetry_data টেবিলটিতে ক্লিক করুন।

ক্যাটালগে telemetry_data টেবিলটি অনুসন্ধান করুন

ধাপ ২: কথোপকথনমূলক বিশ্লেষণ চালু করুন

অনুসন্ধানের ফলাফলে ক্লিক করলে একটি ডেটা ভিউয়ার ট্যাব খোলে, যেখানে আপনি মূল ডেটার প্রিভিউ দেখতে, স্কিমা দেখতে এবং ডেটার গুণমান যাচাই করতে পারেন।

  1. বাম প্যানে আপনার BigQuery ডেটাসেট এবং টেবিলগুলো দেখা যাচ্ছে। একটি নতুন চ্যাট উইন্ডো খুলতে চ্যাট বোতামে ক্লিক করুন।

চ্যাট বোতামে ক্লিক করুন

ধাপ ৩: স্বাভাবিক ভাষায় প্রশ্ন করুন

"Welcome to Conversational Analytics!" নামে একটি নতুন চ্যাট ট্যাব খোলে। এজেন্টের কাছে আপনার টেবিলের স্কিমা এবং বিষয়বস্তু সম্পর্কে প্রাসঙ্গিক তথ্য থাকে।

  1. চ্যাট উইন্ডোতে টাইপ করুন: "আমাকে ক্যাপিবারা চালানের টেলিমেট্রি স্ট্যাটাস এবং লগ দেখান।"
  2. এন্টার চাপুন।

এজেন্ট আপনার প্রশ্নটিকে BigQuery SQL-এ অনুবাদ করে, কোয়েরিটি কার্যকর করে এবং ফলাফল ফেরত দেয়, যার মধ্যে একটি ডেটা টেবিল এবং প্রাপ্ত তথ্যের সারসংক্ষেপসহ Insights অন্তর্ভুক্ত থাকে। আপনার প্রশ্নের জটিলতার উপর নির্ভর করে আপনি Thinking (গভীর বিশ্লেষণ, ধীর) এবং Fast (দ্রুত প্রতিক্রিয়া) মোডের মধ্যে পরিবর্তন করতে পারেন। যেহেতু এগুলো AI-দ্বারা তৈরি প্রতিক্রিয়া, তাই আপনার ফলাফল নিচের স্ক্রিনশটগুলো থেকে কিছুটা ভিন্ন হতে পারে।

কথোপকথনমূলক বিশ্লেষণের ফলাফল এবং অন্তর্দৃষ্টি

ধাপ ৪: পরবর্তী প্রশ্ন জিজ্ঞাসা করুন

এজেন্ট আপনার কথোপকথনের প্রেক্ষাপট মনে রাখে। একটি ফলো-আপ প্রশ্ন করে দেখুন:

  • টেলিমেট্রি ডেটাতে কতগুলি স্বতন্ত্র চালান রয়েছে?
  • বর্তমানে বহরে থাকা অন্য কতগুলো চালানের অবস্থা গুরুতর?

অধ্যায়ের সারসংক্ষেপ: আপনি আপনার ডেটাসেটটি খুঁজে বের করার জন্য নলেজ ক্যাটালগের ইউনিভার্সাল সার্চ ফিচারটি ব্যবহার করেছেন এবং স্বাভাবিক ভাষায় অনুসন্ধানের ডেটা কোয়েরি করার জন্য কনভারসেশনাল অ্যানালিটিক্স চালু করেছেন। এআই এজেন্ট আপনার প্রশ্নগুলোকে SQL-এ অনুবাদ করেছে এবং এমন অন্তর্দৃষ্টি প্রদান করেছে যা আপনার প্রাপ্ত ফলাফলকে সমর্থন করেছে।

১০. পরিষ্কার করা

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

প্রথমে, আপনার এনভায়রনমেন্ট ভেরিয়েবলগুলো লোড করুন:

source scripts/setenv.sh
  1. BigQuery রিসোর্সগুলি মুছে ফেলুন (শুধুমাত্র যদি আপনি ল্যাব ৩-এ অগ্রসর না হন):

আপনি যদি ল্যাব ৩- এ যেতে চান, তাহলে এই ধাপটি বাদ দিন! ল্যাব ৩-এ প্রপার্টি গ্রাফ অ্যানালিটিক্সের জন্য একই BigQuery ডেটাসেট এবং কানেকশন ব্যবহার করা হয়।

আপনার BigQuery ডেটাসেট এবং সংযোগগুলি মুছে ফেলতে:

# Drop the dataset
bq rm -r -f $PROJECT_ID:lost_cargo_dataset

# Delete the connections
bq rm --connection --location=us-central1 $PROJECT_ID.us-central1.lost_cargo_conn
bq rm --connection --location=us-central1 $PROJECT_ID.us-central1.lost_cargo_alloydb_conn
  1. ক্লাউড স্টোরেজ বাকেটটি মুছে ফেলুন:
gcloud storage rm --recursive gs://${PROJECT_ID}-lab2
  1. AlloyDB ইনস্ট্যান্স এবং ক্লাস্টারটি মুছে ফেলুন :

ল্যাব ৩-এ AlloyDB ব্যবহৃত হয় না, তাই এখন এটি ভেঙে ফেলা নিরাপদ।

gcloud alloydb instances delete lost-cargo-instance \
  --region=$REGION \
  --cluster=lost-cargo-cluster \
  --quiet

gcloud alloydb clusters delete lost-cargo-cluster \
  --region=$REGION \
  --force \
  --quiet
  1. স্থানীয় পরিবেশ সেটিংস মুছে ফেলুন :

অবশেষে, আপনার ওয়ার্কস্পেস থেকে স্থানীয় পরিবেশ সেটিংস ফাইলটি পরিষ্কার করুন:

rm -f .env

১১. অভিনন্দন!

আপনি সফলভাবে ল্যাব ২: ডেটা বিশ্লেষণ ও মাল্টিমোডাল ইনসাইটস সম্পন্ন করেছেন! আপনি হাজার হাজার কন্টেইনারে পূর্ণ একটি বন্দর থেকে একটি নিশ্চিত চুরি এবং একটি সুনির্দিষ্ট অবস্থান পর্যন্ত সূত্র অনুসরণ করেছেন।

আপনি যা অর্জন করেছেন

  1. ফুটেজটি স্ক্যান করা হয়েছে : আপনি পোর্ট সিকিউরিটি ইমেজ বিশ্লেষণ করতে এবং ক্রিমসন রেড রঙের কন্টেইনার MV-CAPYBARA-003 শনাক্ত করতে BigQuery-এর AI.GENERATE ব্যবহার করেছেন।
  2. চুরি নিশ্চিত করা হয়েছে : আপনি থার্মাল সেন্সরের ডেটা বিশ্লেষণ করে ১৪৮.৪°F-এর একটি সন্দেহজনক আকস্মিক বৃদ্ধি শনাক্ত করেছেন এবং এটি যে ইচ্ছাকৃতভাবে বিকৃত করা হয়েছে তা প্রমাণ করতে AI.DETECT_ANOMALIES ব্যবহার করেছেন।
  3. ট্র্যাকিং সিস্টেম প্রস্তুত করা হয়েছে : আপনি রিয়েল-টাইম বীকন ম্যাচিংয়ের জন্য pgvector এবং google_ml_integration সহ AlloyDB কনফিগার করেছেন।
  4. সার্চ ইনডেক্স তৈরি করা হয়েছে : আপনি BigQuery-তে AI.GENERATE এবং AI.EMBED ব্যবহার করে এমবেডিং তৈরি করেছেন, তারপর সেগুলোকে ক্লাউড স্টোরেজে এক্সপোর্ট করে AlloyDB-তে ইম্পোর্ট করেছেন।
  5. বীকন সংকেত মেলানো হয়েছে : আপনি AlloyDB-এর ভেক্টর সার্চ ব্যবহার করে একটি খণ্ডিত টেলিমেট্রি সংকেতের সাথে মিলিয়ে সিডনির কাছে চুরি হওয়া কন্টেইনারটির অবস্থান শনাক্ত করেছেন।
  6. প্রমাণ অন্বেষণ করা হয়েছে : আপনি স্বাভাবিক ভাষায় তদন্তের ডেটা কোয়েরি করার জন্য সরাসরি এডিটর থেকে কনভারসেশনাল অ্যানালিটিক্স ব্যবহার করেছেন।

কন্টেইনারটি পাওয়া গেছে!

পরবর্তী পদক্ষেপ

আপনি কন্টেইনারটি কোথায় আছে তা খুঁজে পেয়েছেন। এখন আপনাকে খুঁজে বের করতে হবে এর পেছনে কে আছে।

ল্যাব ৩: ডেটা কনসাম্পশন ও এজেন্টিক ওয়ার্কফ্লো- তে, আপনি শেল কোম্পানিগুলোর মধ্যে সম্পর্ক ম্যাপ করার জন্য লজিস্টিকস নেটওয়ার্কের একটি প্রপার্টি গ্রাফ তৈরি করবেন, গ্রাফটির সাথে চ্যাট করার জন্য কনভারসেশনাল অ্যানালিটিক্স ব্যবহার করবেন, এবং কন্টেইনারটি পুনরুদ্ধার করার জন্য প্রয়োজনীয় সুরক্ষিত ক্লিয়ারেন্স কোডটি খুঁজে বের করতে নলেজ ক্যাটালগ ঘেঁটে দেখবেন।