בדף הזה מוסבר איך ליצור ולנהל מסדי נתונים של Spanner:
- שיטות שונות ליצירת מסד נתונים
- שינוי אפשרויות מסד הנתונים
- מחיקה של מסד נתונים
בדף הזה יש מידע על מסדי נתונים של GoogleSQL ושל PostgreSQL. במאמר ביצוע עדכונים בסכימה מוסבר איך לעדכן סכימת מסד נתונים. מידע נוסף על יצירת מופע זמין במאמר בנושא יצירה וניהול של מופעים. אפשר ליצור מסד נתונים במופע קיים באחת מהדרכים הבאות:
- יצירת מסד נתונים: אפשר ליצור מסד נתונים חדש על ידי בחירת ניב SQL והגדרת הסכימה.
- ייבוא נתונים משלכם: אתם יכולים לייבא קובץ CSV, קובץ dump של MySQL או קובץ dump של PostgreSQL למסד נתונים חדש או קיים.
- יצירת מסד נתונים עם נתונים לדוגמה: אתם יכולים לאכלס מסד נתונים באמצעות אחד ממערכי הנתונים לדוגמה שזמינים כדי לנסות את היכולות של Spanner.
יצירת מסד נתונים
אפשר ליצור מסד נתונים חדש במופע קיים. במסדי נתונים של GoogleSQL, אפשר להגדיר את הסכימה של מסד הנתונים בזמן יצירת מסד הנתונים או אחרי שהוא נוצר. במסדי נתונים עם ניב PostgreSQL, צריך להגדיר את הסכימה אחרי היצירה.
סכימות מוגדרות באמצעות שפת הגדרת מסד נתונים (DDL), שמתועדת ב-GoogleSQL וב-PostgreSQL. בקישורים הבאים מפורט מידע נוסף על יצירה ועדכון של סכימות:
אחרי שיוצרים את מסד הנתונים, אפשר להפעיל הגנה מפני מחיקה כדי להגן על מסדי נתונים שחשובים לאפליקציות ולשירותים. מידע נוסף זמין במאמר בנושא מניעת מחיקה לא מכוונת של מסד נתונים.
מסוף Google Cloud
נכנסים לדף Spanner instances במסוף Google Cloud .
בוחרים את המופע שבו רוצים ליצור את מסד הנתונים.
לוחצים על יצירת מסד נתונים.
מזינים את הערכים הבאים:
- שם מסד נתונים שיוצג במסוף Google Cloud .
- הדיאלקט שבו יש להשתמש במסד הנתונים הזה.
- במסדי נתונים של ניב GoogleSQL, אפשר לספק קבוצה של הצהרות DDL שמגדירות את הסכימה. אפשר להשתמש בתבניות DDL כדי למלא מראש רכיבים נפוצים. אם יש שגיאות בהצהרות DDL, המסוף מחזיר שגיאה כשמנסים ליצור את מסד הנתונים. Google Cloud
- אופציונלי: בוחרים מפתח הצפנה בניהול הלקוח לשימוש במסד הנתונים הזה.
לוחצים על יצירה כדי ליצור את מסד הנתונים.
gcloud
משתמשים בפקודה gcloud spanner databases create.
```sh
gcloud spanner databases create DATABASE \
--instance=INSTANCE \
[--async] \
[--database-dialect=DATABASE_DIALECT] \
[--ddl=DDL] \
[--ddl-file=DDL_FILE] \
[--kms-key=KMS_KEY : --kms-keyring=KMS_KEYRING --kms-location=KMS_LOCATION --kms-project=KMS_PROJECT] \
[GCLOUD_WIDE_FLAG …]
```
חובה לציין את האפשרויות הבאות:
DATABASE- המזהה של מסד הנתונים או מזהה מוגדר במלואו של מסד הנתונים. אם מציינים את המזהה המוגדר במלואו, אפשר להשמיט את הדגל
--instance. --instance=INSTANCE- המכונה של Spanner למסד הנתונים.
האפשרויות הבאות הן אופציונליות:
--async
- חזרה מיידית, בלי המתנה שהפעולה תסתיים.
--database-dialect=DATABASE_DIALECT- דיאלקט ה-SQL של מסד הנתונים Spanner. צריך להשתמש באחד מהערכים הבאים:
POSTGRESQL,GOOGLE_STANDARD_SQL. --ddl=DDL- הצהרות DDL (שפת הגדרת נתונים) מופרדות באמצעות נקודה-פסיק להפעלה בתוך מסד הנתונים החדש שנוצר. אם יש שגיאה באחת מההצהרות, מסד הנתונים לא נוצר. המערכת מתעלמת מהדגל הזה אם הדגל
--ddl_fileמוגדר. לא נתמך במסדי נתונים של ניב PostgreSQL. --ddl-file=DDL_FILE
- הנתיב של קובץ שמכיל הצהרות DDL (שפת הגדרת נתונים) שמופרדות באמצעות נקודה-פסיק, להרצה במסד הנתונים החדש שנוצר. אם יש שגיאה באחת מההצהרות, מסד הנתונים לא נוצר. אם המדיניות
--ddl_fileמוגדרת, המערכת מתעלמת מהמדיניות--ddl. לא נתמך במסדי נתונים של ניב PostgreSQL.
אם מציינים מפתח Cloud Key Management Service לשימוש בזמן יצירת מסד הנתונים, צריך לכלול את האפשרויות הבאות:
--kms-key=KMS_KEY
- ID of the key או מזהה מוגדר במלואו של המפתח.
חובה לציין את הדגל הזה אם מציינים אחד או יותר מהארגומנטים האחרים בקבוצה הזו. אפשר להשמיט את הארגומנטים האחרים אם מספקים את המזהה המוגדר במלואו.
--kms-keyring=KMS_KEYRING
- מזהה אוסף המפתחות של המפתח ב-Cloud KMS.
--kms-location=KMS_LOCATION- Google Cloud המיקום של המפתח.
--kms-project=KMS_PROJECT- Google Cloud מזהה הפרויקט של המפתח.
לקוח (GoogleSQL)
C++
מידע על התקנת ספריית הלקוח של Spanner ושימוש בה מופיע במאמר ספריות הלקוח של Spanner.
כדי לבצע אימות ב-Spanner, צריך להגדיר את Application Default Credentials. מידע נוסף זמין במאמר הגדרת אימות לסביבת פיתוח מקומית.
Go
מידע על התקנת ספריית הלקוח של Spanner ושימוש בה מופיע במאמר ספריות הלקוח של Spanner.
כדי לבצע אימות ב-Spanner, צריך להגדיר את Application Default Credentials. מידע נוסף זמין במאמר הגדרת אימות לסביבת פיתוח מקומית.
Java
מידע על התקנת ספריית הלקוח של Spanner ושימוש בה מופיע במאמר ספריות הלקוח של Spanner.
כדי לבצע אימות ב-Spanner, צריך להגדיר את Application Default Credentials. מידע נוסף זמין במאמר הגדרת אימות לסביבת פיתוח מקומית.
Node.js
מידע על התקנת ספריית הלקוח של Spanner ושימוש בה מופיע במאמר ספריות הלקוח של Spanner.
כדי לבצע אימות ב-Spanner, צריך להגדיר את Application Default Credentials. מידע נוסף זמין במאמר הגדרת אימות לסביבת פיתוח מקומית.
PHP
מידע על התקנת ספריית הלקוח של Spanner ושימוש בה מופיע במאמר ספריות הלקוח של Spanner.
כדי לבצע אימות ב-Spanner, צריך להגדיר את Application Default Credentials. מידע נוסף זמין במאמר הגדרת אימות לסביבת פיתוח מקומית.
Python
מידע על התקנת ספריית הלקוח של Spanner ושימוש בה מופיע במאמר ספריות הלקוח של Spanner.
כדי לבצע אימות ב-Spanner, צריך להגדיר את Application Default Credentials. מידע נוסף זמין במאמר הגדרת אימות לסביבת פיתוח מקומית.
Ruby
מידע על התקנת ספריית הלקוח של Spanner ושימוש בה מופיע במאמר ספריות הלקוח של Spanner.
כדי לבצע אימות ב-Spanner, צריך להגדיר את Application Default Credentials. מידע נוסף זמין במאמר הגדרת אימות לסביבת פיתוח מקומית.
לקוח (PostgreSQL)
C++
מידע על התקנת ספריית הלקוח של Spanner ושימוש בה מופיע במאמר ספריות הלקוח של Spanner.
כדי לבצע אימות ב-Spanner, צריך להגדיר את Application Default Credentials. מידע נוסף זמין במאמר הגדרת אימות לסביבת פיתוח מקומית.
Go
מידע על התקנת ספריית הלקוח של Spanner ושימוש בה מופיע במאמר ספריות הלקוח של Spanner.
כדי לבצע אימות ב-Spanner, צריך להגדיר את Application Default Credentials. מידע נוסף זמין במאמר הגדרת אימות לסביבת פיתוח מקומית.
Java
מידע על התקנת ספריית הלקוח של Spanner ושימוש בה מופיע במאמר ספריות הלקוח של Spanner.
כדי לבצע אימות ב-Spanner, צריך להגדיר את Application Default Credentials. מידע נוסף זמין במאמר הגדרת אימות לסביבת פיתוח מקומית.
Node.js
מידע על התקנת ספריית הלקוח של Spanner ושימוש בה מופיע במאמר ספריות הלקוח של Spanner.
כדי לבצע אימות ב-Spanner, צריך להגדיר את Application Default Credentials. מידע נוסף זמין במאמר הגדרת אימות לסביבת פיתוח מקומית.
PHP
מידע על התקנת ספריית הלקוח של Spanner ושימוש בה מופיע במאמר ספריות הלקוח של Spanner.
כדי לבצע אימות ב-Spanner, צריך להגדיר את Application Default Credentials. מידע נוסף זמין במאמר הגדרת אימות לסביבת פיתוח מקומית.
Python
מידע על התקנת ספריית הלקוח של Spanner ושימוש בה מופיע במאמר ספריות הלקוח של Spanner.
כדי לבצע אימות ב-Spanner, צריך להגדיר את Application Default Credentials. מידע נוסף זמין במאמר הגדרת אימות לסביבת פיתוח מקומית.
Ruby
מידע על התקנת ספריית הלקוח של Spanner ושימוש בה מופיע במאמר ספריות הלקוח של Spanner.
כדי לבצע אימות ב-Spanner, צריך להגדיר את Application Default Credentials. מידע נוסף זמין במאמר הגדרת אימות לסביבת פיתוח מקומית.
ייבאו נתונים משלכם
אפשר לייבא נתונים משלכם למסד נתונים של Spanner באמצעות קובץ CSV, קובץ dump של MySQL או קובץ dump של PostgreSQL. אתם יכולים להעלות קובץ מקומי באמצעות Cloud Storage או ישירות מקטגוריה של Cloud Storage. יכול להיות שיהיו חיובים על העלאה של קובץ מקומי באמצעות Cloud Storage.
אם בחרתם להשתמש בקובץ CSV, תצטרכו גם להעלות קובץ JSON נפרד שמכיל את סכימת מסד הנתונים.
מסוף Google Cloud
נכנסים לדף Spanner Instances במסוף Google Cloud .
בוחרים את המופע שבו רוצים ליצור את מסד הנתונים.
לוחצים על ייבוא הנתונים שלי.
מזינים את הערכים הבאים:
בוחרים את סוג הקובץ.
מעלים את הקובץ מהמחשב או בוחרים נתיב לקובץ בקטגוריה של Cloud Storage.
(אופציונלי) אם בוחרים להשתמש בקובץ CSV, צריך גם להעלות קובץ JSON נפרד שמכיל את סכימת מסד הנתונים. קובץ ה-JSON צריך להיות מובנה בפורמט הבא כדי להגדיר את הסכימה:
{ "name": "COLUMN_NAME", "type": "TYPE", "notNull": NOT_NULL_VALUE, "primaryKeyOrder": PRIMARY_KEY_ORDER }
מחליפים את מה שכתוב בשדות הבאים:
COLUMN_NAME: שם העמודה בטבלה.
TYPE: סוג הנתונים של העמודה.
(אופציונלי) NOT_NULL_VALUE: האם אפשר לאחסן בעמודה ערכי null. הערכים הקבילים הם
trueאוfalse. ברירת המחדל היאfalse.(אופציונלי): PRIMARY_KEY_ORDER: קובע את סדר המפתח הראשי. הערך מוגדר כ-
0בעמודה של מפתח שאינו ראשי. מגדירים את הערך כמספר שלם, לדוגמה,1לעמודה של מפתח ראשי. עמודות עם מספרים נמוכים יותר מופיעות מוקדם יותר במפתח ראשי מורכב.
כברירת מחדל, קובץ ה-CSV מצפה לפסיק כמפריד השדות ולשורה חדשה כמפריד השורות. מידע נוסף על השימוש בתווים מותאמים אישית להפרדה בין ערכים זמין במאמר בנושא
gcloud alpha spanner databases import.בוחרים מסד נתונים חדש או קיים כיעד.
לוחצים על Import.
מערכת Spanner פותחת את Cloud Shell ומאכלסת פקודה שמתקינה את כלי ההעברה של Spanner ומריצה את הפקודה
gcloud alpha spanner databases import. לוחצים על המקשENTERכדי לייבא נתונים למסד הנתונים.
שימוש במערך נתונים לדוגמה
אתם יכולים לאכלס מסדי נתונים חדשים במופע קיים מתוך מערכי נתונים לדוגמה, שיעזרו לכם לבדוק את היכולות של Spanner, כמו המודל הרלציוני, חיפוש טקסט מלא או חיפוש וקטורי.
מסוף Google Cloud
נכנסים לדף Spanner instances במסוף Google Cloud .
בוחרים את המופע שבו רוצים ליצור את מסד הנתונים.
לוחצים על סקירת מערכי הנתונים.
בוחרים באחד ממערכי הנתונים הבאים:
- תרשים פיננסי: אפשר להשתמש במערך הנתונים הזה כדי לבחון את תכונות התרשים של Spanner.
- בנקאות דיגיטלית: אפשר להשתמש במערך הנתונים הזה כדי לבדוק את התכונות של חיפוש טקסט מלא ב-Spanner.
- משחקים אונליין: אפשר להשתמש במערך הנתונים הזה כדי לבחון את התכונות של מסד הנתונים הרלציוני של Spanner.
- קמעונאות: אפשר להשתמש במערך הנתונים הזה כדי לבדוק את התכונות של Spanner: גרף וחיפוש טקסט מלא.
לוחצים על יצירת מסד נתונים.
עדכון הסכימה או האפשרויות של מסד הנתונים
אפשר לעדכן את סכימת מסד הנתונים ואת האפשרויות באמצעות הצהרות DDL.
לדוגמה, כדי להוסיף עמודה לטבלה, משתמשים בהצהרת ה-DDL הבאה:
GoogleSQL
ALTER TABLE Songwriters ADD COLUMN Publisher STRING(10);
PostgreSQL
ALTER TABLE Songwriters ADD COLUMN Publisher VARCHAR(10);
כדי לעדכן את הגרסה של אופטימיזציית השאילתות, משתמשים בהצהרת ה-DDL הבאה:
GoogleSQL
ALTER DATABASE Music SET OPTIONS(optimizer_version=null);
PostgreSQL
ALTER DATABASE DB-NAME SET spanner.optimizer_version TO DEFAULT;
למידע נוסף על האפשרויות הנתמכות, אפשר לעיין בהפניה ל-ALTER DATABASE DDL ל-GoogleSQL או ל-PostgreSQL.
מידע על עדכוני סכימה זמין במאמר ביצוע עדכוני סכימה.
מסוף Google Cloud
נכנסים לדף Spanner instances במסוף Google Cloud .
בוחרים את המופע שמכיל את מסד הנתונים שרוצים לשנות.
בוחרים את מסד הנתונים.
לוחצים על Spanner Studio.
לוחצים על כרטיסייה חדשה או משתמשים בכרטיסיית העריכה הריקה. לאחר מכן מזינים את הצהרות ה-DDL שרוצים להחיל.
לוחצים על הפעלה כדי להחיל את העדכונים. אם יש שגיאות ב-DDL, המסוף Google Cloud מחזיר שגיאה ומסד הנתונים לא משתנה.
gcloud
כדי לשנות מסד נתונים באמצעות כלי שורת הפקודה gcloud, משתמשים בפקודה gcloud spanner databases ddl update.
gcloud spanner databases ddl update \ (DATABASE : --instance=INSTANCE) \ [--async] \ [--ddl=DDL] \ [--ddl-file=DDL_FILE] \
אפשר לעיין בהפניה ל-gcloud כדי לקבל פרטים על האפשרויות הזמינות.
מעבירים את העדכונים במסד הנתונים לפקודה עם הדגל --ddl או הדגל --ddl-file. אם מציינים קובץ DDL, המערכת מתעלמת מהדגל --ddl.
אפשר לעיין בהפניה ל-DDL של GoogleSQL או של PostgreSQL כדי לראות אילו הצהרות DDL צריך לכלול.ALTER DATABASE
DDL
פרטים נוספים זמינים ALTER DATABASE בהפניה ל-DDL עבור GoogleSQL או PostgreSQL.
בדיקת ההתקדמות של פעולות עדכון הסכימה
כדי לבדוק את התקדמות הפעולות של עדכון הסכימה, בוחרים באחת מהשיטות הבאות:
מסוף Google Cloud
בתפריט הניווט של Spanner, בוחרים בכרטיסייה Operations (פעולות). בדף Operations מוצגת רשימה של פעולות פעילות שמתבצעות.
מחפשים ברשימה את פעולת הסכימה. אם הפעולה עדיין פועלת, סרגל ההתקדמות בעמודה שעת סיום מציג את אחוז הפעולה שהושלם, כמו שמוצג בתמונה הבאה:

gcloud
כדי לבדוק את התקדמות הפעולה, משתמשים ב-gcloud spanner operations describe.
קבלת מזהה הפעולה:
gcloud spanner operations list --instance=INSTANCE-NAME \ --database=DATABASE-NAME --type=DATABASE_UPDATE_DDL
מחליפים את מה שכתוב בשדות הבאים:
- INSTANCE-NAME בשם של מכונת Spanner.
- DATABASE-NAME בשם של מסד הנתונים.
מריצים את
gcloud spanner operations describe:gcloud spanner operations describe OPERATION_ID\ --instance=INSTANCE-NAME \ --database=DATABASE-NAME
מחליפים את מה שכתוב בשדות הבאים:
- OPERATION-ID: מזהה הפעולה שרוצים לבדוק.
- INSTANCE-NAME: שם מכונת Spanner.
- DATABASE-NAME: שם מסד הנתונים של Spanner.
בקטע
progressבפלט מוצג האחוז של הפעולה שהושלמה. הפלט אמור להיראות כך:done: true metadata: ... progress: - endTime: '2022-03-01T00:28:06.691403Z' progressPercent: 100 startTime: '2022-03-01T00:28:04.221401Z' - endTime: '2022-03-01T00:28:17.624588Z' startTime: '2022-03-01T00:28:06.691403Z' progressPercent: 100 ...
REST v1
קבלת מזהה הפעולה:
gcloud spanner operations list --instance=INSTANCE-NAME \ --database=DATABASE-NAME --type=DATABASE_UPDATE_DDL
מחליפים את מה שכתוב בשדות הבאים:
- INSTANCE-NAME בשם של מכונת Spanner.
- DATABASE-NAME בשם מסד הנתונים.
בודקים את התקדמות הפעולה.
לפני שמשתמשים בנתוני הבקשה, צריך להחליף את הנתונים הבאים:
- PROJECT-ID: מזהה הפרויקט.
- INSTANCE-ID: מזהה המכונה.
- DATABASE-ID: מזהה מסד הנתונים.
- OPERATION-ID: מזהה הפעולה.
ה-method של ה-HTTP וכתובת ה-URL:
GET https://spanner.googleapis.com/v1/projects/PROJECT-ID/instances/INSTANCE-ID/databases/DATABASE-ID/operations/OPERATION-ID
כדי לשלוח את הבקשה צריך להרחיב אחת מהאפשרויות הבאות:
אתם אמורים לקבל תגובת JSON שדומה לזו:
{ ... "progress": [ { "progressPercent": 100, "startTime": "2023-05-27T00:52:27.366688Z", "endTime": "2023-05-27T00:52:30.184845Z" }, { "progressPercent": 100, "startTime": "2023-05-27T00:52:30.184845Z", "endTime": "2023-05-27T00:52:40.750959Z" } ], ... "done": true, "response": { "@type": "type.googleapis.com/google.protobuf.Empty" } }
אם הפעולה נמשכת יותר מדי זמן, אפשר לבטל אותה. מידע נוסף זמין במאמר בנושא ביטול פעולת מסד נתונים ממושכת.
בנוסף, Spanner מזהה באופן אוטומטי הזדמנויות ליישום שיטות מומלצות לעיצוב סכימה. אם יש המלצות למסד נתונים, אפשר לראות אותן בדף Spanner Studio של מסד הנתונים הזה. מידע נוסף זמין במאמר בנושא המלצות לשיטות מומלצות לעיצוב סכימה.
מחיקה של מסד נתונים
מחיקה של מסד נתונים מסירה אותו ואת כל הנתונים שבו באופן סופי. אי אפשר לבטל את מחיקת מסד הנתונים. אם ההגנה מפני מחיקת מסד נתונים מופעלת במסד נתונים, אי אפשר למחוק את מסד הנתונים הזה עד שמשביתים את ההגנה מפני מחיקה.
גיבויים קיימים לא נמחקים כשמוחקים מסד נתונים. מידע נוסף זמין במאמר גיבוי ושחזור.
מסוף Google Cloud
נכנסים לדף Spanner instances במסוף Google Cloud .
בוחרים את המופע שמכיל את מסד הנתונים שרוצים למחוק.
בוחרים את מסד הנתונים.
לוחצים על מחיקת מסד הנתונים. מופיע אישור.
מקלידים את שם מסד הנתונים ולוחצים על מחיקה.
gcloud
כדי למחוק מסד נתונים באמצעות כלי שורת הפקודה gcloud, משתמשים בפקודה gcloud spanner databases delete.
gcloud spanner databases delete \ (DATABASE : --instance=INSTANCE)
חובה לציין את האפשרויות הבאות:
DATABASE- מזהה מסד הנתונים או מזהה מוגדר במלואו של מסד הנתונים. אם מספקים את המזהה המלא, אין צורך להוסיף את הדגל
--instance. --instance=INSTANCE- המכונה של Spanner למסד הנתונים.
מידע נוסף זמין במאמר gcloud.
DDL
DDL לא תומך בתחביר של מחיקת מסד נתונים.
המאמרים הבאים
- יצירת מסד נתונים וטעינת נתונים לדוגמה
- מידע נוסף על הפניות ל-DDL ב-GoogleSQL
- מידע נוסף על הפניה ל-PostgreSQL DDL
- איך מגבים מסד נתונים ומשחזרים אותו
- איך אפשר למנוע מחיקה מקרית של מסד נתונים
- איך מעדכנים את הסכימה