يمكنك استخدام خدمة Cloud Firestore التصدير والاستيراد المُدارة من أجل استرداد البيانات التي تم حذفها عن طريق الخطأ وتصدير البيانات لمعالجتها بلا إنترنت. يمكنك تصدير جميع المستندات أو مجموعات معيّنة فقط. وبالمثل، يمكنك استيراد جميع البيانات من عملية تصدير أو مجموعات معيّنة فقط. يمكن استيراد البيانات التي تم تصديرها من قاعدة بيانات Cloud Firestore إلى قاعدة بيانات Cloud Firestore أخرى. يمكنك أيضًا تحميل Cloud Firestore عمليات التصدير إلى BigQuery.
توضّح هذه الصفحة كيفية تصدير مستندات Cloud Firestore واستيرادها باستخدام خدمة التصدير والاستيراد المُدارة وCloud Storage. تتوفّر خدمة
Cloud Firestore التصدير والاستيراد المُدارة من خلال
أداة سطر الأوامر gcloud
وواجهة برمجة التطبيقات Cloud Firestore (REST وRPC).
قبل البدء
قبل أن تتمكّن من استخدام خدمة التصدير والاستيراد المُدارة، يجب إكمال المهام التالية:
- فعِّل الفوترة لمشروعك Google Cloud. يمكن فقط للمشاريع التي تم تفعيل الفوترة فيها استخدام وظيفة التصدير والاستيراد.Google Cloud
- أنشئ Cloud Storageحزمة لمشروعك في موقع جغرافي قريب من الموقع الجغرافي لقاعدة البيانات.Cloud Firestore لا يمكنك استخدام حزمة Requester Pays لإجراء عمليات التصدير والاستيراد.
-
تأكَّد من أنّ حسابك لديه الأذونات اللازمة لـ 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 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 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. لعرض اسم وكيل الخدمة، اطّلِع على عرض اسم وكيل الخدمة.
بدلاً من ذلك، يمكنك منح هذا الدور باستخدام وحدة تحكّم Google Cloud.
عرض اسم وكيل الخدمة
يمكنك الاطّلاع على الحساب الذي تستخدمه عمليات الاستيراد والتصدير لتفويض الطلبات من صفحة الاستيراد/التصدير في "وحدة تحكّم Google Cloud". يمكنك أيضًا معرفة ما إذا كانت قاعدة البيانات تستخدم وكيل خدمة Cloud Firestore أو حساب خدمة App Engine القديم.
- اطّلِع على حساب التفويض بجانب التصنيف تشغيل مهام الاستيراد/التصدير باسم.
يحتاج وكيل الخدمة إلى دور Storage Admin
لحزمة Cloud Storage التي سيتم استخدامها في عملية التصدير أو الاستيراد.
إعداد gcloud
لمشروعك
يمكنك بدء عمليات الاستيراد والتصدير من خلال Google Cloud Console أو أداة سطر الأوامر gcloud
. لاستخدام gcloud
، عليك إعداد أداة سطر الأوامر
والاتصال بمشروعك بإحدى الطرق التالية:
يمكنك الوصول إلى
gcloud
من خلال "وحدة تحكّم Google Cloud Platform" باستخدام Cloud Shell.تأكَّد من ضبط
gcloud
للمشروع الصحيح:gcloud config set project [PROJECT_ID]
ثبِّت حزمة تطوير البرامج (SDK) من Google Cloud وابدأ إعدادها.
تصدير البيانات
تنسخ عملية التصدير المستندات في قاعدة البيانات إلى مجموعة من الملفات في حزمة Cloud Storage. يُرجى العِلم أنّ عملية التصدير ليست عبارة عن لقطة دقيقة لقاعدة البيانات تم أخذها في وقت بدء التصدير. قد تتضمّن عملية التصدير تغييرات تم إجراؤها أثناء تنفيذ العملية.
تصدير كل المستندات
Google Cloud Console
في Google Cloud Console، انتقِل إلى صفحة قواعد البيانات.
اختَر قاعدة البيانات المطلوبة من قائمة قواعد البيانات.
في قائمة التنقّل، انقر على استيراد/تصدير.
انقر على تصدير.
انقر على الخيار تصدير قاعدة البيانات بأكملها.
أسفل اختيار الوجهة، أدخِل اسم حزمة Cloud Storage أو استخدِم الزر تصفّح لاختيار حزمة.
انقر على تصدير.
ستعود وحدة التحكّم إلى صفحة الاستيراد/التصدير. في حال بدء العملية بنجاح، ستضيف الصفحة إدخالاً إلى صفحة عمليات الاستيراد والتصدير الأخيرة. في حال حدوث خطأ، تعرض الصفحة رسالة خطأ.
gcloud
استخدِم الأمر firestore export
لتصدير جميع المستندات في قاعدة البيانات، مع استبدال [BUCKET_NAME]
باسم حزمة Cloud Storage. أضِف العلامة --async
لمنع الأداة gcloud
من انتظار اكتمال العملية.
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]
على سبيل المثال، يمكنك تصميم مجموعة restaurants
في قاعدة بيانات foo
لتضمين عدة مجموعات فرعية، مثل ratings
أو reviews
أو outlets
. لتصدير restaurants
وreviews
محدّدتَين، سيبدو الأمر على النحو التالي:
gcloud firestore export gs://[BUCKET_NAME] \ --collection-ids=restaurants,reviews \ --database='cymbal'
التصدير من طابع زمني لنقطة استعادة في الوقت المناسب
يمكنك تصدير قاعدة البيانات إلى Cloud Storage من بيانات الاسترداد في نقطة زمنية.
يمكنك تصدير بيانات PITR التي يكون الطابع الزمني فيها طابعًا زمنيًا لدقيقة كاملة خلال الأيام السبعة الماضية، ولكن ليس قبل earliestVersionTime
. إذا لم تعُد البيانات متوفّرة في الطابع الزمني المحدّد، ستتعذّر عملية التصدير.
تتيح عملية تصدير البيانات في نقطة زمنية معيّنة استخدام جميع الفلاتر، بما في ذلك تصدير جميع المستندات وتصدير مجموعات معيّنة.
يُرجى مراعاة النقاط التالية قبل تصدير بيانات PITR:
- حدِّد الطابع الزمني بتنسيق RFC 3339. على سبيل المثال،
2023-05-26T10:20:00.00Z
. - تأكَّد من أنّ الطابع الزمني الذي تحدّده هو طابع زمني لدقيقة كاملة
خلال الأيّام السبعة الماضية، ولكن ليس قبل
earliestVersionTime
. إذا لم تعُد البيانات متوفرة في الطابع الزمني المحدّد، سيحدث خطأ. - لا يتم تحصيل رسوم منك مقابل عملية تصدير غير ناجحة لاستعادة البيانات في نقطة زمنية محددة.
وحدة التحكم
-
في Google Cloud Console، انتقِل إلى صفحة قواعد البيانات.
الانتقال إلى "قواعد البيانات" - اختَر قاعدة بيانات من قائمة قواعد البيانات.
- في قائمة التنقّل، انقر على استيراد/تصدير.
- انقر على تصدير.
- اضبط مصدر التصدير لتصدير قاعدة البيانات بأكملها أو مجموعات معيّنة فقط.
في قسم اختيار حالة قاعدة البيانات التي تريد تصديرها، اختَر التصدير من نقطة زمنية سابقة.
اختيار وقت اللقطة المطلوب استخدامه في عملية التصدير
- في قسم الوجهة، أدخِل اسم Cloud Storage حزمة أو استخدِم الزر تصفّح لاختيار حزمة.
-
انقر على تصدير.
ستعود وحدة التحكّم إلى صفحة الاستيراد/التصدير. في حال بدء العملية بنجاح، ستضيف الصفحة إدخالاً إلى صفحة عمليات الاستيراد والتصدير الأخيرة. في حال حدوث خطأ، تعرض الصفحة رسالة خطأ.
gcloud
يمكنك تصدير قاعدة البيانات إلى Cloud Storage من
بيانات الاسترداد في نقطة زمنية باستخدام الأمر gcloud firestore export
.
صدِّر قاعدة البيانات، وحدِّد المَعلمة snapshot-time
إلى طابع زمني للاسترداد. نفِّذ الأمر التالي لتصدير قاعدة البيانات إلى الحزمة.
gcloud firestore export gs://[BUCKET_NAME_PATH] \ --snapshot-time=[PITR_TIMESTAMP]
حيث PITR_TIMESTAMP
هو طابع زمني لاستعادة البيانات في نقطة زمنية بدقة الدقيقة، على سبيل المثال، 2023-05-26T10:20:00.00Z
.
أضِف العلامة --collection-ids
لتصدير مجموعات معيّنة.
استيراد البيانات
بعد الحصول على ملفات التصدير في Cloud Storage، يمكنك استيراد المستندات في هذه الملفات إلى مشروعك أو إلى مشروع آخر. يُرجى مراعاة النقاط التالية حول عمليات الاستيراد:
عند استيراد البيانات، يتم تعديل الفهارس المطلوبة باستخدام تعريفات الفهارس الحالية في قاعدة البيانات. لا تحتوي عملية التصدير على تعريفات الفهرس.
لا يتم تعيين معرّفات مستندات جديدة عند الاستيراد. تستخدِم عمليات الاستيراد المعرّفات التي تم تسجيلها في وقت التصدير. أثناء استيراد مستند، يتم حجز رقم تعريفه لمنع حدوث تعارض في أرقام التعريف. إذا كان هناك مستند يحمل المعرّف نفسه، ستؤدي عملية الاستيراد إلى الكتابة فوق المستند الحالي.
إذا لم يتأثر مستند في قاعدة البيانات بعملية الاستيراد، سيظل في قاعدة البيانات بعد عملية الاستيراد.
لا تؤدي عمليات الاستيراد إلى تشغيل Cloud Functions. تتلقّى برامج معالجة اللقطات تعديلات ذات صلة بعمليات الاستيراد.
يجب أن يتطابق اسم ملف
.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'
يمكنك تأكيد موقع ملفات التصدير في متصفّح Cloud Storage ضمن Google Cloud Console باتّباع الخطوات التالية:
بعد بدء عملية استيراد، لا يؤدي إغلاق نافذة الجهاز إلى إلغاء العملية، راجِع إلغاء عملية.
استيراد مجموعات محدّدة
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.
في 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
على العمليات التي يتم تحصيل رسوم مقابلها. في صفحة تقارير الفوترة من Cloud، يمكنك استخدام هذا التصنيف لعرض التكاليف المرتبطة بعمليات الاستيراد والتصدير:
التصدير إلى 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 لتفويض عمليات الاستيراد والتصدير بدلاً من استخدام حساب خدمة App Engine. يستخدم وكيل الخدمة وحساب الخدمة اصطلاحات التسمية التالية:
- Cloud Firestore وكيل الخدمة
service-PROJECT_NUMBER@gcp-sa-firestore.iam.gserviceaccount.com
كانت Cloud Firestore تستخدم حساب الخدمة التلقائي App Engine بدلاً من وكيل خدمة Cloud Firestore. إذا كانت قاعدة البيانات لا تزال تستخدم حساب الخدمة App Engine لاستيراد البيانات أو تصديرها، ننصحك باتّباع التعليمات الواردة في هذا القسم لنقل البيانات إلى استخدام وكيل الخدمة Cloud Firestore.
- حساب خدمة App Engine
PROJECT_ID@appspot.gserviceaccount.com
يُفضَّل استخدام وكيل خدمة Cloud Firestore لأنّه خاص بـ Cloud Firestore. يتم مشاركة حساب الخدمة App Engine بين أكثر من خدمة واحدة.
عرض حساب التفويض
يمكنك الاطّلاع على الحساب الذي تستخدمه عمليات الاستيراد والتصدير لتفويض الطلبات من صفحة الاستيراد/التصدير في وحدة تحكّم Google Cloud. يمكنك أيضًا معرفة ما إذا كانت قاعدة البيانات تستخدم وكيل خدمة 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 من مشاريع أخرى لمنح إذن الوصول إلى حساب خدمة service-PROJECT_NUMBER@gcp-sa-firestore.iam.gserviceaccount.com
. امنح وكيل الخدمة الدور Firestore Service Agent
.
يمنح الدور Firestore Service Agent
أذونات القراءة والكتابة لحزمة Cloud Storage. إذا كنت بحاجة إلى منح أذونات القراءة فقط أو الكتابة فقط، استخدِم دورًا مخصّصًا.
تساعدك عملية نقل البيانات الموضّحة في القسم التالي في تحديد Cloud Storage الحِزم التي قد تتطلّب تعديلات على الأذونات.
نقل مشروع إلى حساب خدمة Firestore
أكمِل الخطوات التالية للانتقال من حساب خدمة App Engine إلى وكيل خدمة Cloud Firestore. بعد اكتمال عملية النقل، لا يمكن التراجع عنها.
-
في Google Cloud Console، انتقِل إلى صفحة قواعد البيانات.
- اختَر قاعدة البيانات المطلوبة من قائمة قواعد البيانات.
-
في قائمة التنقّل، انقر على استيراد/تصدير.
-
إذا لم يتم نقل مشروعك بعد إلى وكيل خدمة Cloud Firestore، سيظهر بانر يصف عملية النقل وزر التحقّق من حالة الحزمة. تساعدك الخطوة التالية في تحديد أخطاء الأذونات المحتملة وإصلاحها.
انقر على التحقّق من حالة الحزمة.
ستظهر قائمة تتضمّن خيار إكمال عملية نقل البيانات وقائمة بمجموعات Cloud Storage. قد يستغرق تحميل القائمة بضع دقائق.
تتضمّن هذه القائمة حِزمًا تم استخدامها مؤخرًا في عمليات الاستيراد والتصدير، ولكنّها لا تمنح حاليًا أذونات القراءة والكتابة إلى وكيل خدمة Cloud Firestore.
- دوِّن اسم مدير الخدمة Cloud Firestore الخاص بمشروعك. يظهر اسم وكيل الخدمة ضمن التصنيف وكيل الخدمة الذي سيتم منحه إذن الوصول.
-
بالنسبة إلى أي حزمة في القائمة ستستخدمها في عمليات الاستيراد أو التصدير المستقبلية، عليك إكمال الخطوات التالية:
-
في صف جدول هذه المجموعة، انقر على إصلاح. سيؤدي ذلك إلى فتح صفحة أذونات الحزمة في علامة تبويب جديدة.
- انقر على إضافة.
- في حقل الجهات الرئيسية الجديدة، أدخِل اسم Cloud Firestore وكيل الخدمة.
- في الحقل اختيار دور، اختَر وكلاء الخدمة > وكيل خدمة Firestore.
- انقر على حفظ.
- ارجع إلى علامة التبويب التي تتضمّن صفحة Cloud Firestore الاستيراد/التصدير.
- كرِّر هذه الخطوات مع الحِزم الأخرى في القائمة. احرص على عرض جميع صفحات القائمة.
-
-
انقر على النقل إلى "وكيل خدمة Firestore". إذا كانت لديك حِزم لا تزال تتضمّن عمليات تحقّق من الأذونات غير ناجحة، عليك تأكيد عملية نقل البيانات من خلال النقر على نقل البيانات.
يُعلمك تنبيه عند اكتمال عملية النقل. لا يمكن التراجع عن عملية نقل البيانات بعد بدئها.
عرض حالة نقل البيانات
للتحقّق من حالة نقل بيانات مشروعك، اتّبِع الخطوات التالية:
-
في Google Cloud Console، انتقِل إلى صفحة قواعد البيانات.
- اختَر قاعدة البيانات المطلوبة من قائمة قواعد البيانات.
-
في قائمة التنقّل، انقر على استيراد/تصدير.
-
ابحث عن المدير بجانب التصنيف تشغيل مهام الاستيراد/التصدير باسم.
إذا كان العنصر الأساسي هو
service-PROJECT_NUMBER@gcp-sa-firestore.iam.gserviceaccount.com
، يعني ذلك أنّه تم نقل مشروعك إلى حساب خدمة Cloud Firestore. لا يمكن التراجع عن عملية نقل البيانات.إذا لم يتم نقل المشروع، سيظهر بانر في أعلى الصفحة يتضمّن الزر التحقّق من حالة الحزمة. راجِع مقالة نقل البيانات إلى وكيل خدمة Firestore لإكمال عملية النقل.
إضافة قيد سياسة على مستوى المؤسسة
-
اضبط القيد التالي في سياسة مؤسستك:
تتطلّب استيراد/تصدير وكيل خدمة Firestore (
firestore.requireP4SAforImportExport
).يتطلّب هذا القيد أن تستخدم عمليات الاستيراد والتصدير حساب خدمة Cloud Firestore لتفويض الطلبات. لضبط هذا القيد، يُرجى الاطّلاع على إنشاء سياسات المؤسسة وإدارتها .
لا يؤدي تطبيق قيد السياسة التنظيمية هذا إلى منح أذونات حزمة Cloud Storage المناسبة تلقائيًا لوكيل خدمة Cloud Firestore.
إذا تسبّب القيد في حدوث أخطاء في الأذونات لأي من عمليات استيراد البيانات أو تصديرها، يمكنك إيقافه للعودة إلى استخدام حساب الخدمة التلقائي. بعد التحقّق من أذونات Cloud Storage bucket وتعديلها، يمكنك إعادة تفعيل القيد.