আমদানি এবং রপ্তানি তথ্য

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

এই পৃষ্ঠায় ম্যানেজড এক্সপোর্ট ও ইম্পোর্ট পরিষেবা এবং Cloud Storage ব্যবহার করে Cloud Firestore ডকুমেন্ট এক্সপোর্ট ও ইম্পোর্ট করার পদ্ধতি বর্ণনা করা হয়েছে। Cloud Firestore ম্যানেজড এক্সপোর্ট ও ইম্পোর্ট পরিষেবাটি gcloud কমান্ড-লাইন টুল এবং Cloud Firestore এপিআই ( REST , RPC )-এর মাধ্যমে পাওয়া যায়।

শুরু করার আগে

পরিচালিত রপ্তানি ও আমদানি পরিষেবা ব্যবহার করার আগে, আপনাকে অবশ্যই নিম্নলিখিত কাজগুলি সম্পন্ন করতে হবে:

  1. আপনার Google Cloud প্রোজেক্টের জন্য বিলিং চালু করুন। শুধুমাত্র বিলিং চালু থাকা Google Cloud প্রোজেক্টগুলোই এক্সপোর্ট এবং ইম্পোর্ট কার্যকারিতা ব্যবহার করতে পারবে।
  2. আপনার প্রোজেক্টের জন্য আপনার Cloud Firestore ডেটাবেস অবস্থানের কাছাকাছি একটি Cloud Storage বাকেট তৈরি করুন । আপনি এক্সপোর্ট এবং ইম্পোর্ট অপারেশনের জন্য রিকোয়েস্টার পেজ বাকেট ব্যবহার করতে পারবেন না।
  3. নিশ্চিত করুন যে আপনার অ্যাকাউন্টে Cloud Firestore এবং Cloud Storage জন্য প্রয়োজনীয় অনুমতি রয়েছে। আপনি যদি প্রজেক্টের মালিক হন, তবে আপনার অ্যাকাউন্টে প্রয়োজনীয় অনুমতি রয়েছে। অন্যথায়, নিম্নলিখিত রোলগুলো এক্সপোর্ট ও ইম্পোর্ট অপারেশন এবং Cloud Storage অ্যাক্সেসের জন্য প্রয়োজনীয় অনুমতি প্রদান করে:

    • Cloud Firestore রোল: Owner , Cloud Datastore Owner , অথবা Cloud Datastore Import Export Admin
    • Cloud Storage ভূমিকা: Owner অথবা Storage Admin

পরিষেবা এজেন্টের অনুমতি

এক্সপোর্ট এবং ইম্পোর্ট অপারেশনগুলো Cloud Storage অপারেশন অনুমোদন করার জন্য একটি Cloud Firestore সার্ভিস এজেন্ট ব্যবহার করে। Cloud Firestore সার্ভিস এজেন্ট নিম্নলিখিত নামকরণ পদ্ধতি অনুসরণ করে:

Cloud Firestore পরিষেবা এজেন্ট
service- PROJECT_NUMBER @gcp-sa-firestore.iam.gserviceaccount.com

সার্ভিস এজেন্ট সম্পর্কে আরও জানতে, সার্ভিস এজেন্ট দেখুন।

এক্সপোর্ট বা ইম্পোর্ট অপারেশনে ব্যবহৃত Cloud Storage বাকেটে Cloud Firestore সার্ভিস এজেন্টের অ্যাক্সেস প্রয়োজন হয়। যদি আপনার Cloud Storage বাকেটটি আপনার Cloud Firestore ডেটাবেসের মতো একই প্রজেক্টে থাকে, তাহলে Cloud Firestore সার্ভিস এজেন্ট ডিফল্টভাবে বাকেটটি অ্যাক্সেস করতে পারে

যদি Cloud Storage বাকেটটি অন্য কোনো প্রজেক্টে থাকে, তাহলে আপনাকে অবশ্যই Cloud Firestore সার্ভিস এজেন্টকে সেই Cloud Storage বাকেটে অ্যাক্সেস দিতে হবে।

সার্ভিস এজেন্টকে ভূমিকা বরাদ্দ করুন

আপনি নিচের রোলগুলোর মধ্যে যেকোনো একটি অ্যাসাইন করতে gsutil কমান্ড-লাইন টুলটি ব্যবহার করতে পারেন। উদাহরণস্বরূপ, Cloud Firestore সার্ভিস এজেন্টকে স্টোরেজ অ্যাডমিন রোলটি অ্যাসাইন করতে, নিম্নলিখিত কমান্ডটি চালান:

gsutil iam ch serviceAccount:service-PROJECT_NUMBER@gcp-sa-firestore.iam.gserviceaccount.com:roles/storage.admin \
    gs://[BUCKET_NAME]

PROJECT_NUMBER জায়গায় আপনার প্রজেক্ট নম্বরটি বসান, যা আপনার Cloud Firestore সার্ভিস এজেন্টের নামকরণ করতে ব্যবহৃত হয়। সার্ভিস এজেন্টের নামটি দেখতে, ‘সার্ভিস এজেন্টের নাম দেখুন ’ দেখুন।

বিকল্পভাবে, আপনি গুগল ক্লাউড কনসোল ব্যবহার করে এই ভূমিকাটি নির্ধারণ করতে পারেন।

পরিষেবা এজেন্টের নাম দেখুন

গুগল ক্লাউড কনসোলের ইম্পোর্ট/এক্সপোর্ট পেজ থেকে আপনি দেখতে পারেন যে, আপনার ইম্পোর্ট ও এক্সপোর্ট অপারেশনগুলো অনুরোধ অনুমোদনের জন্য কোন অ্যাকাউন্ট ব্যবহার করে। এছাড়াও, আপনার ডাটাবেস Cloud Firestore সার্ভিস এজেন্ট নাকি লিগ্যাসি App Engine সার্ভিস অ্যাকাউন্ট ব্যবহার করছে, সেটাও আপনি দেখতে পারেন।

  1. 'Import/Export jobs run as' লেবেলের পাশে অনুমোদন অ্যাকাউন্টটি দেখুন।

এক্সপোর্ট বা ইম্পোর্ট অপারেশনের জন্য ব্যবহৃত Cloud Storage বাকেটটির ক্ষেত্রে সার্ভিস এজেন্টের Storage Admin রোল থাকা প্রয়োজন।

আপনার প্রোজেক্টের জন্য gcloud সেট আপ করুন

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

ডেটা আমদানি করুন

একবার Cloud Storage ফাইলগুলো এক্সপোর্ট করার পর, আপনি সেই ফাইলগুলোর ডকুমেন্টগুলো আপনার নিজের প্রজেক্টে বা অন্য কোনো প্রজেক্টে ইম্পোর্ট করতে পারবেন। ইম্পোর্ট অপারেশন সম্পর্কে নিম্নলিখিত বিষয়গুলো লক্ষ্য করুন:

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

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

  • আপনার ডাটাবেসের কোনো ডকুমেন্ট যদি ইম্পোর্টের দ্বারা প্রভাবিত না হয়, তাহলে ইম্পোর্টের পরেও সেটি আপনার ডাটাবেসে থেকে যাবে।

  • .overall_export_metadata ফাইলের নামটি অবশ্যই এর প্যারেন্ট ফোল্ডারের নামের সাথে মিলতে হবে:

    gs://BUCKET_NAME/OPTIONAL_NAMESPACE_PATH/ PARENT_FOLDER_NAME / PARENT_FOLDER_NAME .overall_export_metadata

    যদি আপনি কোনো এক্সপোর্টের আউটপুট ফাইলগুলো স্থানান্তর বা কপি করেন, তাহলে PARENT_FOLDER_NAME এবং .overall_export_metadata ফাইলের নাম একই রাখুন।

  • সাব-কালেকশন সহ এক্সপোর্ট করা ডেটা Cloud Firestore ডেটাবেসে ইম্পোর্ট করার চেষ্টা ব্যর্থ হয়, কারণ Cloud Firestore সাব-কালেকশন সমর্থিত নয়।

  • BSON টাইপ ব্যবহার করে এক্সপোর্ট করা কোনো ডেটাবেস থেকে Firestore Standard এডিশনের ডেটাবেসে ইম্পোর্ট করার চেষ্টা ব্যর্থ হয়, কারণ Firestore Standard এডিশনে BSON টাইপ সমর্থিত নয়।

  • Cloud Firestore ডেটাবেসে নন-ডিফল্ট নেমস্পেস ( Datastore এপিআই) থেকে ডেটা ইম্পোর্ট করা যায় না।

    যেসব ডেটা ফাইলে ডিফল্ট নেমস্পেস ছাড়া অন্য নেমস্পেস রয়েছে, সেখান থেকে Cloud Firestore ডেটাবেসে ডেটা ইম্পোর্ট করার অনুমতি কেবল তখনই দেওয়া হয়, যদি এক্সপোর্ট অপারেশনে ডিফল্ট নেমস্পেসসহ একটি --namespace-ids ফিল্টার অন্তর্ভুক্ত থাকে। শুধুমাত্র ডিফল্ট নেমস্পেসের ডেটাই ইম্পোর্ট করা হয়।

একটি রপ্তানি থেকে সমস্ত নথি আমদানি করুন

গুগল ক্লাউড কনসোল

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

    ডাটাবেসে যান

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

  3. ন্যাভিগেশন মেনুতে, ইমপোর্ট/এক্সপোর্ট-এ ক্লিক করুন।

  4. ইম্পোর্ট-এ ক্লিক করুন।

  5. 'Filename ' ফিল্ডে, সম্পন্ন হওয়া এক্সপোর্ট অপারেশন থেকে একটি .overall_export_metadata ফাইলের নাম লিখুন। ফাইলটি নির্বাচন করতে আপনি 'Browse ' বাটনটি ব্যবহার করতে পারেন।

  6. ইম্পোর্ট-এ ক্লিক করুন।

কনসোলটি ইম্পোর্ট/এক্সপোর্ট পেজে ফিরে আসে। অপারেশনটি সফলভাবে শুরু হলে, পেজটি সাম্প্রতিক ইম্পোর্ট ও এক্সপোর্ট পেজে একটি এন্ট্রি যোগ করে। ব্যর্থ হলে, পেজটি একটি ত্রুটির বার্তা প্রদর্শন করে।

জিক্লাউড

পূর্ববর্তী এক্সপোর্ট অপারেশন থেকে ডকুমেন্ট ইম্পোর্ট করতে firestore import কমান্ডটি ব্যবহার করুন।

gcloud firestore import gs://[BUCKET_NAME]/[EXPORT_PREFIX]/ --database=[DATABASE]

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

  • BUCKET_NAME/EXPORT_PREFIX : আপনার এক্সপোর্ট ফাইলগুলির অবস্থান।

  • DATABASE : ডেটাবেসের নাম।

উদাহরণস্বরূপ:

gcloud firestore import gs://my-bucket/2017-05-25T23:54:39_76544/ --database='cymbal'

আপনি গুগল ক্লাউড কনসোলের Cloud Storage ব্রাউজারে আপনার এক্সপোর্ট ফাইলগুলির অবস্থান নিশ্চিত করতে পারেন:

Cloud Storage ব্রাউজার খুলুন

একবার ইম্পোর্ট অপারেশন শুরু করলে, টার্মিনাল বন্ধ করলেও অপারেশনটি বাতিল হয় না, আরও জানতে অপারেশন বাতিল করার পদ্ধতি দেখুন।

নির্দিষ্ট সংগ্রহ আমদানি করুন

গুগল ক্লাউড কনসোল

আপনি কনসোলে নির্দিষ্ট কালেকশন নির্বাচন করতে পারবেন না। এর পরিবর্তে gcloud ব্যবহার করুন।

জিক্লাউড

একগুচ্ছ এক্সপোর্ট ফাইল থেকে নির্দিষ্ট কালেকশন ইম্পোর্ট করতে --collection-ids ফ্ল্যাগটি ব্যবহার করুন। এই অপারেশনটি শুধুমাত্র প্রদত্ত কালেকশন আইডিযুক্ত কালেকশনগুলোই ইম্পোর্ট করে। --database ফ্ল্যাগটি ব্যবহার করে ডাটাবেসের নাম উল্লেখ করুন।

শুধুমাত্র নির্দিষ্ট কালেকশন এক্সপোর্ট করলেই নির্দিষ্ট কালেকশন ইম্পোর্ট করা যায়। সমস্ত ডকুমেন্ট এক্সপোর্ট করে আপনি নির্দিষ্ট কালেকশন ইম্পোর্ট করতে পারবেন না।

  gcloud firestore import gs://[BUCKET_NAME]/[EXPORT_PREFIX]/ \
  --collection-ids=[COLLECTION_ID_1],[COLLECTION_ID_2] \
  --database=[DATABASE]

PITR ডেটা সহ একটি রপ্তানি থেকে আমদানি

PITR ডেটা ইম্পোর্ট করতে ' সমস্ত ডকুমেন্ট ইম্পোর্ট করুন' বা 'নির্দিষ্ট কালেকশন ইম্পোর্ট করুন' -এর ধাপগুলোই অনুসরণ করুন। যদি আপনার ডেটাবেসে কোনো ডকুমেন্ট আগে থেকেই বিদ্যমান থাকে, তবে তা ওভাররাইট হয়ে যাবে।

ডেটা রপ্তানি করুন

একটি এক্সপোর্ট অপারেশন আপনার ডাটাবেসের ডকুমেন্টগুলোকে Cloud Storage বাকেটের একগুচ্ছ ফাইলে কপি করে। মনে রাখবেন যে, এক্সপোর্ট শুরু হওয়ার মুহূর্তে নেওয়া ডাটাবেসের কোনো হুবহু স্ন্যাপশট নয়। অপারেশনটি চলার সময় করা পরিবর্তনগুলোও একটি এক্সপোর্টে অন্তর্ভুক্ত থাকতে পারে।

সমস্ত নথি রপ্তানি করুন

গুগল ক্লাউড কনসোল

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

    ডাটাবেসে যান

  2. ডাটাবেসের তালিকা থেকে প্রয়োজনীয় ডাটাবেসটি নির্বাচন করুন।

  3. ন্যাভিগেশন মেনুতে, ইমপোর্ট/এক্সপোর্ট-এ ক্লিক করুন।

  4. এক্সপোর্ট-এ ক্লিক করুন।

  5. সম্পূর্ণ ডাটাবেস এক্সপোর্ট করার অপশনটিতে ক্লিক করুন।

  6. বর্তমান ডেটা এক্সপোর্ট করতে ‘ডেটাবেসের বর্তমান অবস্থা এক্সপোর্ট করুন’ নির্বাচন করুন।

  7. গন্তব্য বিভাগে, একটি Cloud Storage বাকেটের নাম লিখুন অথবা ব্রাউজ বোতামটি ব্যবহার করে একটি বাকেট নির্বাচন করুন।

  8. এক্সপোর্ট-এ ক্লিক করুন।

কনসোলটি ইম্পোর্ট/এক্সপোর্ট পেজে ফিরে আসে। অপারেশনটি সফলভাবে শুরু হলে, পেজটি সাম্প্রতিক ইম্পোর্ট ও এক্সপোর্ট পেজে একটি এন্ট্রি যোগ করে। ব্যর্থ হলে, পেজটি একটি ত্রুটির বার্তা প্রদর্শন করে।

জিক্লাউড

আপনার ডাটাবেসের সমস্ত ডকুমেন্ট এক্সপোর্ট করতে firestore export কমান্ডটি ব্যবহার করুন এবং [BUCKET_NAME] -এর জায়গায় আপনার Cloud Storage বাকেটের নামটি বসান। অপারেশনটি সম্পূর্ণ হওয়ার জন্য gcloud টুলকে অপেক্ষা করা থেকে বিরত রাখতে ` --async ফ্ল্যাগটি যোগ করুন।

  gcloud firestore export gs://[BUCKET_NAME] \
  --database=[DATABASE]

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

  • BUCKET_NAME : বাকেটের নামের পরে একটি ফাইল প্রিফিক্স যোগ করে আপনার এক্সপোর্টগুলো সাজান, যেমন, BUCKET_NAME/my-exports-folder/export-name । আপনি যদি কোনো ফাইল প্রিফিক্স না দেন, তাহলে ম্যানেজড এক্সপোর্ট সার্ভিসটি বর্তমান টাইমস্ট্যাম্পের উপর ভিত্তি করে একটি তৈরি করে নেবে।

  • DATABASE : যে ডাটাবেস থেকে আপনি ডকুমেন্টগুলো এক্সপোর্ট করতে চান, তার নাম।

একবার এক্সপোর্ট অপারেশন শুরু করলে, টার্মিনাল বন্ধ করলেও অপারেশনটি বাতিল হয় না, আরও জানতে অপারেশন বাতিল করা দেখুন।

নির্দিষ্ট সংগ্রহ রপ্তানি করুন

গুগল ক্লাউড কনসোল

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

    ডাটাবেসে যান

  2. ডাটাবেসের তালিকা থেকে প্রয়োজনীয় ডাটাবেসটি নির্বাচন করুন।

  3. ন্যাভিগেশন মেনুতে, ইমপোর্ট/এক্সপোর্ট-এ ক্লিক করুন।

  4. এক্সপোর্ট-এ ক্লিক করুন।

  5. 'এক বা একাধিক কালেকশন গ্রুপ এক্সপোর্ট করুন' অপশনটিতে ক্লিক করুন। ড্রপ-ডাউন মেনু ব্যবহার করে এক বা একাধিক কালেকশন নির্বাচন করুন।

  6. বর্তমান ডেটা এক্সপোর্ট করতে ‘ডেটাবেসের বর্তমান অবস্থা এক্সপোর্ট করুন’ নির্বাচন করুন।

  7. গন্তব্য বিভাগে, একটি Cloud Storage বাকেটের নাম লিখুন অথবা ব্রাউজ বোতামটি ব্যবহার করে একটি বাকেট নির্বাচন করুন।

  8. এক্সপোর্ট-এ ক্লিক করুন।

কনসোলটি ইম্পোর্ট/এক্সপোর্ট পেজে ফিরে আসে। অপারেশনটি সফলভাবে শুরু হলে, পেজটি সাম্প্রতিক ইম্পোর্ট ও এক্সপোর্ট পেজে একটি এন্ট্রি যোগ করে। ব্যর্থ হলে, পেজটি একটি ত্রুটির বার্তা প্রদর্শন করে।

জিক্লাউড

নির্দিষ্ট কালেকশন এক্সপোর্ট করতে --collection-ids ফ্ল্যাগটি ব্যবহার করুন। এই অপারেশনটি শুধুমাত্র প্রদত্ত কালেকশন আইডিযুক্ত কালেকশনগুলোই এক্সপোর্ট করে।

gcloud firestore export gs://[BUCKET_NAME] \
--collection-ids=[COLLECTION_ID_1],[COLLECTION_ID_2] \
--database=[DATABASE]

উদাহরণস্বরূপ, আপনি foo ডেটাবেসে একটি restaurants কালেকশন ডিজাইন করতে পারেন যাতে ratings , reviews বা outlets মতো অতিরিক্ত কালেকশন অন্তর্ভুক্ত থাকে। নির্দিষ্ট কালেকশন restaurants এবং reviews এক্সপোর্ট করতে, আপনার কমান্ডটি দেখতে নিম্নরূপ:

gcloud firestore export gs://[BUCKET_NAME] \
--collection-ids=restaurants,reviews \
--database='cymbal'

PITR টাইমস্ট্যাম্প থেকে রপ্তানি করুন

আপনি PITR ডেটা থেকে আপনার ডাটাবেস Cloud Storage এক্সপোর্ট করতে পারেন। আপনি সেই PITR ডেটা এক্সপোর্ট করতে পারবেন যার টাইমস্ট্যাম্পটি গত সাত দিনের মধ্যেকার একটি পূর্ণ মিনিটের টাইমস্ট্যাম্প, কিন্তু earliestVersionTime এর আগের নয়। যদি নির্দিষ্ট টাইমস্ট্যাম্পে ডেটা আর বিদ্যমান না থাকে, তাহলে এক্সপোর্ট প্রক্রিয়াটি ব্যর্থ হবে।

PITR এক্সপোর্ট অপারেশনটি সমস্ত ফিল্টার সমর্থন করে, যার মধ্যে সমস্ত ডকুমেন্ট এবং নির্দিষ্ট কালেকশন এক্সপোর্ট করা অন্তর্ভুক্ত।

PITR ডেটা রপ্তানি করার আগে নিম্নলিখিত বিষয়গুলো লক্ষ্য করুন:

  • টাইমস্ট্যাম্পটি RFC 3339 ফরম্যাটে উল্লেখ করুন। উদাহরণস্বরূপ, 2020-09-01T23:59:30.234233Z
  • নিশ্চিত করুন যে আপনার নির্দিষ্ট করা টাইমস্ট্যাম্পটি গত সাত দিনের মধ্যেকার একটি পূর্ণ মিনিটের টাইমস্ট্যাম্প, তবে তা earliestVersionTime এর আগের নয়। নির্দিষ্ট টাইমস্ট্যাম্পে যদি আর কোনো ডেটা না থাকে, তাহলে একটি ত্রুটি প্রদর্শিত হবে।
  • ব্যর্থ PITR রপ্তানির জন্য আপনাকে কোনো চার্জ করা হয় না।

কনসোল

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

    ডাটাবেসে যান
  2. ডাটাবেসের তালিকা থেকে একটি ডাটাবেস নির্বাচন করুন।
  3. ন্যাভিগেশন মেনুতে, ইমপোর্ট/এক্সপোর্ট-এ ক্লিক করুন।
  4. এক্সপোর্ট-এ ক্লিক করুন।
  5. সম্পূর্ণ ডাটাবেস অথবা শুধুমাত্র নির্দিষ্ট কালেকশনগুলো এক্সপোর্ট করার জন্য এক্সপোর্ট সোর্স কনফিগার করুন।
  6. ‘এক্সপোর্ট করার জন্য আপনার ডাটাবেসের অবস্থা নির্বাচন করুন’ বিভাগে, ‘পূর্ববর্তী কোনো সময় থেকে এক্সপোর্ট করুন’ নির্বাচন করুন।

    এক্সপোর্টের জন্য ব্যবহার করার জন্য একটি স্ন্যাপশট সময় নির্বাচন করুন।

  7. গন্তব্য বিভাগে, একটি Cloud Storage বাকেটের নাম লিখুন অথবা ব্রাউজ বোতামটি ব্যবহার করে একটি বাকেট নির্বাচন করুন।
  8. এক্সপোর্ট-এ ক্লিক করুন।

    কনসোলটি ইম্পোর্ট/এক্সপোর্ট পেজে ফিরে আসে। অপারেশনটি সফলভাবে শুরু হলে, পেজটি সাম্প্রতিক ইম্পোর্ট ও এক্সপোর্ট পেজে একটি এন্ট্রি যোগ করে। ব্যর্থ হলে, পেজটি একটি ত্রুটির বার্তা প্রদর্শন করে।

জিক্লাউড

আপনি gcloud firestore export কমান্ড ব্যবহার করে PITR ডেটা থেকে আপনার ডাটাবেস Cloud Storage এক্সপোর্ট করতে পারেন।

রিকভারি টাইমস্ট্যাম্পে snapshot-time প্যারামিটারটি নির্দিষ্ট করে ডাটাবেসটি এক্সপোর্ট করুন। আপনার বাকেটে ডাটাবেসটি এক্সপোর্ট করতে নিম্নলিখিত কমান্ডটি চালান।

gcloud firestore export gs://[BUCKET_NAME_PATH] \
    --snapshot-time=[PITR_TIMESTAMP]

যেখানে PITR_TIMESTAMP হলো মিনিট-ভিত্তিক একটি PITR টাইমস্ট্যাম্প, উদাহরণস্বরূপ, 2023-05-26T10:20:00.00Z

নির্দিষ্ট কালেকশন এক্সপোর্ট করতে --collection-ids ফ্ল্যাগটি যোগ করুন।

রপ্তানি ও আমদানি কার্যক্রম পরিচালনা করুন

আপনি কোনো এক্সপোর্ট বা ইম্পোর্ট অপারেশন শুরু করার পর, Cloud Firestore অপারেশনটিকে একটি অনন্য নাম প্রদান করে। আপনি অপারেশনটির নাম ব্যবহার করে সেটিকে ডিলিট, বাতিল বা তার স্ট্যাটাস চেক করতে পারেন।

অপারেশনের নামগুলোর শুরুতে projects/[PROJECT_ID]/databases/[DATABASE_ID]/operations/ যুক্ত করা হয়, উদাহরণস্বরূপ:

projects/my-project/databases/my-database/operations/ASA1MTAwNDQxNAgadGx1YWZlZAcSeWx0aGdpbi1zYm9qLW5pbWRhEgopEg

তবে, describe , cancel , এবং delete কমান্ডগুলোর জন্য অপারেশনের নাম উল্লেখ করার সময় আপনি প্রিফিক্সটি বাদ দিতে পারেন।

সমস্ত রপ্তানি এবং আমদানি কার্যক্রম তালিকাভুক্ত করুন

গুগল ক্লাউড কনসোল

আপনি গুগল ক্লাউড কনসোলের ইম্পোর্ট/এক্সপোর্ট পৃষ্ঠায় সাম্প্রতিক এক্সপোর্ট এবং ইম্পোর্ট অপারেশনগুলির একটি তালিকা দেখতে পারেন।

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

    ডাটাবেসে যান

  2. ডাটাবেসের তালিকা থেকে প্রয়োজনীয় ডাটাবেসটি নির্বাচন করুন।

  3. ন্যাভিগেশন মেনুতে, ইমপোর্ট/এক্সপোর্ট-এ ক্লিক করুন।

জিক্লাউড

চলমান এবং সম্প্রতি সম্পন্ন হওয়া সমস্ত এক্সপোর্ট ও ইম্পোর্ট অপারেশন দেখতে operations list কমান্ডটি ব্যবহার করুন:

gcloud firestore operations list

অপারেশনের অবস্থা পরীক্ষা করুন

গুগল ক্লাউড কনসোল

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

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

    ডাটাবেসে যান

  2. ডাটাবেসের তালিকা থেকে প্রয়োজনীয় ডাটাবেসটি নির্বাচন করুন।

  3. ন্যাভিগেশন মেনুতে, ইমপোর্ট/এক্সপোর্ট-এ ক্লিক করুন।

জিক্লাউড

কোনো এক্সপোর্ট বা ইম্পোর্ট অপারেশনের স্ট্যাটাস দেখানোর জন্য operations describe কমান্ডটি ব্যবহার করুন।

gcloud firestore operations describe [OPERATION_NAME]

সমাপ্তির সময় অনুমান করুন

একটি দীর্ঘ-চলমান অপারেশনের অবস্থা জানতে চাইলে workEstimated এবং workCompleted মেট্রিকগুলো ফেরত আসে। এই মেট্রিকগুলোর প্রতিটিই বাইটের সংখ্যা এবং এনটিটির সংখ্যা উভয় এককেই ফেরত দেওয়া হয়:

  • workEstimated দেখায় যে একটি অপারেশন আনুমানিক মোট কত বাইট এবং ডকুমেন্ট প্রসেস করবে। Cloud Firestore যদি কোনো অনুমান করতে না পারে, তবে এই মেট্রিকটি বাদ দিতে পারে।

  • workCompleted এখন পর্যন্ত প্রক্রিয়াকৃত বাইট এবং ডকুমেন্টের সংখ্যা দেখায়। অপারেশনটি সম্পন্ন হওয়ার পর, এই মানটি প্রকৃতপক্ষে প্রক্রিয়াকৃত মোট বাইট এবং ডকুমেন্টের সংখ্যা দেখায়, যা workEstimated এর মানের চেয়ে বেশি হতে পারে।

কাজের অগ্রগতির একটি মোটামুটি ধারণা পেতে, workCompleted workEstimated কাজ দিয়ে ভাগ করুন। এই অনুমানটি ভুল হতে পারে, কারণ এটি বিলম্বিত পরিসংখ্যান সংগ্রহের উপর নির্ভরশীল।

একটি অপারেশন বাতিল করুন

গুগল ক্লাউড কনসোল

আপনি গুগল ক্লাউড কনসোলের ইম্পোর্ট/এক্সপোর্ট পেজ থেকে চলমান কোনো এক্সপোর্ট বা ইম্পোর্ট অপারেশন বাতিল করতে পারেন।

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

    ডাটাবেসে যান

  2. ডাটাবেসের তালিকা থেকে প্রয়োজনীয় ডাটাবেসটি নির্বাচন করুন।

  3. ন্যাভিগেশন মেনুতে, ইমপোর্ট/এক্সপোর্ট-এ ক্লিক করুন।

সাম্প্রতিক আমদানি ও রপ্তানি সারণীতে, বর্তমানে চলমান অপারেশনগুলোর ' সম্পন্ন' কলামে একটি 'বাতিল' বোতাম থাকে। অপারেশনটি বন্ধ করতে 'বাতিল' বোতামটি ক্লিক করুন। অপারেশনটি সম্পূর্ণরূপে বন্ধ হয়ে গেলে বোতামটি প্রথমে ' বাতিল করা হচ্ছে ' বার্তায় এবং তারপর 'বাতিল' বার্তায় পরিবর্তিত হয়।

কনসোলে সাম্প্রতিক আমদানি ও রপ্তানির সারণীতে একটি চলমান ডেটা আমদানি দেখানো হচ্ছে এবং অপারেশনটি বন্ধ করার জন্য একটি 'বাতিল' (Cancel) বিকল্প রয়েছে।

জিক্লাউড

চলমান কোনো অপারেশন বন্ধ করতে operations cancel কমান্ডটি ব্যবহার করুন:

gcloud firestore operations cancel [OPERATION_NAME]

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

একটি অপারেশন মুছে ফেলুন

সাম্প্রতিক অপারেশনের তালিকা থেকে কোনো অপারেশন মুছে ফেলার জন্য gcloud firestore operations delete কমান্ডটি ব্যবহার করুন। এই কমান্ডটি Cloud Storage থেকে এক্সপোর্ট ফাইলগুলো মুছে ফেলবে না।

gcloud firestore operations delete [OPERATION_NAME]

রপ্তানি ও আমদানি কার্যক্রমের বিলিং এবং মূল্য নির্ধারণ

ম্যানেজড এক্সপোর্ট ও ইম্পোর্ট পরিষেবা ব্যবহার করার আগে আপনাকে আপনার Google Cloud প্রোজেক্টের জন্য বিলিং চালু করতে হবে।

Cloud Firestore প্রাইসিং- এ তালিকাভুক্ত হার অনুযায়ী এক্সপোর্ট এবং ইম্পোর্ট অপারেশনের জন্য রিড ইউনিট এবং রাইট ইউনিটের চার্জ প্রযোজ্য হয়।

Cloud Storage সংরক্ষিত আউটপুট ফাইলগুলো আপনার Cloud Storage ডেটা স্টোরেজ খরচের অন্তর্ভুক্ত হয়।

এক্সপোর্ট বা ইম্পোর্ট অপারেশন সম্পন্ন না হওয়া পর্যন্ত আপনার Google Cloud বাজেট অ্যালার্ট চালু হবে না। এক্সপোর্ট এবং ইম্পোর্ট অপারেশন কনসোলের ইউসেজ সেকশনে দেখানো ব্যবহারের উপর কোনো প্রভাব ফেলবে না।

রপ্তানি ও আমদানি খরচ দেখা

এক্সপোর্ট এবং ইম্পোর্ট অপারেশনগুলো বিল করা অপারেশনগুলিতে goog-firestoremanaged:exportimport লেবেলটি প্রয়োগ করে। ক্লাউড বিলিং রিপোর্ট পেজে , আপনি ইম্পোর্ট এবং এক্সপোর্ট অপারেশন সম্পর্কিত খরচ দেখতে এই লেবেলটি ব্যবহার করতে পারেন:

ফিল্টার মেনু থেকে goog-firestoremanaged লেবেলটি অ্যাক্সেস করুন।

BigQuery-তে রপ্তানি করুন

আপনি Cloud Firestore এক্সপোর্ট থেকে BigQuery তে ডেটা লোড করতে পারেন, কিন্তু শুধুমাত্র যদি আপনি একটি collection-ids ফিল্টার নির্দিষ্ট করে থাকেন। Cloud Firestore এক্সপোর্ট থেকে ডেটা লোড করা দেখুন।

BigQuery-তে Cloud Firestore ডেটা লোড করার সময়, BSON ডেটা টাইপকে STRING ডেটা টাইপ দিয়ে উপস্থাপন করা হয়।

BigQuery কলাম সীমা

BigQuery প্রতি টেবিলে ১০,০০০ কলামের একটি সীমা আরোপ করে। Cloud Firestore এক্সপোর্ট অপারেশন প্রতিটি কালেকশনের জন্য একটি BigQuery টেবিল স্কিমা তৈরি করে। এই স্কিমাতে, একটি কালেকশনের মধ্যে থাকা প্রতিটি অনন্য ফিল্ডের নাম একটি স্কিমা কলামে পরিণত হয়।

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

রপ্তানি ফরম্যাট এবং মেটাডেটা ফাইল

ম্যানেজড এক্সপোর্টের আউটপুট LevelDB লগ ফরম্যাট ব্যবহার করে।

মেটাডেটা ফাইল

একটি এক্সপোর্ট অপারেশন আপনার নির্দিষ্ট করা প্রতিটি কালেকশনের জন্য একটি মেটাডেটা ফাইল তৈরি করে। মেটাডেটা ফাইলগুলোর নাম সাধারণত ALL_NAMESPACES_KIND_[COLLECTION_GROUP_ID].export_metadata হয়ে থাকে।

মেটাডেটা ফাইলগুলো হলো প্রোটোকল বাফার এবং আপনি protoc প্রোটোকল কম্পাইলার দিয়ে এগুলো ডিকোড করতে পারেন। উদাহরণস্বরূপ, এক্সপোর্ট ফাইলগুলোতে কোন কোন কালেকশন রয়েছে তা নির্ধারণ করতে আপনি একটি মেটাডেটা ফাইল ডিকোড করতে পারেন:

protoc --decode_raw < export0.export_metadata