אתם יכולים להשתמש בשירות המנוהל לייצוא ולייבוא כדי לשחזר נתונים שנמחקו בטעות ולייצא נתונים לעיבוד אופליין.Cloud Firestore אתם יכולים לייצא את כל המסמכים או רק אוספים ספציפיים. באופן דומה, אפשר לייבא את כל הנתונים מייצוא או רק אוספים ספציפיים. אפשר לייבא נתונים ממסד נתונים אחד של Cloud Firestore למסד נתונים אחר של Cloud Firestore. אפשר גם לטעון ייצואים של Cloud Firestore אל BigQuery.
בדף הזה מוסבר איך לייצא ולייבא מסמכי Cloud Firestore באמצעות שירות הייצוא והייבוא המנוהל ו-Cloud Storage. שירות הייצוא והייבוא המנוהל של Cloud Firestore זמין באמצעות כלי שורת הפקודה gcloud
ו-API של Cloud Firestore (REST, RPC).
לפני שמתחילים
כדי להשתמש בשירות המנוהל לייצוא ולייבוא, צריך לבצע את המשימות הבאות:
- מפעילים את החיוב בפרויקט Google Cloud. רק בפרויקטים שמופעל בהם חיוב אפשר להשתמש בפונקציונליות של ייצוא וייבוא.Google Cloud
- יוצרים קטגוריה Cloud Storage לפרויקט במיקום שקרוב למיקום של מסד הנתונים.Cloud Firestore אי אפשר להשתמש בקטגוריה שבה מופעלת התכונה 'מגיש הבקשה משלם' לצורך פעולות ייצוא וייבוא.
-
מוודאים שלחשבון יש את ההרשאות הנדרשות ל-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 כדי להקצות אחד מהתפקידים שבהמשך. לדוגמה, כדי להקצות את התפקיד 'אדמין של Storage' לסוכן השירות 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.
הצגת השם של סוכן השירות
בדף Import/Export במסוף Google Cloud אפשר לראות את החשבון שבו משתמשים פעולות הייבוא והייצוא כדי לאשר בקשות. אפשר גם לראות אם מסד הנתונים משתמש בסוכן השירות Cloud Firestore או בחשבון השירות מדור קודם App Engine.
- החשבון המורשה מוצג ליד התווית הפעלת משימות ייבוא/ייצוא בתור.
לסוכן השירות צריכה להיות הרשאת Storage Admin
לדלי Cloud Storage שבו ישתמשו לפעולת הייצוא או הייבוא.
הגדרת gcloud
לפרויקט
אפשר להתחיל פעולות ייבוא וייצוא דרך מסוף Google Cloud או דרך כלי שורת הפקודה gcloud
. כדי להשתמש ב-gcloud
, צריך להגדיר את כלי שורת הפקודה ולהתחבר לפרויקט באחת מהדרכים הבאות:
אפשר לגשת אל
gcloud
ממסוף Google Cloud Platform באמצעות Cloud Shell.מוודאים שהמכשיר
gcloud
מוגדר לפרויקט הנכון:gcloud config set project [PROJECT_ID]
ייצוא נתונים
פעולת ייצוא מעתיקה מסמכים במסד הנתונים שלכם לקבוצת קבצים בקטגוריה של Cloud Storage. חשוב לדעת שייצוא הוא לא תמונת מצב מדויקת של מסד הנתונים שצולמה בזמן תחילת הייצוא. יכול להיות שייצוא יכלול שינויים שבוצעו בזמן שהפעולה רצה.
ייצוא כל המסמכים
Google Cloud Console
נכנסים לדף Databases במסוף Google Cloud.
בוחרים את מסד הנתונים הרצוי מרשימת מסדי הנתונים.
בתפריט הניווט, לוחצים על Import/Export (ייבוא/ייצוא).
לוחצים על ייצוא.
לוחצים על האפשרות Export entire database (ייצוא של כל מסד הנתונים).
מתחת לChoose Destination (בחירת יעד), מזינים את השם של קטגוריית Cloud Storage או לוחצים על הלחצן Browse (עיון) כדי לבחור קטגוריה.
לוחצים על ייצוא.
המסוף חוזר לדף Import/Export. אם הפעולה מתחילה בהצלחה, הדף מוסיף רשומה לדף של הייבוא והייצוא האחרונים. אם הפעולה נכשלת, מוצגת הודעת שגיאה בדף.
gcloud
כדי לייצא את כל המסמכים במסד הנתונים, משתמשים בפקודה firestore export
ומחליפים את [BUCKET_NAME]
בשם הקטגוריה של Cloud Storage. מוסיפים את הדגל --async
כדי למנוע מהכלי gcloud
להמתין לסיום הפעולה.
gcloud firestore export gs://[BUCKET_NAME] \ --database=[DATABASE]
מחליפים את מה שכתוב בשדות הבאים:
BUCKET_NAME
: כדי לארגן את הייצוא, מוסיפים תחילית לשם הקובץ אחרי שם ה-bucket, לדוגמה,BUCKET_NAME/my-exports-folder/export-name
. אם לא תציינו קידומת לקובץ, שירות הייצוא המנוהל ייצור קידומת על סמך חותמת הזמן הנוכחית.
DATABASE
: שם מסד הנתונים שממנו רוצים לייצא את המסמכים. למסד הנתונים שמוגדר כברירת מחדל, משתמשים ב---database='(default)'
.
אחרי שמתחילים פעולת ייצוא, סגירת הטרמינל לא מבטלת את הפעולה. מידע נוסף זמין במאמר בנושא ביטול פעולה.
ייצוא של קולקציות ספציפיות
Google Cloud Console
נכנסים לדף Databases במסוף Google Cloud.
בוחרים את מסד הנתונים הרצוי מרשימת מסדי הנתונים.
בתפריט הניווט, לוחצים על Import/Export (ייבוא/ייצוא).
לוחצים על ייצוא.
לוחצים על האפשרות ייצוא של קבוצת אוספים אחת או יותר. משתמשים בתפריט הנפתח כדי לבחור קבוצה אחת או יותר של אוספים.
מתחת לChoose Destination (בחירת יעד), מזינים את השם של קטגוריית Cloud Storage או לוחצים על הלחצן Browse (עיון) כדי לבחור קטגוריה.
לוחצים על ייצוא.
המסוף חוזר לדף Import/Export. אם הפעולה מתחילה בהצלחה, הדף מוסיף רשומה לדף של הייבוא והייצוא האחרונים. אם הפעולה נכשלת, מוצגת הודעת שגיאה בדף.
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'
ייצוא מחותמת זמן של PITR
אפשר לייצא את מסד הנתונים אל Cloud Storage מתוך נתוני PITR.
אפשר לייצא נתונים מ-PITR עם חותמת זמן של דקה שלמה ב-7 הימים האחרונים, אבל לא לפני earliestVersionTime
. אם הנתונים כבר לא קיימים בחותמת הזמן שצוינה, פעולת הייצוא תיכשל.
פעולת הייצוא של PITR תומכת בכל המסננים, כולל ייצוא של כל המסמכים וייצוא של אוספים ספציפיים.
לפני שמייצאים נתונים של PITR, חשוב לשים לב לנקודות הבאות:
- צריך לציין את חותמת הזמן בפורמט RFC 3339. לדוגמה,
2023-05-26T10:20:00.00Z
. - חשוב לוודא שחותמת הזמן שציינת היא חותמת זמן של דקה שלמה
במהלך שבעת הימים האחרונים, אבל לא לפני
earliestVersionTime
. אם הנתונים כבר לא קיימים בחותמת הזמן שצוינה, נוצרת שגיאה. - לא נחייב אתכם על ייצוא PITR שנכשל.
המסוף
-
נכנסים לדף Databases במסוף Google Cloud.
כניסה לדף Databases - בוחרים מסד נתונים מתוך רשימת מסדי הנתונים.
- בתפריט הניווט, לוחצים על Import/Export (ייבוא/ייצוא).
- לוחצים על ייצוא.
- מגדירים את מקור הייצוא כך שייצא את כל מסד הנתונים או רק אוספים ספציפיים.
בקטע Choose the state of your database to export (בחירת מצב מסד הנתונים לייצוא), בוחרים באפשרות Export from an earlier point in time (ייצוא מנקודת זמן מוקדמת יותר).
בחירת זמן צילום מסך לשימוש בייצוא
- בקטע יעד, מזינים את השם של Cloud Storageקטגוריה או לוחצים על הלחצן עיון כדי לבחור קטגוריה.
-
לוחצים על ייצוא.
המסוף חוזר לדף Import/Export. אם הפעולה מתחילה בהצלחה, הדף מוסיף רשומה לדף של הייבוא והייצוא האחרונים. אם הפעולה נכשלת, מוצגת הודעת שגיאה בדף.
gcloud
אפשר לייצא את מסד הנתונים אל Cloud Storage מנתוני PITR באמצעות הפקודה 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 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
נכנסים לדף Databases במסוף Google Cloud.
בוחרים את מסד הנתונים הרצוי מרשימת מסדי הנתונים.
בתפריט הניווט, לוחצים על Import/Export (ייבוא/ייצוא).
לוחצים על ייבוא.
בשדה שם הקובץ, מזינים את שם הקובץ של קובץ
.overall_export_metadata
מפעולת ייצוא שהושלמה. אפשר להשתמש בלחצן עיון כדי לבחור את הקובץ.לוחצים על ייבוא.
המסוף חוזר לדף Import/Export. אם הפעולה מתחילה בהצלחה, הדף מוסיף רשומה לדף של הייבוא והייצוא האחרונים. אם הפעולה נכשלת, מוצגת הודעת שגיאה בדף.
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_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
אפשר לראות רשימה של פעולות ייצוא וייבוא מהזמן האחרון בדף Import/Export במסוף Google Cloud.
נכנסים לדף Databases במסוף Google Cloud.
בוחרים את מסד הנתונים הרצוי מרשימת מסדי הנתונים.
בתפריט הניווט, לוחצים על Import/Export (ייבוא/ייצוא).
gcloud
משתמשים בפקודה operations list
כדי לראות את כל פעולות הייצוא והייבוא שפועלות או שהושלמו לאחרונה:
gcloud firestore operations list
בדיקת סטטוס הפעולה
Google Cloud Console
בדף Import/Export במסוף Google Cloud אפשר לראות את הסטטוס של פעולת ייבוא או ייצוא מהזמן האחרון.
נכנסים לדף Databases במסוף Google Cloud.
בוחרים את מסד הנתונים הרצוי מרשימת מסדי הנתונים.
בתפריט הניווט, לוחצים על Import/Export (ייבוא/ייצוא).
gcloud
משתמשים בפקודה operations describe
כדי להציג את הסטטוס של פעולת ייצוא או ייבוא.
gcloud firestore operations describe [OPERATION_NAME]
הערכת משך הזמן לסיום
בקשה לסטטוס של פעולה ממושכת מחזירה את המדדים workEstimated
ו-workCompleted
. כל אחד מהמדדים האלה מוחזר גם כמספר בייטים וגם כמספר ישויות:
workEstimated
מציג את המספר הכולל המשוער של בייטים ומסמכים שהפעולה תעבד. Cloud Firestore עשוי להשמיט את המדד הזה אם לא ניתן להעריך אותו.
workCompleted
מציג את מספר הבייטים והמסמכים שעובדו עד עכשיו. אחרי שהפעולה מסתיימת, הערך שמוצג הוא המספר הכולל של הבייטים והמסמכים שעברו עיבוד בפועל, ויכול להיות שהוא גדול מהערך שלworkEstimated
.
כדי לקבל אומדן גס של ההתקדמות, מחלקים את workCompleted
ב-workEstimated
. יכול להיות שההערכה הזו לא מדויקת, כי היא מבוססת על איסוף נתונים סטטיסטיים עם עיכוב.
ביטול פעולה
Google Cloud Console
אפשר לבטל פעולת ייצוא או ייבוא שפועלת בדף Import/Export במסוף Google Cloud.
נכנסים לדף Databases במסוף Google Cloud.
בוחרים את מסד הנתונים הרצוי מרשימת מסדי הנתונים.
בתפריט הניווט, לוחצים על Import/Export (ייבוא/ייצוא).
בטבלה ייבוא וייצוא אחרונים, פעולות שמופעלות כרגע כוללות לחצן ביטול בעמודה הושלם. כדי להפסיק את הפעולה, לוחצים על הלחצן ביטול. הלחצן משתנה להודעה מתבצע ביטול ואז לבוטל כשהפעולה מפסיקה לחלוטין.
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 Billing reports, אפשר להשתמש בתווית הזו כדי לראות את העלויות שקשורות לפעולות ייבוא וייצוא:
ייצוא אל 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 משותף ליותר משירות אחד.
הצגת חשבון ההרשאה
בדף Import/Export במסוף Google Cloud אפשר לראות באיזה חשבון נעשה שימוש בפעולות הייבוא והייצוא כדי לאשר בקשות. אפשר גם לבדוק אם מסד הנתונים כבר משתמש בסוכן השירות Cloud Firestore.
-
נכנסים לדף Databases במסוף Google Cloud.
- בוחרים את מסד הנתונים הרצוי מרשימת מסדי הנתונים.
-
בתפריט הניווט, לוחצים על Import/Export (ייבוא/ייצוא).
- החשבון המורשה מוצג ליד התווית הפעלת משימות ייבוא/ייצוא בתור.
אם הפרויקט שלכם לא משתמש בסוכן השירות Cloud Firestore, אתם יכולים להעביר אותו לסוכן השירות Cloud Firestore באחת מהשיטות הבאות:
- העברת פרויקט על ידי בדיקה ועדכון של הרשאות הקטגוריה Cloud Storage (מומלץ).
- מוסיפים אילוץ מדיניות ברמת הארגון שמשפיע על כל הפרויקטים בארגון.
הטכניקה הראשונה עדיפה כי היא מגבילה את היקף ההשפעה לפרויקט Cloud Firestore אחד. השיטה השנייה פחות מומלצת כי היא לא מעבירה את ההרשאות הקיימות של דלי Cloud Storage. עם זאת, הוא מציע תאימות לאבטחה ברמת הארגון.
העברה על ידי בדיקה ועדכון של הרשאות בקטגוריית Cloud Storage
תהליך ההעברה כולל שני שלבים:
- מעדכנים את ההרשאות בקטגוריית Cloud Storage. פרטים נוספים מופיעים בקטע הבא.
- מאשרים את ההעברה לסוכן השירות Cloud Firestore.
הרשאות של סוכן שירות לקטגוריה
לכל פעולת ייצוא או ייבוא שמשתמשת ב-Cloud Storage bucket בפרויקט אחר, צריך לתת לסוכן השירות Cloud Firestore הרשאות ל-bucket הזה. לדוגמה, פעולות שמעבירות נתונים לפרויקט אחר צריכות לגשת לקטגוריה באותו פרויקט אחר. אחרת, הפעולות האלה ייכשלו אחרי המעבר ל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, צריך לבצע את השלבים הבאים. אחרי שההעברה מסתיימת, אי אפשר לבטל אותה.
-
נכנסים לדף Databases במסוף Google Cloud.
- בוחרים את מסד הנתונים הרצוי מרשימת מסדי הנתונים.
-
בתפריט הניווט, לוחצים על Import/Export (ייבוא/ייצוא).
-
אם הפרויקט שלכם עדיין לא הועבר לסוכן השירות Cloud Firestore, יופיע באנר עם תיאור של ההעברה ולחצן Check Bucket Status (בדיקת הסטטוס של קטגוריית היעד). בשלב הבא נסביר איך לזהות ולתקן שגיאות אפשריות שקשורות להרשאות.
לוחצים על Check Bucket Status (בדיקת סטטוס מאגר).
יופיע תפריט עם האפשרות להשלים את ההעברה ורשימה של קטגוריות Cloud Storage. יכול להיות שיחלפו כמה דקות עד שהרשימה תיטען.
הרשימה הזו כוללת מאגרי מידע שהיו בשימוש לאחרונה בפעולות ייבוא וייצוא, אבל כרגע לא מוקצות להם הרשאות קריאה וכתיבה לסוכן השירות Cloud Firestore.
- רושמים את שם חשבון המשתמש של סוכן השירות של הפרויקט Cloud Firestore. שם סוכן השירות מופיע מתחת לתווית Service agent to give access to.
-
לכל קטגוריה ברשימה שבה תשתמשו בעתיד לפעולות ייבוא או ייצוא, צריך לבצע את השלבים הבאים:
-
בשורה של הדלי בטבלה, לוחצים על Fix (תיקון). ייפתח דף ההרשאות של מאגר הנתונים בכרטיסייה חדשה.
- לוחצים על הוספה.
- בשדה New principals, מזינים את השם של סוכן השירות Cloud Firestore.
- בשדה Select a role בוחרים באפשרות Service Agents > Firestore Service Agent.
- לוחצים על שמירה.
- חוזרים לכרטיסייה עם הדף Cloud Firestore Import/Export.
- חוזרים על השלבים האלה בשביל דליים אחרים ברשימה. חשוב לעיין בכל הדפים של הרשימה.
-
-
לוחצים על Migrate to Firestore Service Agent (מעבר לסוכן שירות של Firestore). אם עדיין יש לכם מאגרי מידע שבהם בדיקות ההרשאות נכשלו, אתם צריכים לאשר את ההעברה על ידי לחיצה על העברה.
תוצג התראה כשההעברה תסתיים. אי אפשר לבטל את ההעברה אחרי שהיא התחילה.
הצגת סטטוס ההעברה
כדי לאמת את סטטוס ההעברה של הפרויקט:
-
נכנסים לדף Databases במסוף Google Cloud.
- בוחרים את מסד הנתונים הרצוי מרשימת מסדי הנתונים.
-
בתפריט הניווט, לוחצים על Import/Export (ייבוא/ייצוא).
-
מחפשים את העיקרון לצד התווית Import/Export jobs run as (הפעלת משימות ייבוא/ייצוא).
אם העיקרון הוא
service-PROJECT_NUMBER@gcp-sa-firestore.iam.gserviceaccount.com
, הפרויקט כבר הועבר לסוכן השירות Cloud Firestore. אי אפשר לבטל את המיגרציה.אם הפרויקט לא הועבר, יופיע באנר בחלק העליון של הדף עם הלחצן Check Bucket Status (בדיקת סטטוס המאגר). כדי להשלים את המיגרציה, אפשר לעיין במאמר בנושא מיגרציה לסוכן השירות של Firestore.
הוספת אילוץ מדיניות ברמת הארגון
-
צריך להגדיר את ההגבלה הבאה במדיניות של הארגון:
Require Firestore Service Agent for import/export (
firestore.requireP4SAforImportExport
).בגלל המגבלה הזו, פעולות ייבוא וייצוא צריכות להשתמש בסוכן השירות Cloud Firestore כדי לאשר בקשות. הוראות להגדרת האילוץ הזה מופיעות במאמר יצירה וניהול של מדיניות הארגון .
החלת האילוץ הזה של מדיניות ארגונית לא מעניקה באופן אוטומטי את הרשאות הגישה המתאימות לדלי Cloud Storage לסוכן השירות Cloud Firestore.
אם האילוץ יוצר שגיאות הרשאה בתהליכי עבודה של ייבוא או ייצוא, אפשר להשבית אותו כדי לחזור לשימוש בחשבון שירות שמוגדר כברירת מחדל. אחרי בדיקה ועדכון של הרשאות הגישה לדלי Cloud Storage, אפשר להפעיל מחדש את האילוץ.