ייצוא וייבוא באמצעות קובצי 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. בקטע פורמט קובץ, לוחצים על CSV.
  5. בקטע Data to export, בוחרים את שם מסד הנתונים מהתפריט הנפתח Database.
  6. בשדה SQL query, מזינים שאילתת SQL כדי לציין את הטבלה שממנה רוצים לייצא נתונים.

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

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

  7. אופציונלי: בוחרים באפשרות Offload export to a temporary instance כדי לאפשר פעולות אחרות בזמן הייצוא.
  8. בקטע יעד, מוסיפים את השם של הקטגוריה, התיקייה והקובץ שאליהם רוצים לייצא, או לוחצים על עיון כדי למצוא או ליצור קטגוריה, תיקייה או קובץ.

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

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

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

    3. לוחצים על בחירה.
  9. לוחצים על ייצוא כדי להתחיל את הייצוא.

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 כדי להקצות את storage.objectAdmin תפקיד ה-IAM ל חשבון השירות של מכונת Cloud SQL. במאמר שימוש בהרשאות 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: הפעלת ייצוא בלי שרת (serverless). כדי להשתמש בייצוא ללא שרת (serverless), מגדירים את הערך true.
    • ‫select_query: שאילתת SQL לייצוא (אופציונלי)
    • ‫escape_character: התו שצריך להופיע לפני תו נתונים שצריך להוסיף לו תו בריחה (escape). הערך של הארגומנט הזה צריך להיות תו בקוד 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: הפעלת ייצוא בלי שרת (serverless). הערך true מאפשר להשתמש בייצוא ללא שרת.
    • ‫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

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

האפשרות זמינה רק ל-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. כדי לפתוח את הדף Overview של מכונה, לוחצים על שם המכונה.
  3. לוחצים על Import.
  4. בקטע פורמט קובץ, בוחרים באפשרות CSV.
  5. בקטע Select source file, מזינים את הנתיב לקטגוריה ולקובץ ה-CSV או מעלים קובץ CSV מקומי כדי להשתמש בו לייבוא. כדי לעבור לקובץ:
    1. לוחצים על עיון.
    2. בקטע Location, לוחצים לחיצה כפולה על שם הקטגוריה ברשימה.
    3. בוחרים את הקובץ ברשימה.
    4. לוחצים על בחירה.

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

  6. בקטע Destination, מציינים את מסד הנתונים (Database) ואת הטבלה (Table) במכונה של 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: התו שצריך להופיע לפני תו נתונים שצריך להוסיף לו תו בריחה (escape). הערך של הארגומנט הזה צריך להיות תו בקוד 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. מקצים למכונה את תפקיד ה-IAM storage.objectAdmin לקטגוריה. במאמר שימוש בהרשאות 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.

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