डेटा इंपोर्ट और एक्सपोर्ट करना

यह सिर्फ़ Cloud Firestore Enterprise वर्शन के लिए काम का है.

मैनेज की गई एक्सपोर्ट और इंपोर्ट सेवा का इस्तेमाल करके, गलती से मिटाए गए डेटा को वापस लाया जा सकता है. साथ ही, ऑफ़लाइन प्रोसेसिंग के लिए डेटा एक्सपोर्ट किया जा सकता है. आपके पास सभी दस्तावेज़ों या सिर्फ़ कुछ खास कलेक्शन को एक्सपोर्ट करने का विकल्प होता है. इसी तरह, एक्सपोर्ट किए गए डेटा या सिर्फ़ कुछ कलेक्शन को इंपोर्ट किया जा सकता है. MongoDB के साथ काम करने वाले एक Cloud Firestore डेटाबेस से एक्सपोर्ट किए गए डेटा को, MongoDB के साथ काम करने वाले दूसरे Cloud Firestore डेटाबेस में इंपोर्ट किया जा सकता है. MongoDB के साथ काम करने वाले Cloud Firestore के एक्सपोर्ट किए गए डेटा को BigQuery में लोड भी किया जा सकता है.

इस पेज पर, मैनेज की गई एक्सपोर्ट और इंपोर्ट सेवा और Cloud Storage का इस्तेमाल करके, MongoDB के साथ काम करने वाले Cloud Firestore दस्तावेज़ों को एक्सपोर्ट और इंपोर्ट करने का तरीका बताया गया है. Cloud Firestore with MongoDB compatibility की मैनेज की गई एक्सपोर्ट और इंपोर्ट सेवा, gcloud कमांड-लाइन टूल और Cloud Firestore with MongoDB compatibility API (REST, RPC) के ज़रिए उपलब्ध है.

शुरू करने से पहले

मैनेज की गई एक्सपोर्ट और इंपोर्ट सेवा का इस्तेमाल करने से पहले, आपको ये काम पूरे करने होंगे:

  1. अपने Google Cloud प्रोजेक्ट के लिए बिलिंग चालू करें. एक्सपोर्ट और इंपोर्ट करने की सुविधा का इस्तेमाल सिर्फ़ उन Google Cloud प्रोजेक्ट के लिए किया जा सकता है जिनमें बिलिंग की सुविधा चालू है.
  2. अपने प्रोजेक्ट के लिए, Cloud Storage बकेट बनाएं. इसे Cloud Firestore with MongoDB compatibility डेटाबेस की जगह के आस-पास की जगह पर बनाएं. एक्सपोर्ट और इंपोर्ट करने के लिए, अनुरोध करने वाले के पेमेंट वाले बकेट का इस्तेमाल नहीं किया जा सकता.
  3. पक्का करें कि आपके खाते के पास, MongoDB के साथ काम करने वाले Cloud Firestore और Cloud Storage के लिए ज़रूरी अनुमतियां हों. अगर आप प्रोजेक्ट के मालिक हैं, तो आपके खाते के पास ज़रूरी अनुमतियां हैं. इसके अलावा, यहां दी गई भूमिकाओं के पास एक्सपोर्ट और इंपोर्ट करने के साथ-साथ Cloud Storage को ऐक्सेस करने की ज़रूरी अनुमतियां होती हैं:

सर्विस एजेंट की अनुमतियां

एक्सपोर्ट और इंपोर्ट करने की कार्रवाइयों में, Cloud Firestore सेवा एजेंट का इस्तेमाल किया जाता है. इससे Cloud Storage कार्रवाइयों को अनुमति दी जाती है. Cloud Firestore सेवा एजेंट नाम तय करने के लिए इस फ़ॉर्मैट का इस्तेमाल करता है:

Cloud Firestore सर्विस एजेंट
service-PROJECT_NUMBER@gcp-sa-firestore.iam.gserviceaccount.com

सेवा एजेंट के बारे में ज़्यादा जानने के लिए, सेवा एजेंट लेख पढ़ें.

Cloud Firestore सेवा एजेंट को, एक्सपोर्ट या इंपोर्ट करने की कार्रवाई में इस्तेमाल किए गए Cloud Storage बकेट का ऐक्सेस चाहिए. अगर आपका Cloud Storage बकेट, आपके Cloud Firestore डेटाबेस वाले प्रोजेक्ट में ही है, तो Cloud Firestore सर्विस एजेंट के पास डिफ़ॉल्ट रूप से बकेट को ऐक्सेस करने की अनुमति होती है.

अगर Cloud Storage बकेट किसी दूसरे प्रोजेक्ट में है, तो आपको Cloud Storage सेवा एजेंट को Cloud Storage बकेट का ऐक्सेस देना होगा.Cloud Firestore

सर्विस एजेंट को भूमिकाएं असाइन करना

नीचे दी गई भूमिकाओं में से किसी एक को असाइन करने के लिए, 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 सेवा एजेंट का नाम रखने के लिए किया जाता है. सर्विस एजेंट का नाम देखने के लिए, सर्विस एजेंट का नाम देखना लेख पढ़ें.

इसके अलावा, Google Cloud Console का इस्तेमाल करके भी यह भूमिका असाइन की जा सकती है.

सर्विस एजेंट का नाम देखना

Google Cloud Console में इंपोर्ट/एक्सपोर्ट करें पेज पर जाकर, उस खाते को देखा जा सकता है जिसका इस्तेमाल इंपोर्ट और एक्सपोर्ट करने के लिए किया जाता है. यह भी देखा जा सकता है कि आपके डेटाबेस में Cloud Firestore सर्विस एजेंट या लेगसी App Engine सेवा खाते का इस्तेमाल किया जा रहा है या नहीं.

  1. इंपोर्ट/एक्सपोर्ट के तौर पर चलाए गए जॉब लेबल के बगल में, अनुमति वाले खाते को देखें.

एक्सपोर्ट या इंपोर्ट करने के लिए इस्तेमाल किए जाने वाले Cloud Storage बकेट के लिए, सर्विस एजेंट के पास Storage Admin की भूमिका होनी चाहिए.

अपने प्रोजेक्ट के लिए gcloud सेट अप करना

Google Cloud Console या 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 फ़ाइल के नाम को एक जैसा रखें.

  • अगर एक्सपोर्ट किए गए डेटा में सब-कलेक्शन शामिल हैं, तो उसे MongoDB के साथ काम करने वाले Cloud Firestore डेटाबेस में इंपोर्ट नहीं किया जा सकता. ऐसा इसलिए, क्योंकि MongoDB के साथ काम करने वाले Cloud Firestore में सब-कलेक्शन की सुविधा उपलब्ध नहीं है.

  • Cloud Firestore Standard वर्शन के डेटाबेस में, BSON टाइप वाले एक्सपोर्ट से डेटा इंपोर्ट नहीं किया जा सकता. ऐसा इसलिए, क्योंकि Cloud Firestore Standard वर्शन में BSON टाइप काम नहीं करते.

  • MongoDB के साथ काम करने वाले Cloud Firestore डेटाबेस में इंपोर्ट करने के लिए, गैर-डिफ़ॉल्ट नेमस्पेस (Datastore API) से डेटा इंपोर्ट नहीं किया जा सकता.

    अगर डेटा फ़ाइलों में नॉन-डिफ़ॉल्ट नेमस्पेस शामिल हैं, तो उन्हें Cloud Firestore में MongoDB के साथ काम करने वाले डेटाबेस में सिर्फ़ तब इंपोर्ट किया जा सकता है, जब एक्सपोर्ट ऑपरेशन में डिफ़ॉल्ट नेमस्पेस वाला --namespace-ids फ़िल्टर शामिल हो. सिर्फ़ डिफ़ॉल्ट नेमस्पेस का डेटा इंपोर्ट किया जाता है.

एक्सपोर्ट किए गए सभी दस्तावेज़ इंपोर्ट करना

Google Cloud Console

  1. Google Cloud Console में, डेटाबेस पेज पर जाएं.

    डेटाबेस पर जाएं

  2. डेटाबेस की सूची में से कोई डेटाबेस चुनें.

  3. नेविगेशन मेन्यू में, इंपोर्ट/एक्सपोर्ट करें पर क्लिक करें.

  4. इंपोर्ट करें पर क्लिक करें.

  5. फ़ाइल का नाम फ़ील्ड में, एक्सपोर्ट की प्रोसेस पूरी होने के बाद मिली .overall_export_metadata फ़ाइल का नाम डालें. फ़ाइल चुनने के लिए, ब्राउज़ करें बटन का इस्तेमाल किया जा सकता है.

  6. इंपोर्ट करें पर क्लिक करें.

कंसोल, इंपोर्ट/एक्सपोर्ट करें पेज पर वापस आ जाता है. अगर ऑपरेशन शुरू हो जाता है, तो पेज, हाल ही में इंपोर्ट और एक्सपोर्ट किए गए पेज में एक एंट्री जोड़ता है. ऐसा न होने पर, पेज पर गड़बड़ी का मैसेज दिखता है.

gcloud

पिछली एक्सपोर्ट कार्रवाई से दस्तावेज़ इंपोर्ट करने के लिए, 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'

Google Cloud Console में Cloud Storage ब्राउज़र में जाकर, एक्सपोर्ट की गई फ़ाइलों की जगह की पुष्टि की जा सकती है:

Cloud Storage ब्राउज़र खोलें

डेटा इंपोर्ट करने की प्रोसेस शुरू करने के बाद, टर्मिनल को बंद करने से प्रोसेस रद्द नहीं होती. प्रोसेस रद्द करना लेख पढ़ें.

चुनिंदा कलेक्शन इंपोर्ट करना

Google Cloud Console

कंसोल में, किसी खास कलेक्शन को नहीं चुना जा सकता. इसके बजाय, gcloud का इस्तेमाल करें.

gcloud

एक्सपोर्ट की गई फ़ाइलों के सेट से कुछ कलेक्शन इंपोर्ट करने के लिए, --collection-ids फ़्लैग का इस्तेमाल करें. इस ऑपरेशन से, सिर्फ़ दिए गए कलेक्शन आईडी वाले कलेक्शन इंपोर्ट किए जाते हैं. --database फ़्लैग का इस्तेमाल करके, डेटाबेस का नाम तय करें.

सिर्फ़ खास कलेक्शन को एक्सपोर्ट करने पर, खास कलेक्शन को इंपोर्ट किया जा सकता है. सभी दस्तावेज़ों के एक्सपोर्ट से, किसी खास कलेक्शन को इंपोर्ट नहीं किया जा सकता.

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

पीआईटीआर डेटा के साथ एक्सपोर्ट किए गए डेटा से इंपोर्ट करना

पीआईटीआर डेटा इंपोर्ट करने के लिए, सभी दस्तावेज़ इंपोर्ट करें या चुनिंदा कलेक्शन इंपोर्ट करें में दिए गए तरीके का इस्तेमाल करें. अगर आपके डेटाबेस में कोई दस्तावेज़ पहले से मौजूद है, तो उसे बदल दिया जाएगा.

डेटा निर्यात करें

एक्सपोर्ट करने की प्रोसेस में, आपके डेटाबेस में मौजूद दस्तावेज़ों को Cloud Storage बकेट में मौजूद फ़ाइलों के सेट में कॉपी किया जाता है. ध्यान दें कि एक्सपोर्ट, डेटाबेस का सटीक स्नैपशॉट नहीं होता. यह स्नैपशॉट, एक्सपोर्ट शुरू होने के समय लिया जाता है. एक्सपोर्ट में, ऑपरेशन के दौरान किए गए बदलाव शामिल हो सकते हैं.

सभी दस्तावेज़ एक्सपोर्ट करना

Google Cloud Console

  1. Google Cloud Console में, डेटाबेस पेज पर जाएं.

    डेटाबेस पर जाएं

  2. डेटाबेस की सूची से, वह डेटाबेस चुनें जिसकी ज़रूरत है.

  3. नेविगेशन मेन्यू में, इंपोर्ट/एक्सपोर्ट करें पर क्लिक करें.

  4. एक्सपोर्ट करें पर क्लिक करें.

  5. पूरा डेटाबेस एक्सपोर्ट करें विकल्प पर क्लिक करें.

  6. मौजूदा डेटा एक्सपोर्ट करने के लिए, डेटाबेस की मौजूदा स्थिति एक्सपोर्ट करें को चुनें.

  7. डेस्टिनेशन सेक्शन में, Cloud Storage बकेट का नाम डालें या बकेट चुनने के लिए, ब्राउज़ करें बटन का इस्तेमाल करें.

  8. एक्सपोर्ट करें पर क्लिक करें.

कंसोल, इंपोर्ट/एक्सपोर्ट करें पेज पर वापस आ जाता है. अगर ऑपरेशन शुरू हो जाता है, तो पेज, हाल ही में इंपोर्ट और एक्सपोर्ट किए गए पेज में एक एंट्री जोड़ता है. ऐसा न होने पर, पेज पर गड़बड़ी का मैसेज दिखता है.

gcloud

अपने डेटाबेस के सभी दस्तावेज़ एक्सपोर्ट करने के लिए, 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: उस डेटाबेस का नाम जिससे आपको दस्तावेज़ एक्सपोर्ट करने हैं.

एक्सपोर्ट करने की प्रोसेस शुरू करने के बाद, टर्मिनल बंद करने से प्रोसेस रद्द नहीं होती. किसी प्रोसेस को रद्द करना लेख पढ़ें.

चुनिंदा कलेक्शन एक्सपोर्ट करना

Google Cloud Console

  1. Google Cloud Console में, डेटाबेस पेज पर जाएं.

    डेटाबेस पर जाएं

  2. डेटाबेस की सूची से, वह डेटाबेस चुनें जिसकी ज़रूरत है.

  3. नेविगेशन मेन्यू में, इंपोर्ट/एक्सपोर्ट करें पर क्लिक करें.

  4. एक्सपोर्ट करें पर क्लिक करें.

  5. एक या उससे ज़्यादा कलेक्शन ग्रुप एक्सपोर्ट करें विकल्प पर क्लिक करें. एक या उससे ज़्यादा कलेक्शन चुनने के लिए, ड्रॉप-डाउन मेन्यू का इस्तेमाल करें.

  6. मौजूदा डेटा एक्सपोर्ट करने के लिए, डेटाबेस की मौजूदा स्थिति एक्सपोर्ट करें को चुनें.

  7. डेस्टिनेशन सेक्शन में, Cloud Storage बकेट का नाम डालें या बकेट चुनने के लिए, ब्राउज़ करें बटन का इस्तेमाल करें.

  8. एक्सपोर्ट करें पर क्लिक करें.

कंसोल, इंपोर्ट/एक्सपोर्ट करें पेज पर वापस आ जाता है. अगर ऑपरेशन शुरू हो जाता है, तो पेज, हाल ही में इंपोर्ट और एक्सपोर्ट किए गए पेज में एक एंट्री जोड़ता है. ऐसा न होने पर, पेज पर गड़बड़ी का मैसेज दिखता है.

gcloud

किसी खास कलेक्शन को एक्सपोर्ट करने के लिए, --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'

किसी पीआईटीआर टाइमस्टैंप से एक्सपोर्ट करना

पीआईटीआर डेटा से, अपने डेटाबेस को Cloud Storage में एक्सपोर्ट किया जा सकता है. आपके पास पीआईटीआर डेटा एक्सपोर्ट करने का विकल्प होता है. इसके लिए, टाइमस्टैंप पिछले सात दिनों के अंदर का होना चाहिए. हालांकि, यह earliestVersionTime से पहले का नहीं होना चाहिए. अगर तय किए गए टाइमस्टैंप पर डेटा मौजूद नहीं है, तो एक्सपोर्ट करने की प्रोसेस पूरी नहीं होगी.

पीआईटीआर एक्सपोर्ट करने की सुविधा, सभी फ़िल्टर के साथ काम करती है. इसमें सभी दस्तावेज़ों को एक्सपोर्ट करने और चुनिंदा कलेक्शन को एक्सपोर्ट करने की सुविधा भी शामिल है.

पीआईटीआर डेटा एक्सपोर्ट करने से पहले, इन बातों का ध्यान रखें:

  • टाइमस्टैंप को RFC 3339 फ़ॉर्मैट में डालें. उदाहरण के लिए, 2020-09-01T23:59:30.234233Z.
  • पक्का करें कि आपने जो टाइमस्टैंप दिया है वह पिछले सात दिनों का हो और पूरा मिनट हो. हालांकि, यह earliestVersionTime से पहले का नहीं होना चाहिए. अगर तय किए गए टाइमस्टैंप पर डेटा मौजूद नहीं है, तो गड़बड़ी का मैसेज दिखता है.
  • पीआईटीआर एक्सपोर्ट पूरा न होने पर, आपसे कोई शुल्क नहीं लिया जाता.

कंसोल

  1. Google Cloud Console में, डेटाबेस पेज पर जाएं.

    डेटाबेस पर जाएं
  2. डेटाबेस की सूची में से कोई डेटाबेस चुनें.
  3. नेविगेशन मेन्यू में, इंपोर्ट/एक्सपोर्ट करें पर क्लिक करें.
  4. एक्सपोर्ट करें पर क्लिक करें.
  5. पूरे डेटाबेस या सिर्फ़ कुछ कलेक्शन को एक्सपोर्ट करने के लिए, एक्सपोर्ट सोर्स को कॉन्फ़िगर करें.
  6. एक्सपोर्ट करने के लिए अपने डेटाबेस की स्थिति चुनें सेक्शन में जाकर, किसी पिछली तारीख का डेटा एक्सपोर्ट करें को चुनें.

    एक्सपोर्ट करने के लिए, स्नैपशॉट का समय चुनें

  7. डेस्टिनेशन सेक्शन में, Cloud Storage बकेट का नाम डालें या बकेट चुनने के लिए, ब्राउज़ करें बटन का इस्तेमाल करें.
  8. एक्सपोर्ट करें पर क्लिक करें.

    कंसोल, इंपोर्ट/एक्सपोर्ट करें पेज पर वापस आ जाता है. अगर ऑपरेशन शुरू हो जाता है, तो पेज, हाल ही में इंपोर्ट और एक्सपोर्ट किए गए पेज में एक एंट्री जोड़ता है. ऐसा न होने पर, पेज पर गड़बड़ी का मैसेज दिखता है.

gcloud

gcloud firestore export कमांड का इस्तेमाल करके, अपने डेटाबेस को 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 with MongoDB compatibility इस प्रोसेस को एक यूनीक नाम असाइन करता है. कार्रवाई का नाम इस्तेमाल करके, कार्रवाई को मिटाया जा सकता है, रद्द किया जा सकता है या उसके स्टेटस की जांच की जा सकती है.

कार्रवाई के नामों में projects/[PROJECT_ID]/databases/[DATABASE_ID]/operations/ प्रीफ़िक्स होता है. उदाहरण के लिए:

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

हालांकि, describe, cancel, और delete कमांड के लिए ऑपरेशन का नाम तय करते समय, प्रीफ़िक्स को छोड़ा जा सकता है.

सभी एक्सपोर्ट और इंपोर्ट कार्रवाइयों की सूची बनाना

Google Cloud Console

Google Cloud Console के इंपोर्ट/एक्सपोर्ट पेज पर, हाल ही में किए गए एक्सपोर्ट और इंपोर्ट ऑपरेशन की सूची देखी जा सकती है.

  1. Google Cloud Console में, डेटाबेस पेज पर जाएं.

    डेटाबेस पर जाएं

  2. डेटाबेस की सूची से, वह डेटाबेस चुनें जिसकी ज़रूरत है.

  3. नेविगेशन मेन्यू में, इंपोर्ट/एक्सपोर्ट करें पर क्लिक करें.

gcloud

एक्सपोर्ट और इंपोर्ट के सभी चालू और हाल ही में पूरे किए गए ऑपरेशन देखने के लिए, operations list कमांड का इस्तेमाल करें:

gcloud firestore operations list

कार्रवाई की स्थिति देखना

Google Cloud Console

Google Cloud Console के इंपोर्ट/एक्सपोर्ट पेज पर जाकर, हाल ही में किए गए एक्सपोर्ट या इंपोर्ट ऑपरेशन की स्थिति देखी जा सकती है.

  1. Google Cloud Console में, डेटाबेस पेज पर जाएं.

    डेटाबेस पर जाएं

  2. डेटाबेस की सूची से, वह डेटाबेस चुनें जिसकी ज़रूरत है.

  3. नेविगेशन मेन्यू में, इंपोर्ट/एक्सपोर्ट करें पर क्लिक करें.

gcloud

एक्सपोर्ट या इंपोर्ट करने की प्रोसेस का स्टेटस दिखाने के लिए, operations describe कमांड का इस्तेमाल करें.

gcloud firestore operations describe [OPERATION_NAME]

पूरा होने का अनुमानित समय

लंबे समय तक चलने वाली कार्रवाई की स्थिति के लिए किए गए अनुरोध से, workEstimated और workCompleted मेट्रिक मिलती हैं. इनमें से हर मेट्रिक को बाइट की संख्या और इकाइयों की संख्या, दोनों में दिखाया जाता है:

  • workEstimated से, किसी ऑपरेशन के लिए प्रोसेस किए जाने वाले बाइट और दस्तावेज़ों की अनुमानित कुल संख्या दिखती है. अगर Cloud Firestore, MongoDB के साथ काम नहीं करता है, तो हो सकता है कि वह इस मेट्रिक को शामिल न करे.

  • workCompleted से पता चलता है कि अब तक कितने बाइट और दस्तावेज़ प्रोसेस किए गए हैं. कार्रवाई पूरी होने के बाद, वैल्यू में प्रोसेस किए गए बाइट और दस्तावेज़ों की कुल संख्या दिखती है. यह संख्या, workEstimated की वैल्यू से ज़्यादा हो सकती है.

प्रोग्रेस का अनुमान लगाने के लिए, workCompleted को workEstimated से भाग दें. यह अनुमान सटीक नहीं हो सकता, क्योंकि यह आंकड़ों को इकट्ठा करने में लगने वाले समय पर निर्भर करता है.

कार्रवाई रद्द करना

Google Cloud Console

Google Cloud console के इंपोर्ट/एक्सपोर्ट करें पेज पर जाकर, एक्सपोर्ट या इंपोर्ट की प्रोसेस को रद्द किया जा सकता है.

  1. Google Cloud Console में, डेटाबेस पेज पर जाएं.

    डेटाबेस पर जाएं

  2. डेटाबेस की सूची से, वह डेटाबेस चुनें जिसकी ज़रूरत है.

  3. नेविगेशन मेन्यू में, इंपोर्ट/एक्सपोर्ट करें पर क्लिक करें.

हाल ही में इंपोर्ट और एक्सपोर्ट किए गए डेटा टेबल में, फ़िलहाल चल रहे ऑपरेशनों के लिए, पूरा हुआ कॉलम में रद्द करें बटन शामिल होता है. कार्रवाई रोकने के लिए, रद्द करें बटन पर क्लिक करें. जब कार्रवाई पूरी तरह से रुक जाती है, तब बटन पर रद्द किया जा रहा है मैसेज दिखता है. इसके बाद, रद्द किया गया मैसेज दिखता है.

कंसोल में, हाल ही में इंपोर्ट और एक्सपोर्ट किए गए डेटा की टेबल दिखाई गई है. इसमें, डेटा इंपोर्ट करने की प्रोसेस जारी है. साथ ही, प्रोसेस को रोकने के लिए, 'रद्द करें' विकल्प दिखाया गया है.

gcloud

operations cancel कमांड का इस्तेमाल करके, चल रही किसी कार्रवाई को बंद करें:

gcloud firestore operations cancel [OPERATION_NAME]

किसी ऑपरेशन को रद्द करने से, वह पहले जैसा नहीं हो जाता. एक्सपोर्ट करने की प्रोसेस रद्द होने पर, पहले से एक्सपोर्ट किए गए दस्तावेज़ Cloud Storage में मौजूद रहेंगे. वहीं, इंपोर्ट करने की प्रोसेस रद्द होने पर, आपके डेटाबेस में पहले से किए गए अपडेट मौजूद रहेंगे. पूरी तरह से एक्सपोर्ट न किए गए डेटा को इंपोर्ट नहीं किया जा सकता.

किसी कार्रवाई को मिटाना

हाल ही की कार्रवाइयों की सूची से किसी कार्रवाई को हटाने के लिए, gcloud firestore operations delete कमांड का इस्तेमाल करें. इस कमांड से, Cloud Storage से एक्सपोर्ट की गई फ़ाइलें नहीं मिटेंगी.

gcloud firestore operations delete [OPERATION_NAME]

एक्सपोर्ट और इंपोर्ट करने की कार्रवाइयों के लिए बिलिंग और कीमत

मैनेज की गई एक्सपोर्ट और इंपोर्ट सेवा का इस्तेमाल करने से पहले, आपको अपने Google Cloud प्रोजेक्ट के लिए बिलिंग चालू करनी होगी.

एक्सपोर्ट और इंपोर्ट करने के लिए, रीड यूनिट और राइट यूनिट के हिसाब से शुल्क लिया जाता है. यह शुल्क, MongoDB के साथ काम करने वाले Cloud Firestore की कीमत में दिए गए रेट के हिसाब से लिया जाता है.

Cloud Storage में सेव की गई आउटपुट फ़ाइलों को Cloud Storage डेटा स्टोरेज की लागत में शामिल किया जाता है.

एक्सपोर्ट या इंपोर्ट करने की प्रोसेस पूरी होने तक, आपको Google Cloud बजट से जुड़ी सूचनाएं नहीं मिलेंगी. एक्सपोर्ट और इंपोर्ट करने से, कंसोल के इस्तेमाल वाले सेक्शन में दिखने वाले इस्तेमाल पर कोई असर नहीं पड़ेगा.

एक्सपोर्ट और इंपोर्ट करने का शुल्क देखना

एक्सपोर्ट और इंपोर्ट करने की कार्रवाइयों से, बिल की गई कार्रवाइयों पर goog-firestoremanaged:exportimport लेबल लागू होता है. क्लाउड बिलिंग की रिपोर्ट वाले पेज पर, इस लेबल का इस्तेमाल करके इंपोर्ट और एक्सपोर्ट से जुड़े शुल्क देखे जा सकते हैं:

फ़िल्टर मेन्यू से goog-firestoremanaged लेबल ऐक्सेस करें.

BigQuery में एक्सपोर्ट करना

MongoDB के साथ काम करने वाले एक्सपोर्ट किए गए Cloud Firestore से डेटा को BigQuery में लोड किया जा सकता है. हालांकि, ऐसा सिर्फ़ तब किया जा सकता है, जब आपने collection-ids फ़िल्टर तय किया हो. MongoDB के साथ काम करने वाले एक्सपोर्ट की मदद से, Cloud Firestore से डेटा लोड करना लेख पढ़ें.

MongoDB के साथ काम करने वाले Cloud Firestore के डेटा को BigQuery में लोड करते समय, BSON डेटा टाइप को STRING डेटा टाइप के तौर पर दिखाया जाता है.

BigQuery कॉलम की सीमा

BigQuery हर टेबल में ज़्यादा से ज़्यादा 10,000 कॉलम इस्तेमाल करने की अनुमति देता है. MongoDB के साथ काम करने वाले Cloud Firestore से एक्सपोर्ट करने की कार्रवाइयों के दौरान, हर कलेक्शन के लिए BigQuery टेबल स्कीमा जनरेट होता है. इस स्कीमा में, कलेक्शन में मौजूद हर यूनीक फ़ील्ड का नाम, स्कीमा कॉलम बन जाता है.

अगर किसी कलेक्शन के BigQuery स्कीमा में 10,000 से ज़्यादा कॉलम हैं, तो Cloud Firestore with MongoDB compatibility एक्सपोर्ट ऑपरेशन, कॉलम की सीमा से कम रखने की कोशिश करता है. इसके लिए, वह मैप फ़ील्ड को बाइट के तौर पर मानता है. अगर इस कन्वर्ज़न से कॉलम की संख्या 10,000 से कम हो जाती है, तो डेटा को BigQuery में लोड किया जा सकता है. हालांकि, मैप फ़ील्ड में मौजूद सब-फ़ील्ड के लिए क्वेरी नहीं की जा सकती. अगर अब भी कॉलम की संख्या 10,000 से ज़्यादा है, तो एक्सपोर्ट करने की प्रोसेस से कलेक्शन के लिए BigQuery स्कीमा जनरेट नहीं होता. साथ ही, इसके डेटा को BigQuery में लोड नहीं किया जा सकता.

एक्सपोर्ट फ़ॉर्मैट और मेटाडेटा फ़ाइलें

मैनेज किए गए एक्सपोर्ट का आउटपुट, LevelDB लॉग फ़ॉर्मैट का इस्तेमाल करता है.

मेटाडेटा फ़ाइलें

एक्सपोर्ट करने की प्रोसेस, आपके चुने गए हर कलेक्शन के लिए एक मेटाडेटा फ़ाइल बनाती है. मेटाडेटा फ़ाइलों के नाम आम तौर पर ALL_NAMESPACES_KIND_[COLLECTION_GROUP_ID].export_metadata होते हैं.

मेटाडेटा फ़ाइलें प्रोटोकॉल बफ़र होती हैं. इन्हें protoc प्रोटोकॉल कंपाइलर की मदद से डिकोड किया जा सकता है. उदाहरण के लिए, एक्सपोर्ट की गई फ़ाइलों में मौजूद कलेक्शन का पता लगाने के लिए, मेटाडेटा फ़ाइल को डिकोड किया जा सकता है:

protoc --decode_raw < export0.export_metadata