ייצוא וייבוא של קבצים במקביל

בדף הזה מוסבר איך לייצא ולייבא קבצים למכונות Cloud SQL במקביל.

לפני שמתחילים

לפני שמתחילים פעולת ייצוא או ייבוא:

  • מוודאים שיש מספיק מקום פנוי במסד הנתונים.
  • פעולות הייצוא והייבוא משתמשות במשאבים של מסד הנתונים, אבל הן לא מפריעות לפעולות הרגילות של מסד הנתונים, אלא אם המכונה לא הוקצתה כראוי.

  • פועלים לפי השיטות המומלצות לייצוא ולייבוא של נתונים.
  • אחרי שמסיימים את פעולת הייבוא, מאמתים את התוצאות.

ייצוא נתונים מ-Cloud SQL ל-PostgreSQL לכמה קבצים במקביל

בקטעים הבאים מוסבר איך לייצא נתונים מ-Cloud SQL ל-PostgreSQL לכמה קבצים במקביל.

התפקידים וההרשאות שנדרשים כדי לייצא נתונים מ-Cloud SQL ל-PostgreSQL לכמה קבצים במקביל

כדי לייצא נתונים מ-Cloud SQL ל-Cloud Storage, למשתמש שמפעיל את הייצוא צריך להיות אחד מהתפקידים הבאים:

בנוסף, לחשבון השירות של מכונת Cloud SQL צריך להיות אחד מהתפקידים הבאים:

  • התפקיד storage.objectAdmin בניהול זהויות והרשאות גישה (IAM)
  • תפקיד בהתאמה אישית, כולל ההרשאות הבאות:
    • storage.objects.create
    • ‫storage.objects.list (לייצוא קבצים במקביל בלבד)
    • ‫storage.objects.delete (לייצוא קבצים במקביל בלבד)

לעזרה בנושא תפקידי IAM, קראו את המאמר ניהול זהויות והרשאות גישה.

ייצוא נתונים לכמה קבצים במקביל

אתם יכולים לייצא נתונים במקביל מכמה קבצים שנמצאים ב-Cloud SQL אל Cloud Storage. הפונקציה gcloud sql export עם הדגל -parallel משתמשת בכלי pg_dump עם האפשרות --jobs כדי לייצא מכמה קבצים.

אם אתם מתכננים לייבא את הנתונים ל-Cloud SQL, פעלו לפי ההוראות במאמר ייצוא נתונים משרת מסד נתונים חיצוני כדי שהקבצים יהיו בפורמט שמתאים ל-Cloud SQL.

קבצים שמיוצאים במקביל מ-Cloud SQL נדחסים פעמיים. אפשר לייבא את הקבצים האלה בחזרה ל-Cloud SQL בלי שינויים, אבל אם רוצים לייבא את הקבצים למסד נתונים אחר באמצעות כלי השירות pg_dump בקוד פתוח, צריך קודם לבטל את הדחיסה של הקבצים.

gcloud

כדי לייצא נתונים מ-Cloud SQL לכמה קבצים במקביל:

  1. יצירת קטגוריה של Cloud Storage.
  2. כדי למצוא את חשבון השירות של מכונת Cloud SQL שממנה אתם מייצאים קבצים, משתמשים בפקודה
    gcloud sql instances describe.
    gcloud sql instances describe INSTANCE_NAME
  3. מחליפים את INSTANCE_NAME בשם של מכונת Cloud SQL.

    בפלט, מחפשים את הערך שמשויך לשדה serviceAccountEmailAddress.

  4. כדי להקצות לחשבון השירות את תפקיד ה-IAM storage.objectAdmin, משתמשים בפקודה gcloud storage buckets add-iam-policy-binding. במאמר שימוש בהרשאות IAM מוסבר איך מגדירים הרשאות IAM.
  5. כדי לייצא נתונים מ-Cloud SQL לכמה קבצים במקביל, משתמשים בפקודה gcloud sql export sql:
    gcloud sql export sql INSTANCE_NAME gs://BUCKET_NAME/BUCKET_PATH/FOLDER_NAME \
    --offload \
    --parallel \
    --threads=THREAD_NUMBER \
    --database=DATABASE_NAME \
    --table=TABLE_EXPRESSION
    

    מחליפים את הפרטים הבאים:

    • ‫INSTANCE_NAME: השם של מכונת Cloud SQL שממנה מייצאים קבצים במקביל.
    • ‫BUCKET_NAME: השם של הקטגוריה ב-Cloud Storage.
    • ‫BUCKET_PATH: הנתיב לקטגוריה שבה מאוחסנים קובצי הייצוא.
    • ‫FOLDER_NAME: התיקייה שבה מאוחסנים קובצי הייצוא.
    • ‫THREAD_NUMBER: מספר השרשורים שבהם Cloud SQL משתמש כדי לייצא קבצים במקביל. לדוגמה, אם רוצים לייצא שלושה קבצים בו-זמנית, מציינים 3 כערך של הפרמטר הזה.
    • ‫DATABASE_NAME (אופציונלי): השם של מסדי הנתונים בתוך המכונה של Cloud SQL שממנה מתבצע הייצוא. אם לא תציינו מסד נתונים, Cloud SQL ייצא את כל מסדי הנתונים של המשתמשים מהמכונה. מידע נוסף זמין במאמר ייצוא של מכונה שלמה.
    • ‫TABLE_EXPRESSION: הטבלאות שרוצים לייצא ממסד הנתונים שצוין.

    בסיום הייצוא, הקבצים אמורים להופיע בתיקייה בקטגוריה של Cloud Storage בפורמט הספרייה pg_dump.

  6. אם אתם לא צריכים את תפקיד ה-IAM שהגדרתם בקטע התפקידים וההרשאות הנדרשים לייצוא מ-Cloud SQL ל-PostgreSQL, אתם יכולים לבטל אותו.

REST v1

כדי לייצא נתונים מ-Cloud SQL לכמה קבצים במקביל:

  1. יוצרים קטגוריה של Cloud Storage:
    gcloud storage buckets create gs://BUCKET_NAME --project=PROJECT_NAME --location=LOCATION_NAME
    
    מבצעים את ההחלפות הבאות:
    • ‫BUCKET_NAME: השם של הקטגוריה, בכפוף לדרישות למתן שמות. לדוגמה, my-bucket.
    • ‫PROJECT_NAME: שם הפרויקט ב- Cloud de Confiance by S3NS שמכיל את הקטגוריה של Cloud Storage שאתם יוצרים.
    • ‫LOCATION_NAME: המיקום של הקטגוריה שבה רוצים לאחסן את הקבצים שמייצאים. לדוגמה, us-east1.
  2. מקצים למכונה את storage.objectAdmin תפקיד ה-IAM לקטגוריה. במאמר שימוש בהרשאות IAM מוסבר איך מגדירים הרשאות IAM.
  3. ייצוא נתונים מ-Cloud SQL לכמה קבצים במקביל:

    לפני שמשתמשים בנתוני הבקשה, צריך להחליף את הנתונים הבאים:

    • ‫PROJECT_NAME: השם של הפרויקט ב- Cloud de Confiance by S3NS שמכיל את הקטגוריה שיצרתם ב-Cloud Storage.
    • ‫INSTANCE_NAME: השם של מכונת Cloud SQL שממנה מייצאים קבצים במקביל.
    • ‫BUCKET_NAME: השם של הקטגוריה ב-Cloud Storage.
    • ‫BUCKET_PATH: הנתיב לקטגוריה שבה מאוחסנים קובצי הייצוא.
    • ‫FOLDER_NAME: התיקייה שבה מאוחסנים קובצי הייצוא.
    • ‫DATABASE_NAME: שם מסד הנתונים בתוך המכונה של Cloud SQL שממנה מתבצע הייצוא. אם רוצים לייצא את כל מסדי הנתונים של המשתמשים מהמכונה, צריך להסיר את השדה הזה מגוף הבקשה.
    • ‫THREAD_NUMBER: מספר השרשורים שבהם Cloud SQL משתמש כדי לייצא קבצים במקביל. לדוגמה, אם רוצים לייצא שלושה קבצים בו-זמנית, מציינים 3 כערך של הפרמטר הזה.

    ה-method של ה-HTTP וכתובת ה-URL:

    POST https://sqladmin.googleapis.com/v1/projects/PROJECT_NAME/instances/INSTANCE_NAME/export

    תוכן בקשת JSON:

    {
     "exportContext":
       {
          "fileType": "SQL",
          "uri": "gs://BUCKET_NAME/BUCKET_PATH/FOLDER_NAME",
          "databases": ["DATABASE_NAME"],
          "offload": [TRUE|FALSE],
          "sqlExportOptions": {
            "parallel": [TRUE|FALSE],
            "threads": [THREAD_NUMBER]
           }
       }
    }
    

    כדי לשלוח את הבקשה צריך להרחיב אחת מהאפשרויות הבאות:

    אתם אמורים לקבל תגובת JSON שדומה לזו:

  4. בסיום הייצוא, הקבצים אמורים להופיע בתיקייה בקטגוריה של Cloud Storage בפורמט הספרייה pg_dump.

  5. אם אתם לא צריכים את תפקיד ה-IAM שהגדרתם בקטע התפקידים וההרשאות הנדרשים לייצוא מ-Cloud SQL ל-PostgreSQL, אתם יכולים לבטל אותו.
הרשימה המלאה של הפרמטרים לבקשה מופיעה בדף Cloud SQL Admin API.

‫REST v1beta4

כדי לייצא נתונים מ-Cloud SQL לכמה קבצים במקביל:

  1. יוצרים קטגוריה של Cloud Storage:
    gcloud storage buckets create gs://BUCKET_NAME --project=PROJECT_NAME --location=LOCATION_NAME
    מבצעים את ההחלפות הבאות:
    • ‫BUCKET_NAME: השם של הקטגוריה, בכפוף לדרישות למתן שמות. לדוגמה, my-bucket.
    • ‫PROJECT_NAME: שם הפרויקט ב- Cloud de Confiance by S3NS שמכיל את הקטגוריה של Cloud Storage שאתם יוצרים.
    • ‫LOCATION_NAME: המיקום של הקטגוריה שבה רוצים לאחסן את הקבצים שמייצאים. לדוגמה, us-east1.
  2. מקצים למכונה את storage.objectAdmin תפקיד ה-IAM לקטגוריה. במאמר שימוש בהרשאות IAM מוסבר איך מגדירים הרשאות IAM.
  3. ייצוא נתונים מ-Cloud SQL לכמה קבצים במקביל:

    לפני שמשתמשים בנתוני הבקשה, צריך להחליף את הנתונים הבאים:

    • ‫PROJECT_NAME: השם של הפרויקט ב- Cloud de Confiance by S3NS שמכיל את הקטגוריה שיצרתם ב-Cloud Storage.
    • ‫INSTANCE_NAME: השם של מכונת Cloud SQL שממנה מייצאים קבצים במקביל.
    • ‫BUCKET_NAME: השם של הקטגוריה ב-Cloud Storage.
    • ‫BUCKET_PATH: הנתיב לקטגוריה שבה מאוחסנים קובצי הייצוא.
    • ‫FOLDER_NAME: התיקייה שבה מאוחסנים קובצי הייצוא.
    • ‫DATABASE_NAME: שם מסד הנתונים בתוך המכונה של Cloud SQL שממנה מתבצע הייצוא. אם רוצים לייצא את כל מסדי הנתונים של המשתמשים מהמכונה, צריך להסיר את השדה הזה מגוף הבקשה.
    • ‫THREAD_NUMBER: מספר השרשורים שבהם Cloud SQL משתמש כדי לייצא קבצים במקביל. לדוגמה, אם רוצים לייצא שלושה קבצים בו-זמנית, מציינים 3 כערך של הפרמטר הזה.

    ה-method של ה-HTTP וכתובת ה-URL:

    POST https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_NAME/instances/INSTANCE_NAME/export

    תוכן בקשת JSON:

    {
     "exportContext":
       {
          "fileType": "SQL",
          "uri": "gs://BUCKET_NAME/BUCKET_PATH/FOLDER_NAME",
          "databases": ["DATABASE_NAME"],
          "offload": [TRUE|FALSE],
          "sqlExportOptions": {
            "parallel": [TRUE|FALSE],
            "threads": [THREAD_NUMBER]
           }
       }
    }
    

    כדי לשלוח את הבקשה צריך להרחיב אחת מהאפשרויות הבאות:

    אתם אמורים לקבל תגובת JSON שדומה לזו:

  4. בסיום הייצוא, הקבצים אמורים להופיע בתיקייה בקטגוריה של Cloud Storage בפורמט הספרייה pg_dump.

  5. אם אתם לא צריכים את תפקיד ה-IAM שהגדרתם בקטע התפקידים וההרשאות הנדרשים לייצוא מ-Cloud SQL ל-PostgreSQL, אתם יכולים לבטל אותו.
הרשימה המלאה של הפרמטרים לבקשה מופיעה בדף Cloud SQL Admin API.

ייצוא וייבוא של מכונה שלמה

אפשר לייצא או לייבא את כל מסדי הנתונים של המשתמשים במכונה שלמה באמצעות ייצוא מקביל בפורמט של ספרייה.

כדי לייצא או לייבא מכונה שלמה, משתמשים באותן פקודות שמופיעות בקטעים ייצוא במקביל וייבוא במקביל, ומסירים את השדה databases או database בהתאמה. אם לא תציינו מסד נתונים, Cloud SQL יריץ ייצוא או ייבוא מקבילים לכל מסדי הנתונים של המשתמשים במכונה. המספר הזה לא כולל מסדי נתונים של המערכת ומסדי נתונים של Cloud SQL שמשמשים לניהול פעולות פנימיות.

בייצוא מקביל בפורמט של ספרייה ל-Cloud Storage, אחרי שהייצוא מסתיים, הנתונים שמשויכים לכל מסד נתונים נשמרים בספריית משנה שנקראת על שם כל מסד נתונים, בדומה לדוגמה הבאה:

gs://example-bucket/test-folder/
    |---- postgres/
    |    |---- 3929.dat.gz (table data file)
    |    |---- toc.dat (metadata file)
    |
    |---- second_database/
    |    |---- 3930.dat.gz
    |    |---- 3931.dat.gz
    |    |---- toc.dat

אם רוצים להריץ ייבוא מקביל של מכונה שלמה, והקבצים של המכונה נוצרו מחוץ ל-Cloud SQL, צריך להשתמש במבנה הזה של ספריית המשנה כדי שהפעולה תסתיים בהצלחה.

כשמזוהה המבנה המלא של ה-dump של המכונה, המערכת מתעלמת ממסד הנתונים לייבוא שצוין ב-API. הפעולה מזהה את כל המבנה של המכונה משם הספרייה.

אי אפשר לייצא או לייבא מכונה שלמה בפורמטים אחרים של קבצים.

אי אפשר לייצא או לייבא מכונה שלמה כקובץ SQL או כקובץ CSV יחיד.

ייבוא נתונים ממספר קבצים במקביל ל-Cloud SQL ל-PostgreSQL

בקטעים הבאים מוסבר איך לייבא נתונים ממספר קבצים במקביל ל-Cloud SQL ל-PostgreSQL.

התפקידים וההרשאות שנדרשים כדי לייבא נתונים ממספר קבצים במקביל ל-Cloud SQL ל-PostgreSQL

כדי לייבא נתונים מ-Cloud Storage ל-Cloud SQL, המשתמש שמתחיל את הייבוא צריך להיות בעל אחד מהתפקידים הבאים:

בנוסף, לחשבון השירות של מכונת Cloud SQL צריך להיות אחד מהתפקידים הבאים:

  • תפקיד ה-IAM‏ storage.objectAdmin
  • תפקיד בהתאמה אישית, כולל ההרשאות הבאות:
    • storage.objects.get
    • ‫storage.objects.list (לייבוא קבצים במקביל בלבד)

לעזרה בנושא תפקידי IAM, קראו את המאמר ניהול זהויות והרשאות גישה.

ייבוא נתונים ל-Cloud SQL ל-PostgreSQL

אתם יכולים לייבא נתונים במקביל ממספר קבצים שנמצאים ב-Cloud Storage למסד הנתונים שלכם. כדי לעשות את זה, משתמשים בכלי pg_restore עם האפשרות --jobs.

gcloud

כדי לייבא נתונים מכמה קבצים במקביל ל-Cloud SQL, מבצעים את השלבים הבאים:

  1. יצירת קטגוריה של Cloud Storage
  2. מעלים את הקבצים לקטגוריה.

    לקבלת עזרה בהעלאת קבצים לקטגוריות, ראו העלאת אובייקטים מקבצים.

  3. כדי למצוא את חשבון השירות של מכונת Cloud SQL שאליה מייבאים קבצים, משתמשים בפקודה
    gcloud sql instances describe.
    gcloud sql instances describe INSTANCE_NAME
  4. מחליפים את INSTANCE_NAME בשם של מכונת Cloud SQL.

    בפלט, מחפשים את הערך שמשויך לשדה serviceAccountEmailAddress.

  5. כדי להקצות לחשבון השירות את תפקיד ה-IAM storage.objectAdmin, משתמשים בכלי gcloud storage buckets add-iam-policy-binding. במאמר שימוש בהרשאות IAM מוסבר איך מגדירים הרשאות IAM.
  6. כדי לייבא נתונים מכמה קבצים במקביל ל-Cloud SQL, משתמשים בפקודה gcloud sql import sql:
    gcloud sql import sql INSTANCE_NAME gs://BUCKET_NAME/BUCKET_PATH/FOLDER_NAME \
    --parallel \
    --threads=THREAD_NUMBER \
    --database=DATABASE_NAME
    

    מחליפים את הפרטים הבאים:

    • ‫INSTANCE_NAME: השם של מכונת Cloud SQL שאליה מייבאים קבצים במקביל.
    • ‫BUCKET_NAME: השם של הקטגוריה ב-Cloud Storage.
    • ‫BUCKET_PATH: הנתיב לקטגוריה שבה מאוחסנים קובצי הייבוא.
    • ‫FOLDER_NAME: התיקייה שבה מאוחסנים קובצי הייבוא.
    • ‫THREAD_NUMBER: מספר השרשורים שבהם Cloud SQL משתמש כדי לייבא קבצים במקביל. לדוגמה, אם רוצים לייבא שלושה קבצים בו-זמנית, מציינים 3 כערך של הפרמטר הזה.
    • ‫DATABASE_NAME: השם של מסד הנתונים בתוך המכונה של Cloud SQL שממנה מתבצע הייבוא. צריך לציין רק מסד נתונים אחד.

    אם הפקודה מחזירה שגיאה כמו ERROR_RDBMS, צריך לבדוק את ההרשאות. השגיאה הזו נגרמת בדרך כלל בגלל בעיות בהרשאות.

  7. אם אתם לא צריכים את ההרשאות ב-IAM שהגדרתם בקטע התפקידים וההרשאות שנדרשים לייבוא ל-Cloud SQL ל-PostgreSQL, אתם יכולים להשתמש ב-gcloud storage buckets remove-iam-policy-binding כדי להסיר אותן.

REST v1

כדי לייבא נתונים מכמה קבצים במקביל ל-Cloud SQL, מבצעים את השלבים הבאים:

  1. יוצרים קטגוריה של Cloud Storage:
    gcloud storage buckets create gs://BUCKET_NAME --project=PROJECT_NAME --location=LOCATION_NAME
    
    מבצעים את ההחלפות הבאות:
    • ‫BUCKET_NAME: השם של הקטגוריה, בכפוף לדרישות למתן שמות. לדוגמה, my-bucket.
    • ‫PROJECT_NAME: שם הפרויקט ב- Cloud de Confiance by S3NS שמכיל את הקטגוריה של Cloud Storage שאתם יוצרים.
    • ‫LOCATION_NAME: המיקום של הקטגוריה שבה רוצים לאחסן את הקבצים שמייבאים. לדוגמה, us-east1.
  2. מעלים את הקבצים לקטגוריה.

    לקבלת עזרה בהעלאת קבצים לקטגוריות, ראו העלאת אובייקטים מקבצים.

  3. נותנים למכונה את תפקיד ה-IAM storage.objectAdmin לקטגוריה. לקבלת עזרה בהגדרת הרשאות IAM, קראו את המאמר שימוש בהרשאות IAM.
  4. ייבוא נתונים ממספר קבצים במקביל ל-Cloud SQL:

    לפני שמשתמשים בנתוני הבקשה, צריך להחליף את הנתונים הבאים:

    • ‫PROJECT_NAME: השם של הפרויקט ב- Cloud de Confiance by S3NS שמכיל את הקטגוריה שיצרתם ב-Cloud Storage.
    • ‫INSTANCE_NAME: השם של מכונת Cloud SQL שאליה מייבאים קבצים במקביל.
    • ‫BUCKET_NAME: השם של הקטגוריה ב-Cloud Storage.
    • ‫BUCKET_PATH: הנתיב לקטגוריה שבה מאוחסנים קובצי הייבוא.
    • ‫FOLDER_NAME: התיקייה שבה מאוחסנים קובצי הייבוא.
    • ‫DATABASE_NAME: השם של מסד הנתונים בתוך המכונה של Cloud SQL שממנה מתבצע הייבוא. צריך לציין רק מסד נתונים אחד.
    • ‫THREAD_NUMBER: מספר השרשורים שבהם Cloud SQL משתמש כדי לייבא קבצים במקביל. לדוגמה, אם רוצים לייבא שלושה קבצים בו-זמנית, מציינים 3 כערך של הפרמטר הזה.

    ה-method של ה-HTTP וכתובת ה-URL:

    POST https://sqladmin.googleapis.com/v1/projects/PROJECT_NAME/instances/INSTANCE_NAME/import

    תוכן בקשת JSON:

    
    {
      "importContext":
        {
           "fileType": "SQL",
           "uri": "gs://BUCKET_NAME/BUCKET_PATH/FOLDER_NAME",
           "databases": ["DATABASE_NAME"],
           "offload": [TRUE|FALSE],
           "sqlImportOptions": {
             "parallel": [TRUE|FALSE],
             "clean": [TRUE|FALSE],
             "ifExists": [TRUE|FALSE],
             "threads": [THREAD_NUMBER]
            }
        }
     }
    

    כדי לשלוח את הבקשה צריך להרחיב אחת מהאפשרויות הבאות:

    אתם אמורים לקבל תגובת JSON שדומה לזו:

    כדי להשתמש במשתמש אחר לייבוא, צריך לציין את המאפיין importContext.importUser.

    הרשימה המלאה של הפרמטרים לבקשה מופיעה בדף Cloud SQL Admin API.
  5. אם אתם לא צריכים את ההרשאות ב-IAM שהגדרתם בקטע התפקידים וההרשאות שנדרשים לייבוא ל-Cloud SQL ל-PostgreSQL, אתם יכולים להשתמש ב-gcloud storage buckets remove-iam-policy-binding כדי להסיר אותן.

‫REST v1beta4

כדי לייבא נתונים מכמה קבצים במקביל ל-Cloud SQL, מבצעים את השלבים הבאים:

  1. יוצרים קטגוריה של Cloud Storage:
    gcloud storage buckets create gs://BUCKET_NAME --project=PROJECT_NAME --location=LOCATION_NAME
    
    מבצעים את ההחלפות הבאות:
    • ‫BUCKET_NAME: השם של הקטגוריה, בכפוף לדרישות למתן שמות. לדוגמה, my-bucket.
    • ‫PROJECT_NAME: שם הפרויקט ב- Cloud de Confiance by S3NS שמכיל את הקטגוריה של Cloud Storage שאתם יוצרים.
    • ‫LOCATION_NAME: המיקום של הקטגוריה שבה רוצים לאחסן את הקבצים שמייבאים. לדוגמה, us-east1.
  2. מעלים את הקבצים לקטגוריה.

    לקבלת עזרה בהעלאת קבצים לקטגוריות, ראו העלאת אובייקטים מקבצים.

  3. נותנים למכונה את תפקיד ה-IAM storage.objectAdmin לקטגוריה. לקבלת עזרה בהגדרת הרשאות IAM, קראו את המאמר שימוש בהרשאות IAM.
  4. ייבוא נתונים ממספר קבצים במקביל ל-Cloud SQL:

    לפני שמשתמשים בנתוני הבקשה, צריך להחליף את הנתונים הבאים:

    • ‫PROJECT_NAME: השם של הפרויקט ב- Cloud de Confiance by S3NS שמכיל את הקטגוריה שיצרתם ב-Cloud Storage.
    • ‫INSTANCE_NAME: השם של מכונת Cloud SQL שממנה מייבאים קבצים במקביל.
    • ‫BUCKET_NAME: השם של הקטגוריה ב-Cloud Storage.
    • ‫BUCKET_PATH: הנתיב לקטגוריה שבה מאוחסנים קובצי הייבוא.
    • ‫FOLDER_NAME: התיקייה שבה מאוחסנים קובצי הייבוא.
    • ‫DATABASE_NAME: השם של מסד הנתונים בתוך המכונה של Cloud SQL שממנה מתבצע הייבוא. צריך לציין רק מסד נתונים אחד.
    • ‫THREAD_NUMBER: מספר השרשורים שבהם Cloud SQL משתמש כדי לייבא קבצים במקביל. לדוגמה, אם רוצים לייבא שלושה קבצים בו-זמנית, מציינים 3 כערך של הפרמטר הזה.

    ה-method של ה-HTTP וכתובת ה-URL:

    POST https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_NAME/instances/INSTANCE_NAME/import

    תוכן בקשת JSON:

    
     {
       "importContext":
         {
            "fileType": "SQL",
            "uri": "gs://BUCKET_NAME/BUCKET_PATH/FOLDER_NAME",
            "databases": ["DATABASE_NAME"],
            "offload": [TRUE|FALSE],
            "sqlImportOptions": {
              "parallel": [TRUE|FALSE],
              "clean": [TRUE|FALSE],
              "ifExists": [TRUE|FALSE],
              "threads": [THREAD_NUMBER]
             }
         }
      }
    

    כדי לשלוח את הבקשה צריך להרחיב אחת מהאפשרויות הבאות:

    אתם אמורים לקבל תגובת JSON שדומה לזו:

    כדי להשתמש במשתמש אחר לייבוא, צריך לציין את המאפיין importContext.importUser.

    הרשימה המלאה של הפרמטרים לבקשה מופיעה בדף Cloud SQL Admin API.
  5. אם אתם לא צריכים את ההרשאות ב-IAM שהגדרתם בקטע התפקידים וההרשאות שנדרשים לייבוא ל-Cloud SQL ל-PostgreSQL, אתם יכולים להשתמש ב-gcloud storage buckets remove-iam-policy-binding כדי להסיר אותן.

מגבלות

  • אם תציינו יותר מדי שרשורים כשאתם מייבאים או מייצאים נתונים מכמה קבצים במקביל, יכול להיות שתשתמשו ביותר זיכרון ממה שיש במכונה של Cloud SQL. במקרה כזה, תופיע הודעת שגיאה פנימית. בודקים את השימוש בזיכרון של המכונה ומגדילים את המכונה לפי הצורך. מידע נוסף זמין במאמר מידע על הגדרות המכונה.

  • כשמבצעים ייצוא, אי אפשר להשתמש בפסיקים בשמות של מסדי נתונים או בשמות של טבלאות בשדות databases או tables.

  • חשוב לוודא שיש מספיק מקום בכונן להורדה הראשונית של קובץ ה-dump. אחרת, תופיע השגיאה no space left on disk.

  • אם למכונה יש רק מעבד וירטואלי (vCPU) אחד, אי אפשר לייבא או לייצא כמה קבצים במקביל. מספר המעבדים הווירטואליים של המכונה לא יכול להיות קטן ממספר הליכי המשנה שבהם אתם משתמשים לפעולת הייבוא או הייצוא, ומספר הליכי המשנה חייב להיות לפחות שניים.

  • ייבוא וייצוא מרובי-תהליכים (מקבילים) לא תואמים לייבוא וייצוא עם תהליך יחיד. לדוגמה, קובצי dump שנוצרו על ידי ייצוא עם שרשור יחיד אפשר לייבא רק באמצעות ייבוא עם שרשור יחיד. באופן דומה, קובצי dump שנוצרו על ידי ייצוא מקבילי יכולים להיות מיובאים רק על ידי ייבוא מקבילי.

  • הכלי pg_dump לא יכול לחלק לחלקים טבלאות שאתם מייצאים. לכן, אם יש לכם טבלה אחת גדולה מאוד, היא יכולה להאט את פעולת הייצוא.

המאמרים הבאים