BQ ব্যবহার করে Databricks থেকে Spanner-এ ETL উল্টে দিন

১. গুগল ক্লাউড স্টোরেজ এবং বিগকুয়েরি ব্যবহার করে ডেটাব্রিক্স থেকে স্প্যানার পর্যন্ত একটি বিপরীত ইটিএল পাইপলাইন তৈরি করুন।

ভূমিকা

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

লক্ষ্য হল ডেটাব্রিক্স আইসবার্গ টেবিল থেকে একটি সমষ্টিগত ডেটাসেট স্প্যানার টেবিলে স্থানান্তর করা।

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

b2dae0f06b59656a.png সম্পর্কে

  1. আইসবার্গ ফর্ম্যাটে গুগল ক্লাউড স্টোরেজ (GCS)-তে ডেটাব্রিক্স:
  • প্রথম ধাপ হল Databricks থেকে একটি খোলা, সুনির্দিষ্ট বিন্যাসে ডেটা বের করা। টেবিলটি Apache Iceberg ফর্ম্যাটে রপ্তানি করা হয়। এই প্রক্রিয়াটি অন্তর্নিহিত ডেটা Parquet ফাইলের একটি সেট হিসাবে এবং টেবিলের মেটাডেটা (স্কিমা, পার্টিশন, ফাইলের অবস্থান) JSON এবং Avro ফাইল হিসাবে লিখে। GCS-এ এই সম্পূর্ণ টেবিল কাঠামোটি স্টেজ করার ফলে ডেটা পোর্টেবল এবং আইসবার্গ ফর্ম্যাট বোঝে এমন যেকোনো সিস্টেমের কাছে অ্যাক্সেসযোগ্য হয়ে ওঠে।
  1. GCS Iceberg টেবিলগুলিকে BigQuery BigLake বহিরাগত টেবিলে রূপান্তর করুন:
  • GCS থেকে Spanner-এ সরাসরি ডেটা লোড করার পরিবর্তে, BigQuery একটি শক্তিশালী মধ্যস্থতাকারী হিসেবে ব্যবহৃত হয়। BigQuery-তে একটি BigLake বহিরাগত টেবিল তৈরি করা হয় যা সরাসরি GCS-এর Iceberg মেটাডেটা ফাইলের দিকে নির্দেশ করে। এই পদ্ধতির বেশ কয়েকটি সুবিধা রয়েছে:
  • কোনও ডেটা ডুপ্লিকেশন নেই: BigQuery মেটাডেটা থেকে টেবিলের কাঠামো পড়ে এবং Parquet ডেটা ফাইলগুলিকে সেগুলি গ্রহণ না করেই কোয়েরি করে, যা উল্লেখযোগ্য সময় এবং স্টোরেজ খরচ সাশ্রয় করে।
  • ফেডারেটেড কোয়েরি: এটি GCS ডেটাতে জটিল SQL কোয়েরি চালানোর অনুমতি দেয় যেন এটি একটি নেটিভ BigQuery টেবিল।
  1. রিভার্সETL বিগলেক এক্সটার্নাল টেবিল স্প্যানারে:
  • শেষ ধাপ হল BigQuery থেকে Spanner-এ ডেটা স্থানান্তর করা। এটি BigQuery-এর একটি শক্তিশালী বৈশিষ্ট্য ব্যবহার করে অর্জন করা হয় যাকে EXPORT DATA query বলা হয়, যা "Reverse ETL" ধাপ।
  • অপারেশনাল রেডিনেস: স্প্যানার লেনদেনের কাজের চাপের জন্য ডিজাইন করা হয়েছে, যা অ্যাপ্লিকেশনগুলির জন্য শক্তিশালী ধারাবাহিকতা এবং উচ্চ প্রাপ্যতা প্রদান করে। স্প্যানারে ডেটা স্থানান্তরের মাধ্যমে, এটি ব্যবহারকারী-মুখী অ্যাপ্লিকেশন, API এবং অন্যান্য অপারেশনাল সিস্টেমগুলিতে অ্যাক্সেসযোগ্য করে তোলে যার জন্য কম-লেটেন্সি পয়েন্ট লুকআপ প্রয়োজন।
  • স্কেলেবিলিটি: এই প্যাটার্নটি BigQuery-এর বিশ্লেষণাত্মক ক্ষমতাকে কাজে লাগিয়ে বৃহৎ ডেটাসেট প্রক্রিয়াকরণ এবং তারপর স্প্যানারের বিশ্বব্যাপী স্কেলেবল অবকাঠামোর মাধ্যমে দক্ষতার সাথে ফলাফল পরিবেশন করার সুযোগ করে দেয়।

পরিষেবা এবং পরিভাষা

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

তুমি কি শিখবে

  • আইসবার্গ টেবিল হিসেবে ডেটাব্রিক্সে ডেটা কীভাবে লোড করবেন
  • কিভাবে একটি GCS বাকেট তৈরি করবেন
  • আইসবার্গ ফর্ম্যাটে GCS-এ ডেটাব্রিক্স টেবিল কীভাবে রপ্তানি করবেন
  • GCS-এর Iceberg টেবিল থেকে BigQuery-তে কীভাবে একটি BigLake External Table তৈরি করবেন
  • কিভাবে একটি স্প্যানার ইনস্ট্যান্স সেট আপ করবেন
  • BigQuery-তে BigLake এক্সটার্নাল টেবিলগুলি Spanner-এ কীভাবে লোড করবেন

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

পূর্বশর্ত

যদি আপনার Google ক্লাউড প্রতিষ্ঠানে iam.allowedPolicyMemberDomains নীতি সক্রিয় থাকে, তাহলে একজন প্রশাসককে বহিরাগত ডোমেন থেকে পরিষেবা অ্যাকাউন্টগুলিকে অনুমতি দেওয়ার জন্য একটি ব্যতিক্রম মঞ্জুর করতে হতে পারে। প্রযোজ্য ক্ষেত্রে পরবর্তী ধাপে এটি কভার করা হবে।

আবশ্যকতা

  • বিলিং সক্ষম করা একটি Google ক্লাউড প্রকল্প।
  • একটি ওয়েব ব্রাউজার, যেমন Chrome
  • একটি ডেটাব্রিক্স অ্যাকাউন্ট (এই ল্যাবটি GCP-তে হোস্ট করা একটি ওয়ার্কস্পেস ধরে নেয়)
  • এক্সপোর্ট ডেটা বৈশিষ্ট্যটি ব্যবহার করার জন্য BigQuery ইনস্ট্যান্সটি এন্টারপ্রাইজ সংস্করণ বা তার উচ্চতর সংস্করণে থাকা আবশ্যক।
  • যদি আপনার Google ক্লাউড প্রতিষ্ঠানে iam.allowedPolicyMemberDomains নীতি সক্রিয় থাকে, তাহলে একজন প্রশাসককে বহিরাগত ডোমেন থেকে পরিষেবা অ্যাকাউন্টগুলিকে অনুমতি দেওয়ার জন্য একটি ব্যতিক্রম মঞ্জুর করতে হতে পারে। প্রযোজ্য ক্ষেত্রে পরবর্তী ধাপে এটি কভার করা হবে।

গুগল ক্লাউড প্ল্যাটফর্ম আইএএম অনুমতি

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

পরিষেবা অ্যাকাউন্ট

iam.serviceAccountKeys.create

পরিষেবা অ্যাকাউন্ট তৈরির অনুমতি দেয়।

স্প্যানার

spanner.instances.create

একটি নতুন স্প্যানার ইনস্ট্যান্স তৈরি করার অনুমতি দেয়।

spanner.databases.create

DDL স্টেটমেন্ট তৈরি করার অনুমতি দেয়

spanner.databases.updateDdl

ডাটাবেসে টেবিল তৈরি করতে DDL স্টেটমেন্ট চালানোর অনুমতি দেয়।

গুগল ক্লাউড স্টোরেজ

storage.buckets.create

এক্সপোর্ট করা Parquet ফাইলগুলি সংরক্ষণ করার জন্য একটি নতুন GCS বাকেট তৈরি করার অনুমতি দেয়।

storage.objects.create

এক্সপোর্ট করা Parquet ফাইলগুলিকে GCS বাকেটে লেখার অনুমতি দেয়।

storage.objects.get

BigQuery কে GCS বাকেট থেকে Parquet ফাইলগুলি পড়ার অনুমতি দেয়।

storage.objects.list

BigQuery কে GCS বাকেটে Parquet ফাইলগুলি তালিকাভুক্ত করার অনুমতি দেয়।

ডেটাফ্লো

Dataflow.workitems.lease

ডেটাফ্লো থেকে কাজের আইটেম দাবি করার অনুমতি দেয়।

Dataflow.workitems.sendMessage

ডেটাফ্লো কর্মীকে ডেটাফ্লো পরিষেবাতে বার্তা ফেরত পাঠাতে অনুমতি দেয়।

Logging.logEntries.create

ডেটাফ্লো কর্মীদের গুগল ক্লাউড লগিং-এ লগ এন্ট্রি লেখার অনুমতি দেয়।

সুবিধার জন্য, এই অনুমতিগুলি ধারণকারী পূর্বনির্ধারিত ভূমিকা ব্যবহার করা যেতে পারে।

roles/resourcemanager.projectIamAdmin

roles/iam.serviceAccountKeyAdmin

roles/spanner.instanceAdmin

roles/spanner.databaseAdmin

roles/storage.admin

roles/dataflow.serviceAgent

roles/dataflow.worker

roles/dataflow.serviceAgent

গুগল ক্লাউড প্রজেক্ট

গুগল ক্লাউডে একটি প্রকল্প হল সংগঠনের একটি মৌলিক একক। যদি কোনও প্রশাসক ব্যবহারের জন্য একটি প্রদান করে থাকেন, তাহলে এই ধাপটি এড়িয়ে যেতে পারে।

CLI ব্যবহার করে একটি প্রকল্প এভাবে তৈরি করা যেতে পারে:

gcloud projects create <your-project-name>

প্রকল্প তৈরি এবং পরিচালনা সম্পর্কে আরও জানুন এখানে

সীমাবদ্ধতা

এই পাইপলাইনে কিছু সীমাবদ্ধতা এবং ডেটা টাইপের অসঙ্গতি সম্পর্কে সচেতন থাকা গুরুত্বপূর্ণ।

ডেটাব্রিক্স আইসবার্গ থেকে বিগকুয়েরি

ডেটাব্রিক্স (ইউনিফর্মের মাধ্যমে) দ্বারা পরিচালিত আইসবার্গ টেবিলগুলি জিজ্ঞাসা করার জন্য BigQuery ব্যবহার করার সময়, নিম্নলিখিতগুলি মনে রাখবেন:

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

BigQuery থেকে Spanner

BigQuery থেকে Spanner-এ EXPORT DATA কমান্ডটি সমস্ত BigQuery ডেটা টাইপ সমর্থন করে না। নিম্নলিখিত টাইপ সহ একটি টেবিল এক্সপোর্ট করলে একটি ত্রুটি দেখা দেবে:

  • STRUCT
  • GEOGRAPHY
  • DATETIME
  • RANGE
  • TIME

অতিরিক্তভাবে, যদি BigQuery প্রকল্পটি GoogleSQL উপভাষা ব্যবহার করে, তাহলে Spanner-এ রপ্তানির জন্য নিম্নলিখিত সংখ্যাসূচক প্রকারগুলিও সমর্থিত নয়:

  • BIGNUMERIC

সীমাবদ্ধতার একটি সম্পূর্ণ এবং হালনাগাদ তালিকার জন্য, অফিসিয়াল ডকুমেন্টেশন দেখুন: স্প্যানার সীমাবদ্ধতায় রপ্তানি করা

সমস্যা সমাধান এবং সমস্যা সমাধান

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

৩. গুগল ক্লাউড স্টোরেজ (GCS) সেটআপ করুন

ডেটাব্রিক্স দ্বারা তৈরি পারকুয়েট ডেটা ফাইলগুলি সংরক্ষণ করতে গুগল ক্লাউড স্টোরেজ (জিসিএস) ব্যবহার করা হবে। এটি করার জন্য, ফাইল গন্তব্য হিসাবে ব্যবহারের জন্য প্রথমে একটি নতুন বাকেট তৈরি করতে হবে।

গুগল ক্লাউড স্টোরেজ

একটি নতুন বালতি তৈরি করা হচ্ছে

  1. আপনার ক্লাউড কনসোলে গুগল ক্লাউড স্টোরেজ পৃষ্ঠায় নেভিগেট করুন।
  2. বাম প্যানেলে, Buckets নির্বাচন করুন:

27f4bdfaba9bbd6a.png

  1. তৈরি করুন বোতামে ক্লিক করুন:

e580967933f20cbf.png

  1. আপনার বাকেটের বিবরণ পূরণ করুন:
  • ব্যবহার করার জন্য একটি বাকেট নাম নির্বাচন করুন। এই ল্যাবের জন্য, codelabs_retl_databricks নামটি ব্যবহার করা হবে।
  • বাকেট সংরক্ষণ করার জন্য একটি অঞ্চল নির্বাচন করুন, অথবা ডিফল্ট মান ব্যবহার করুন।
  • স্টোরেজ ক্লাসটি standard হিসেবে রাখুন
  • নিয়ন্ত্রণ অ্যাক্সেসের জন্য ডিফল্ট মান রাখুন
  • অবজেক্ট ডেটা সুরক্ষিত রাখার জন্য ডিফল্ট মান রাখুন
  1. হয়ে গেলে Create বোতামে ক্লিক করুন। জনসাধারণের অ্যাক্সেস রোধ করা হবে তা নিশ্চিত করার জন্য একটি প্রম্পট উপস্থিত হতে পারে। এগিয়ে যান এবং নিশ্চিত করুন।
  2. অভিনন্দন, একটি নতুন বাকেট সফলভাবে তৈরি করা হয়েছে! বাকেট পৃষ্ঠায় একটি পুনঃনির্দেশনা ঘটবে।
  • নতুন বাকেটের নামটি কোথাও কপি করুন কারণ এটি পরে প্রয়োজন হবে।

অনুসরণ

পরবর্তী পদক্ষেপের জন্য প্রস্তুতি নিচ্ছেন

নিম্নলিখিত বিবরণগুলি নোট করে রাখুন কারণ পরবর্তী ধাপগুলিতে সেগুলি প্রয়োজন হবে:

  1. গুগল প্রোজেক্ট আইডি
  2. গুগল স্টোরেজ বাকেটের নাম

৪. ডেটাব্রিক্স সেটআপ করুন

TPC-H ডেটা

এই ল্যাবের জন্য, TPC-H ডেটাসেট ব্যবহার করা হবে, যা সিদ্ধান্ত সহায়তা ব্যবস্থার জন্য একটি শিল্প-মানক মানদণ্ড। এর স্কিমা গ্রাহক, অর্ডার, সরবরাহকারী এবং যন্ত্রাংশ সহ একটি বাস্তবসম্মত ব্যবসায়িক পরিবেশের মডেল তৈরি করে, যা এটিকে বাস্তব-বিশ্ব বিশ্লেষণ এবং ডেটা চলাচলের দৃশ্যপট প্রদর্শনের জন্য নিখুঁত করে তোলে।

কাঁচা, স্বাভাবিক TPC-H টেবিল ব্যবহার করার পরিবর্তে, একটি নতুন, সমষ্টিগত টেবিল তৈরি করা হবে। এই নতুন টেবিলটি orders , customer এবং nation টেবিল থেকে ডেটা একত্রিত করে আঞ্চলিক বিক্রয়ের একটি সাধারণ, সংক্ষিপ্ত রূপ তৈরি করবে। এই প্রাক-সমষ্টিগত পদক্ষেপটি বিশ্লেষণে একটি সাধারণ অনুশীলন, কারণ এটি একটি নির্দিষ্ট ব্যবহারের ক্ষেত্রে ডেটা প্রস্তুত করে - এই পরিস্থিতিতে, একটি কার্যকরী অ্যাপ্লিকেশন দ্বারা ব্যবহারের জন্য।

সমষ্টিগত টেবিলের চূড়ান্ত স্কিমাটি হবে:

কর্নেল

আদর্শ

জাতির নাম

স্ট্রিং

বাজার_বিভাগ

স্ট্রিং

অর্ডার_বছর

int-এর বিবরণ

অর্ডার_অগ্রাধিকার

স্ট্রিং

মোট_ক্রম_গণনা

বিগিন্ট

মোট_আয়

দশমিক (২৯,২)

অনন্য_গ্রাহক_গণনা

বিগিন্ট

ডেল্টা লেক ইউনিভার্সাল ফর্ম্যাট (ইউনিফর্ম) সহ আইসবার্গ সাপোর্ট

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

ইউনিফর্ম স্বয়ংক্রিয়ভাবে ডেল্টা লেক মেটাডেটার পাশাপাশি টেবিলের ডেটার একটি একক, ভাগ করা কপির জন্য আইসবার্গ মেটাডেটা তৈরি করে। এটি উভয় জগতের সেরাটি প্রদান করে:

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

এর ফলে ডেটার আলাদা কপি রক্ষণাবেক্ষণ বা ম্যানুয়াল রূপান্তর কাজ চালানোর প্রয়োজন হবে না। টেবিল তৈরির সময় নির্দিষ্ট টেবিল বৈশিষ্ট্য সেট করে ইউনিফর্ম সক্রিয় করা হবে।

ডেটাব্রিক্স ক্যাটালগ

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

এটি ডেটা সংগঠিত করার জন্য একটি তিন-স্তরের নেমস্পেস ব্যবহার করে: catalog.schema.table

  • ক্যাটালগ: সর্বোচ্চ স্তর, যা পরিবেশ, ব্যবসায়িক ইউনিট বা প্রকল্প অনুসারে ডেটা গোষ্ঠীভুক্ত করতে ব্যবহৃত হয়।
  • স্কিমা (বা ডাটাবেস): একটি ক্যাটালগের মধ্যে টেবিল, ভিউ এবং ফাংশনের একটি যৌক্তিক গ্রুপিং।
  • সারণী: আপনার ডেটা ধারণকারী বস্তু।

সমষ্টিগত TPC-H টেবিল তৈরি করার আগে, এটি রাখার জন্য প্রথমে একটি ডেডিকেটেড ক্যাটালগ এবং স্কিমা সেট আপ করতে হবে। এটি নিশ্চিত করে যে প্রকল্পটি সুন্দরভাবে সংগঠিত এবং কর্মক্ষেত্রের অন্যান্য ডেটা থেকে বিচ্ছিন্ন।

একটি নতুন ক্যাটালগ এবং স্কিমা তৈরি করুন

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

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

একটি ক্যাটালগ তৈরি করা
  1. যাও 6761500bb3aaa502.png সম্পর্কে
  2. + এ ক্লিক করুন এবং তারপর ড্রপডাউন থেকে একটি ক্যাটালগ তৈরি করুন নির্বাচন করুন।

13cfc62741161182.png সম্পর্কে

  1. নিম্নলিখিত সেটিংস সহ একটি নতুন স্ট্যান্ডার্ড ক্যাটালগ তৈরি করা হবে:
  • ক্যাটালগের নাম : retl_tpch_project
  • স্টোরেজ লোকেশন : যদি ওয়ার্কস্পেসে একটি সেট আপ করা থাকে তবে ডিফল্ট ব্যবহার করুন, অথবা একটি নতুন তৈরি করুন।

a6e3c89febde9a77.png সম্পর্কে

একটি স্কিমা তৈরি করা
  1. যাও 6761500bb3aaa502.png সম্পর্কে
  2. বাম প্যানেল থেকে তৈরি করা নতুন ক্যাটালগটি নির্বাচন করুন।

89d2935ac4c5d655.png সম্পর্কে

  1. ক্লিক করুন b7a6fc9785ac3a9d.png সম্পর্কে
  2. tpch_data নামে স্কিমা নাম দিয়ে একটি নতুন স্কিমা তৈরি করা হবে।

787631de85a6bb9.png সম্পর্কে

বাহ্যিক ডেটা সেট আপ করা হচ্ছে

ডেটাব্রিক্স থেকে গুগল ক্লাউড স্টোরেজ (GCS) এ ডেটা রপ্তানি করতে সক্ষম হওয়ার জন্য, ডেটাব্রিক্সের মধ্যে বাহ্যিক ডেটা শংসাপত্র সেট আপ করতে হবে। এটি ডেটাব্রিক্সকে নিরাপদে GCS বাকেটে অ্যাক্সেস এবং লেখার অনুমতি দেয়।

  1. ক্যাটালগ স্ক্রিন থেকে, ক্লিক করুন 32d5a94ae444cd8e.png সম্পর্কে
  • যদি আপনি একটি External Data বিকল্প দেখতে না পান, তাহলে আপনি Connect ড্রপডাউনের অধীনে External Locations তালিকাভুক্ত দেখতে পাবেন।
  1. ক্লিক করুন e03562324c0ba85e.png
  2. নতুন ডায়ালগ উইন্ডোতে, শংসাপত্রের জন্য প্রয়োজনীয় মানগুলি সেট আপ করুন:
  • শংসাপত্রের ধরণ : GCP Service Account
  • শংসাপত্রের নাম : retl-gcs-credential

7be8456dfa196853.png সম্পর্কে

  1. তৈরি করুন ক্লিক করুন
  2. এরপর, External Locations ট্যাবে ক্লিক করুন।
  3. "স্থান তৈরি করুন" এ ক্লিক করুন।
  4. নতুন ডায়ালগ উইন্ডোতে, বাহ্যিক অবস্থানের জন্য প্রয়োজনীয় মানগুলি সেট আপ করুন:
  • বাহ্যিক অবস্থানের নাম : retl-gcs-location
  • স্টোরেজ টাইপ : GCP
  • URL : GCS বাকেটের URL, gs://YOUR_BUCKET_NAME ফর্ম্যাটে
  • স্টোরেজ ক্রেডেনশিয়াল : সবেমাত্র তৈরি করা retl-gcs-credential নির্বাচন করুন।

6d9240128dfcfd80.png সম্পর্কে

  1. পরবর্তী ধাপে প্রয়োজন হবে বলে স্টোরেজ শংসাপত্র নির্বাচন করার পরে স্বয়ংক্রিয়ভাবে পূরণ করা পরিষেবা অ্যাকাউন্টের ইমেলটি নোট করুন।
  1. তৈরি করুন ক্লিক করুন

৫. পরিষেবা অ্যাকাউন্টের অনুমতি নির্ধারণ করা

একটি পরিষেবা অ্যাকাউন্ট হল একটি বিশেষ অ্যাকাউন্টের ধরণ যা অ্যাপ্লিকেশন বা পরিষেবাগুলি Google ক্লাউড রিসোর্সে অনুমোদিত API কল করার জন্য ব্যবহার করে।

GCS-এ নতুন বাকেটের জন্য তৈরি করা পরিষেবা অ্যাকাউন্টে এখন অনুমতি যোগ করতে হবে।

  1. GCS বাকেট পৃষ্ঠা থেকে, অনুমতি ট্যাবটি নির্বাচন করুন।

240e591122612db0.png সম্পর্কে

  1. প্রিন্সিপাল পৃষ্ঠায় "অ্যাক্সেস প্রদান করুন" এ ক্লিক করুন।
  2. ডান দিক থেকে স্লাইড করা গ্রান্ট অ্যাক্সেস প্যানেলে, নতুন প্রিন্সিপাল ক্ষেত্রে পরিষেবা অ্যাকাউন্ট আইডি ইনপুট করুন।
  3. অ্যাসাইন রোলস এর অধীনে, Storage Object Admin এবং Storage Legacy Bucket Reader যোগ করুন। এই ভূমিকাগুলি সার্ভিস অ্যাকাউন্টকে স্টোরেজ বাকেটের বস্তুগুলি পড়তে, লিখতে এবং তালিকাভুক্ত করতে দেয়।

TPC-H ডেটা লোড করুন

এখন যেহেতু ক্যাটালগ এবং স্কিমা তৈরি করা হয়েছে, TPCH ডেটা বিদ্যমান samples.tpch টেবিল থেকে লোড করা যেতে পারে যা Databricks-এ অভ্যন্তরীণভাবে সংরক্ষণ করা হয় এবং নতুন সংজ্ঞায়িত স্কিমায় একটি নতুন টেবিলে ম্যানিপুলেট করা হয়।

আইসবার্গ সাপোর্ট সহ টেবিল তৈরি করা

ইউনিফর্মের সাথে আইসবার্গ সামঞ্জস্যতা

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

এর মানে হল যে একটি একক, ভাগ করা ডেটা ফাইলের সেট (পারকুয়েট ফাইল) এখন দুটি ভিন্ন মেটাডেটা সেট দ্বারা বর্ণিত।

  • ডেটাব্রিক্সের জন্য: এটি টেবিলটি পড়ার জন্য _delta_log ব্যবহার করে।
  • বহিরাগত পাঠকদের জন্য (যেমন BigQuery): তারা টেবিলের স্কিমা, পার্টিশন এবং ফাইলের অবস্থান বোঝার জন্য Iceberg মেটাডেটা ফাইল ( .metadata.json ) ব্যবহার করে।

ফলাফল হল এমন একটি টেবিল যা সম্পূর্ণরূপে এবং স্বচ্ছভাবে যেকোনো আইসবার্গ-সচেতন টুলের সাথে সামঞ্জস্যপূর্ণ। কোনও ডেটা ডুপ্লিকেশন নেই এবং ম্যানুয়াল রূপান্তর বা সিঙ্ক্রোনাইজেশনের প্রয়োজন নেই। এটি সত্যের একক উৎস যা ডেটাব্রিক্সের বিশ্লেষণাত্মক জগৎ এবং ওপেন আইসবার্গ স্ট্যান্ডার্ডকে সমর্থন করে এমন সরঞ্জামগুলির বৃহত্তর বাস্তুতন্ত্র উভয়ের দ্বারাই নির্বিঘ্নে অ্যাক্সেস করা যেতে পারে।

  1. নতুন ক্লিক করুন তারপর কোয়েরি করুন।

d5fad2076e475ebe.png সম্পর্কে

  1. কোয়েরি পৃষ্ঠার টেক্সট ফিল্ডে, নিম্নলিখিত SQL কমান্ডটি চালান:
CREATE TABLE retl_tpch_project.tpch_data.regional_sales_iceberg
USING DELTA
LOCATION 'gs://<Your bucket name>/regional_sales_iceberg'
TBLPROPERTIES (
  'delta.columnMapping.mode' = 'name',
  'delta.enableIcebergCompatV2' = 'true',
  'delta.universalFormat.enabledFormats' = 'iceberg'
)
AS 

SELECT 
    n.n_name AS nation_name,
    c.c_mktsegment AS market_segment,
    YEAR(o.o_orderdate) AS order_year,
    o.o_orderpriority AS order_priority,
    COUNT(o.o_orderkey) AS total_order_count,
    ROUND(SUM(o.o_totalprice), 2) AS total_revenue,
    COUNT(DISTINCT c.c_custkey) AS unique_customer_count
FROM samples.tpch.orders AS o
INNER JOIN samples.tpch.customer AS c 
    ON o.o_custkey = c.c_custkey
INNER JOIN samples.tpch.nation AS n
    ON c.c_nationkey = n.n_nationkey
GROUP BY 
    n.n_name, 
    c.c_mktsegment, 
    YEAR(o.o_orderdate), 
    o.o_orderpriority;

OPTIMIZE retl_tpch_project.tpch_data.regional_sales_iceberg;

DESCRIBE EXTENDED retl_tpch_project.tpch_data.regional_sales_iceberg;

নোট:

  • ডেল্টা ব্যবহার - নির্দিষ্ট করে যে আমরা একটি ডেল্টা লেক টেবিল ব্যবহার করছি। ডেটাব্রিক্সে শুধুমাত্র ডেল্টা লেক টেবিলগুলিকে একটি বহিরাগত টেবিল হিসাবে সংরক্ষণ করা যেতে পারে।
  • অবস্থান - টেবিলটি কোথায় সংরক্ষণ করা হবে তা নির্দিষ্ট করে, যদি তা বহিরাগত হয়।
  • TablePropertoes - delta.universalFormat.enabledFormats = 'iceberg' ডেল্টা লেক ফাইলের পাশাপাশি সামঞ্জস্যপূর্ণ আইসবার্গ মেটাডেটা তৈরি করে।
  • অপ্টিমাইজ - জোর করে ইউনিফর্ম মেটাডেটা জেনারেশন ট্রিগার করে, কারণ এটি সাধারণত অ্যাসিঙ্ক হয়।
  1. কোয়েরির আউটপুটে নতুন তৈরি টেবিলের বিস্তারিত দেখানো উচিত

285c622214824bc.png সম্পর্কে

GCS টেবিল ডেটা যাচাই করুন

GCS বাকেটে নেভিগেট করার পরে, নতুন তৈরি টেবিলের ডেটা এখন পাওয়া যাবে।

আপনি metadata ফোল্ডারের মধ্যে আইসবার্গ মেটাডেটা পাবেন, যা বহিরাগত পাঠকদের দ্বারা ব্যবহৃত হয় (যেমন BigQuery)। ডেল্টা লেক মেটাডেটা , যা ডেটাব্রিক্স অভ্যন্তরীণভাবে ব্যবহার করে, _delta_log ফোল্ডারে ট্র্যাক করা হয়।

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

e9c1dfecb7b6af05.png সম্পর্কে

৬. BigQuery এবং BigLake সেটআপ করুন

এখন যেহেতু আইসবার্গ টেবিলটি গুগল ক্লাউড স্টোরেজে আছে, পরবর্তী ধাপ হল এটিকে BigQuery-তে অ্যাক্সেসযোগ্য করে তোলা। এটি একটি BigLake বহিরাগত টেবিল তৈরি করে করা হবে।

BigLake হল একটি স্টোরেজ ইঞ্জিন যা BigQuery-তে এমন টেবিল তৈরি করতে সাহায্য করে যা Google Cloud Storage-এর মতো বহিরাগত উৎস থেকে সরাসরি ডেটা পড়ে। এই ল্যাবের জন্য, এটিই মূল প্রযুক্তি যা BigQuery-কে আইসবার্গ টেবিলটি বুঝতে সক্ষম করে যা ডেটা গ্রহণের প্রয়োজন ছাড়াই রপ্তানি করা হয়েছিল।

এই কাজটি করার জন্য, দুটি উপাদানের প্রয়োজন:

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

একটি ক্লাউড রিসোর্স সংযোগ তৈরি করুন

প্রথমে, BigQuery কে GCS অ্যাক্সেস করার অনুমতি দেয় এমন সংযোগ তৈরি করা হবে।

ক্লাউড রিসোর্স সংযোগ তৈরি সম্পর্কে আরও তথ্য এখানে পাওয়া যাবে।

  1. BigQuery- এ যান
  2. এক্সপ্লোরারের অধীনে সংযোগগুলিতে ক্লিক করুন
  • যদি এক্সপ্লোরার প্লেনটি দৃশ্যমান না হয়, তাহলে ক্লিক করুন e09eaea936f28d62.png সম্পর্কে

3b64ad1e030299e5.png সম্পর্কে

  1. সংযোগ পৃষ্ঠায়, ক্লিক করুন 6b81c7550b537890.png সম্পর্কে
  2. সংযোগের ধরণের জন্য Vertex AI remote models, remote functions, BigLake and Spanner (Cloud Resource) বেছে নিন।
  3. সংযোগ আইডি databricks_retl তে সেট করুন এবং সংযোগ তৈরি করুন।

a0c9030883e6fb2.png সম্পর্কে

7aa50f0ee61d7b67.png সম্পর্কে

  1. নতুন তৈরি সংযোগের সংযোগ টেবিলে এখন একটি এন্ট্রি দেখা উচিত। সংযোগের বিবরণ দেখতে সেই এন্ট্রিতে ক্লিক করুন।

অনুসরণ

  1. সংযোগের বিবরণ পৃষ্ঠায়, পরিষেবা অ্যাকাউন্ট আইডিটি লিখে রাখুন কারণ এটি পরে প্রয়োজন হবে।

7f52106c43700b78.png সম্পর্কে

সংযোগ পরিষেবা অ্যাকাউন্টে অ্যাক্সেস মঞ্জুর করুন

  1. IAM এবং অ্যাডমিনে যান
  2. অ্যাক্সেস প্রদান করুন -এ ক্লিক করুন

d8fc7690bba820c7.png সম্পর্কে

  1. নতুন প্রিন্সিপাল ক্ষেত্রের জন্য, উপরে তৈরি সংযোগ রিসোর্সের পরিষেবা অ্যাকাউন্ট আইডিটি প্রবেশ করান।
  2. ভূমিকার জন্য, Storage Object User নির্বাচন করুন এবং তারপরে ক্লিক করুন 9e23819e5bc1babb.png সম্পর্কে

সংযোগ স্থাপন এবং এর পরিষেবা অ্যাকাউন্ট প্রয়োজনীয় অনুমতি প্রদানের পর, এখন BigLake বহিরাগত টেবিল তৈরি করা যেতে পারে। প্রথমে, নতুন টেবিলের জন্য একটি ধারক হিসেবে কাজ করার জন্য BigQuery-তে একটি ডেটাসেট প্রয়োজন। তারপর, টেবিলটি নিজেই তৈরি করা হবে, এটি GCS বাকেটের Iceberg মেটাডেটা ফাইলের দিকে নির্দেশ করবে।

  1. BigQuery- এ যান
  2. এক্সপ্লোরার প্যানেলে, প্রজেক্ট আইডিতে ক্লিক করুন, তারপর তিনটি বিন্দুতে ক্লিক করুন এবং Create dataset নির্বাচন করুন।

9ef91b1c8433b641.png সম্পর্কে

  1. ডেটাসেটের নাম হবে databricks_retl । অন্যান্য বিকল্পগুলি ডিফল্ট হিসেবে রেখে দিন এবং Create dataset বোতামে ক্লিক করুন।

9f413d6f65520b2f.png সম্পর্কে

  1. এবার, এক্সপ্লোরার প্যানেলে নতুন databricks_retl ডেটাসেটটি খুঁজুন। এর পাশের তিনটি বিন্দুতে ক্লিক করুন এবং Create table নির্বাচন করুন।

858cb483ebd3ce2a.png সম্পর্কে

  1. টেবিল তৈরির জন্য নিম্নলিখিত সেটিংস পূরণ করুন:
  • Google Cloud Storage থেকে টেবিল তৈরি করুন
  • GCS বাকেট থেকে ফাইল নির্বাচন করুন অথবা একটি URI প্যাটার্ন ব্যবহার করুন : GCS বাকেট ব্রাউজ করুন এবং Databricks এক্সপোর্টের সময় তৈরি হওয়া মেটাডেটা JSON ফাইলটি সনাক্ত করুন। পাথটি দেখতে এরকম কিছু হওয়া উচিত: regional_sales/metadata/v1.metadata.json
  • ফাইলের বিন্যাস : Iceberg
  • সারণী : regional_sales
  • টেবিলের ধরণ : External table
  • সংযোগ আইডি : পূর্বে তৈরি করা databricks_retl সংযোগটি নির্বাচন করুন।
  • বাকি মানগুলি ডিফল্ট হিসেবে রেখে দিন, তারপর Create table এ ক্লিক করুন।
  1. একবার তৈরি হয়ে গেলে, নতুন regional_sales টেবিলটি databricks_retl ডেটাসেটের অধীনে দৃশ্যমান হওয়া উচিত। এই টেবিলটি এখন স্ট্যান্ডার্ড SQL ব্যবহার করে জিজ্ঞাসা করা যেতে পারে, ঠিক যেমন অন্য যেকোনো BigQuery টেবিলের ক্ষেত্রে।

133be43ad67a5a21.png সম্পর্কে

৭. স্প্যানারে লোড করুন

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

স্প্যানার একটি সম্পূর্ণরূপে পরিচালিত, বিশ্বব্যাপী বিতরণকৃত রিলেশনাল ডাটাবেস। এটি একটি ঐতিহ্যবাহী রিলেশনাল ডাটাবেসের মতো লেনদেনের ধারাবাহিকতা প্রদান করে কিন্তু একটি NoSQL ডাটাবেসের অনুভূমিক স্কেলেবিলিটি প্রদান করে। এটি স্কেলেবল, অত্যন্ত উপলব্ধ অ্যাপ্লিকেশন তৈরির জন্য এটিকে একটি আদর্শ পছন্দ করে তোলে।

প্রক্রিয়াটি হবে:

  1. একটি স্প্যানার ইনস্ট্যান্স তৈরি করুন, যা সম্পদের ভৌত বরাদ্দ।
  2. সেই উদাহরণের মধ্যে একটি ডাটাবেস তৈরি করুন।
  3. ডাটাবেসে এমন একটি টেবিল স্কিমা সংজ্ঞায়িত করুন যা regional_sales ডেটার কাঠামোর সাথে মেলে।
  4. BigLake টেবিল থেকে সরাসরি Spanner টেবিলে ডেটা লোড করতে একটি BigQuery EXPORT DATA কোয়েরি চালান।

স্প্যানার ইনস্ট্যান্স, ডাটাবেস এবং টেবিল তৈরি করুন

  1. স্প্যানারে যান
  2. ক্লিক করুন 6a261f186de0bf4a.png সম্পর্কে । যদি বিদ্যমান কোন ইনস্ট্যান্স থাকে তবে তা ব্যবহার করতে দ্বিধা করবেন না। প্রয়োজন অনুসারে ইনস্ট্যান্সের প্রয়োজনীয়তাগুলি সেটআপ করুন। এই ল্যাবের জন্য, নিম্নলিখিতগুলি ব্যবহার করা হয়েছিল:

সংস্করণ

এন্টারপ্রাইজ

ইনস্ট্যান্স নাম

ডেটাব্রিক্স-রেটেল

অঞ্চল কনফিগারেশন

আপনার পছন্দের অঞ্চল

কম্পিউট ইউনিট

প্রক্রিয়াকরণ ইউনিট (PUs)

ম্যানুয়াল বরাদ্দ

১০০

  1. একবার তৈরি হয়ে গেলে, স্প্যানার ইনস্ট্যান্স পৃষ্ঠায় যান এবং নির্বাচন করুন 99e50c2015c697f4.png সম্পর্কে . যদি বিদ্যমান ডাটাবেস থাকে, তাহলে নির্দ্বিধায় ব্যবহার করুন।
  • এই ল্যাবের জন্য, একটি ডাটাবেস তৈরি করা হবে যার সাহায্যে
  • নাম : databricks-retl
  • ডাটাবেস ডায়ালেক্ট : Google Standard SQL
  1. ডাটাবেস তৈরি হয়ে গেলে, স্প্যানার ইনস্ট্যান্স পৃষ্ঠা থেকে এটি নির্বাচন করুন এবং স্প্যানার ডেটাবেস পৃষ্ঠায় প্রবেশ করুন।
  2. স্প্যানার ডাটাবেস পৃষ্ঠা থেকে, ক্লিক করুন 1df26c863b1327d5.png সম্পর্কে
  3. নতুন কোয়েরি পৃষ্ঠায়, স্প্যানারে আমদানি করার জন্য টেবিলের সংজ্ঞা তৈরি করা হবে। এটি করার জন্য, নিম্নলিখিত SQL কোয়েরিটি চালান।
CREATE TABLE regional_sales (
    nation_name STRING(MAX),
    market_segment STRING(MAX),
    order_year INT64,
    order_priority STRING(MAX),
    total_order_count INT64,
    total_revenue NUMERIC,
    unique_customer_count INT64
) PRIMARY KEY (nation_name, market_segment, order_year, order_priority);
  1. SQL কমান্ডটি কার্যকর হওয়ার পর, Spanner টেবিলটি এখন BigQuery-এর জন্য ডেটা রিভার্স ETL করার জন্য প্রস্তুত হবে। Spanner ডাটাবেসের বাম প্যানেলে তালিকাভুক্ত টেবিলটি দেখে টেবিল তৈরির বিষয়টি যাচাই করা যেতে পারে।

অনুসরণ

EXPORT DATA ব্যবহার করে ETL কে স্প্যানারে উল্টে দিন

এটিই শেষ ধাপ। BigQuery BigLake টেবিলে সোর্স ডেটা প্রস্তুত এবং Spanner-এ তৈরি ডেস্টিনেশন টেবিলের মাধ্যমে, প্রকৃত ডেটা চলাচল আশ্চর্যজনকভাবে সহজ। একটি একক BigQuery SQL কোয়েরি ব্যবহার করা হবে: EXPORT DATA

এই কোয়েরিটি বিশেষভাবে এই ধরণের পরিস্থিতির জন্য তৈরি করা হয়েছে। এটি দক্ষতার সাথে একটি BigQuery টেবিল (BigLake টেবিলের মতো বহিরাগতগুলি সহ) থেকে একটি বহিরাগত গন্তব্যে ডেটা রপ্তানি করে। এই ক্ষেত্রে, গন্তব্য হল Spanner টেবিল। রপ্তানি বৈশিষ্ট্য সম্পর্কে আরও তথ্য এখানে পাওয়া যাবে।

BigQuery থেকে Spanner Reverse ETL সেট আপ করার বিষয়ে আরও তথ্য এখানে পাওয়া যাবে।

  1. BigQuery- এ যান
  2. একটি নতুন কোয়েরি এডিটর ট্যাব খুলুন।
  3. কোয়েরি পৃষ্ঠায়, নিম্নলিখিত SQL লিখুন। প্রজেক্ট আইডিটি** uri ** **এবং টেবিল পাথটি সঠিক প্রজেক্ট আইডি দিয়ে প্রতিস্থাপন করতে ভুলবেন না।**
EXPORT DATA OPTIONS(

uri='https://spanner.googleapis.com/projects/YOUR_PROJECT_ID/instances/databricks-retl/databases/databricks-retl',
  format='CLOUD_SPANNER',
   spanner_options="""{
      "table": "regional_sales",
      "priority": "MEDIUM"
  }"""
) AS

SELECT * FROM `YOUR_PROJECT_ID.databricks_retl.regional_sales`;
  1. কমান্ডটি সম্পূর্ণ হলে, ডেটা সফলভাবে স্প্যানারে রপ্তানি করা হয়েছে!

৮. স্প্যানারে ডেটা যাচাই করুন

অভিনন্দন! একটি সম্পূর্ণ রিভার্স ইটিএল পাইপলাইন সফলভাবে তৈরি এবং কার্যকর করা হয়েছে, যা ডেটাব্রিক্স ডেটা গুদাম থেকে একটি কার্যকরী স্প্যানার ডাটাবেসে ডেটা স্থানান্তর করে।

চূড়ান্ত ধাপ হল যাচাই করা যে ডেটা প্রত্যাশা অনুযায়ী স্প্যানারে পৌঁছেছে।

  1. স্প্যানারে যাও।
  2. আপনার databricks-retl ইনস্ট্যান্সে নেভিগেট করুন এবং তারপর databricks-retl ডাটাবেসে যান।
  3. টেবিলের তালিকায়, regional_sales টেবিলে ক্লিক করুন।
  4. টেবিলের বাম দিকের নেভিগেশন মেনুতে, ডেটা ট্যাবে ক্লিক করুন।

710e41c80bdc31c4.png সম্পর্কে

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

f1201d6605b2a527.png সম্পর্কে

বিশ্লেষণাত্মক এবং পরিচালনাগত তথ্য জগতের মধ্যে ব্যবধান সফলভাবে পূরণ করা হয়েছে।

৯. পরিষ্কার-পরিচ্ছন্নতা

এই ল্যাবটি শেষ হয়ে গেলে, সমস্ত যোগ করা টেবিল এবং সঞ্চিত ডেটা সরিয়ে ফেলুন।

স্প্যানার টেবিল পরিষ্কার করুন

  1. গোটো স্প্যানার
  2. databricks-retl নামের তালিকা থেকে এই ল্যাবের জন্য ব্যবহৃত উদাহরণটিতে ক্লিক করুন।

aa32380b601fdb87.png সম্পর্কে

  1. ইনস্ট্যান্স পৃষ্ঠায়, ক্লিক করুন 5fc4696b82a79013.png সম্পর্কে
  2. পপ আপ হওয়া নিশ্চিতকরণ ডায়ালগে databricks-retl লিখুন এবং ক্লিক করুন ef9e3709dcad2683.png সম্পর্কে

জিসিএস পরিষ্কার করুন

  1. GCS- এ যান
  2. নির্বাচন করুন b0aeb28c98f21942.png সম্পর্কে বাম দিকের মেনু থেকে
  3. ``codelabs_retl_databricks বাকেট নির্বাচন করুন

e4f33fbebb892229.png সম্পর্কে

  1. একবার নির্বাচিত হয়ে গেলে, ক্লিক করুন 1f0075ce292003ff.png সম্পর্কে উপরের ব্যানারে প্রদর্শিত বোতাম

384fe0801a23bfe5.png অনুসরণ

  1. পপ আপ হওয়া নিশ্চিতকরণ ডায়ালগে DELETE লিখুন এবং ক্লিক করুন ef9e3709dcad2683.png সম্পর্কে

ডেটাব্রিক্স পরিষ্কার করুন

ক্যাটালগ/স্কিমা/টেবিল মুছুন

  1. আপনার ডেটাব্রিক্স ইনস্ট্যান্সে সাইন ইন করুন
  2. ক্লিক করুন 20bae9c2c9097306.png সম্পর্কে বাম দিকের মেনু থেকে
  3. পূর্বে তৈরি করা নির্বাচন করুন fc566eb3fddd7477.png সম্পর্কে ক্যাটালগ তালিকা থেকে
  4. স্কিমা তালিকায়, নির্বাচন করুন deb927c01e9e76d0.png সম্পর্কে যেটি তৈরি হয়েছিল
  5. পূর্বে তৈরি করা নির্বাচন করুন 332d33ee48a5897c.png সম্পর্কে টেবিল তালিকা থেকে
  6. ক্লিক করে টেবিলের বিকল্পগুলি প্রসারিত করুন df6dbe6356f141c6.png সম্পর্কে এবং Delete নির্বাচন করুন
  7. ক্লিক করুন 3951711057fe3048.png সম্পর্কে টেবিলটি মুছে ফেলার জন্য নিশ্চিতকরণ ডায়ালগে
  8. টেবিলটি মুছে ফেলা হলে, আপনাকে স্কিমা পৃষ্ঠায় ফিরিয়ে আনা হবে।
  9. ক্লিক করে স্কিমা বিকল্পগুলি প্রসারিত করুন df6dbe6356f141c6.png সম্পর্কে এবং Delete নির্বাচন করুন
  10. ক্লিক করুন 3951711057fe3048.png সম্পর্কে স্কিমা মুছে ফেলার জন্য নিশ্চিতকরণ ডায়ালগে
  11. স্কিমাটি মুছে ফেলা হলে, আপনাকে ক্যাটালগ পৃষ্ঠায় ফিরিয়ে আনা হবে।
  12. যদি default স্কিমা থাকে, তাহলে তা মুছে ফেলতে আবার ৪ - ১১ ধাপ অনুসরণ করুন।
  13. ক্যাটালগ পৃষ্ঠা থেকে, ক্লিক করে ক্যাটালগ বিকল্পগুলি প্রসারিত করুন df6dbe6356f141c6.png সম্পর্কে এবং Delete নির্বাচন করুন
  14. ক্লিক করুন 3951711057fe3048.png সম্পর্কে ক্যাটালগ মুছে ফেলার জন্য নিশ্চিতকরণ ডায়ালগে

বাহ্যিক ডেটা অবস্থান / শংসাপত্র মুছুন

  1. ক্যাটালগ স্ক্রিন থেকে, ক্লিক করুন 32d5a94ae444cd8e.png সম্পর্কে
  2. যদি আপনি একটি External Data বিকল্প দেখতে না পান, তাহলে আপনি Connect ড্রপডাউনের অধীনে External Location তালিকাভুক্ত দেখতে পাবেন।
  3. পূর্বে তৈরি করা retl-gcs-location বহিরাগত ডেটা অবস্থানে ক্লিক করুন।
  4. বাহ্যিক অবস্থান পৃষ্ঠা থেকে, ক্লিক করে অবস্থান বিকল্পগুলি প্রসারিত করুন df6dbe6356f141c6.png সম্পর্কে এবং Delete নির্বাচন করুন
  5. ক্লিক করুন 3951711057fe3048.png সম্পর্কে বাহ্যিক অবস্থান মুছে ফেলার জন্য নিশ্চিতকরণ ডায়ালগে
  6. ক্লিক করুন e03562324c0ba85e.png
  7. পূর্বে তৈরি করা retl-gcs-credential এ ক্লিক করুন।
  8. শংসাপত্র পৃষ্ঠা থেকে, ক্লিক করে শংসাপত্র বিকল্পগুলি প্রসারিত করুন df6dbe6356f141c6.png সম্পর্কে এবং Delete নির্বাচন করুন
  9. ক্লিক করুন 3951711057fe3048.png সম্পর্কে শংসাপত্র মুছে ফেলার জন্য নিশ্চিতকরণ ডায়ালগে।

১০. অভিনন্দন

কোডল্যাবটি সম্পন্ন করার জন্য অভিনন্দন।

আমরা যা কভার করেছি

  • আইসবার্গ টেবিল হিসেবে ডেটাব্রিক্সে ডেটা কীভাবে লোড করবেন
  • কিভাবে একটি GCS বাকেট তৈরি করবেন
  • আইসবার্গ ফর্ম্যাটে GCS-এ ডেটাব্রিক্স টেবিল কীভাবে রপ্তানি করবেন
  • GCS-এর Iceberg টেবিল থেকে BigQuery-তে কীভাবে একটি BigLake External Table তৈরি করবেন
  • কিভাবে একটি স্প্যানার ইনস্ট্যান্স সেট আপ করবেন
  • BigQuery-তে BigLake এক্সটার্নাল টেবিলগুলি Spanner-এ কীভাবে লোড করবেন