בדף הזה מוסבר איך לייצא נתונים למכונות Cloud SQL ולייבא מהן נתונים באמצעות קובצי CSV.
לפני שמתחילים
לפני שמתחילים פעולת ייצוא או ייבוא:
- מוודאים שיש מספיק מקום פנוי במסד הנתונים.
- מוודאים שקובץ ה-CSV מכיל את הנתונים הצפויים ושהוא בפורמט הנכון. קובצי CSV חייבים לכלול שורה אחת לכל שורה של שדות נתונים.
- פועלים לפי השיטות המומלצות לייצוא ולייבוא של נתונים.
פעולות הייצוא והייבוא משתמשות במשאבי מסד הנתונים, אבל הן לא מפריעות לפעולות רגילות של מסד הנתונים, אלא אם המופע לא הוקצה מספיק.
ייצוא נתונים מ-Cloud SQL ל-MySQL
תפקידים והרשאות שנדרשים לייצוא מ-Cloud SQL ל-MySQL
כדי לייצא נתונים מ-Cloud SQL ל-Cloud Storage, למשתמש שמפעיל את הייצוא צריך להיות אחד מהתפקידים הבאים:
- התפקיד עריכה ב-Cloud SQL
- תפקיד בהתאמה אישית, שכולל את ההרשאות הבאות:
cloudsql.instances.getcloudsql.instances.export
בנוסף, לחשבון השירות של מכונת Cloud SQL צריך להיות אחד מהתפקידים הבאים:
- התפקיד
storage.objectAdminבניהול זהויות והרשאות גישה (IAM) - תפקיד בהתאמה אישית, כולל ההרשאות הבאות:
storage.objects.create-
storage.objects.list(לייצוא קבצים במקביל בלבד) -
storage.objects.delete(לייצוא קבצים במקביל בלבד)
לקבלת עזרה בנושא תפקידי IAM, אפשר לעיין במאמר ניהול זהויות והרשאות גישה.
ייצוא נתונים לקובץ CSV מ-Cloud SQL ל-MySQL
אתם יכולים לייצא את הנתונים בפורמט CSV, שמתאים לשימוש בכלים ובסביבות אחרים. הייצוא מתבצע ברמת מסד הנתונים. במהלך ייצוא CSV, אפשר לציין את הסכימות לייצוא. אפשר לייצא את כל הסכימות ברמת מסד הנתונים.
כדי לייצא נתונים ממסד נתונים במכונה של Cloud SQL לקובץ CSV בקטגוריה של Cloud Storage:
המסוף
-
נכנסים לדף Cloud SQL Instances במסוף Google Cloud .
- כדי לפתוח את הדף סקירה כללית של מכונה, לוחצים על שם המכונה.
- לוחצים על ייצוא.
- בקטע פורמט קובץ, לוחצים על CSV.
-
בשדה SQL query (שאילתת SQL), מזינים שאילתת SQL כדי לציין את הטבלה שממנה רוצים לייצא את הנתונים.
לדוגמה, כדי לייצא את כל התוכן של הטבלה
entriesבמסד הנתוניםguestbook, מזינים את הפקודה הבאה: השאילתה צריכה לציין טבלה במסד הנתונים שצוין. אי אפשר לייצא מסד נתונים שלם בפורמט CSV.SELECT * FROM guestbook.entries;
- אופציונלי: בוחרים באפשרות העברת הייצוא למופע זמני כדי לאפשר פעולות אחרות בזמן שהייצוא מתבצע.
- אופציונלי: לוחצים על Show database options ובוחרים את שם מסד הנתונים מהתפריט הנפתח Database.
-
בקטע Destination, מוסיפים את השם של הקטגוריה, התיקייה והקובץ שאליהם רוצים לייצא, או לוחצים על Browse כדי למצוא או ליצור קטגוריה, תיקייה או קובץ.
אם לוחצים על עיון:
- בקטע מיקום, בוחרים תיקייה או קטגוריה של Cloud Storage לייצוא.
בתיבה Name, מוסיפים שם לקובץ
CSVאו בוחרים קובץ קיים מהרשימה בקטע Location.אפשר להשתמש בסיומת הקובץ
.gz(הסיומת המלאה תהיה.csv.gz) כדי לדחוס את קובץ הייצוא.- לוחצים על בחירה.
- לוחצים על ייצוא כדי להתחיל את הייצוא.
gcloud
- יוצרים קטגוריה של Cloud Storage.
מעלים את הקובץ לקטגוריה.
לקבלת עזרה בהעלאת קבצים לקטגוריות, אפשר לעיין במאמר העלאת אובייקטים.
- מאתרים את חשבון השירות של המכונה ב-Cloud SQL שממנה מייצאים. כדי לעשות את זה, מריצים את הפקודה
gcloud sql instances describe. מחפשים את השדהserviceAccountEmailAddressבפלט.gcloud sql instances describe INSTANCE_NAME
- משתמשים ב-
gcloud storage buckets add-iam-policy-bindingכדי להקצות אתstorage.objectAdminתפקיד ה-IAM לחשבון השירות של מכונת Cloud SQL. במאמר שימוש בהרשאות IAM מוסבר איך מגדירים הרשאות IAM. - מייצאים את מסד הנתונים:
gcloud sql export csv INSTANCE_NAME gs://BUCKET_NAME/FILE_NAME \ --database=DATABASE_NAME \ --offload \ --query=SELECT_QUERY
מידע על השימוש בפקודה
export csvמופיע בדף העזרה של הפקודהsql export csv. - אם אתם לא צריכים לשמור את תפקיד ה-IAM שהגדרתם קודם, בטלו אותו עכשיו.
REST v1
- יוצרים קטגוריה לייצוא:
gcloud storage buckets create gs://BUCKET_NAME --location=LOCATION_NAME --project=PROJECT_NAME
השלב הזה לא נדרש, אבל מומלץ מאוד לבצע אותו כדי שלא תהיה גישה לנתונים אחרים.
- מספקים למופע את
storage.objectAdminתפקיד ה-IAM של הקטגוריה. במאמר שימוש בהרשאות IAM מוסבר איך מגדירים הרשאות IAM. -
מייצאים את מסד הנתונים:
לפני שמשתמשים בנתוני הבקשה, צריך להחליף את הנתונים הבאים:
- project-id: מזהה הפרויקט
- instance-id: מזהה המכונה
- bucket_name: השם של הקטגוריה של Cloud Storage
- path_to_csv_file: הנתיב לקובץ ה-CSV
- database_name: השם של מסד נתונים בתוך המכונה של Cloud SQL
- offload: הפעלת ייצוא ללא שרת. הערך
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 שדומה לזו:
אם שאילתת ה-SELECT מציינת מסד נתונים, היא מבטלת את המאפיין
databases. - אם אין לכם צורך לשמור את הרשאות ה-IAM שהגדרתם קודם, אתם יכולים להסיר אותן עכשיו.
REST v1beta4
- יוצרים קטגוריה לייצוא:
gcloud storage buckets create gs://BUCKET_NAME --location=LOCATION_NAME --project=PROJECT_NAME
השלב הזה לא נדרש, אבל מומלץ מאוד לבצע אותו כדי שלא תהיה גישה לנתונים אחרים.
- נותנים למכונה את
storage.objectAdminתפקיד ה-IAM לקטגוריה. במאמר שימוש בהרשאות IAM מוסבר איך מגדירים הרשאות IAM. -
מייצאים את מסד הנתונים:
לפני שמשתמשים בנתוני הבקשה, צריך להחליף את הנתונים הבאים:
- 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. - אם אתם לא צריכים לשמור את תפקיד ה-IAM שהגדרתם קודם, בטלו אותו עכשיו.
התאמה אישית של הפורמט של קובץ CSV לייצוא
אפשר להשתמש ב-gcloud או ב-API בארכיטקטורת REST כדי להתאים אישית את פורמט קובץ ה-CSV. כשמייצאים, אפשר לציין את אפשרויות העיצוב הבאות:
| אפשרות CSV | ערך ברירת המחדל | דגל gcloud | נכס API בארכיטקטורת REST | תיאור |
|---|---|---|---|---|
| Escape |
קוד הקסדצימלי ב-ASCII למפריד קבצים. |
--escape |
escapeCharacter |
תווים שמופיעים לפני תווי נתונים שצריך להוסיף להם תו בריחה. האפשרות זמינה רק ל-MySQL ול-PostgreSQL. |
| ציטוט |
קוד הקסדצימלי ב-ASCII למירכאות כפולות. |
--quote |
quoteCharacter |
תו שמקיף ערכים מעמודות עם סוג נתונים מסוג מחרוזת. זמין רק ל-MySQL ול-PostgreSQL. |
| תו מפריד בין שדות |
קוד הקסדצימלי ב-ASCII לפסיק. |
--fields-terminated-by |
fieldsTerminatedBy |
התו שמפצל את ערכי העמודות. זמין רק ל-MySQL ול-PostgreSQL. |
| תו של שורה חדשה |
קוד הקסדצימלי ב-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" } } }
הדוגמאות הקודמות של gcloud ו-API מקבילות להרצה של הצהרת ה-SQL הבאה:
SELECT [QUERY] INTO OUTFILE ... CHARACTER SET 'utf8mb4' FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '\"' ESCAPED BY '\\' LINES TERMINATED BY '\n'
ייבוא נתונים ל-Cloud SQL ל-MySQL
תפקידים והרשאות שנדרשים לייבוא ל-Cloud SQL ל-MySQL
כדי לייבא נתונים מ-Cloud Storage ל-Cloud SQL, למשתמש שמפעיל את הייבוא צריך להיות אחד מהתפקידים הבאים:
- התפקיד Cloud SQL Admin
- תפקיד בהתאמה אישית, כולל ההרשאות הבאות:
cloudsql.instances.getcloudsql.instances.import
בנוסף, לחשבון השירות של מכונת Cloud SQL צריך להיות אחד מהתפקידים הבאים:
- תפקיד ה-IAM
storage.objectAdmin - תפקיד בהתאמה אישית, כולל ההרשאות הבאות:
storage.objects.get-
storage.objects.list(לייבוא קבצים במקביל בלבד)
לעזרה בנושא תפקידי IAM, קראו את המאמר ניהול זהויות והרשאות גישה.
ייצוא נתונים משרת MySQL המקומי לקובץ CSV
כדי לייצא טבלת MySQL לייבוא ל-Cloud SQL, מומלץ להשתמש בפקודה הבאה כדי לשנות את הפורמט של הקובץ:
mysql --host=INSTANCE_IP --user=USER_NAME --password DATABASE \ -e " SELECT * FROM TABLE INTO OUTFILE 'FILE_NAME' CHARACTER SET 'utf8mb4' FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '\"' ESCAPED BY '\"' "
אתם יכולים להתאים אישית את הפורמט של קובץ ה-CSV שאתם מייצאים.
ייבוא נתונים מקובץ CSV ל-Cloud SQL ל-MySQL
- מסד הנתונים והטבלה שאליהם אתם מייבאים צריכים להיות קיימים במכונה של Cloud SQL.
למידע נוסף על יצירת מסד נתונים, תוכלו לקרוא את המאמר יצירת מסד נתונים.
כדי ליצור טבלה, משתמשים בהצהרת ה-SQL
CREATE TABLEבלקוחmysql. - קובץ ה-CSV צריך לעמוד בדרישות הפורמט של קובצי CSV.
- אם אתם מייבאים נתונים שייצאתם משרת MySQL מקומי:
- יצירת קטגוריה ב-Cloud Storage.
- מעלים את קובץ ה-SQL dump לקטגוריה של Cloud Storage.
דרישות לגבי פורמט קובץ CSV
בקובצי CSV צריכה להיות שורה אחת לכל שורת נתונים, והשדות צריכים להיות מופרדים בפסיקים.
כדי לייבא נתונים למכונת Cloud SQL באמצעות קובץ CSV:
המסוף
-
נכנסים לדף Cloud SQL Instances במסוף Google Cloud .
- כדי לפתוח את הדף סקירה כללית של מכונה, לוחצים על שם המכונה.
- לוחצים על Import.
- בקטע פורמט קובץ, בוחרים באפשרות CSV.
- בקטע Select source file (בחירת קובץ מקור), מזינים את הנתיב לקובץ ה-CSV או מעלים קובץ CSV מקומי לשימוש לייבוא. כדי לעבור לקובץ:
- לוחצים על עיון.
- בקטע Location, לוחצים לחיצה כפולה על שם הקטגוריה ברשימה.
- בוחרים את הקובץ מהרשימה.
- לוחצים על בחירה.
אפשר לייבא קובץ דחוס (
.gz) או קובץ לא דחוס (.csv). - בקטע יעד, מציינים את מסד הנתונים ואת הטבלה במכונת Cloud SQL שאליה רוצים לייבא את קובץ ה-CSV.
- לוחצים על ייבוא כדי להתחיל את הייבוא.
gcloud
- יצירת קטגוריה של Cloud Storage
מעלים את הקובץ לקטגוריה.
לקבלת עזרה בהעלאת קבצים לקטגוריות, אפשר לעיין במאמר העלאת אובייקטים.
- מעלים את הנתונים מקובץ ה-CSV למאגר.
- מזהים את חשבון השירות של מופע Cloud SQL שממנו מייצאים. כדי לעשות את זה, מריצים את הפקודה
gcloud sql instances describeעם שם המכונה. מחפשים את השדהserviceAccountEmailAddressבפלט.gcloud sql instances describe INSTANCE_NAME
- מעתיקים את השדה serviceAccountEmailAddress.
- משתמשים ב-
gcloud storage buckets add-iam-policy-bindingכדי להקצות את תפקיד ה-IAMstorage.objectAdminלחשבון השירות של מכונת Cloud SQL בקטגוריה. במאמר שימוש בהרשאות IAM מוסבר איך מגדירים הרשאות IAM. - מייבאים את הקובץ:
gcloud sql import csv INSTANCE_NAME gs://BUCKET_NAME/FILE_NAME \ --database=DATABASE_NAME \ --table=TABLE_NAME
למידע על השימוש בפקודה
import csv, עיינו בדף העזרה של הפקודהsql import csv. - אם אין לכם צורך לשמור את הרשאות ה-IAM שהגדרתם קודם, אתם יכולים להסיר אותן באמצעות
gcloud storage buckets remove-iam-policy-binding.
REST v1
- יוצרים קטגוריה של Cloud Storage.
מעלים את הקובץ לקטגוריה.
לקבלת עזרה בהעלאת קבצים לקטגוריות, ראו העלאת אובייקטים.
- נותנים למכונה את תפקידי ה-IAM
storage.objectAdminו-objectViewerלקטגוריה. במאמר שימוש בהרשאות IAM מוסבר איך מגדירים הרשאות IAM. - מייבאים את הקובץ:
לפני שמשתמשים בנתוני הבקשה, צריך להחליף את הנתונים הבאים:
- 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. - אם אתם לא צריכים לשמור את הרשאות ה-IAM שהגדרתם קודם, אתם יכולים להסיר אותן.
REST v1beta4
- יצירת קטגוריה של Cloud Storage
מעלים את הקובץ לקטגוריה.
לקבלת עזרה בהעלאת קבצים לקטגוריות, ראו העלאת אובייקטים.
- מקצים למכונה את תפקיד ה-IAM
storage.objectAdminלקטגוריה. במאמר שימוש בהרשאות IAM מוסבר איך מגדירים הרשאות IAM. - מייבאים את הקובץ:
לפני שמשתמשים בנתוני הבקשה, צריך להחליף את הנתונים הבאים:
- 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. - אם אתם לא צריכים לשמור את הרשאות ה-IAM שהגדרתם קודם, הסירו אותן.
התאמה אישית של הפורמט של קובץ CSV ל-Cloud SQL ל-MySQL
אפשר להשתמש ב-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"
גוף הבקשה המקביל ב-REST API ייראה כך:
{ "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" } } }
הדוגמאות הקודמות של gcloud ו-API מקבילות להרצה של הצהרת ה-SQL הבאה:
LOAD DATA LOCAL INFILE ... CHARACTER SET 'utf8mb4'
FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '\"' ESCAPED BY '\\'.
אם מופיעה שגיאה כמו ERROR_RDBMS, ודאו שהטבלה קיימת. אם הטבלה קיימת, ודאו שיש לכם את ההרשאות הנכונות בקטגוריה. במאמר
יצירה וניהול של רשימות של בקרת גישה מוסבר איך להגדיר בקרת גישה ב-Cloud Storage.
המאמרים הבאים
- איך בודקים את הסטטוס של פעולות הייבוא והייצוא
- מידע נוסף על שיטות מומלצות לייבוא ולייצוא של נתונים
- בעיות מוכרות בייבוא ובייצוא