প্রকল্পগুলির মধ্যে ডেটা সরান

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

  1. আপনার উত্স প্রকল্প থেকে ডেটা ধরে রাখতে একটি ক্লাউড স্টোরেজ বালতি তৈরি করুন৷
  2. আপনার উৎস প্রকল্প থেকে বালতি তথ্য রপ্তানি করুন.
  3. বালতি থেকে পড়ার জন্য আপনার গন্তব্য প্রকল্পের অনুমতি দিন।
  4. আপনার গন্তব্য প্রকল্পে বালতি থেকে ডেটা আমদানি করুন।

তুমি শুরু করার আগে

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

  1. আপনার উত্স প্রকল্প এবং গন্তব্য প্রকল্প উভয়ের জন্য বিলিং সক্ষম করুন৷ শুধুমাত্র Google ক্লাউড প্রজেক্টে বিলিং সক্ষম করা আছে রপ্তানি এবং আমদানি কার্যকারিতা ব্যবহার করতে পারে।
  2. আপনার উত্স প্রকল্প এবং গন্তব্য প্রকল্পে আপনার অ্যাকাউন্টে প্রয়োজনীয় ক্লাউড IAM অনুমতি রয়েছে তা নিশ্চিত করুন৷ আপনি যদি উভয় প্রকল্পের জন্য একজন প্রকল্পের মালিক হন তবে আপনার অ্যাকাউন্টে প্রয়োজনীয় অনুমতি রয়েছে৷ অন্যথায়, নিম্নলিখিত ক্লাউড আইএএম ভূমিকা ক্লাউড ফায়ারস্টোর রপ্তানি এবং আমদানি ক্রিয়াকলাপের জন্য প্রয়োজনীয় অনুমতি দেয়:

    Owner , Cloud Datastore Owner , বা Cloud Datastore Import Export Admin

    একজন প্রকল্পের মালিক অনুদান অ্যাক্সেসের ধাপগুলি অনুসরণ করে এই ভূমিকাগুলির মধ্যে একটিকে মঞ্জুর করতে পারেন৷

  3. gcloud কমান্ড-লাইন টুল সেট আপ করুন এবং নিম্নলিখিত উপায়ে আপনার প্রকল্পের সাথে সংযোগ করুন:

  4. আপনার নতুন প্রকল্পে সূচী সেট আপ করুন। যৌগিক সূচকগুলি উত্স এবং গন্তব্য প্রকল্পগুলির মধ্যে মিলিত হওয়া উচিত৷ প্রতিটি দস্তাবেজ একাধিকবার প্রক্রিয়া না করার জন্য সূচীগুলি প্রথমে সেট আপ করা উচিত৷

উৎস প্রকল্প থেকে তথ্য রপ্তানি

আপনার ক্লাউড ফায়ারস্টোর এক্সপোর্ট ফাইলগুলির জন্য একটি ক্লাউড স্টোরেজ বাকেট তৈরি করে এবং একটি এক্সপোর্ট অপারেশন শুরু করে আপনার ডেটা এক্সপোর্ট করুন৷

একটি ক্লাউড স্টোরেজ বালতি তৈরি করুন

আপনার ক্লাউড ফায়ারস্টোর ডাটাবেসের মতো একই স্থানে একটি ক্লাউড স্টোরেজ বাকেট তৈরি করুন । আপনার ডাটাবেসের অবস্থান দেখতে, আপনার প্রকল্প অবস্থান সেটিংস দেখুন। আপনি রপ্তানি এবং আমদানি ক্রিয়াকলাপের জন্য একটি Requester Pays বালতি ব্যবহার করতে পারবেন না।

যদি আপনার ক্লাউড স্টোরেজ বালতিটি আপনার উত্স প্রকল্পে না থাকে , তাহলে আপনাকে অবশ্যই উত্স প্রকল্পের ডিফল্ট পরিষেবা অ্যাকাউন্টকে বালতিতে অ্যাক্সেস দিতে হবে৷ প্রতিটি Google ক্লাউড প্রকল্পে PROJECT_ID @appspot.gserviceaccount.com নামের একটি স্বয়ংক্রিয়ভাবে তৈরি ডিফল্ট পরিষেবা অ্যাকাউন্ট রয়েছে। ক্লাউড ফায়ারস্টোর এক্সপোর্ট অপারেশন ক্লাউড স্টোরেজ বাকেট অপারেশন অনুমোদন করতে এই ডিফল্ট পরিষেবা অ্যাকাউন্ট ব্যবহার করে। আপনার সোর্স বাকেটে ডিফল্ট পরিষেবা অ্যাকাউন্ট অ্যাক্সেস দিতে, এটিকে Storage Admin ভূমিকা মঞ্জুর করুন।

আপনি ক্লাউড শেলে উপলব্ধ gsutil টুল দিয়ে এই ভূমিকাটি প্রদান করতে পারেন:

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

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

আপনি Google ক্লাউড কনসোলে এই ভূমিকাটিও মঞ্জুর করতে পারেন৷

লেখার ক্রিয়াকলাপ অক্ষম করুন (ঐচ্ছিক)

আপনি একটি রপ্তানি ক্রিয়া সম্পাদন করার সময় যদি আপনার অ্যাপটি আপনার ডাটাবেসে লিখতে থাকে তবে আপনি আপনার রপ্তানি ফাইলগুলিতে সেই সমস্ত লেখাগুলি ক্যাপচার করতে পারবেন না। একটি সামঞ্জস্যপূর্ণ অবস্থা থেকে ডেটা রপ্তানি করতে, আপনার নিরাপত্তা বিধি আপডেট করে এবং যেকোন অ্যাডমিন SDK ক্রিয়াকলাপ বন্ধ করে আপনার ডাটাবেসে লেখা অক্ষম করুন৷

  1. নিরাপত্তা নিয়ম আপডেট করুন

    কনসোলের ক্লাউড ফায়ারস্টোর নিয়ম ট্যাবে , সমস্ত লেখা অস্বীকার করতে আপনার উৎস প্রকল্প নিরাপত্তা নিয়ম আপডেট করুন। উদাহরণ স্বরূপ:

      // Deny write access to all users under any conditions
      service cloud.firestore {
        match /databases/{database}/documents {
          match /{document=**} {
            allow write: if false;
          }
          // Reads do not affect export operations
          // Add your read rules here
        }
      }
    
  2. হল্ট অ্যাডমিন SDK থেকে লেখে

    নিরাপত্তা বিধিগুলি ফায়ারবেস অ্যাডমিন SDK বা Google ক্লাউড সার্ভার ক্লায়েন্ট লাইব্রেরি ব্যবহার করে তৈরি করা বিশেষ সুবিধাপ্রাপ্ত সার্ভার পরিবেশ থেকে লেখা আসা বন্ধ করে না৷ আপনার সার্ভারগুলি বন্ধ করে বা আপডেট করার মাধ্যমে আপনার অ্যাডমিন সার্ভারগুলি থেকে লেখার ক্রিয়াকলাপ বন্ধ করার বিষয়টি নিশ্চিত করুন৷

রপ্তানি কার্যক্রম শুরু করুন

আপনার উৎস প্রকল্প থেকে ডেটা রপ্তানি করতে gcloud firestore export কমান্ড ব্যবহার করুন। আপনি আপনার সমস্ত ডেটা বা শুধুমাত্র নির্দিষ্ট সংগ্রহ রপ্তানি করতে পারেন। আপনার ক্লাউড স্টোরেজ বাকেটের নামের সাথে [SOURCE_BUCKET] প্রতিস্থাপন করুন:

সমস্ত ডেটা রপ্তানি করুন
gcloud firestore export gs://[SOURCE_BUCKET] --async
নির্দিষ্ট সংগ্রহ রপ্তানি করুন
gcloud firestore export gs://[SOURCE_BUCKET] --collection-ids=[COLLECTION_ID_1],[COLLECTION_ID_2] --async

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

outputUriPrefix: gs://[SOURCE_BUCKET]/2019-03-05T20:58:23_56418

এক্সপোর্ট অপারেশন চলাকালীন, আপনি আপনার অপারেশনের অগ্রগতি দেখতে firestore operations list কমান্ড ব্যবহার করতে পারেন:

gcloud firestore operations list

গন্তব্য প্রকল্পে ডেটা আমদানি করুন

এর পরে, গন্তব্য প্রকল্পটিকে আপনার ক্লাউড ফায়ারস্টোর ডেটা ফাইলগুলিতে অ্যাক্সেস দিন এবং একটি আমদানি ক্রিয়াকলাপ শুরু করুন৷

আপনার ডেটা ফাইলগুলিতে গন্তব্য প্রকল্পের অ্যাক্সেস দিন

আপনি একটি আমদানি ক্রিয়াকলাপ শুরু করার আগে, আপনাকে অবশ্যই নিশ্চিত করতে হবে যে আপনার গন্তব্য প্রকল্পটি আপনার ক্লাউড ফায়ারস্টোর ডেটা ফাইলগুলি অ্যাক্সেস করতে পারে৷

একটি স্থানীয় বালতি তথ্য ফাইল সরান

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

মুভিং এবং রিনেমিং বাকেটের ধাপগুলি অনুসরণ করে আপনার ডেটা ফাইলগুলিকে অন্য ক্লাউড স্টোরেজ বালতিতে সরান৷ নিম্নলিখিত সমস্ত পদক্ষেপের জন্য, এই নতুন বালতিটিকে [SOURCE_BUCKET] হিসাবে ব্যবহার করুন।

আপনার উৎস বালতি প্রকল্প পরিষেবা অ্যাকাউন্ট অ্যাক্সেস দিন

যদি আপনার সোর্স বাকেট আপনার গন্তব্য প্রকল্পে না থাকে, তাহলে আপনাকে অবশ্যই গন্তব্য প্রজেক্টের ডিফল্ট পরিষেবা অ্যাকাউন্টে আপনার সোর্স বাকেটের অ্যাক্সেস দিতে হবে। ডিফল্ট পরিষেবা অ্যাকাউন্টটির নাম [DESTINATION_PROJECT_ID] @appspot.gserviceaccount.com । আপনার উৎস বালতিতে ডিফল্ট পরিষেবা অ্যাকাউন্ট অ্যাক্সেস দিতে, বালতি অ্যাক্সেস করার জন্য এটিকে যথাযথ অনুমতি দিন।

আপনি ক্লাউড শেলে উপলব্ধ gsutil টুল দিয়ে প্রয়োজনীয় ভূমিকা প্রদান করতে পারেন:

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

gsutil iam ch serviceAccount:[DESTINATION_PROJECT_ID]@appspot.gserviceaccount.com:legacyBucketReader,legacyObjectReader \
gs://[SOURCE_BUCKET]

আপনি Google ক্লাউড কনসোলে এই ভূমিকাটিও মঞ্জুর করতে পারেন৷

একটি আমদানি কার্যক্রম শুরু করুন

আমদানি অপারেশন শুরু করার আগে, নিশ্চিত করুন যে সঠিক প্রকল্পের জন্য gcloud কনফিগার করা হয়েছে:

gcloud config set project [DESTINATION_PROJECT_ID]

আপনার গন্তব্য প্রকল্পে আপনার উৎস বাকেটের ডেটা আমদানি করতে gcloud firestore import কমান্ডটি ব্যবহার করুন:

gcloud firestore import gs://[SOURCE_BUCKET]/[EXPORT_PREFIX] --async

যেখানে [EXPORT_PREFIX] আপনার এক্সপোর্ট অপারেশনের outputUriPrefix প্রি-ফিক্সের সাথে মেলে। উদাহরণ স্বরূপ:

gcloud firestore import gs://[SOURCE_BUCKET]/2019-03-05T20:58:23_56418 --async

এক্সপোর্ট অপারেশন চলাকালীন, আপনি আপনার অপারেশনের অগ্রগতি দেখতে firestore operations list কমান্ড ব্যবহার করতে পারেন:

gcloud firestore operations list