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

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

এই পৃষ্ঠাটি 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. তৈরি করুন ক্লিক করুন।
ফায়ারবেস সিএলআই
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 মতো আইডি ব্যবহার করবেন না।

যদি আপনি একটি ডাটাবেস মুছে ফেলেন, তাহলে ৫ মিনিটের আগে আপনি তাৎক্ষণিকভাবে ডাটাবেস আইডি পুনরায় ব্যবহার করতে পারবেন না।

সুরক্ষা মুছে ফেলুন

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

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

ডাটাবেস তালিকাভুক্ত করুন

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

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. ডাটাবেস মুছে ফেলার জন্য Delete এ ক্লিক করুন।
জিক্লাউড সিএলআই

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

gcloud firestore databases delete --database=DATABASE_ID

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

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

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

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

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

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

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

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

কনসোল

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

    ডাটাবেসে যান

  2. আপনি যে ডাটাবেসটি ক্লোন করতে চান তার টেবিল সারিতে View more এ ক্লিক করুন। Clone এ ক্লিক করুন। Create a clone ডায়ালগটি প্রদর্শিত হবে।

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

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

    2. "Clone from" ক্ষেত্রে, ক্লোনিংয়ের জন্য ব্যবহার করার জন্য একটি বিন্দু সময় নির্বাচন করুন। নির্বাচিত সময়টি মিনিট গ্র্যানুলারিটিতে একটি 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 : গুগলের ডিফল্ট এনক্রিপশন ব্যবহার করুন।
  • 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

সীমাবদ্ধতা

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

এরপর কি?