يمكنك استخدام خدمة الاستيراد والتصدير المُدارة في 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. لا يمكنك استخدام حزمة "يدفع مقدّم الطلب" أو حزمة Rapid لعمليات التصدير والاستيراد.
-
تأكَّد من أنّ حسابك يملك الأذونات اللازمة لكل من 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 Console. يمكنك أيضًا الاطّلاع على ما إذا كانت قاعدة بياناتك تستخدم وكيل خدمة Cloud Firestore أو حساب خدمة App Engine القديم.
- اطّلِع على حساب التفويض بجانب تصنيف Import/Export jobs run as (تشغيل مهام الاستيراد/التصدير باسم).
يحتاج وكيل الخدمة إلى دور Storage Admin لحزمة Cloud Storage
ليتم استخدامه في عملية التصدير أو الاستيراد.
إعداد gcloud لمشروعك
يمكنك بدء عمليات الاستيراد والتصدير من خلال وحدة تحكّم Google Cloud أو أداة سطر أوامر gcloud. لاستخدام gcloud، عليك إعداد أداة سطر الأوامر
والاتصال بمشروعك بإحدى الطرق التالية:
يمكنك الوصول إلى "
gcloud" من وحدة تحكّم Google Cloud باستخدام Cloud Shell.تأكَّد من ضبط
gcloudللمشروع الصحيح:gcloud config set project [PROJECT_ID]
تصدير البيانات
تنسخ عملية التصدير المستندات في قاعدة بياناتك إلى مجموعة من الملفات في حزمة Cloud Storage. يُرجى العِلم أنّ عملية التصدير ليست لقطة دقيقة لقاعدة البيانات تم التقاطها في وقت بدء التصدير. قد تتضمّن عملية التصدير التغييرات التي تم إجراؤها أثناء تشغيل العملية.
تصدير كل المستندات
Google Cloud Console
في وحدة تحكّم Google Cloud، انتقِل إلى صفحة قواعد البيانات.
اختَر قاعدة البيانات المطلوبة من قائمة قواعد البيانات.
في قائمة التنقّل، انقر على استيراد/تصدير.
انقر على تصدير.
انقر على خيار تصدير قاعدة البيانات بأكملها.
أسفل اختيار الوجهة، أدخِل اسم حزمة 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، انتقِل إلى صفحة قواعد البيانات.
اختَر قاعدة البيانات المطلوبة من قائمة قواعد البيانات.
في قائمة التنقّل، انقر على استيراد/تصدير.
انقر على تصدير.
انقر على الخيار تصدير مجموعة واحدة أو أكثر من مجموعات المجموعات. استخدِم القائمة لاختيار مجموعة واحدة أو أكثر من مجموعات المجموعات.
أسفل اختيار الوجهة، أدخِل اسم حزمة Cloud Storage أو استخدِم الزر تصفُّح لاختيار حزمة.
انقر على تصدير.
تعود وحدة التحكّم إلى صفحة الاستيراد/التصدير. إذا بدأت العملية بنجاح، تضيف الصفحة إدخالاً إلى صفحة عمليات الاستيراد والتصدير الأخيرة. في حال تعذّر الإجراء، ستعرض الصفحة رسالة خطأ.
gcloud
لتصدير مجموعات معيّنة، استخدِم العلامة
--collection-ids. تصدّر العملية
مجموعات المجموعات التي تحمل أرقام التعريف المحدّدة فقط. تتضمّن مجموعة المجموعات
جميع المجموعات والمجموعات الفرعية التي يكون معرّف مجموعتها النهائية هو
معرّف مجموعة المجموعات.
gcloud firestore export gs://[BUCKET_NAME] \ --collection-ids=[COLLECTION_GROUP_ID_1],[COLLECTION_GROUP_ID_2] \ --database=[DATABASE]
على سبيل المثال، يمكنك تصميم مجموعة restaurants في قاعدة بيانات foo
لتشمل مجموعات فرعية متعددة، مثل ratings أو reviews أو
outlets. لتصدير مجموعة المجموعات "reviews"، يجب إدراجها
بشكل صريح:
gcloud firestore export gs://[BUCKET_NAME] \ --collection-ids=reviews \ --database='cymbal'
في حال تحديد restaurants بدلاً من ذلك، لن يتم تصدير المستندات في المجموعة الفرعية reviews.
التصدير من طابع زمني لـ PITR
يمكنك تصدير قاعدة بياناتك إلى Cloud Storage من بيانات الاستعادة في نقطة زمنية معيّنة.
يمكنك تصدير بيانات PITR التي يكون طابعها الزمني دقيقة كاملة خلال آخر سبعة أيام، ولكن ليس قبل earliestVersionTime. إذا لم تعد البيانات متوفّرة في الطابع الزمني المحدّد، ستتعذّر عملية التصدير.
تتيح عملية التصدير في ميزة PITR استخدام جميع الفلاتر، بما في ذلك تصدير جميع المستندات وتصدير مجموعات معيّنة.
يُرجى مراعاة النقاط التالية قبل تصدير بيانات PITR:
- حدِّد الطابع الزمني
بالتنسيق RFC 3339. على سبيل المثال،
2023-05-26T10:20:00.00Z. - تأكَّد من أنّ الطابع الزمني الذي تحدّده هو طابع زمني بالدقيقة الكاملة
خلال آخر سبعة أيام، ولكن ليس قبل
earliestVersionTime. إذا لم تعُد البيانات متوفّرة في الطابع الزمني المحدّد، سيظهر خطأ. - لا يتم تحصيل رسوم منك مقابل عملية تصدير غير ناجحة لبيانات PITR.
وحدة التحكم
-
في وحدة تحكّم Google Cloud، انتقِل إلى صفحة قواعد البيانات.
الانتقال إلى "قواعد البيانات" - اختَر قاعدة بيانات من قائمة قواعد البيانات.
- في قائمة التنقّل، انقر على استيراد/تصدير.
- انقر على تصدير.
- اضبط مصدر التصدير لتصدير قاعدة البيانات بأكملها أو مجموعات معيّنة فقط.
في قسم اختيار حالة قاعدة البيانات المطلوب تصديرها، اختَر التصدير من نقطة زمنية سابقة.
اختَر وقت اللقطة لاستخدامه في عملية التصدير
- في قسم الوجهة، أدخِل اسم حزمة Cloud Storage أو استخدِم الزر تصفُّح لاختيار حزمة.
-
انقر على تصدير.
تعود وحدة التحكّم إلى صفحة الاستيراد/التصدير. إذا بدأت العملية بنجاح، تضيف الصفحة إدخالاً إلى صفحة عمليات الاستيراد والتصدير الأخيرة. في حال تعذّر ذلك، ستعرض الصفحة رسالة خطأ.
gcloud
يمكنك تصدير قاعدة بياناتك إلى Cloud Storage من
بيانات الاستعادة في نقطة زمنية باستخدام الأمر gcloud firestore export.
صدِّر قاعدة البيانات، مع تحديد المَعلمة 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. مستمعو اللقطات يتلقّون تحديثات متعلقة بعمليات الاستيراد.
يجب عدم إضافة مستندات Cloud Firestore جديدة لم تكن في ملفات الإخراج الأصلية لعملية التصدير أو إزالة أي مستندات حالية من ملفات GCS قبل الاستيراد. وإذا حدث ذلك، لن تنجح عملية الاستيراد.
يجب أن يتطابق اسم ملف
.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، انتقِل إلى صفحة قواعد البيانات.
اختَر قاعدة البيانات المطلوبة من قائمة قواعد البيانات.
في قائمة التنقّل، انقر على استيراد/تصدير.
انقر على استيراد.
في حقل اسم الملف، أدخِل اسم ملف
.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:
بعد بدء عملية الاستيراد، لا يؤدي إغلاق الوحدة الطرفية إلى إلغاء العملية، راجِع إلغاء عملية.
استيراد مجموعات معيّنة من المجموعات
Google Cloud Console
لا يمكنك اختيار مجموعات معيّنة في وحدة التحكّم. يمكنك استخدام gcloud كبديل.
gcloud
لاستيراد مجموعات معيّنة من مجموعة من ملفات التصدير، استخدِم العلامة --collection-ids. تستورد العملية
مجموعات المجموعات ذات المعرّفات المحدّدة فقط. تتضمّن مجموعة المجموعات
جميع المجموعات والمجموعات الفرعية التي يكون معرّف مجموعتها النهائية هو
معرّف مجموعة المجموعات. حدِّد اسم قاعدة البيانات باستخدام العلامة --database. بالنسبة إلى قاعدة البيانات التلقائية، استخدِم --database='(default)'.
يمكن استيراد مجموعات معيّنة فقط إذا تم تصدير مجموعات معيّنة. لا يمكنك استيراد مجموعات معيّنة من المجموعات من عملية تصدير لجميع المستندات.
gcloud firestore import gs://[BUCKET_NAME]/[EXPORT_PREFIX]/ \ --collection-ids=[COLLECTION_GROUP_ID_1],[COLLECTION_GROUP_ID_2] \ --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، انتقِل إلى صفحة قواعد البيانات.
اختَر قاعدة البيانات المطلوبة من قائمة قواعد البيانات.
في قائمة التنقّل، انقر على استيراد/تصدير.
gcloud
استخدِم الأمر operations list للاطّلاع على جميع عمليات التصدير والاستيراد الجارية والمكتملة مؤخرًا:
gcloud firestore operations list
التحقّق من حالة العملية
Google Cloud Console
يمكنك الاطّلاع على حالة عملية تصدير أو استيراد حديثة في صفحة الاستيراد/التصدير ضمن Google Cloud Console.
في وحدة تحكّم Google Cloud، انتقِل إلى صفحة قواعد البيانات.
اختَر قاعدة البيانات المطلوبة من قائمة قواعد البيانات.
في قائمة التنقّل، انقر على استيراد/تصدير.
gcloud
استخدِم الأمر operations describe لعرض حالة عملية التصدير أو الاستيراد.
gcloud firestore operations describe [OPERATION_NAME]
تقدير وقت الإكمال
يؤدي طلب حالة عملية طويلة إلى عرض المقياسَين workEstimated وworkCompleted. يتم عرض كل من هذه المقاييس في كل من
عدد وحدات البايت وعدد الكيانات:
يعرض الحقل
workEstimatedإجمالي العدد المقدَّر للبايتات والمستندات التي ستتم معالجتها في العملية. Cloud Firestore قد يحذف محرّك بحث Google هذا المقياس إذا لم يتمكّن من تقديم تقدير.يعرض
workCompletedعدد وحدات البايت والمستندات التي تمت معالجتها حتى الآن. بعد اكتمال العملية، تعرض القيمة إجمالي عدد وحدات البايت والمستندات التي تمت معالجتها فعليًا، وقد يكون أكبر من قيمةworkEstimated.
اقسِم workCompleted على workEstimated للحصول على تقدير تقريبي لمستوى التقدّم. قد يكون هذا التقدير غير دقيق، لأنه يعتمد على جمع الإحصاءات المتأخرة.
إلغاء عملية
Google Cloud Console
يمكنك إلغاء عملية تصدير أو استيراد جارية في صفحة الاستيراد/التصدير في Google Cloud Console.
في وحدة تحكّم Google Cloud، انتقِل إلى صفحة قواعد البيانات.
اختَر قاعدة البيانات المطلوبة من قائمة قواعد البيانات.
في قائمة التنقّل، انقر على استيراد/تصدير. في جدول عمليات الاستيراد والتصدير الأخيرة، تتضمّن العمليات الجارية حاليًا زر إلغاء في عمود مكتملة. انقر على الزر إلغاء لإيقاف العملية. يتغيّر الزر إلى رسالة جارٍ الإلغاء ثم إلى تم الإلغاء عند توقّف العملية بالكامل.

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.
ملفات البيانات الوصفية هي Protocol Buffers ويمكنك فك ترميزها باستخدام
برنامج تجميع بروتوكول 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 Console. يمكنك أيضًا الاطّلاع على ما إذا كانت قاعدة بياناتك تستخدم حاليًا وكيل الخدمة Cloud Firestore.
-
في وحدة تحكّم Google Cloud، انتقِل إلى صفحة قواعد البيانات.
- اختَر قاعدة البيانات المطلوبة من قائمة قواعد البيانات.
-
في قائمة التنقّل، انقر على استيراد/تصدير.
- اطّلِع على حساب التفويض بجانب تصنيف Import/Export jobs run as (تشغيل مهام الاستيراد/التصدير باسم).
إذا كان مشروعك لا يستخدم وكيل خدمة "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، انتقِل إلى صفحة قواعد البيانات.
- اختَر قاعدة البيانات المطلوبة من قائمة قواعد البيانات.
-
في قائمة التنقّل، انقر على استيراد/تصدير.
-
إذا لم يتم نقل مشروعك بعد إلى وكيل خدمة Cloud Firestore، سيظهر لك بانر يصف عملية النقل وزر التحقّق من حالة الحزمة. تساعدك الخطوة التالية في تحديد أخطاء الأذونات المحتملة وإصلاحها.
انقر على التحقّق من حالة الحزمة.
ستظهر قائمة تتضمّن خيار إكمال عملية نقل البيانات وقائمة بدلاء Cloud Storage. قد يستغرق تحميل القائمة بالكامل بضع دقائق.
تتضمّن هذه القائمة الحِزم التي تم استخدامها مؤخرًا في عمليات الاستيراد والتصدير، ولكنّها لا تمنح حاليًا أذونات القراءة وإذن التعديل لوكيل خدمة "Cloud Firestore".
- دوِّن الاسم الرئيسي لوكيل خدمة Cloud Firestore في مشروعك. يظهر اسم وكيل الخدمة ضمن التصنيف وكيل الخدمة المطلوب منحه إذن الوصول.
-
بالنسبة إلى أي حزمة في القائمة ستستخدمها في عمليات الاستيراد أو التصدير المستقبلية، أكمِل الخطوات التالية:
-
في صف جدول هذه المجموعة، انقر على إصلاح. سيؤدي ذلك إلى فتح صفحة أذونات هذا المستودع في علامة تبويب جديدة.
- انقر على إضافة.
- في حقل الجهات الرئيسية الجديدة، أدخِل اسم وكيل خدمة Cloud Firestore.
- في حقل اختيار دور، اختَر وكلاء الخدمة > وكيل خدمة Firestore.
- انقر على حفظ.
- ارجع إلى علامة التبويب التي تحتوي على صفحة "استيراد/تصدير" في Cloud Firestore.
- كرِّر هذه الخطوات مع المجموعات الأخرى في القائمة. تأكَّد من الاطّلاع على جميع صفحات القائمة.
-
-
انقر على Migrate to Firestore Service Agent (النقل إلى وكيل خدمة Firestore). إذا كان لا يزال لديك حِزم لم تجتَز عمليات التحقّق من الأذونات، عليك تأكيد عملية النقل من خلال النقر على نقل.
يُعلمك تنبيه عند اكتمال عملية النقل. لا يمكن التراجع عن عملية نقل البيانات.
عرض حالة نقل البيانات
للتحقّق من حالة نقل مشروعك:
-
في وحدة تحكّم Google Cloud، انتقِل إلى صفحة قواعد البيانات.
- اختَر قاعدة البيانات المطلوبة من قائمة قواعد البيانات.
-
في قائمة التنقّل، انقر على استيراد/تصدير.
-
ابحث عن المستخدم المفوَّض بجانب تصنيف Import/Export jobs run as (تشغيل مهام الاستيراد/التصدير باسم).
إذا كان المستخدم المفوَّض هو
service-PROJECT_NUMBER@gcp-sa-firestore.iam.gserviceaccount.com، يعني ذلك أنّه سبق نقل مشروعك إلى وكيل الخدمة Cloud Firestore. لا يمكن التراجع عن عملية نقل البيانات.إذا لم يتم نقل المشروع، سيظهر بانر في أعلى الصفحة مع زر التحقّق من حالة الحزمة. يُرجى الاطّلاع على نقل البيانات إلى وكيل خدمة Firestore لإكمال عملية النقل.
إضافة قيد سياسة على مستوى المؤسسة
-
اضبط القيود التالية في سياسة مؤسستك:
طلب وكيل خدمة Firestore للاستيراد/التصدير (
firestore.requireP4SAforImportExport)يتطلّب هذا القيد أن تستخدم عمليات الاستيراد والتصدير وكيل خدمة Cloud Firestore لمنح الإذن بالطلبات. لضبط هذا القيد، يُرجى الاطّلاع على إنشاء سياسات المؤسسة وإدارتها .
لا يؤدي تطبيق قيد السياسة التنظيمية هذا إلى منح أذونات حزمة Cloud Storage المناسبة تلقائيًا لوكيل خدمة Cloud Firestore.
إذا تسبّب القيد في حدوث أخطاء في الأذونات لأي من عمليات سير عمل الاستيراد أو التصدير، يمكنك إيقافه للعودة إلى استخدام حساب الخدمة التلقائي. بعد التحقّق من أذونات حزمة Cloud Storage وتعديلها، يمكنك تفعيل القيد مرة أخرى.