ল্যাব ৩: বিগকোয়েরি গ্রাফ এবং কনভারসেশনাল অ্যানালিটিক্স ব্যবহার করে হারিয়ে যাওয়া কার্গো খুঁজে বের করা

১. ভূমিকা

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

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

লস্ট কার্গো ল্যাব ৩ কথোপকথনমূলক অ্যানালিটিক্স আর্কিটেকচার প্রিভিউ

হারিয়ে যাওয়া কন্টেইনারটি খুঁজে বের করতে এবং কার্গো সুরক্ষিত করতে, আপনি চালানটির যাত্রাপথ অনুসরণ করার জন্য একটি BigQuery Property Graph তৈরি করবেন। এরপর আপনি Conversational Analytics ব্যবহার করে স্বাভাবিক ভাষায় এই নেটওয়ার্কটিতে কোয়েরি করবেন এবং সবশেষে Knowledge Catalog-এর সাহায্যে আপনার ডেটার মেটাডেটার উপর একটি সিমান্টিক সার্চ চালিয়ে ওভাররাইড কোডগুলো সনাক্ত করবেন।

💡 ল্যাব ১ বা ল্যাব ২ বাদ পড়ে গেছে ? চিন্তা করবেন না! এই ল্যাবটি সম্পূর্ণ স্বয়ংসম্পূর্ণ। পরিবেশ সেটআপের ধাপগুলো আপনার প্রয়োজনীয় সবকিছু প্রস্তুত করে দেবে, যাতে আপনি সরাসরি কাজ শুরু করে স্বাধীনভাবে এটি সম্পন্ন করতে পারেন।

আপনি যা করবেন

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

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

  • ক্রোমের মতো একটি ওয়েব ব্রাউজার
  • বিলিং সক্ষম একটি গুগল ক্লাউড প্রজেক্ট
  • গুগল ক্লাউড শেলে অ্যাক্সেস

এই কোডল্যাবটি সকল স্তরের ডেটা বিশেষজ্ঞদের জন্য তৈরি করা হয়েছে।

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

আনুমানিক সময়কাল: এই কোডল্যাবটি সম্পূর্ণ করতে প্রায় ৪৫ মিনিট সময় লাগবে।

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

একটি গুগল ক্লাউড প্রজেক্ট তৈরি করুন

  1. গুগল ক্লাউড কনসোলের প্রজেক্ট সিলেক্টর পেজে, একটি গুগল ক্লাউড প্রজেক্ট নির্বাচন করুন বা তৈরি করুন
  2. আপনার ক্লাউড প্রজেক্টের জন্য বিলিং চালু আছে কিনা তা নিশ্চিত করুন।

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

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

  1. একটি নতুন ব্রাউজার ট্যাবে ক্লাউড শেলটি খুলুন :

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

  1. সংযুক্ত হয়ে গেলে, আপনার প্রজেক্ট আইডি সেট করুন এবং আপনার পরিবেশ নিশ্চিত করুন:
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]

প্রয়োজনীয় এপিআইগুলি সক্রিয় করুন

প্রয়োজনীয় API-গুলো সক্রিয় করতে ক্লাউড শেলে নিম্নলিখিত কমান্ডটি চালান:

gcloud services enable \
 bigquery.googleapis.com \
 aiplatform.googleapis.com \
 datacatalog.googleapis.com  \
 geminidataanalytics.googleapis.com \
 cloudaicompanion.googleapis.com 

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

Operation "operations/..." finished successfully.

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

এই সিরিজের পূর্ববর্তী ল্যাবগুলোতে আমরা আমাদের অনুসন্ধানের ভিত্তি স্থাপন করেছিলাম।

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

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

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-graph-analytics
git checkout main
cd codelabs/bigquery-graph-analytics/

২. বেস টেবিল এবং পলিসি ট্যাগ সেট আপ করুন

আপনার BigQuery ডেটাসেট পূরণ করতে এবং সংবেদনশীল ডেটা সীমাবদ্ধ করতে কলাম-স্তরের নিরাপত্তা ট্যাগ প্রয়োগ করতে সেটআপ স্ক্রিপ্টটি চালান:

bash setup_lab.sh

আপনার টার্মিনালের আউটপুটে সফল প্রারম্ভিকীকরণ দেখা যাচ্ছে কিনা তা নিশ্চিত করুন:

🚀 Provisioning foundational tables and deploying Policy Tag security bindings...
🎯 Active Project: your-project-id
...
🎉 Success! Foundational tables initialized and Column-Level Policy Tags fully mapped out of the box!

আপনার পরিবেশ সফলভাবে সেট আপ করা হয়ে গেলে এবং BigQuery-তে লজিস্টিকস ডেটা পূরণ করা হয়ে গেলে, আপনি এখন আপনার টেবিলগুলোকে সংযুক্ত করতে এবং কার্গোর যাত্রাপথ অনুসরণ করতে একটি প্রপার্টি গ্রাফ তৈরি করতে পারেন!

৪. BigQuery Graph ব্যবহার করে আপনার ডেটা সংযুক্ত করুন

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

১. প্রপার্টি গ্রাফ কীভাবে সম্পর্ক মডেল করে

প্রপার্টি গ্রাফ সংকলিত স্থাপত্য মানচিত্র

একটি BigQuery প্রপার্টি গ্রাফ নিম্নলিখিত পদ্ধতি ব্যবহার করে নেটওয়ার্ক মডেল তৈরি করে:

  • নোড : নেটওয়ার্কের সত্তাগুলো। এই ল্যাবে, নোডগুলো কোম্পানি (যেগুলো সরাসরি যোগাযোগের বিবরণ সংরক্ষণ করে), ম্যানিফেস্ট এবং ভেসেল-কে প্রতিনিধিত্ব করে।
  • এজ (Edges) : নোডগুলোকে পরস্পরের সাথে যুক্তকারী সম্পর্ক। উদাহরণস্বরূপ:
    • একটি এজ (edge) manifests টেবিলের সম্পর্কগুলোর মাধ্যমে একটি ম্যানিফেস্টকে একটি ভেসেলের সাথে সংযুক্ত করে।
    • একটি এজ (edge) একটি ভেসেলকে ( vessels table-এর সম্পর্কগুলোর মাধ্যমে) একটি কোম্পানির সাথে সংযুক্ত করে।
  • প্রোপার্টি : নোড বা এজ-এ সংরক্ষিত মেটাডেটা। উদাহরণস্বরূপ, একটি কোম্পানি নোডে company_name এবং phone_number মতো কলাম থাকে, এবং একটি ম্যানিফেস্ট নোডে seal_integrity_status এবং coordinates ( last_ping_lat , last_ping_long ) থাকে।
  • লেবেল : নোড (যেমন, Company , Vessel , Manifest ) এবং এজ (যেমন, CARRIED_BY , OPERATED_BY )-কে দেওয়া ট্যাগ নাম, যাতে কোয়েরি টুলগুলো নোড ও রিলেশনের ধরন চিনতে পারে।

২. BigQuery-তে প্রপার্টি গ্রাফটি ডিপ্লয় করুন

setup_graph.sql ফাইলটিতে প্রপার্টি গ্রাফ সংজ্ঞায়িত এবং তৈরি করার জন্য SQL DDL রয়েছে, কিন্তু এটি বর্তমানে অসম্পূর্ণ। এটি কম্পাইল এবং ডিপ্লয় করার আগে আপনাকে এই স্কিমা ফাইলে এজ লেবেল (সম্পর্ক) সংজ্ঞায়িত করতে হবে:

  1. ক্লাউড শেল এডিটর খুলুন।

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

  1. ক্লাউড শেল এডিটরে setup_graph.sql ফাইলটি খুলুন।

গ্রাফ তৈরির SQL

  1. প্রান্ত লেবেলের জন্য স্থানধারকগুলি সনাক্ত করুন:
    • লাইন ২২ : `EDGE_TABLE_PLACEHOLDER` এমন একটি অর্থপূর্ণ ট্যাগ দিয়ে প্রতিস্থাপন করুন যা নির্দেশ করে ম্যানিফেস্টগুলো ভেসেলের সাথে কীভাবে সম্পর্কিত (যেমন, CARRIED_BY )।
    • লাইন ২৭ : `EDGE_TABLE_PLACEHOLDER` এমন একটি ট্যাগ দিয়ে প্রতিস্থাপন করুন যা নির্দেশ করে জাহাজগুলো কোম্পানির সাথে কীভাবে সম্পর্কিত (যেমন, OPERATED_BY )।
  2. ফাইলটি সংরক্ষণ করুন।

এখন, ক্লাউড শেল টার্মিনালে ফিরে যান এবং সম্পূর্ণ স্ক্রিপ্টটি ব্যবহার করে আপডেট করা প্রপার্টি গ্রাফটি ডিপ্লয় করুন:

bq query --use_legacy_sql=false < setup_graph.sql

কাজটি সম্পন্ন হয়েছে তা নির্দেশ করে এমন আউটপুট আপনি দেখতে পাবেন:

Waiting on bqjob_r... ... (0s) Current status: DONE

আপনি BigQuery কনসোলে প্রপার্টি গ্রাফের বিস্তারিত তথ্য দেখতে পারেন:

lost_cargo_dataset- টি খুঁজুন এবং গ্রাফ নির্বাচন করুন:

প্রপার্টি গ্রাফ সংকলিত স্থাপত্য মানচিত্র

আমাদের প্রপার্টি গ্রাফ সফলভাবে কম্পাইল করা হয়ে গেলে, চলুন কানেকশনগুলো কোয়েরি ও ভিজ্যুয়ালাইজ করার জন্য BigQuery Studio-তে প্রবেশ করি!

৫. আপনার গ্রাফ অনুসন্ধান করুন

আপনি BigQuery Studio-এর ভিতরে সরাসরি নেটিভ গ্রাফ কোয়েরি ল্যাঙ্গুয়েজ (GQL) ব্যবহার করে গ্রাফটি কোয়েরি করতে এবং দৃশ্যত অন্বেষণ করতে পারেন।

১. কন্টেইনার -> জাহাজ -> কোম্পানি চেইন অনুসন্ধান করুন

চলুন, পণ্যবাহী জাহাজগুলো কারা পরিচালনা করে তা খুঁজে বের করার মাধ্যমে GQL কোয়েরিগুলো অন্বেষণ করি। অপারেটরকে খুঁজে বের করার জন্য আমাদের লজিস্টিকস নেটওয়ার্কের তিনটি পৃথক এনটিটি নোডের মধ্যে দিয়ে যেতে হবে:

গ্রাফ নোড ধারণা

  1. কন্টেইনার Manifest নোড থেকে শুরু করুন।
  2. বহনকারী Vessel খুঁজে পেতে CARRIED_BY সম্পর্কযুক্ত প্রান্তটি অনুসরণ করুন।
  3. সেই জাহাজ থেকে দায়িত্বপ্রাপ্ত Company পর্যন্ত OPERATED_BY রিলেশনশিপ এজটি অনুসরণ করুন এবং এর আইডিটি পুনরুদ্ধার করুন।

প্রথমে, সম্পূর্ণ গ্রাফটি দেখার জন্য (কোনো ফিল্টার ছাড়া) পুরো নেটওয়ার্কটি ভিজ্যুয়ালাইজ করতে একটি কোয়েরি চালানো যাক।

  1. BigQuery Studio SQL এডিটরে একটি নতুন ট্যাব খুলুন, নিম্নলিখিত GQL কোয়েরিটি পেস্ট করুন এবং রান-এ ক্লিক করুন:
    SELECT * FROM GRAPH_TABLE(
      `lost_cargo_dataset.logistics_network`
      MATCH p = (m:Manifest)-[:CARRIED_BY]->(v:Vessel)-[:OPERATED_BY]->(comp:Company)
      RETURN TO_JSON(p) AS path
    );
    
  2. কোয়েরিটি সম্পন্ন হলে, নিচের কোয়েরি ফলাফল প্যানে, রেজাল্টস টেবিল ট্যাবের পাশে অবস্থিত গ্রাফ ট্যাবে ক্লিক করুন।

BigQuery গ্রাফের ফলাফল ১

  1. BigQuery ফলাফলগুলোকে একটি ইন্টারেক্টিভ ভিজ্যুয়াল গ্রাফ হিসেবে প্রদর্শন করে! সংযুক্ত কন্টেইনার, জাহাজ এবং অপারেটরদের সম্পূর্ণ নেটওয়ার্কটি দেখতে জুম ইন করুন।

একটি GQL কোয়েরির গঠন

চলুন, আমরা এইমাত্র যে GQL কোয়েরিটি চালালাম তা বিশ্লেষণ করা যাক:

  • GRAPH_TABLE : BigQuery-কে logistics_network গ্রাফের বিপরীতে একটি প্রপার্টি গ্রাফ কোয়েরি কার্যকর করার নির্দেশ দেয়।
  • MATCH : মাল্টি-হপ ট্রাভার্সাল প্যাটার্ন ঘোষণা করে। আমরা একটি Manifest ( m ) থেকে শুরু করি, Vessel ( v )-কে নির্দেশকারী :CARRIED_BY এজ সম্পর্কটি ম্যাচ করি, তারপর Company ( comp )-কে নির্দেশকারী :OPERATED_BY এজ সম্পর্কটি ম্যাচ করি।
  • GQL জটিল জয়েন লজিককে স্বজ্ঞাত, সহজে পাঠযোগ্য ASCII-আর্ট রিলেশনশিপ অ্যারো ()->[]->() দিয়ে প্রতিস্থাপন করে, যা মাল্টি-হপ কোয়েরি লেখা এবং অপ্টিমাইজ করাকে অত্যন্ত সহজ করে তোলে।
  • RETURN : মিলে যাওয়া এলিমেন্টগুলো থেকে প্রোপার্টি বা JSON পাথ ফেরত দেয়।

২. GQL কোয়েরির ফলাফল ফিল্টার করুন

এখন, চলুন কোয়েরিটি ফিল্টার করি যাতে আমরা শুধু আমাদের লক্ষ্যবস্তু ক্ষতিগ্রস্ত কন্টেইনার MV-CAPYBARA-003 এর পাথটি দেখতে পাই।

  1. নিম্নলিখিত কোয়েরিটি SQL এডিটরে পেস্ট করুন এবং রান-এ ক্লিক করুন:
    SELECT * FROM GRAPH_TABLE(
      `lost_cargo_dataset.logistics_network`
      MATCH p = (m:Manifest {shipment_id: 'MV-CAPYBARA-003'})-[:CARRIED_BY]->(v:Vessel)-[:OPERATED_BY]->(comp:Company)
      RETURN TO_JSON(p) AS path
    );
    
  2. ফলাফলের নিচে থাকা গ্রাফ ট্যাবে ক্লিক করুন।

BigQuery গ্রাফের ফলাফল ২

  1. ভিউয়ারটি এখন শুধুমাত্র MV-CAPYBARA-003 এর সক্রিয় ট্র্যাভার্সাল রুটটি প্রদর্শন করছে। নোড এবং সংযোগগুলি দেখতে জুম ইন করুন:
    • প্রোপার্টিজ প্যানেলটি খুলতে Company নোডটিতে ডাবল-ক্লিক করুন। প্রোপার্টিজ-এর অধীনে, আপনি অপারেটর company_id : 103 (ডেভি জোন্স শিপিং) দেখতে পাবেন। এই কোম্পানি আইডিটি লিখে রাখুন —সিকিউরিটি রেজিস্ট্রি থেকে ক্লিয়ারেন্স পাসকোডটি সংগ্রহ করতে আপনার এটি পরে প্রয়োজন হবে!
    • এটিই Flying Dutchman কিনা তা যাচাই করতে Vessel নোডটিতে ডাবল-ক্লিক করুন।

৬. কথোপকথনমূলক অ্যানালিটিক্স ব্যবহার করে আপনার গ্রাফের সাথে আলাপ করুন

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

১. একটি কথোপকথনমূলক অ্যানালিটিক্স সেশন শুরু করুন

  1. Google Cloud Console-এ, BigQuery Console- এ যান এবং আপনার ডেটাসেট ( lost_cargo_dataset ) খুঁজে পেতে রিসোর্স প্যানেলটি প্রসারিত করুন।
  2. আপনার প্রপার্টি গ্রাফ রিসোর্সে ক্লিক করুন: logistics_network
  3. উপরে থাকা ডিটেইল প্যানেল টুলবারে, চ্যাট বোতামে ক্লিক করুন। এটি আপনার গ্রাফের প্রেক্ষাপট সহ আগে থেকেই লোড করা একটি কনভারসেশনাল অ্যানালিটিক্স সেশন খোলে।

সংকলিত প্রপার্টি গ্রাফ উৎসকে সংযুক্তকারী BigQuery ডেটা এজেন্ট কনফিগারেশন ইন্টারফেস।

২. ছিনতাই হওয়া কন্টেইনারটির জন্য নিকটতম ডকিং পোর্টটি চিহ্নিত করুন।

একটি সামুদ্রিক টহল বিমান এইমাত্র আমাদের কার্গো জাহাজের বর্ণনার সাথে মিলে যাওয়া একটি জাহাজকে POINT(-122.48 37.55) স্থানাঙ্কে নেটওয়ার্কের বাইরে (ট্রান্সপন্ডার নিষ্ক্রিয় অবস্থায়) চলাচল করতে দেখেছে। কার্গোটি আটক করার জন্য, আমাদের নিকটতম ডকিং পোর্টটি খুঁজে বের করতে হবে যেখানে Davy Jones Shipping নামক গোপন সিন্ডিকেটটি তাদের কার্যক্রম পরিচালনা করে।

ম্যানুয়ালি সমস্ত গ্লোবাল পোর্ট অনুসন্ধান করার পরিবর্তে, আমরা আমাদের গ্রাফ নেটওয়ার্ক থেকে সিন্ডিকেটের সক্রিয় ফ্লিটের সাথে সংযুক্ত পোর্টগুলো খুঁজে বের করব এবং পরিমাপ করব যে দৃশ্যমান স্থানটির ভৌতিকভাবে সবচেয়ে কাছে কোনটি!

  1. কনভারসেশনাল অ্যানালিটিক্স চ্যাট বক্সে, নিম্নলিখিত প্রম্পটটি লিখুন:
    Find all ports associated with Davy Jones Shipping vessels. Which port is closest to coordinate POINT(-122.48 37.55), show the distance in km, and display it on a map.
    

সংকলিত প্রপার্টি গ্রাফ উৎসকে সংযুক্তকারী BigQuery ডেটা এজেন্ট কনফিগারেশন ইন্টারফেস।

  1. প্রতিক্রিয়াটি মনোযোগ দিয়ে দেখুন। এজেন্টটি গ্রাফটি পরিভ্রমণ করে নিকটতম ডকিং সুবিধা এবং তার দূরত্ব ফেরত দেয়:
    • ডকিং পোর্ট : Mountain View Terminal
    • দূরত্ব : 39.42 kilometers
  2. যেহেতু কনভারসেশনাল অ্যানালিটিক্স জেমিনি দ্বারা চালিত এবং এতে নেটিভ জিওস্পেশিয়াল (GIS) ইন্টিগ্রেশন রয়েছে, তাই এটি ভৌগোলিক স্থানাঙ্ক বিন্দুগুলো ব্যাখ্যা করতে পারে এবং অবস্থান যাচাই করার জন্য তার বিশ্ব জ্ঞানকে কাজে লাগাতে পারে: "জাহাজটি ক্যালিফোর্নিয়ার মাউন্টেন ভিউ টার্মিনাল থেকে প্রায় ৩৯.৪২ কিলোমিটার দূরে রয়েছে , যা ইঙ্গিত দেয় যে এটি সেখানে নোঙর করার জন্য যাচ্ছে।"

এতে নিশ্চিত হওয়া যাচ্ছে যে আমাদের পণ্য সরাসরি মাউন্টেন ভিউ-এর দিকে যাচ্ছে!

নেপথ্যে: গ্রাফ কোয়েরি ল্যাঙ্গুয়েজ (GQL) এবং ভূ-স্থানিক জিআইএস

নেপথ্যে, কনভারসেশনাল অ্যানালিটিক্স এজেন্ট গতিশীলভাবে একটি কোয়েরি সংকলন ও কার্যকর করে, যা গ্রাফ পাথ ম্যাচিং এবং ভূ-স্থানিক দূরত্ব গণনাকে একত্রিত করে। এটি একটি নেটিভ GQL COLUMNS ক্লজ ব্যবহার করে সম্পন্ন করা হয়, যা গ্রাফ ট্র্যাভার্সাল ম্যাচের ভিতরেই নেটিভভাবে জিওডেসিক দূরত্ব গণনা করে:

SELECT port_id, port_name, country, latitude, longitude, distance_km 
FROM GRAPH_TABLE(
  `lost_cargo_dataset.logistics_network`
  MATCH (c:Company)<-[]-(v:Vessel)-[]->(p:Port)
  WHERE LOWER(c.company_name) = 'davy jones shipping'
  COLUMNS (
    p.port_id, 
    p.port_name, 
    p.country, 
    p.latitude, 
    p.longitude, 
    ROUND(ST_DISTANCE(ST_GEOGPOINT(p.longitude, p.latitude), ST_GEOGPOINT(-122.48, 37.55)) / 1000, 2) AS distance_km
  )
)
ORDER BY distance_km ASC;

নেটিভ জিওস্পেশিয়াল (GIS) ফাংশন ( ST_DISTANCE , ST_GEOGPOINT )-কে একটি GQL প্রপার্টি গ্রাফ ম্যাচের সাথে একত্রিত করে, BigQuery একটিমাত্র কোয়েরিতেই ডায়নামিকভাবে সিন্ডিকেটের অপারেশনাল ফুটপ্রিন্ট সমাধান করে এবং বাস্তব জগতের ভৌতিক নৈকট্য গণনা করে!

৭. নলেজ ক্যাটালগের সাহায্যে আপনার অনুপস্থিত ডেটা খুঁজুন।

প্রপার্টি গ্রাফটি সম্পর্কগুলো দেখায়, কিন্তু এতে সেই টেবিলটি থাকে না যেখানে প্রকৃত ওভাররাইড কোডগুলো সংরক্ষিত থাকে।

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

১. নলেজ ক্যাটালগে সিমান্টিক সার্চ

  1. Google Cloud Console- এ, Knowledge CatalogSearch খুঁজে বের করুন এবং এখানে যান।
  2. ফলাফল সীমিত করতে সিস্টেমস-এর অধীনে সার্চ ফিল্টার কলামে BigQuery চেক করুন।
  3. সার্চ বক্সে নিম্নলিখিত কোয়েরিটি লিখুন:
    container override codes
    

নলেজ ক্যাটালগ সিমান্টিক সার্চ ইন্টারফেস বিচ্ছিন্ন ভৌত সীল টেবিলটি অনুসন্ধান করছে

  1. অনুসন্ধানের ফলাফলে প্রদর্শিত maritime_security_registry টেবিল রিসোর্সটিতে ক্লিক করুন:

মেটাডেটা স্কিমাটি পরীক্ষা করলে আপনি দেখতে পাবেন যে টেবিলটিতে কন্টেইনার নিরাপত্তা ডেটার জন্য কলাম রয়েছে—যেমন কোঅর্ডিনেটর কোম্পানি co_id , কাস্টোডিয়ান টোকেন cust_tok , এবং সবচেয়ে গুরুত্বপূর্ণভাবে, সিকিওর কন্টেইনার ওভাররাইড পাসকোড কলাম: clc_ovr_cd

আমরা আমাদের মালামাল উদ্ধারের জন্য প্রয়োজনীয় টেবিল এবং সঠিক সুরক্ষিত স্তম্ভটি সফলভাবে খুঁজে পেয়েছি!

🔓 বাস্তব-জগতের শাসনব্যবস্থা : একটি প্রোডাকশন এন্টারপ্রাইজ পরিবেশে, নিরাপত্তা এবং শাসনব্যবস্থা দলগুলো আরও কাজে লাগায়:

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

২. BigQuery-তে কলাম নিরাপত্তা পরিদর্শন করুন

  1. BigQuery কনসোলে ফিরে যান।
  2. এক্সপ্লোরার ট্যাবে, lost_cargo_dataset নির্বাচন করুন এবং maritime_security_registry টেবিলে ক্লিক করুন।
  3. স্কিমা ট্যাবে ক্লিক করুন।

clc_ovr_cd কলামে নির্ধারিত পলিসি ট্যাগ প্রদর্শনকারী টেবিল স্কিমা ভিউ।

  1. লক্ষ্য করুন যে clc_ovr_cd কলামটি MaskShippingDetails নামক একটি পলিসি ট্যাগ দ্বারা সুরক্ষিত (যা Policy tags কলামে তালিকাভুক্ত)।
  2. BigQuery-তে একটি নতুন SQL Editor ট্যাব খুলুন এবং নিম্নলিখিত কোয়েরিটি চালিয়ে রেজিস্ট্রি ওভাররাইড কোডগুলি দেখার চেষ্টা করুন:
    SELECT * FROM `lost_cargo_dataset.maritime_security_registry` 
    WHERE co_id = 103;
    
  3. যেহেতু আপনার অ্যাকাউন্টের কাছে এখনও MaskShippingDetails ট্যাগযুক্ত কলামগুলি পড়ার অনুমতি নেই, তাই কোয়েরিটি 'Access Denied ' ডাটাবেস নিরাপত্তা ত্রুটির কারণে অবিলম্বে ব্যর্থ হবে:

BigQuery ওয়ার্কস্পেস ভিউ যা স্ট্যান্ডার্ড কলাম-স্তরের মাস্কিং বা অ্যাক্সেস ডিনায়াল কনস্ট্রেইন্ট আউটপুট করে

৮. পাসকোড উদ্ধারের জন্য কলামের নিরাপত্তা ভেদ করা

চূড়ান্ত ওভাররাইড কোডটি সুস্পষ্টভাবে পড়ার জন্য, আমাদের ব্যবহারকারী অ্যাকাউন্টকে MaskShippingDetails ট্যাগযুক্ত কলামগুলো পড়ার অনুমতি দিতে হবে।

১. নীতি ট্যাগ অনুমতি প্রদান করুন

  1. BigQuery কনসোলের বাম দিকের নেভিগেশন প্যানে, Policy tags- এ যান।
  2. LostCargoSecurity_ নামের ট্যাক্সোনমিটি নির্বাচন করুন LostCargoSecurity_ .
  3. ট্যাগগুলির তালিকায়, MaskShippingDetails ক্লিক করুন।
  4. স্ক্রিনের ডানদিকে থাকা তথ্য প্যানেলে , ‘অ্যাড প্রিন্সিপাল’-এ ক্লিক করুন। (যদি প্যানেলটি লুকানো থাকে, তবে উপরের ডানদিকে থাকা ‘শো ইনফো প্যানেল’-এ ক্লিক করুন)।
  5. 'নতুন প্রিন্সিপাল' ফিল্ডে আপনার সক্রিয় গুগল ক্লাউড ব্যবহারকারীর ইমেলটি লিখুন।
  6. 'Select a role' ড্রপডাউনে, 'Fine-Grained Reader' অনুসন্ধান করে নির্বাচন করুন, তারপর 'Save'-এ ক্লিক করুন।

BigQuery পলিসি ট্যাগ অ্যাডমিনিস্ট্রেশন প্যানেলে টার্গেট স্ট্রিং মাস্কে ফাইন-গ্রেইনড রিডার রোল অ্যাসাইন করা হচ্ছে।

২. ওভাররাইড কোডের জন্য কোয়েরি করুন

আপনার BigQuery ওয়ার্কস্পেস এডিটরে ফিরে যান। যেহেতু এখন আপনার ফাইন-গ্রেইনড রিডার অ্যাক্সেস আছে, আমরা কোয়েরিটি আবার চালাতে এবং আনমাস্কড ডেটা দেখতে সক্ষম হব:

SELECT *  FROM `lost_cargo_dataset.maritime_security_registry` 
WHERE co_id = 103;

🔓 ফলাফল

কোয়েরিটি আনমাস্কড ওভাররাইড কোডটি রিটার্ন করে:

SHIVER-ME-TIMBERS-888

BigQuery ওয়ার্কস্পেস এক্সিকিউশনের ফলাফল আনমাস্কড ডেফিনিটিভ স্ট্রিং ফ্ল্যাগ ফেরত দিচ্ছে

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

চার্জ এড়ানোর জন্য, এই ল্যাব চলাকালীন তৈরি হওয়া স্যান্ডবক্স রিসোর্সগুলো পরিষ্কার করুন।

ক্লাউড শেল টার্মিনালে ফিরে যান এবং লজিস্টিকস টেবিলগুলো ধারণকারী BigQuery ডেটাসেটটি মুছে ফেলুন :

bq rm -r -f -d lost_cargo_dataset

ক্লোন করা রিপোজিটরি ফাইলগুলো মুছে ফেলুন:

cd ..
rm -rf data-cloud-roadshow-26

১০. অভিনন্দন

আপনি সফলভাবে তদন্তটি সমাধান করেছেন এবং ক্লিয়ারেন্স ওভাররাইড কোডটি পুনরুদ্ধার করেছেন!

আপনি যা শিখেছেন

  • BigQuery-তে জটিল এনটিটি এবং সম্পর্ক উপস্থাপন করার জন্য কীভাবে একটি প্রপার্টি গ্রাফ তৈরি করবেন।
  • ডেটা সংযোগগুলি ক্যাপচার করার জন্য নোড , এজ , প্রোপার্টি এবং লেবেল কীভাবে কনফিগার করা হয়।
  • BigQuery Conversational Analytics ব্যবহার করে স্বাভাবিক ভাষায় প্রপার্টি গ্রাফ কীভাবে কোয়েরি করবেন।
  • রিলেশনাল পাথ অতিক্রম করার জন্য গ্রাফ কোয়েরি ল্যাঙ্গুয়েজ (GQL) এক্সপ্রেশনগুলো কীভাবে গঠিত হয়।
  • নলেজ ক্যাটালগ ব্যবহার করে কীভাবে সুরক্ষিত অ্যাসেট খুঁজে বের করা যায় এবং পলিসি ট্যাগ ব্যবহার করে কলাম-স্তরের সীমাবদ্ধ ডেটা অ্যাক্সেস করা যায়।