ייצוא וייבוא באמצעות קובצי CSV

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

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

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

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

  • מוודאים שקובץ ה-CSV מכיל את הנתונים הצפויים ושהוא בפורמט הנכון. בקובצי CSV, כל שורה של שדות נתונים צריכה להיות בשורה נפרדת.
  • כדאי לפעול לפי השיטות המומלצות לייצוא ולייבוא נתונים.

ייצוא נתונים מ-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, אפשר לעיין במאמר ניהול זהויות והרשאות גישה.

ייצוא נתונים לקובץ CSV מ-Cloud SQL ל-PostgreSQL

אפשר לייצא את הנתונים בפורמט CSV, שמתאים לשימוש בכלים ובסביבות אחרות. הייצוא מתבצע ברמת מסד הנתונים. במהלך ייצוא של קובץ CSV, אפשר לציין את הסכימות לייצוא. אפשר לייצא את כל הסכימות ברמת מסד הנתונים.

כדי לייצא נתונים ממסד נתונים במכונת Cloud SQL לקובץ CSV בקטגוריה של Cloud Storage:

המסוף

  1. נכנסים לדף Cloud SQL Instances במסוף Google Cloud .

    כניסה לדף Cloud SQL Instances

  2. כדי לפתוח את הדף סקירה כללית של מכונה, לוחצים על שם המכונה.
  3. לוחצים על ייצוא.
  4. בוחרים באפשרות הפחתת עומס ייצוא כדי לאפשר פעולות אחרות בזמן שהייצוא מתבצע.
  5. בקטע מיקום הייצוא ב-Cloud Storage, מוסיפים את השם של הקטגוריה, התיקייה והקובץ שרוצים לייצא, או לוחצים על עיון כדי למצוא או ליצור קטגוריה, תיקייה או קובץ.

    אם לוחצים על עיון:

    1. בקטע מיקום, בוחרים קטגוריה של Cloud Storage או תיקייה לייצוא.
    2. בתיבה שם, מוסיפים שם לקובץ CSV או בוחרים קובץ קיים מהרשימה בקטע מיקום.

      אתם יכולים להשתמש בסיומת הקובץ .gz (הסיומת המלאה תהיה .csv.gz) כדי לדחוס את קובץ הייצוא.

    3. לוחצים על בחירה.
  6. בקטע פורמט, לוחצים על CSV.
  7. בקטע Database for export (מסד נתונים לייצוא), בוחרים את שם מסד הנתונים מהתפריט הנפתח.
  8. בשדה SQL query (שאילתת SQL), מזינים שאילתת SQL כדי לציין את הטבלה שממנה רוצים לייצא את הנתונים.

    לדוגמה, כדי לייצא את כל התוכן של הטבלה entries במסד הנתונים guestbook, מזינים

    SELECT * FROM guestbook.entries;
    השאילתה צריכה לציין טבלה במסד הנתונים שצוין. אי אפשר לייצא מסד נתונים שלם בפורמט CSV.

  9. לוחצים על ייצוא כדי להתחיל את הייצוא.
  10. התיבה Export database? תיפתח עם הודעה שתהליך הייצוא יכול להימשך שעה או יותר במסדי נתונים גדולים. במהלך הייצוא, הפעולה היחידה שאפשר לבצע במופע היא הצגת מידע. אחרי שהייצוא מתחיל, אפשר לבטל את הפעולה. אם זה זמן טוב להתחיל ייצוא, לוחצים על ייצוא. אחרת, לוחצים על ביטול.

gcloud

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

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

  3. מוצאים את חשבון השירות של מכונת Cloud SQL שממנה מייצאים. אפשר לעשות את זה באמצעות הפקודה gcloud sql instances describe. חפשו את השדה serviceAccountEmailAddress בפלט.
    gcloud sql instances describe INSTANCE_NAME
  4. משתמשים ב- gcloud storage buckets add-iam-policy-binding כדי להקצות את תפקיד ה-IAM לחשבון השירות של מכונת Cloud SQL.storage.objectAdmin במאמר שימוש בהרשאות IAM מוסבר איך מגדירים הרשאות IAM.
  5. מייצאים את מסד הנתונים:
    gcloud sql export csv INSTANCE_NAME gs://BUCKET_NAME/FILE_NAME \
    --database=DATABASE_NAME \
    --offload \
    --query=SELECT_QUERY
    

    מידע על השימוש בפקודה export csv מופיע בדף העזרה של הפקודה sql export csv.

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

REST v1

  1. יוצרים קטגוריה לייצוא:
    gcloud storage buckets create gs://BUCKET_NAME --location=LOCATION_NAME --project=PROJECT_NAME
    

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

  2. מספקים למופע את storage.objectAdmin תפקיד ה-IAM של הקטגוריה. במאמר שימוש בהרשאות IAM מוסבר איך מגדירים הרשאות IAM.
  3. מייצאים את מסד הנתונים:

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

    • project-id: מזהה הפרויקט
    • instance-id: מזהה המכונה
    • bucket_name: שם הקטגוריה של Cloud Storage
    • path_to_csv_file: הנתיב לקובץ ה-CSV
    • database_name: השם של מסד נתונים בתוך מכונת Cloud SQL
    • offload: מאפשר ייצוא ללא שרת. מגדירים את הערך true כדי להשתמש בייצוא בלי שרת (serverless).
    • select_query: שאילתת SQL לייצוא (אופציונלי)
    • escape_character: התו שצריך להופיע לפני תו נתונים שצריך להוסיף לו תו בריחה. הערך של הארגומנט הזה צריך להיות תו בקוד ASCII הקסדצימלי. לדוגמה, '22' מייצג מרכאות כפולות. (אופציונלי)
    • quote_character:התו שמקיף ערכים מעמודות עם סוג נתונים של מחרוזת. הערך של הארגומנט הזה צריך להיות תו בקוד ASCII הקסדצימלי. לדוגמה, '22' מייצג מרכאות כפולות. (אופציונלי)
    • fields_terminated_by: התו שמשמש לפיצול ערכי העמודות. הערך של הארגומנט הזה צריך להיות תו בקוד ASCII הקסדצימלי. לדוגמה, '2C' מייצג פסיק. (אופציונלי)
    • lines_terminated_by: התו שמפריד בין רשומות השורות. הערך של הארגומנט הזה צריך להיות תו בקוד ASCII הקסדצימלי. לדוגמה, '0A' מייצג שורה חדשה. (אופציונלי)

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

    POST https://sqladmin.googleapis.com/v1/projects/project-id/instances/instance-id/export

    תוכן בקשת JSON:

    {
     "exportContext":
       {
          "fileType": "CSV",
          "uri": "gs://bucket_name/path_to_csv_file",
          "databases": "database_name",
          "offload": true | false
          "csvExportOptions":
           {
               "selectQuery":"select_query",
               "escapeCharacter":"escape_character",
               "quoteCharacter":"quote_character",
               "fieldsTerminatedBy":"fields_terminated_by",
               "linesTerminatedBy":"lines_terminated_by"
           }
       }
    }
    

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

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

    צריך לציין בדיוק מסד נתונים אחד באמצעות המאפיין databases. אם שאילתת הבחירה מציינת מסד נתונים, הוא צריך להיות זהה.

  4. אם אין לכם צורך לשמור את הרשאות ה-IAM שהגדרתם קודם, אתם יכולים להסיר אותן עכשיו.
רשימה מלאה של הפרמטרים של הבקשה מופיעה בדף instances:export.

REST v1beta4

  1. יוצרים קטגוריה לייצוא:
    gcloud storage buckets create gs://BUCKET_NAME --location=LOCATION_NAME --project=PROJECT_NAME

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

  2. מספקים למופע את storage.objectAdmin תפקיד ה-IAM של הקטגוריה. במאמר שימוש בהרשאות IAM מוסבר איך מגדירים הרשאות IAM.
  3. מייצאים את מסד הנתונים:

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

    • project-id: מזהה הפרויקט
    • instance-id: מזהה המכונה
    • bucket_name: שם הקטגוריה של Cloud Storage
    • path_to_csv_file: הנתיב לקובץ ה-CSV
    • database_name: השם של מסד נתונים בתוך מכונת Cloud SQL
    • offload: מאפשר ייצוא ללא שרת. מגדירים את הערך true כדי להשתמש בייצוא בלי שרת (serverless).
    • select_query: שאילתת SQL לייצוא (אופציונלי)
    • escape_character: התו שצריך להופיע לפני תו נתונים שצריך להוסיף לו תו בריחה. הערך של הארגומנט הזה צריך להיות בפורמט הקסדצימלי של ASCII. לדוגמה, '22' מייצג מרכאות כפולות. (אופציונלי)
    • quote_character: התו שמקיף ערכים מעמודות עם סוג נתונים של מחרוזת. הערך של הארגומנט הזה צריך להיות בפורמט הקסדצימלי של ASCII. לדוגמה, '22' מייצג מרכאות כפולות. (אופציונלי)
    • fields_terminated_by: התו שמפריד בין ערכי העמודות. הערך של הארגומנט הזה צריך להיות בפורמט הקסדצימלי של ASCII. לדוגמה, '2C' מייצג פסיק. (אופציונלי)
    • lines_terminated_by: התו שמפריד בין רשומות השורות. הערך של הארגומנט הזה צריך להיות בפורמט הקסדצימלי של ASCII. לדוגמה, '0A' מייצג שורה חדשה. (אופציונלי)

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

    POST https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id/instances/instance-id/export

    תוכן בקשת JSON:

    {
     "exportContext":
       {
          "fileType": "CSV",
          "uri": "gs://bucket_name/path_to_csv_file",
          "databases": "database_name",
          "offload": true | false
          "csvExportOptions":
           {
               "selectQuery": "select_query",
               "escapeCharacter":  "escape_character",
               "quoteCharacter": "quote_character",
               "fieldsTerminatedBy": "fields_terminated_by",
               "linesTerminatedBy": "lines_terminated_by"
           }
       }
    }
    

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

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

    צריך לציין בדיוק מסד נתונים אחד באמצעות המאפיין databases. אם שאילתת הבחירה מציינת מסד נתונים, הוא צריך להיות זהה.

  4. אם אין צורך לשמור את תפקיד ה-IAM שהגדרתם קודם, בטלו אותו עכשיו.
רשימה מלאה של הפרמטרים של הבקשה מופיעה בדף instances:export.

התאמה אישית של הפורמט של קובץ CSV לייצוא

אפשר להשתמש ב-gcloud או ב-API בארכיטקטורת REST כדי להתאים אישית את פורמט הקובץ של קובץ ה-CSV. כשמבצעים ייצוא, אפשר לציין את אפשרויות הפורמט הבאות:

אפשרות CSV ערך ברירת המחדל תג gcloud מאפיין API בארכיטקטורת REST תיאור
Escape

"5C"

קוד הקסדצימלי של ASCII למפריד קבצים.

--escape escapeCharacter

תו שמופיע לפני תו נתונים שצריך להוסיף לו תו בריחה.

האפשרות זמינה רק ל-MySQL ול-PostgreSQL.

ציטוט

"22"

קוד הקסדצימלי של ASCII לגרשיים כפולים.

--quote quoteCharacter

תווים שסוגרים ערכים מעמודות עם נתונים מסוג מחרוזת.

האפשרות זמינה רק ל-MySQL ול-PostgreSQL.

תו מפריד בין שדות

"2C"

קוד הקסדצימלי של פסיק ב-ASCII.

--fields-terminated-by fieldsTerminatedBy

התו שמפריד בין ערכי העמודות.

האפשרות זמינה רק ל-MySQL ול-PostgreSQL.

תו מעבר לשורה חדשה

"0A"

קוד הקסדצימלי של ASCII לשורה חדשה.

--lines-terminated-by linesTerminatedBy

התו שמפצל רשומות של שורות.

האפשרות זמינה רק ב-MySQL.

לדוגמה, פקודת gcloud שמשתמשת בכל הארגומנטים האלה יכולה להיראות כך:

gcloud sql export csv INSTANCE_NAME gs://BUCKET_NAME/FILE_NAME \
--database=DATABASE_NAME \
--offload \
--query=SELECT_QUERY \
--quote="22" \
--escape="5C" \
--fields-terminated-by="2C" \
--lines-terminated-by="0A"

גוף בקשת ה-API המקבילה בארכיטקטורת REST ייראה כך:

{
 "exportContext":
   {
      "fileType": "CSV",
      "uri": "gs://bucket_name/path_to_csv_file",
      "databases": ["DATABASE_NAME"],
      "offload": true,
      "csvExportOptions":
       {
           "selectQuery": "SELECT_QUERY",
           "escapeCharacter":  "5C",
           "quoteCharacter": "22",
           "fieldsTerminatedBy": "2C",
           "linesTerminatedBy": "0A"
       }
   }
}

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

      \copy [table_name] TO '[csv_file_name].csv' WITH
          (FORMAT csv, ESCAPE '[escape_character]', QUOTE '[quote_character]',
          DELIMITER '[delimiter_character]', ENCODING 'UTF8', NULL '[null_marker_string]');

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

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

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

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

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

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

ייבוא נתונים מקובץ CSV אל Cloud SQL ל-PostgreSQL

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

דרישות לגבי פורמט של קובץ CSV

בקובצי CSV צריכה להיות שורה אחת לכל שורת נתונים, והשדות צריכים להיות מופרדים בפסיקים.

כדי לייבא נתונים למכונת Cloud SQL באמצעות קובץ CSV:

המסוף

  1. נכנסים לדף Cloud SQL Instances במסוף Google Cloud .

    כניסה לדף Cloud SQL Instances

  2. כדי לפתוח את הדף סקירה כללית של מכונה, לוחצים על שם המכונה.
  3. לוחצים על Import.
  4. בקטע Select source file (בחירת קובץ מקור), מזינים את הנתיב לדלי ולקובץ ה-CSV או מעלים קובץ CSV מקומי לשימוש בייבוא. כדי לעבור לקובץ:
    1. לוחצים על עיון.
    2. בקטע Location (מיקום), לוחצים לחיצה כפולה על שם הקטגוריה ברשימה.
    3. בוחרים את הקובץ מהרשימה.
    4. לוחצים על בחירה.

    אפשר לייבא קובץ דחוס (.gz) או קובץ לא דחוס (.csv).

  5. בקטע פורמט, בוחרים באפשרות CSV.
  6. מציינים את המסד נתונים ואת הטבלה במכונת Cloud SQL שבה רוצים לייבא את קובץ ה-CSV.
  7. אפשר לציין משתמש לפעולת הייבוא.
  8. לוחצים על ייבוא כדי להתחיל בייבוא.

gcloud

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

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

  3. מעלים את הנתונים מקובץ ה-CSV אל הדלי.
  4. מזהים את חשבון השירות של מופע Cloud SQL שממנו מייצאים. אפשר לעשות זאת באמצעות הרצת הפקודה gcloud sql instances describe עם שם המכונה. חפשו את השדה serviceAccountEmailAddress בפלט.
    gcloud sql instances describe INSTANCE_NAME
  5. מעתיקים את השדה serviceAccountEmailAddress.
  6. משתמשים ב- gcloud storage buckets add-iam-policy-binding כדי להעניק את תפקיד ה-IAM storage.objectAdmin לחשבון השירות של מכונת Cloud SQL עבור הדלי. במאמר שימוש בהרשאות IAM מוסבר איך מגדירים הרשאות IAM.
  7. מייבאים את הקובץ:
    gcloud sql import csv INSTANCE_NAME gs://BUCKET_NAME/FILE_NAME \
    --database=DATABASE_NAME \
    --table=TABLE_NAME

    מידע על השימוש בפקודה import csv זמין בדף העזרה של הפקודה sql import csv.

  8. אם אין צורך לשמור את הרשאות ה-IAM שהגדרתם קודם, מסירים אותן באמצעות gcloud storage buckets remove-iam-policy-binding.

REST v1

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

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

  3. נותנים למופע את תפקידי ה-IAM storage.objectAdmin ו-objectViewer לקטגוריה. במאמר שימוש בהרשאות IAM מוסבר איך מגדירים הרשאות IAM.
  4. מייבאים את הקובץ:

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

    • project-id: מזהה הפרויקט
    • instance-id: מזהה המכונה
    • bucket_name: שם הקטגוריה של Cloud Storage
    • path_to_csv_file: הנתיב לקובץ ה-CSV
    • database_name: השם של מסד נתונים בתוך מכונת Cloud SQL
    • table_name: השם של טבלת מסד הנתונים
    • escape_character: התו שצריך להופיע לפני תו נתונים שצריך להוסיף לו תו בריחה. הערך של הארגומנט הזה צריך להיות תו בקוד ASCII הקסדצימלי. לדוגמה, '22' מייצג מרכאות כפולות. (אופציונלי)
    • quote_character: התו שמקיף ערכים מעמודות עם סוג נתונים של מחרוזת. הערך של הארגומנט הזה צריך להיות תו בקוד ASCII הקסדצימלי. לדוגמה, '22' מייצג מרכאות כפולות. (אופציונלי)
    • fields_terminated_by: התו שמשמש לפיצול ערכי העמודות. הערך של הארגומנט הזה צריך להיות תו בקוד ASCII הקסדצימלי. לדוגמה, '2C' מייצג פסיק. (אופציונלי)
    • lines_terminated_by: התו שמפריד בין רשומות השורות. הערך של הארגומנט הזה צריך להיות תו בקוד ASCII הקסדצימלי. לדוגמה, '0A' מייצג שורה חדשה. (אופציונלי)

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

    POST https://sqladmin.googleapis.com/v1/projects/project-id/instances/instance-id/import

    תוכן בקשת JSON:

    {
     "importContext":
       {
          "fileType": "CSV",
          "uri": "gs://bucket_name/path_to_csv_file",
          "database": "database_name",
          "csvImportOptions":
           {
             "table": "table_name",
             "escapeCharacter": "escape_character",
             "quoteCharacter": "quote_character",
             "fieldsTerminatedBy": "fields_terminated_by",
             "linesTerminatedBy": "lines_terminated_by"
           }
       }
    }
    
    

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

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

    רשימה מלאה של הפרמטרים של הבקשה מופיעה בדף instances:import.
  5. אם אתם לא צריכים לשמור את הרשאות ה-IAM שהגדרתם קודם, אתם יכולים להסיר אותן.

REST v1beta4

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

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

  3. נותנים למופע את storage.objectAdmin תפקיד ה-IAM של הקטגוריה. במאמר שימוש בהרשאות IAM מוסבר איך מגדירים הרשאות IAM.
  4. מייבאים את הקובץ:

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

    • project-id: מזהה הפרויקט
    • instance-id: מזהה המכונה
    • bucket_name: שם הקטגוריה של Cloud Storage
    • path_to_csv_file: הנתיב לקובץ ה-CSV
    • database_name: השם של מסד נתונים בתוך מכונת Cloud SQL
    • table_name: השם של טבלת מסד הנתונים
    • escape_character: התו שצריך להופיע לפני תו נתונים שצריך להוסיף לו תו בריחה. הערך של הארגומנט הזה צריך להיות בפורמט הקסדצימלי של ASCII. לדוגמה,'22' מייצג מרכאות כפולות. (אופציונלי)
    • quote_character: התו שמקיף ערכים מעמודות עם סוג נתונים של מחרוזת. הערך של הארגומנט הזה צריך להיות בפורמט הקסדצימלי של ASCII. לדוגמה, '22' מייצג מרכאות כפולות. (אופציונלי)
    • fields_terminated_by: התו שמשמש לפיצול ערכי העמודות. הערך של הארגומנט הזה צריך להיות בפורמט הקסדצימלי של ASCII. לדוגמה, '2C' מייצג פסיק. (אופציונלי)
    • lines_terminated_by: התו שמפריד בין רשומות השורות. הערך של הארגומנט הזה צריך להיות בפורמט הקסדצימלי של ASCII. לדוגמה, '0A' מייצג שורה חדשה. (אופציונלי)

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

    POST https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id/instances/instance-id/import

    תוכן בקשת JSON:

    {
     "importContext":
       {
          "fileType": "CSV",
          "uri": "gs://bucket_name/path_to_csv_file",
          "database": "database_name",
          "csvImportOptions":
           {
             "table": "table_name",
             "escapeCharacter": "escape_character",
             "quoteCharacter": "quote_character",
             "fieldsTerminatedBy": "fields_terminated_by",
             "linesTerminatedBy": "lines_terminated_by"
           }
       }
    }
    
    

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

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

    רשימה מלאה של הפרמטרים של הבקשה מופיעה בדף instances:import.
  5. אם אתם לא צריכים לשמור את הרשאות ה-IAM שהגדרתם קודם, אתם יכולים להסיר אותן.

התאמה אישית של הפורמט של קובץ CSV ל-Cloud SQL ל-PostgreSQL

אפשר להשתמש ב-gcloud או ב-API בארכיטקטורת REST כדי להתאים אישית את פורמט הקובץ של קובץ ה-CSV.

דוגמה לפקודת gcloud:

gcloud sql import csv INSTANCE_NAME gs://BUCKET_NAME/FILE_NAME \
--database=DATABASE_NAME \
--table=TABLE_NAME \
--quote="22" \
--escape="5C" \
--fields-terminated-by="2C" \
--lines-terminated-by="0A"

גוף בקשת ה-API המקבילה בארכיטקטורת REST ייראה כך:

{
 "importContext":
   {
      "fileType": "CSV",
      "uri": "gs://bucket_name/path_to_csv_file",
      "database": ["DATABASE_NAME"],
      "csvImportOptions":
       {
           "table": "TABLE_NAME",
           "escapeCharacter":  "5C",
           "quoteCharacter": "22",
           "fieldsTerminatedBy": "2C",
           "linesTerminatedBy": "0A"
       }
   }
}

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

כדי לראות איך בקשת API בארכיטקטורת REST הבסיסית בנויה למשימה הזו, אפשר לעיין בAPIs Explorer בדף instances:import.

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