Cloud Firestore की मैनेज की गई एक्सपोर्ट और इंपोर्ट सेवा का इस्तेमाल करके, गलती से मिटे हुए डेटा को वापस लाया जा सकता है. साथ ही, ऑफ़लाइन प्रोसेसिंग के लिए डेटा एक्सपोर्ट किया जा सकता है. आपके पास सभी दस्तावेज़ों या सिर्फ़ कुछ खास कलेक्शन को एक्सपोर्ट करने का विकल्प होता है. इसी तरह, एक्सपोर्ट किए गए डेटा या सिर्फ़ कुछ कलेक्शन को इंपोर्ट किया जा सकता है. एक Cloud Firestore डेटाबेस से एक्सपोर्ट किए गए डेटा को दूसरे Cloud Firestore डेटाबेस में इंपोर्ट किया जा सकता है. एक्सपोर्ट किए गए डेटा को BigQuery में Cloud Firestore लोड भी किया जा सकता है.
इस पेज पर, मैनेज की गई एक्सपोर्ट और इंपोर्ट सेवा और Cloud Storage का इस्तेमाल करके, Cloud Firestore दस्तावेज़ों को एक्सपोर्ट और इंपोर्ट करने का तरीका बताया गया है. Cloud Firestore मैनेज किए गए एक्सपोर्ट और इंपोर्ट की सेवा, gcloud
कमांड-लाइन टूल और Cloud Firestore एपीआई (REST, RPC) के ज़रिए उपलब्ध है.
शुरू करने से पहले
मैनेज की गई एक्सपोर्ट और इंपोर्ट सेवा का इस्तेमाल करने से पहले, आपको ये काम पूरे करने होंगे:
- अपने Google Cloud प्रोजेक्ट के लिए बिलिंग चालू करें. एक्सपोर्ट और इंपोर्ट करने की सुविधा का इस्तेमाल सिर्फ़ उन Google Cloud प्रोजेक्ट के लिए किया जा सकता है जिनमें बिलिंग की सुविधा चालू है.
- अपने Cloud Firestore डेटाबेस की जगह के आस-पास की किसी जगह पर, अपने प्रोजेक्ट के लिए Cloud Storage बकेट बनाएं. एक्सपोर्ट और इंपोर्ट करने के लिए, अनुरोध करने वाले के पेमेंट वाले बकेट का इस्तेमाल नहीं किया जा सकता.
-
पक्का करें कि आपके खाते के पास Cloud Firestore और Cloud Storage के लिए ज़रूरी अनुमतियां हों. अगर आप प्रोजेक्ट के मालिक हैं, तो आपके खाते के पास ज़रूरी अनुमतियां हैं. इसके अलावा, यहां दी गई भूमिकाओं के पास एक्सपोर्ट और इंपोर्ट करने के साथ-साथ Cloud Storage को ऐक्सेस करने की ज़रूरी अनुमतियां होती हैं:
- Cloud Firestore भूमिकाएं:
Owner
,Cloud Datastore Owner
याCloud Datastore Import Export Admin
Cloud Storage भूमिकाएं:
Owner
याStorage Admin
- Cloud Firestore भूमिकाएं:
सर्विस एजेंट की अनुमतियां
एक्सपोर्ट और इंपोर्ट करने की कार्रवाइयों में, Cloud Storage कार्रवाइयों को अनुमति देने के लिए Cloud Firestore सेवा एजेंट का इस्तेमाल किया जाता है. 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 सेवा खाते का इस्तेमाल किया जा रहा है या नहीं.
- इंपोर्ट/एक्सपोर्ट के लिए इस्तेमाल किया गया खाता लेबल के बगल में, अनुमति वाला खाता देखें.
एक्सपोर्ट या इंपोर्ट करने के लिए इस्तेमाल किए जाने वाले Cloud Storage बकेट के लिए, सर्विस एजेंट के पास Storage Admin
की भूमिका होनी चाहिए.
अपने प्रोजेक्ट के लिए gcloud
सेट अप करना
Google Cloud Console या gcloud
कमांड-लाइन टूल की मदद से, इंपोर्ट और एक्सपोर्ट की कार्रवाइयां शुरू की जा सकती हैं. gcloud
का इस्तेमाल करने के लिए, कमांड-लाइन टूल सेट अप करें और अपने प्रोजेक्ट से कनेक्ट करें. इसके लिए, इनमें से कोई एक तरीका अपनाएं:
Cloud Shell का इस्तेमाल करके, Google Cloud Platform Console से
gcloud
को ऐक्सेस करें.पक्का करें कि
gcloud
को सही प्रोजेक्ट के लिए कॉन्फ़िगर किया गया हो:gcloud config set project [PROJECT_ID]
Google Cloud SDK टूल इंस्टॉल करें और उसे इस्तेमाल करना शुरू करें.
डेटा निर्यात करें
एक्सपोर्ट करने की प्रोसेस में, आपके डेटाबेस में मौजूद दस्तावेज़ों को Cloud Storage बकेट में मौजूद फ़ाइलों के सेट में कॉपी किया जाता है. ध्यान दें कि एक्सपोर्ट, डेटाबेस का सटीक स्नैपशॉट नहीं होता. यह स्नैपशॉट, एक्सपोर्ट शुरू होने के समय लिया जाता है. एक्सपोर्ट में, ऑपरेशन के दौरान किए गए बदलाव शामिल हो सकते हैं.
सभी दस्तावेज़ एक्सपोर्ट करना
Google Cloud Console
Google Cloud Console में, डेटाबेस पेज पर जाएं.
डेटाबेस की सूची से, वह डेटाबेस चुनें जिसकी ज़रूरत है.
नेविगेशन मेन्यू में, इंपोर्ट/एक्सपोर्ट करें पर क्लिक करें.
एक्सपोर्ट करें पर क्लिक करें.
पूरा डेटाबेस एक्सपोर्ट करें विकल्प पर क्लिक करें.
डेस्टिनेशन चुनें के नीचे, Cloud Storage बकेट का नाम डालें या बकेट चुनने के लिए, ब्राउज़ करें बटन का इस्तेमाल करें.
एक्सपोर्ट करें पर क्लिक करें.
कंसोल, इंपोर्ट/एक्सपोर्ट करें पेज पर वापस आ जाता है. अगर ऑपरेशन शुरू हो जाता है, तो पेज, हाल ही में इंपोर्ट और एक्सपोर्ट किए गए पेज में एक एंट्री जोड़ता है. ऐसा न होने पर, पेज पर गड़बड़ी का मैसेज दिखता है.
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
: उस डेटाबेस का नाम जिससे आपको दस्तावेज़ एक्सपोर्ट करने हैं. डिफ़ॉल्ट डेटाबेस के लिए,--database='(default)'
का इस्तेमाल करें.
एक्सपोर्ट करने की प्रोसेस शुरू करने के बाद, टर्मिनल बंद करने से प्रोसेस रद्द नहीं होती. किसी प्रोसेस को रद्द करना लेख पढ़ें.
चुनिंदा कलेक्शन एक्सपोर्ट करना
Google Cloud Console
Google Cloud Console में, डेटाबेस पेज पर जाएं.
डेटाबेस की सूची से, वह डेटाबेस चुनें जिसकी ज़रूरत है.
नेविगेशन मेन्यू में, इंपोर्ट/एक्सपोर्ट करें पर क्लिक करें.
एक्सपोर्ट करें पर क्लिक करें.
एक या उससे ज़्यादा कलेक्शन ग्रुप एक्सपोर्ट करें विकल्प पर क्लिक करें. ड्रॉपडाउन मेन्यू का इस्तेमाल करके, एक या उससे ज़्यादा कलेक्शन ग्रुप चुनें.
डेस्टिनेशन चुनें के नीचे, Cloud Storage बकेट का नाम डालें या बकेट चुनने के लिए, ब्राउज़ करें बटन का इस्तेमाल करें.
एक्सपोर्ट करें पर क्लिक करें.
कंसोल, इंपोर्ट/एक्सपोर्ट करें पेज पर वापस आ जाता है. अगर ऑपरेशन शुरू हो जाता है, तो पेज, हाल ही में इंपोर्ट और एक्सपोर्ट किए गए पेज में एक एंट्री जोड़ता है. ऐसा न होने पर, पेज पर गड़बड़ी का मैसेज दिखता है.
gcloud
किसी खास कलेक्शन ग्रुप को एक्सपोर्ट करने के लिए, --collection-ids
फ़्लैग का इस्तेमाल करें. इस कार्रवाई से, सिर्फ़ दिए गए कलेक्शन आईडी वाले कलेक्शन ग्रुप एक्सपोर्ट किए जाते हैं. कलेक्शन ग्रुप में, तय किए गए कलेक्शन आईडी वाले सभी कलेक्शन और सब-कलेक्शन (किसी भी पाथ पर) शामिल होते हैं.
gcloud firestore export gs://[BUCKET_NAME] \ --collection-ids=[COLLECTION_ID_1],[COLLECTION_ID_2],[SUBCOLLECTION_ID_1] \ --database=[DATABASE]
उदाहरण के लिए, foo
डेटाबेस में restaurants
कलेक्शन को इस तरह से डिज़ाइन किया जा सकता है कि उसमें ratings
, reviews
या outlets
जैसे कई सब-कलेक्शन शामिल किए जा सकें. किसी खास कलेक्शन restaurants
और reviews
को एक्सपोर्ट करने के लिए, आपकी कमांड इस तरह दिखेगी:
gcloud firestore export gs://[BUCKET_NAME] \ --collection-ids=restaurants,reviews \ --database='cymbal'
किसी पीआईटीआर टाइमस्टैंप से एक्सपोर्ट करना
पीआईटीआर डेटा से, अपने डेटाबेस को Cloud Storage में एक्सपोर्ट किया जा सकता है.
ऐसे PITR डेटा को एक्सपोर्ट किया जा सकता है जिसका टाइमस्टैंप, पिछले सात दिनों में एक मिनट का पूरा टाइमस्टैंप हो. हालांकि, यह earliestVersionTime
से पहले का नहीं होना चाहिए. अगर तय किए गए टाइमस्टैंप पर डेटा मौजूद नहीं है, तो एक्सपोर्ट करने की प्रोसेस पूरी नहीं होगी.
पीआईटीआर एक्सपोर्ट करने की सुविधा, सभी फ़िल्टर के साथ काम करती है. इसमें सभी दस्तावेज़ों को एक्सपोर्ट करने और चुनिंदा कलेक्शन को एक्सपोर्ट करने की सुविधा भी शामिल है.
पीआईटीआर डेटा एक्सपोर्ट करने से पहले, इन बातों का ध्यान रखें:
- टाइमस्टैंप को RFC 3339 फ़ॉर्मैट में डालें. उदाहरण के लिए,
2023-05-26T10:20:00.00Z
. - पक्का करें कि आपने जो टाइमस्टैंप दिया है वह पिछले सात दिनों का हो और पूरा मिनट हो. हालांकि, यह
earliestVersionTime
से पहले का नहीं होना चाहिए. अगर तय किए गए टाइमस्टैंप पर डेटा मौजूद नहीं है, तो गड़बड़ी का मैसेज दिखता है. - पीआईटीआर एक्सपोर्ट पूरा न होने पर, आपसे कोई शुल्क नहीं लिया जाता.
कंसोल
-
Google Cloud Console में, डेटाबेस पेज पर जाएं.
डेटाबेस पर जाएं - डेटाबेस की सूची में से कोई डेटाबेस चुनें.
- नेविगेशन मेन्यू में, इंपोर्ट/एक्सपोर्ट करें पर क्लिक करें.
- एक्सपोर्ट करें पर क्लिक करें.
- पूरे डेटाबेस या सिर्फ़ कुछ कलेक्शन को एक्सपोर्ट करने के लिए, एक्सपोर्ट सोर्स को कॉन्फ़िगर करें.
एक्सपोर्ट करने के लिए अपने डेटाबेस की स्थिति चुनें सेक्शन में जाकर, किसी पिछली तारीख का डेटा एक्सपोर्ट करें को चुनें.
एक्सपोर्ट करने के लिए, स्नैपशॉट का समय चुनें
- डेस्टिनेशन सेक्शन में, Cloud Storage बकेट का नाम डालें या बकेट चुनने के लिए, ब्राउज़ करें बटन का इस्तेमाल करें.
-
एक्सपोर्ट करें पर क्लिक करें.
कंसोल, इंपोर्ट/एक्सपोर्ट करें पेज पर वापस आ जाता है. अगर ऑपरेशन शुरू हो जाता है, तो पेज, हाल ही में इंपोर्ट और एक्सपोर्ट किए गए पेज में एक एंट्री जोड़ता है. ऐसा न होने पर, पेज पर गड़बड़ी का मैसेज दिखता है.
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 Storage में एक्सपोर्ट की गई फ़ाइलें मौजूद होने पर, उन फ़ाइलों में मौजूद दस्तावेज़ों को अपने प्रोजेक्ट या किसी दूसरे प्रोजेक्ट में वापस इंपोर्ट किया जा सकता है. इंपोर्ट करने से जुड़ी इन बातों का ध्यान रखें:
डेटा इंपोर्ट करने पर, ज़रूरी इंडेक्स को आपके डेटाबेस की मौजूदा इंडेक्स परिभाषाओं का इस्तेमाल करके अपडेट किया जाता है. एक्सपोर्ट में इंडेक्स की परिभाषाएं शामिल नहीं होती हैं.
इंपोर्ट करने पर, नए दस्तावेज़ आईडी असाइन नहीं किए जाते. इंपोर्ट किए गए डेटा में, एक्सपोर्ट के समय कैप्चर किए गए आईडी का इस्तेमाल किया जाता है. दस्तावेज़ इंपोर्ट किए जाने के दौरान, उसके आईडी को रिज़र्व किया जाता है, ताकि आईडी के टकराव को रोका जा सके. अगर इसी आईडी वाला कोई दस्तावेज़ पहले से मौजूद है, तो इंपोर्ट करने पर मौजूदा दस्तावेज़ बदल जाता है.
अगर आपके डेटाबेस में मौजूद किसी दस्तावेज़ पर इंपोर्ट का असर नहीं पड़ता है, तो इंपोर्ट के बाद भी वह आपके डेटाबेस में बना रहेगा.
इंपोर्ट करने की कार्रवाइयों से Cloud फ़ंक्शन ट्रिगर नहीं होते. स्नैपशॉट लिसनर को इंपोर्ट ऑपरेशन से जुड़े अपडेट मिलते हैं.
.overall_export_metadata
फ़ाइल का नाम, उसके पैरंट फ़ोल्डर के नाम से मेल खाना चाहिए:gs://BUCKET_NAME/OPTIONAL_NAMESPACE_PATH/PARENT_FOLDER_NAME/PARENT_FOLDER_NAME.overall_export_metadata
अगर आपको एक्सपोर्ट की गई आउटपुट फ़ाइलों को ले जाना या कॉपी करना है, तो PARENT_FOLDER_NAME और
.overall_export_metadata
फ़ाइल का नाम एक जैसा रखें.
एक्सपोर्ट किए गए सभी दस्तावेज़ इंपोर्ट करना
Google Cloud Console
Google Cloud Console में, डेटाबेस पेज पर जाएं.
डेटाबेस की सूची से, वह डेटाबेस चुनें जिसकी ज़रूरत है.
नेविगेशन मेन्यू में, इंपोर्ट/एक्सपोर्ट करें पर क्लिक करें.
इंपोर्ट करें पर क्लिक करें.
फ़ाइल का नाम फ़ील्ड में, एक्सपोर्ट की प्रोसेस पूरी होने के बाद मिली
.overall_export_metadata
फ़ाइल का नाम डालें. फ़ाइल चुनने के लिए, ब्राउज़ करें बटन का इस्तेमाल किया जा सकता है.इंपोर्ट करें पर क्लिक करें.
कंसोल, इंपोर्ट/एक्सपोर्ट करें पेज पर वापस आ जाता है. अगर ऑपरेशन शुरू हो जाता है, तो पेज, हाल ही में इंपोर्ट और एक्सपोर्ट किए गए पेज में एक एंट्री जोड़ता है. ऐसा न होने पर, पेज पर गड़बड़ी का मैसेज दिखता है.
gcloud
पिछली एक्सपोर्ट कार्रवाई से दस्तावेज़ इंपोर्ट करने के लिए, firestore import
कमांड का इस्तेमाल करें.
gcloud firestore import gs://[BUCKET_NAME]/[EXPORT_PREFIX]/ --database=[DATABASE]
इनकी जगह ये डालें:
BUCKET_NAME/EXPORT_PREFIX
: एक्सपोर्ट की गई फ़ाइलों की जगह.DATABASE
: डेटाबेस का नाम. डिफ़ॉल्ट डेटाबेस के लिए,--database='(default)'
का इस्तेमाल करें.
उदाहरण के लिए:
gcloud firestore import gs://my-bucket/2017-05-25T23:54:39_76544/ --database='cymbal'
Google Cloud Console में Cloud Storage ब्राउज़र में जाकर, एक्सपोर्ट की गई फ़ाइलों की जगह की पुष्टि की जा सकती है:
डेटा इंपोर्ट करने की प्रोसेस शुरू करने के बाद, टर्मिनल बंद करने से प्रोसेस रद्द नहीं होती. प्रोसेस रद्द करना लेख पढ़ें.
चुनिंदा कलेक्शन इंपोर्ट करना
Google Cloud Console
कंसोल में, किसी खास कलेक्शन को नहीं चुना जा सकता. इसके बजाय, gcloud
का इस्तेमाल करें.
gcloud
एक्सपोर्ट की गई फ़ाइलों के सेट से, कलेक्शन ग्रुप इंपोर्ट करने के लिए, --collection-ids
फ़्लैग का इस्तेमाल करें. इस ऑपरेशन से, दिए गए कलेक्शन आईडी वाले कलेक्शन ग्रुप ही इंपोर्ट किए जाते हैं. कलेक्शन ग्रुप में, तय किए गए कलेक्शन आईडी वाले सभी कलेक्शन और सब-कलेक्शन (किसी भी पाथ पर) शामिल होते हैं. --database
फ़्लैग का इस्तेमाल करके, डेटाबेस का नाम तय करें. डिफ़ॉल्ट डेटाबेस के लिए, --database='(default)'
का इस्तेमाल करें.
सिर्फ़ कुछ कलेक्शन ग्रुप एक्सपोर्ट करने पर, कुछ कलेक्शन ग्रुप इंपोर्ट किए जा सकते हैं. सभी दस्तावेज़ों के एक्सपोर्ट से, किसी खास कलेक्शन को इंपोर्ट नहीं किया जा सकता.
gcloud firestore import gs://[BUCKET_NAME]/[EXPORT_PREFIX]/ \ --collection-ids=[COLLECTION_ID_1],[COLLECTION_ID_2],[SUBCOLLECTION_ID_1] \ --database=[DATABASE]
PITR एक्सपोर्ट को इंपोर्ट करना
एक्सपोर्ट किए गए डेटाबेस को इंपोर्ट करने के लिए, सभी दस्तावेज़ इंपोर्ट करें में दिया गया तरीका अपनाएं. अगर आपके डेटाबेस में कोई दस्तावेज़ पहले से मौजूद है, तो उसे बदल दिया जाएगा.
एक्सपोर्ट और इंपोर्ट के ऑपरेशन मैनेज करना
एक्सपोर्ट या इंपोर्ट की प्रोसेस शुरू करने के बाद, Cloud Firestore इस प्रोसेस को एक यूनीक नाम असाइन करता है. कार्रवाई का नाम इस्तेमाल करके, कार्रवाई को मिटाया जा सकता है, रद्द किया जा सकता है या उसके स्टेटस की जांच की जा सकती है.
कार्रवाई के नामों में projects/[PROJECT_ID]/databases/(default)/operations/
प्रीफ़िक्स होता है. उदाहरण के लिए:
projects/my-project/databases/(default)/operations/ASA1MTAwNDQxNAgadGx1YWZlZAcSeWx0aGdpbi1zYm9qLW5pbWRhEgopEg
हालांकि, describe
, cancel
, और delete
कमांड के लिए ऑपरेशन का नाम तय करते समय, प्रीफ़िक्स को छोड़ा जा सकता है.
सभी एक्सपोर्ट और इंपोर्ट कार्रवाइयों की सूची बनाना
Google Cloud Console
Google Cloud Console के इंपोर्ट/एक्सपोर्ट पेज पर, हाल ही में किए गए एक्सपोर्ट और इंपोर्ट ऑपरेशन की सूची देखी जा सकती है.
Google Cloud Console में, डेटाबेस पेज पर जाएं.
डेटाबेस की सूची से, वह डेटाबेस चुनें जिसकी ज़रूरत है.
नेविगेशन मेन्यू में, इंपोर्ट/एक्सपोर्ट करें पर क्लिक करें.
gcloud
एक्सपोर्ट और इंपोर्ट किए जा रहे या हाल ही में पूरे किए गए सभी ऑपरेशन देखने के लिए, operations list
कमांड का इस्तेमाल करें:
gcloud firestore operations list
कार्रवाई की स्थिति देखना
Google Cloud Console
Google Cloud Console के इंपोर्ट/एक्सपोर्ट पेज पर जाकर, हाल ही में किए गए एक्सपोर्ट या इंपोर्ट ऑपरेशन की स्थिति देखी जा सकती है.
Google Cloud Console में, डेटाबेस पेज पर जाएं.
डेटाबेस की सूची से, वह डेटाबेस चुनें जिसकी ज़रूरत है.
नेविगेशन मेन्यू में, इंपोर्ट/एक्सपोर्ट करें पर क्लिक करें.
gcloud
एक्सपोर्ट या इंपोर्ट करने की प्रोसेस का स्टेटस दिखाने के लिए, operations describe
कमांड का इस्तेमाल करें.
gcloud firestore operations describe [OPERATION_NAME]
पूरा होने का अनुमानित समय
लंबे समय तक चलने वाली कार्रवाई की स्थिति के लिए किए गए अनुरोध से, workEstimated
और workCompleted
मेट्रिक मिलती हैं. इनमें से हर मेट्रिक को बाइट की संख्या और इकाइयों की संख्या, दोनों में दिखाया जाता है:
workEstimated
से, किसी ऑपरेशन के लिए प्रोसेस किए जाने वाले बाइट और दस्तावेज़ों की अनुमानित कुल संख्या का पता चलता है. अगर Cloud Firestore अनुमान नहीं लगा पाता है, तो हो सकता है कि वह इस मेट्रिक को शामिल न करे.workCompleted
से पता चलता है कि अब तक कितने बाइट और दस्तावेज़ प्रोसेस किए गए हैं. कार्रवाई पूरी होने के बाद, वैल्यू में प्रोसेस किए गए बाइट और दस्तावेज़ों की कुल संख्या दिखती है. यह संख्या,workEstimated
की वैल्यू से ज़्यादा हो सकती है.
प्रोग्रेस का अनुमान लगाने के लिए, workCompleted
को workEstimated
से भाग दें. यह अनुमान सटीक नहीं हो सकता, क्योंकि यह आंकड़ों को इकट्ठा करने में लगने वाले समय पर निर्भर करता है.
कार्रवाई रद्द करना
Google Cloud Console
Google Cloud console के इंपोर्ट/एक्सपोर्ट पेज पर जाकर, एक्सपोर्ट या इंपोर्ट की प्रोसेस को रद्द किया जा सकता है.
Google Cloud Console में, डेटाबेस पेज पर जाएं.
डेटाबेस की सूची से, वह डेटाबेस चुनें जिसकी ज़रूरत है.
नेविगेशन मेन्यू में, इंपोर्ट/एक्सपोर्ट करें पर क्लिक करें.
हाल ही में इंपोर्ट और एक्सपोर्ट किए गए डेटा टेबल में, फ़िलहाल चल रहे ऑपरेशनों के लिए, पूरा हुआ कॉलम में रद्द करें बटन शामिल होता है. कार्रवाई रोकने के लिए, रद्द करें बटन पर क्लिक करें. जब कार्रवाई पूरी तरह से रुक जाती है, तब बटन पर रद्द किया जा रहा है मैसेज दिखता है. इसके बाद, रद्द किया गया मैसेज दिखता है.
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 प्रोजेक्ट के लिए बिलिंग चालू करनी होगी.
डेटा एक्सपोर्ट और इंपोर्ट करने पर, दस्तावेज़ों को पढ़ने और लिखने के लिए शुल्क लिया जाता है. यह शुल्क, Cloud Firestore की कीमत में दिए गए रेट के हिसाब से लिया जाता है. एक्सपोर्ट करने की कार्रवाइयों के लिए, एक्सपोर्ट किए गए हर दस्तावेज़ के हिसाब से एक बार पढ़ने की कार्रवाई की जाती है. इंपोर्ट करने की कार्रवाइयों के लिए, इंपोर्ट किए गए हर दस्तावेज़ पर एक बार लिखने की कार्रवाई की जाती है.
Cloud Storage में सेव की गई आउटपुट फ़ाइलों को Cloud Storage डेटा स्टोरेज की लागत में गिना जाता है.
एक्सपोर्ट या इंपोर्ट करने की प्रोसेस पूरी होने तक, आपको Google Cloud बजट से जुड़ी सूचनाएं नहीं मिलेंगी. एक्सपोर्ट और इंपोर्ट करने की कार्रवाइयों से, कंसोल के इस्तेमाल वाले सेक्शन में दिखने वाले इस्तेमाल पर कोई असर नहीं पड़ेगा.
एक्सपोर्ट और इंपोर्ट करने का शुल्क देखना
एक्सपोर्ट और इंपोर्ट करने की कार्रवाइयों से, बिल की गई कार्रवाइयों पर goog-firestoremanaged:exportimport
लेबल लागू होता है. क्लाउड बिलिंग की रिपोर्ट वाले पेज पर, इस लेबल का इस्तेमाल करके इंपोर्ट और एक्सपोर्ट से जुड़े शुल्क देखे जा सकते हैं:
BigQuery में एक्सपोर्ट करना
Cloud Firestore से एक्सपोर्ट किए गए डेटा को BigQuery में लोड किया जा सकता है. हालांकि, ऐसा सिर्फ़ तब किया जा सकता है, जब आपने collection-ids
फ़िल्टर तय किया हो. Cloud Firestore से एक्सपोर्ट किए गए डेटा को लोड करना लेख पढ़ें.
BigQuery कॉलम की सीमा
BigQuery हर टेबल में ज़्यादा से ज़्यादा 10,000 कॉलम इस्तेमाल करने की अनुमति देता है. Cloud Firestore एक्सपोर्ट करने की कार्रवाइयों से, हर कलेक्शन ग्रुप के लिए BigQuery टेबल स्कीमा जनरेट होता है. इस स्कीमा में, कलेक्शन ग्रुप में मौजूद हर यूनीक फ़ील्ड का नाम, स्कीमा कॉलम बन जाता है.
अगर किसी कलेक्शन ग्रुप के BigQuery स्कीमा में 10,000 से ज़्यादा कॉलम हैं, तो Cloud Firestore एक्सपोर्ट ऑपरेशन, कॉलम की सीमा से कम रहने की कोशिश करता है. इसके लिए, मैप फ़ील्ड को बाइट के तौर पर माना जाता है. अगर इस कन्वर्ज़न से कॉलम की संख्या 10,000 से कम हो जाती है, तो BigQuery में डेटा लोड किया जा सकता है. हालांकि, मैप फ़ील्ड में मौजूद सब-फ़ील्ड के लिए क्वेरी नहीं की जा सकती. अगर अब भी कॉलम की संख्या 10,000 से ज़्यादा है, तो एक्सपोर्ट करने की प्रोसेस, कलेक्शन ग्रुप के लिए BigQuery स्कीमा जनरेट नहीं करती. साथ ही, BigQuery में इसका डेटा लोड नहीं किया जा सकता.
एक्सपोर्ट फ़ॉर्मैट और मेटाडेटा फ़ाइलें
मैनेज किए गए एक्सपोर्ट का आउटपुट, LevelDB लॉग फ़ॉर्मैट का इस्तेमाल करता है.
मेटाडेटा फ़ाइलें
एक्सपोर्ट करने की प्रोसेस, आपके चुने गए हर कलेक्शन ग्रुप के लिए एक मेटाडेटा फ़ाइल बनाती है. मेटाडेटा फ़ाइलों के नाम आम तौर पर ALL_NAMESPACES_KIND_[COLLECTION_GROUP_ID].export_metadata
होते हैं.
मेटाडेटा फ़ाइलें प्रोटोकॉल बफ़र होती हैं. इन्हें protoc
प्रोटोकॉल कंपाइलर की मदद से डिकोड किया जा सकता है.
उदाहरण के लिए, एक्सपोर्ट की गई फ़ाइलों में मौजूद कलेक्शन ग्रुप का पता लगाने के लिए, मेटाडेटा फ़ाइल को डिकोड किया जा सकता है:
protoc --decode_raw < export0.export_metadata
सर्विस एजेंट को माइग्रेट करना
Cloud Firestore, इंपोर्ट और एक्सपोर्ट की कार्रवाइयों को अनुमति देने के लिए, Cloud Firestore सेवा खाते का इस्तेमाल करने के बजाय, Cloud Firestore सर्विस एजेंट का इस्तेमाल करता है.App Engine सर्विस एजेंट और सेवा खाते के लिए, नाम रखने के इन नियमों का पालन किया जाता है:
- Cloud Firestore सर्विस एजेंट
service-PROJECT_NUMBER@gcp-sa-firestore.iam.gserviceaccount.com
Cloud Firestore ने Cloud Firestore सेवा एजेंट के बजाय, App Engine डिफ़ॉल्ट सेवा खाते का इस्तेमाल किया था. अगर आपका डेटाबेस, डेटा इंपोर्ट या एक्सपोर्ट करने के लिए अब भी App Engine सेवा खाते का इस्तेमाल करता है, तो हमारा सुझाव है कि आप इस सेक्शन में दिए गए निर्देशों का पालन करके, Cloud Firestore सेवा एजेंट का इस्तेमाल करने के लिए माइग्रेट करें.
- App Engine सेवा खाता
PROJECT_ID@appspot.gserviceaccount.com
Cloud Firestore सर्विस एजेंट को प्राथमिकता दी जाती है, क्योंकि यह Cloud Firestore के लिए खास है. App Engine सेवा खाते को एक से ज़्यादा सेवाओं के साथ शेयर किया गया है.
के साथ काम नहीं करता.अनुमति वाला खाता देखना
Google Cloud Console में इंपोर्ट/एक्सपोर्ट करें पेज पर जाकर, यह देखा जा सकता है कि इंपोर्ट और एक्सपोर्ट करने की कार्रवाइयों के लिए, किस खाते का इस्तेमाल किया जाता है. यह भी देखा जा सकता है कि आपके डेटाबेस में पहले से ही Cloud Firestore सेवा एजेंट का इस्तेमाल किया जा रहा है या नहीं.
-
Google Cloud Console में, डेटाबेस पेज पर जाएं.
- डेटाबेस की सूची से, वह डेटाबेस चुनें जिसकी ज़रूरत है.
-
नेविगेशन मेन्यू में, इंपोर्ट/एक्सपोर्ट करें पर क्लिक करें.
- इंपोर्ट/एक्सपोर्ट के लिए इस्तेमाल किया गया खाता लेबल के बगल में, अनुमति वाला खाता देखें.
अगर आपका प्रोजेक्ट, Cloud Firestore सेवा एजेंट का इस्तेमाल नहीं करता है, तो इनमें से किसी एक तरीके का इस्तेमाल करके, Cloud Firestore सेवा एजेंट पर माइग्रेट किया जा सकता है:
- Cloud Storage बकेट की अनुमतियां देखकर और उन्हें अपडेट करके, प्रोजेक्ट माइग्रेट करें (सुझाया गया).
- संगठन के सभी प्रोजेक्ट पर लागू होने वाली नीति से जुड़ी पाबंदी जोड़ें.
इनमें से पहली तकनीक का इस्तेमाल करना बेहतर है, क्योंकि इससे Cloud Firestore प्रोजेक्ट के स्कोप को एक ही जगह पर सीमित किया जा सकता है. दूसरी तकनीक का इस्तेमाल करने का सुझाव नहीं दिया जाता, क्योंकि इससे मौजूदा Cloud Storage बकेट की अनुमतियां माइग्रेट नहीं होती हैं. हालांकि, यह संगठन के लेवल पर सुरक्षा से जुड़े नियमों का पालन करने की सुविधा देता है.
Cloud Storage बकेट की अनुमतियों की जांच करके और उन्हें अपडेट करके माइग्रेट करना
माइग्रेशन की प्रोसेस में दो चरण होते हैं:
- Cloud Storage बकेट की अनुमतियां अपडेट करें. ज़्यादा जानकारी के लिए, यहां दिया गया सेक्शन देखें.
- Cloud Firestore सेवा एजेंट पर माइग्रेट करने की पुष्टि करें.
सर्विस एजेंट के बकेट की अनुमतियां
अगर आपको किसी दूसरे प्रोजेक्ट में मौजूद Cloud Storage बकेट का इस्तेमाल करके, डेटा एक्सपोर्ट या इंपोर्ट करना है, तो आपको उस बकेट के लिए Cloud Firestore सेवा एजेंट को अनुमतियां देनी होंगी. उदाहरण के लिए, डेटा को किसी दूसरे प्रोजेक्ट में ट्रांसफ़र करने वाली कार्रवाइयों को, उस दूसरे प्रोजेक्ट में मौजूद बकेट को ऐक्सेस करना होगा. इसके अलावा, Cloud Firestore सेवा एजेंट पर माइग्रेट करने के बाद, ये कार्रवाइयां पूरी नहीं होंगी.
अगर इंपोर्ट और एक्सपोर्ट के वर्कफ़्लो एक ही प्रोजेक्ट में होते हैं, तो अनुमतियों में बदलाव करने की ज़रूरत नहीं होती. Cloud Firestore सेवा एजेंट, डिफ़ॉल्ट रूप से एक ही प्रोजेक्ट में मौजूद बकेट को ऐक्सेस कर सकता है.
अन्य प्रोजेक्ट के Cloud Storage बकेट के लिए अनुमतियां अपडेट करें, ताकि Cloud Storage सेवा एजेंट को ऐक्सेस दिया जा सके.service-PROJECT_NUMBER@gcp-sa-firestore.iam.gserviceaccount.com
सर्विस एजेंट को Firestore Service Agent
की भूमिका असाइन करें.
Firestore Service Agent
भूमिका, Cloud Storage बकेट के लिए पढ़ने और लिखने की अनुमतियां देती है. अगर आपको सिर्फ़ पढ़ने या सिर्फ़ लिखने की अनुमतियां देनी हैं, तो कस्टम भूमिका का इस्तेमाल करें.
यहां दिए गए सेक्शन में माइग्रेशन की प्रोसेस के बारे में बताया गया है. इससे आपको उन Cloud Storage बकेट का पता लगाने में मदद मिलती है जिनके लिए अनुमति अपडेट करने की ज़रूरत हो सकती है.
किसी प्रोजेक्ट को Firestore सेवा एजेंट पर माइग्रेट करना
App Engine सर्विस एजेंट से App Engine सर्विस एजेंट पर माइग्रेट करने के लिए, यह तरीका अपनाएं.Cloud Firestore माइग्रेशन पूरा होने के बाद, इसे पहले जैसा नहीं किया जा सकता.
-
Google Cloud Console में, डेटाबेस पेज पर जाएं.
- डेटाबेस की सूची से, वह डेटाबेस चुनें जिसकी ज़रूरत है.
-
नेविगेशन मेन्यू में, इंपोर्ट/एक्सपोर्ट करें पर क्लिक करें.
-
अगर आपका प्रोजेक्ट अब तक Cloud Firestore सेवा एजेंट पर माइग्रेट नहीं हुआ है, तो आपको माइग्रेशन के बारे में जानकारी देने वाला बैनर दिखेगा. साथ ही, आपको बकेट का स्टेटस देखें बटन दिखेगा. अगले चरण में, अनुमति से जुड़ी संभावित गड़बड़ियों का पता लगाने और उन्हें ठीक करने में मदद मिलती है.
बकेट का स्टेटस देखें पर क्लिक करें.
आपको एक मेन्यू दिखेगा. इसमें माइग्रेशन पूरा करने का विकल्प और Cloud Storage बकेट की सूची होगी. सूची को लोड होने में कुछ मिनट लग सकते हैं.
इस सूची में वे बकेट शामिल हैं जिनका इस्तेमाल हाल ही में इंपोर्ट और एक्सपोर्ट करने के लिए किया गया था. हालांकि, फ़िलहाल ये बकेट, Cloud Firestore सेवा एजेंट को पढ़ने और लिखने की अनुमतियां नहीं देती हैं.
- अपने प्रोजेक्ट के Cloud Firestoreसर्विस एजेंट के प्रिंसिपल नेम को नोट करें. सर्विस एजेंट का नाम, इन्हें ऐक्सेस दें लेबल के नीचे दिखता है.
-
सूची में मौजूद जिस बकेट का इस्तेमाल आपको आने वाले समय में इंपोर्ट या एक्सपोर्ट करने के लिए करना है उसके लिए, यह तरीका अपनाएं:
-
इस बकेट की टेबल लाइन में, ठीक करें पर क्लिक करें. इससे, उस बकेट के अनुमतियों वाले पेज को नए टैब में खोला जाता है.
- जोड़ें पर क्लिक करें.
- नए प्रिंसिपल फ़ील्ड में, अपने Cloud Firestore सेवा एजेंट का नाम डालें.
- कोई भूमिका चुनें फ़ील्ड में जाकर, सर्विस एजेंट > Firestore सर्विस एजेंट को चुनें.
- सेव करें पर क्लिक करें.
- Cloud Firestore इंपोर्ट/एक्सपोर्ट पेज वाले टैब पर वापस जाएं.
- सूची में मौजूद अन्य बकेट के लिए भी यह तरीका दोहराएं. पक्का करें कि आपने सूची के सभी पेज देख लिए हों.
-
-
Firestore Service Agent पर माइग्रेट करें पर क्लिक करें. अगर आपके पास अब भी ऐसे बकेट हैं जिनके लिए अनुमति की जांच पूरी नहीं हुई है, तो आपको माइग्रेट करें पर क्लिक करके, माइग्रेशन की पुष्टि करनी होगी.
माइग्रेशन पूरा होने पर, आपको सूचना दी जाती है. माइग्रेशन शुरू होने के बाद, उसे रोका नहीं जा सकता.
माइग्रेशन का स्टेटस देखना
अपने प्रोजेक्ट के माइग्रेशन की स्थिति की पुष्टि करने के लिए:
-
Google Cloud Console में, डेटाबेस पेज पर जाएं.
- डेटाबेस की सूची से, वह डेटाबेस चुनें जिसकी ज़रूरत है.
-
नेविगेशन मेन्यू में, इंपोर्ट/एक्सपोर्ट करें पर क्लिक करें.
-
Import/Export jobs run as लेबल के बगल में मौजूद प्रिंसिपल को ढूंढें.
अगर प्रिंसिपल
service-PROJECT_NUMBER@gcp-sa-firestore.iam.gserviceaccount.com
है, तो इसका मतलब है कि आपका प्रोजेक्ट पहले ही Cloud Firestore सर्विस एजेंट पर माइग्रेट हो चुका है. माइग्रेशन को पहले जैसा नहीं किया जा सकता.अगर प्रोजेक्ट माइग्रेट नहीं किया गया है, तो पेज के सबसे ऊपर एक बैनर दिखता है. इसमें बकेट की स्थिति देखें बटन होता है. माइग्रेशन पूरा करने के लिए, Firestore सेवा एजेंट पर माइग्रेट करना लेख पढ़ें.
पूरे संगठन के लिए नीति से जुड़ी पाबंदी जोड़ना
-
अपने संगठन की नीति में यह शर्त सेट करें:
इंपोर्ट/एक्सपोर्ट के लिए, Firestore सर्विस एजेंट की ज़रूरत होती है (
firestore.requireP4SAforImportExport
).इस पाबंदी के तहत, इंपोर्ट और एक्सपोर्ट करने के लिए, अनुरोधों को अनुमति देने के लिए Cloud Firestore सेवा एजेंट का इस्तेमाल करना ज़रूरी है. इस पाबंदी को सेट करने के लिए, संगठन की नीतियां बनाना और उन्हें मैनेज करना लेख पढ़ें.
संगठन की नीति से जुड़ी इस पाबंदी को लागू करने से, Cloud Firestore सेवा एजेंट को Cloud Storage बकेट की ज़रूरी अनुमतियां अपने-आप नहीं मिल जातीं.
अगर इस पाबंदी की वजह से, इंपोर्ट या एक्सपोर्ट के किसी भी वर्कफ़्लो में अनुमति से जुड़ी गड़बड़ियां होती हैं, तो इसे बंद किया जा सकता है. इससे डिफ़ॉल्ट सेवा खाते का इस्तेमाल फिर से शुरू किया जा सकेगा. Cloud Storage बकेट की अनुमतियों की जांच करने और उन्हें अपडेट करने के बाद, इस पाबंदी को फिर से चालू किया जा सकता है.