ডাটাবেস তৈরি এবং পরিচালনা করুন

শুধুমাত্র ক্লাউড ফায়ারস্টোর এন্টারপ্রাইজ সংস্করণের জন্য প্রাসঙ্গিক।

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

বিনামূল্যে স্তর ব্যবহার

Cloud Firestore বিনামূল্যের স্তর অফার করে যা আপনাকে বিনা খরচে শুরু করতে দেয়।

বিনামূল্যের স্তরটি প্রতি প্রকল্পে শুধুমাত্র একটি Cloud Firestore ডাটাবেসের ক্ষেত্রে প্রযোজ্য। ফ্রি টিয়ার ডাটাবেস ছাড়াই একটি প্রোজেক্টে তৈরি করা প্রথম ডাটাবেস ফ্রি টিয়ার পাবে। যদি বিনামূল্যের স্তর প্রয়োগ করা ডাটাবেসটি মুছে ফেলা হয়, তৈরি করা পরবর্তী ডাটাবেসটি বিনামূল্যের স্তরটি পাবে।

আপনি শুরু করার আগে

একটি ডাটাবেস তৈরি করার আগে আপনাকে অবশ্যই নিম্নলিখিতগুলি সম্পূর্ণ করতে হবে:

  1. যদি আপনি ইতিমধ্যেই না করে থাকেন, একটি Firebase প্রকল্প তৈরি করুন: Firebase কনসোলে , প্রকল্প যোগ করুন ক্লিক করুন, তারপর একটি Firebase প্রকল্প তৈরি করতে বা একটি বিদ্যমান Google Cloud প্রকল্পে Firebase পরিষেবা যোগ করতে অন-স্ক্রীন নির্দেশাবলী অনুসরণ করুন৷

  2. পরবর্তী বিভাগে বর্ণিত হিসাবে উপযুক্ত পরিচয় এবং অ্যাক্সেস ম্যানেজমেন্ট ভূমিকা বরাদ্দ করুন।

প্রয়োজনীয় ভূমিকা

ডেটাবেস তৈরি এবং পরিচালনা করতে, আপনাকে Owner বা Datastore Owner পরিচয় এবং অ্যাক্সেস ম্যানেজমেন্ট ভূমিকার প্রয়োজন। এই ভূমিকাগুলি প্রয়োজনীয় অনুমতি প্রদান করে।

প্রয়োজনীয় অনুমতি

ডাটাবেস পরিচালনা করতে, আপনার নিম্নলিখিত অনুমতিগুলির প্রয়োজন:

  • একটি ডাটাবেস তৈরি করুন: datastore.databases.create
  • ডাটাবেস কনফিগারেশন পড়ুন: datastore.databases.getMetadata
  • একটি ডাটাবেস কনফিগার করুন: datastore.databases.update
  • একটি ডাটাবেস মুছুন: datastore.databases.delete
  • একটি ডাটাবেস ক্লোন করুন: datastore.databases.clone

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

MongoDB সামঞ্জস্যপূর্ণ ডাটাবেসের সাথে একটি ক্লাউড ফায়ারস্টোর তৈরি করতে, নিম্নলিখিত পদ্ধতিগুলির মধ্যে একটি ব্যবহার করুন:

Firebase কনসোল
  1. Firebase কনসোলে, ফায়ারস্টোর ডেটাবেস পৃষ্ঠায় যান।

    ফায়ারস্টোর ডাটাবেসে যান

  2. ডেটাবেস তৈরি করুন ক্লিক করুন।
  3. এন্টারপ্রাইজ সংস্করণ নির্বাচন করুন। পরবর্তী ক্লিক করুন.
  4. একটি ডাটাবেস আইডি লিখুন।
  5. আপনার ডাটাবেসের জন্য একটি অবস্থান নির্বাচন করুন.
  6. আপনার ডাটাবেস কনফিগার করুন যেখানে আপনি একটি মোড নির্বাচন করুন।
  7. তৈরি করুন ক্লিক করুন।
ফায়ারবেস CLI
firebase firestore:databases:create --edition EDITION DATABASE_ID \
--location=LOCATION
জিক্লাউড সিএলআই

gcloud firestore databases create কমান্ড ব্যবহার করুন এবং --edition=enterprise সেট করুন।

gcloud firestore databases create \
--database=DATABASE_ID \
--location=LOCATION \
--edition=enterprise

নিম্নলিখিতগুলি প্রতিস্থাপন করুন:

অপসারণ সুরক্ষা সক্রিয় করতে, --delete-protection পতাকা যোগ করুন। আপনি এই সেটিংটি নিষ্ক্রিয় না করা পর্যন্ত আপনি একটি ডাটাবেস মুছে ফেলার সুরক্ষা সক্ষম করতে পারবেন না। এই সেটিং ডিফল্টরূপে অক্ষম করা হয়.

gcloud firestore databases create \
--database=DATABASE_ID \
--location=LOCATION \
--edition=enterprise \
--delete-protection

ডাটাবেসে ট্যাগ যোগ করতে, --tags পতাকা ব্যবহার করুন। যেমন:

  • --tags=123/environment=production,123/costCenter=marketing
  • --tags=tagKeys/333=tagValues/444
টেরাফর্ম

google_firestore_database সম্পদ ব্যবহার করুন এবং database_edition ENTERPRISE এ সেট করুন

resource "google_firestore_database" "database" {
  name             = "DATABASE_ID"
  location_id      = "LOCATION"
  type             = "FIRESTORE_NATIVE"
  database_edition = "ENTERPRISE"

  // Optional
  delete_protection_state = "DELETE_PROTECTION_STATE"
}

নিম্নলিখিতগুলি প্রতিস্থাপন করুন:

মুছে ফেলার সুরক্ষা সক্ষম করতে, delete_protection_state DELETE_PROTECTION_ENABLED এ সেট করুন। আপনি এই সেটিংটি নিষ্ক্রিয় না করা পর্যন্ত আপনি একটি ডাটাবেস মুছে ফেলার সুরক্ষা সক্ষম করতে পারবেন না। এই সেটিং ডিফল্টরূপে অক্ষম করা হয়.

ডাটাবেস আইডি

বৈধ ডাটাবেস আইডিতে নিম্নলিখিত আইডিগুলি অন্তর্ভুক্ত থাকে:

  • শুধুমাত্র অক্ষর, সংখ্যা এবং হাইফেন ( - ) অক্ষর অন্তর্ভুক্ত করে।
  • অক্ষরগুলো ছোট হাতের হতে হবে।
  • প্রথম অক্ষর একটি অক্ষর হতে হবে.
  • শেষ অক্ষরটি একটি অক্ষর বা সংখ্যা হতে হবে।
  • ন্যূনতম ৪টি অক্ষর।
  • সর্বোচ্চ ৬৩টি অক্ষর।
  • একটি UUID বা UUID অনুরূপ হতে হবে না. উদাহরণস্বরূপ, f47ac10b-58cc-0372-8567-0e02b2c3d479 মতো একটি আইডি ব্যবহার করবেন না।

আপনি একটি ডাটাবেস মুছে ফেললে, আপনি অবিলম্বে 5 মিনিটের পরে ডাটাবেস আইডি পুনরায় ব্যবহার করতে পারবেন না।

সুরক্ষা মুছুন

একটি ডাটাবেস দুর্ঘটনাক্রমে মুছে ফেলা রোধ করতে মুছে ফেলা সুরক্ষা ব্যবহার করুন। সুরক্ষা মুছুন নিম্নলিখিত উপায়ে কাজ করে:

  • আপনি ডিলিট সুরক্ষা অক্ষম না করা পর্যন্ত আপনি ডিলিট সুরক্ষা সক্ষম করে একটি ডাটাবেস মুছতে পারবেন না।
  • ডিফল্টরূপে সুরক্ষা মুছুন অক্ষম করা হয়।
  • আপনি যখন ডাটাবেস তৈরি করেন তখন আপনি মুছে ফেলার সুরক্ষা সক্ষম করতে পারেন বা আপনি মুছে ফেলা সুরক্ষা সক্ষম করতে একটি ডাটাবেস কনফিগারেশন আপডেট করতে পারেন।

তালিকা ডাটাবেস

আপনার ডাটাবেস তালিকাভুক্ত করতে নিম্নলিখিত পদ্ধতিগুলির মধ্যে একটি ব্যবহার করুন:

Firebase কনসোল
  1. Firebase কনসোলে, ফায়ারস্টোর ডেটাবেস পৃষ্ঠায় যান।

    ফায়ারস্টোর ডাটাবেসে যান

  2. প্রকল্পের জন্য সমস্ত ডাটাবেস দেখতে ক্লাউড ফায়ারস্টোরে ক্লিক করুন।
জিক্লাউড সিএলআই

আপনার প্রকল্পের সমস্ত ডাটাবেস তালিকাভুক্ত করতে gcloud firestore databases list কমান্ড ব্যবহার করুন।

gcloud firestore databases list

ডাটাবেস বিবরণ দেখুন

একটি একক ডাটাবেস সম্পর্কে বিশদ দেখতে, নিম্নলিখিত পদ্ধতিগুলির মধ্যে একটি ব্যবহার করুন:

Firebase কনসোল
  1. Firebase কনসোলে, ফায়ারস্টোর ডেটাবেস পৃষ্ঠায় যান।

    ফায়ারস্টোর ডাটাবেসে যান

  2. ডাটাবেসের তালিকা থেকে একটি ডাটাবেস নির্বাচন করুন।
জিক্লাউড সিএলআই

gcloud firestore databases describe কমান্ড ব্যবহার করুন:

gcloud firestore databases describe --database=DATABASE_ID

একটি ডাটাবেস আইডি দিয়ে DATABASE_ID প্রতিস্থাপন করুন।

ডাটাবেস কনফিগারেশন আপডেট করুন

একটি ডাটাবেসের কনফিগারেশন সেটিংস আপডেট করতে, gcloud firestore databases update কমান্ড ব্যবহার করুন।

ডিলিট সুরক্ষা পরিবর্তন, সক্ষম বা অক্ষম করতে এই কমান্ডটি ব্যবহার করুন।

মুছে ফেলা সুরক্ষা সেটিং আপডেট করুন

একটি ডাটাবেসে ডিলিট সুরক্ষা সক্ষম করতে, --delete-protection পতাকা সহ gcloud firestore databases update কমান্ড ব্যবহার করুন। যেমন:

জিক্লাউড সিএলআই
gcloud firestore databases update --database=DATABASE_ID --delete-protection

একটি ডাটাবেস আইডি দিয়ে DATABASE_ID প্রতিস্থাপন করুন।

একটি ডাটাবেসে ডিলিট সুরক্ষা নিষ্ক্রিয় করতে, --no-delete-protection পতাকা সহ gcloud firestore databases update কমান্ড ব্যবহার করুন। যেমন:

জিক্লাউড সিএলআই
gcloud firestore databases update --database=DATABASE_ID --no-delete-protection

একটি ডাটাবেস আইডি দিয়ে DATABASE_ID প্রতিস্থাপন করুন।

একটি ডাটাবেস মুছুন

একটি ডাটাবেস মুছে ফেলতে, কনসোল বা কমান্ড-লাইন টুল ব্যবহার করুন। একটি ডাটাবেস মুছে ফেলার জন্য ডিলিট অপারেশনের জন্য চার্জ লাগে না।

যদি ডাটাবেসে ডিলিট সুরক্ষা সেটিং সক্রিয় থাকে, তাহলে আপনাকে প্রথমে ডিলিট সুরক্ষা অক্ষম করতে হবে।

Firebase কনসোল
  1. Firebase কনসোলে, ফায়ারস্টোর ডেটাবেস পৃষ্ঠায় যান।

    ফায়ারস্টোর ডাটাবেসে যান

  2. আপনি মুছে ফেলতে চান ডাটাবেস নির্বাচন করুন.
  3. আরো দেখুন ক্লিক করুন।
  4. ডাটাবেস মুছে ফেলতে মুছুন ক্লিক করুন।
জিক্লাউড সিএলআই

`gcloud firestore databases delete` কমান্ড ব্যবহার করুন।

gcloud firestore databases delete --database=DATABASE_ID

মুছে ফেলার জন্য ডাটাবেসের ID দিয়ে DATABASE_ID প্রতিস্থাপন করুন।

একটি ডাটাবেস ক্লোন করুন

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

  • ক্লোন করা ডাটাবেস হল একটি নতুন ডাটাবেস যা উৎস ডাটাবেসের মতো একই স্থানে তৈরি করা হবে।

    একটি ক্লোন তৈরি করতে, Cloud Firestore সোর্স ডাটাবেসের পয়েন্ট-ইন-টাইম রিকভারি (PITR) ডেটা ব্যবহার করে। ক্লোন করা ডাটাবেসে সমস্ত ডেটা এবং ইনডেক্স অন্তর্ভুক্ত থাকে।

  • ডিফল্টরূপে, Google এর ডিফল্ট এনক্রিপশন বা CMEK এনক্রিপশন ব্যবহার করে ক্লোন করা ডাটাবেস উৎস ডাটাবেসের মতোই এনক্রিপ্ট করা হবে। আপনি একটি ভিন্ন এনক্রিপশন প্রকার নির্দিষ্ট করতে পারেন বা CMEK এনক্রিপশনের জন্য একটি ভিন্ন কী ব্যবহার করতে পারেন৷

  • টাইমস্ট্যাম্পে এক মিনিটের গ্রানুলারিটি থাকে এবং পিআইটিআর উইন্ডো দ্বারা সংজ্ঞায়িত সময়ের মধ্যে অতীতের একটি বিন্দু নির্দিষ্ট করে:

    • যদি আপনার ডাটাবেসের জন্য PITR সক্ষম করা থাকে, তাহলে আপনি শেষ 7 দিনের মধ্যে যেকোনো মিনিট নির্বাচন করুন (অথবা যদি PITR 7 দিনের কম আগে সক্রিয় করা হয়)।
    • PITR সক্ষম না থাকলে, আপনি গত এক ঘণ্টার যেকোনো মিনিট নির্বাচন করতে পারেন।
    • আপনি আপনার ডাটাবেসের বিবরণে বাছাই করতে পারেন এমন প্রথমতম টাইমস্ট্যাম্পটি পরীক্ষা করতে পারেন।

কনসোল

  1. Google ক্লাউড কনসোলে, ডেটাবেস পৃষ্ঠায় যান।

    ডাটাবেসে যান

  2. আপনি যে ডাটাবেসের ক্লোন করতে চান তার জন্য টেবিলের সারিতে আরও দেখুন ক্লিক করুন। ক্লোন ক্লিক করুন। একটি ক্লোন তৈরি করুন ডায়ালগ প্রদর্শিত হবে।

  3. একটি ক্লোন ডায়ালগ তৈরি করুন , ডাটাবেস ক্লোন করার জন্য পরামিতি প্রদান করুন:

    1. ক্লোনকে একটি আইডি ক্ষেত্র দিন , একটি নতুন ক্লোন করা ডাটাবেসের জন্য একটি ডাটাবেস আইডি । এই ডাটাবেস আইডি একটি বিদ্যমান ডাটাবেসের সাথে যুক্ত করা উচিত নয়।

    2. ক্লোন ফ্রম ফিল্ডে, ক্লোনিংয়ের জন্য ব্যবহার করার জন্য সময়মত একটি বিন্দু নির্বাচন করুন। নির্বাচিত সময়টি একটি PITR টাইমস্ট্যাম্পের সাথে মিলে যায়, মিনিটের গ্রানুলিটিতে।

  4. ক্লোন তৈরি করুন ক্লিক করুন।

জিক্লাউড

একটি ডাটাবেস ক্লোন করতে gcloud alpha firestore databases clone কমান্ড ব্যবহার করুন:

gcloud alpha firestore databases clone \
--source-database='SOURCE_DATABASE' \
--snapshot-time='PITR_TIMESTAMP' \
--destination-database='DESTINATION_DATABASE_ID'

নিম্নলিখিতগুলি প্রতিস্থাপন করুন:

  • SOURCE_DATABASE : একটি বিদ্যমান ডাটাবেসের ডাটাবেসের নাম যা আপনি ক্লোন করতে চান। নামটি projects/ PROJECT_ID /databases/ SOURCE_DATABASE_ID ফর্ম্যাট ব্যবহার করে।

  • PITR_TIMESTAMP : RFC 3339 বিন্যাসে একটি PITR টাইমস্ট্যাম্প , মিনিট গ্রানুলিটি। যেমন: 2025-06-01T10:20:00.00Z বা 2025-06-01T10:30:00.00-07:00

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

উদাহরণ:

gcloud alpha firestore databases clone \
--source-database='projects/example-project/databases/(default)' \
--snapshot-time='2025-06-01T10:20:00.00Z' \
--destination-database='projects/example-project/databases/example-dest-db'

ক্লোন করা ডাটাবেসের এনক্রিপশন কনফিগারেশন পরিবর্তন করুন

ডিফল্টরূপে, ক্লোন করা ডাটাবেসের উৎস ডাটাবেসের মতো একই এনক্রিপশন কনফিগারেশন থাকবে। এনক্রিপশন কনফিগারেশন পরিবর্তন করতে, --encryption-type আর্গুমেন্ট ব্যবহার করুন:

  • (ডিফল্ট) use-source-encryption : সোর্স ডাটাবেসের মতো একই এনক্রিপশন কনফিগারেশন ব্যবহার করুন।
  • google-default-encryption : Google এর ডিফল্ট এনক্রিপশন ব্যবহার করুন।
  • customer-managed-encryption : CMEK এনক্রিপশন ব্যবহার করুন। --kms-key-name আর্গুমেন্টে একটি কী আইডি উল্লেখ করুন।

নিম্নলিখিত উদাহরণ দেখায় কিভাবে ক্লোন করা ডাটাবেসের জন্য CMEK এনক্রিপশন কনফিগার করতে হয়:

gcloud alpha firestore databases clone \
--source-database='projects/example-project/databases/(default)' \
--snapshot-time='2025-06-01T10:20:00.00Z' \
--destination-database='projects/example-project/databases/example-dest-db' \
--encryption-type='customer-managed-encryption' \
--kms-key-name='projects/example-project/locations/us-central1/keyRings/example-key-ring/cryptoKeys/example-key'

প্রতি-ডাটাবেস অ্যাক্সেস অনুমতি কনফিগার করুন

আপনি প্রতি-ডাটাবেস স্তরে অ্যাক্সেসের অনুমতিগুলি কনফিগার করতে আইডেন্টিটি এবং অ্যাক্সেস ম্যানেজমেন্ট শর্তাবলী ব্যবহার করতে পারেন। নিম্নলিখিত উদাহরণগুলি এক বা একাধিক ডেটাবেসের জন্য শর্তসাপেক্ষ অ্যাক্সেস বরাদ্দ করতে Google ক্লাউড CLI ব্যবহার করে৷ আপনি Google ক্লাউড কনসোলে IAM শর্তগুলিও সংজ্ঞায়িত করতে পারেন৷

বিদ্যমান IAM নীতিগুলি দেখুন৷

gcloud projects get-iam-policy PROJECT_ID

আপনার প্রকল্প আইডিতে PROJECT_ID সেট করুন।

একটি ডাটাবেসে অ্যাক্সেস মঞ্জুর করুন

gcloud projects add-iam-policy-binding PROJECT_ID \
--member='user:EMAIL' \
--role='roles/datastore.user' \
--condition='expression=resource.name=="projects/PROJECT_ID/databases/DATABASE_ID",title=TITLE,description=DESCRIPTION'

নিম্নলিখিত সেট করুন:

  • PROJECT_ID : আপনার প্রকল্প আইডি
  • EMAIL : একটি ইমেল ঠিকানা যা একটি নির্দিষ্ট অ্যাকাউন্টের প্রতিনিধিত্ব করে৷ উদাহরণস্বরূপ, alice@example.com
  • DATABASE_ID : একটি ডাটাবেস আইডি।
  • TITLE : অভিব্যক্তির জন্য একটি ঐচ্ছিক শিরোনাম।
  • DESCRIPTION : অভিব্যক্তির একটি ঐচ্ছিক বর্ণনা।

একটি ডাটাবেস ব্যতীত সকলকে অ্যাক্সেস প্রদান করুন

gcloud projects add-iam-policy-binding PROJECT_ID \
--member='user:EMAIL' \
--role='roles/datastore.user' \
--condition='expression=resource.name!="projects/PROJECT_ID/databases/DATABASE_ID",title=TITLE,description=DESCRIPTION'

নিম্নলিখিত সেট করুন:

  • PROJECT_ID : আপনার প্রকল্প আইডি
  • EMAIL : একটি ইমেল ঠিকানা যা একটি নির্দিষ্ট অ্যাকাউন্টের প্রতিনিধিত্ব করে৷ উদাহরণস্বরূপ, alice@example.com
  • DATABASE_ID : একটি ডাটাবেস আইডি।
  • TITLE : অভিব্যক্তির জন্য একটি ঐচ্ছিক শিরোনাম।
  • DESCRIPTION : অভিব্যক্তির একটি ঐচ্ছিক বর্ণনা।

প্রদত্ত সদস্য এবং ভূমিকার জন্য নীতিগুলি সরান৷

gcloud projects remove-iam-policy-binding PROJECT_ID \
--member='user:EMAIL' \
--role='roles/datastore.user' --all

নিম্নলিখিত সেট করুন:

  • PROJECT_ID : আপনার প্রকল্প আইডি
  • EMAIL : একটি ইমেল ঠিকানা যা একটি নির্দিষ্ট অ্যাকাউন্টের প্রতিনিধিত্ব করে৷ উদাহরণস্বরূপ, alice@example.com

সীমাবদ্ধতা

প্রতি প্রকল্পে আপনার সর্বাধিক 100টি ডাটাবেস থাকতে পারে। আপনি এই সীমা বৃদ্ধির অনুরোধ করতে সহায়তার সাথে যোগাযোগ করতে পারেন।

এরপর কি