בדף הזה מוסבר איך ליצור ולנהל מסדי נתונים ב-Spanner:
- שיטות שונות ליצירת מסד נתונים
- שינוי האפשרויות של מסד הנתונים
- מחיקה של מסד נתונים
בדף הזה יש מידע על מסדי נתונים עם ניב GoogleSQL ועל מסדי נתונים עם ניב PostgreSQL. במאמר עדכון סכימה מוסבר איך לעדכן סכימה של מסד נתונים. למידע נוסף על יצירת מכונה, ראו יצירה וניהול של מכונות. אפשר ליצור מסד נתונים במכונה קיימת בכל אחת מהדרכים הבאות:
- יצירת מסד נתונים: אתם יכולים ליצור מסד נתונים חדש על ידי בחירת ניב ה-SQL והגדרת הסכימה.
- לייבא נתונים משלכם: אתם יכולים לייבא קובץ CSV, קובץ dump של MySQL או קובץ dump של PostgreSQL למסד נתונים חדש או קיים.
- ייבוא מסד נתונים של Cloud SQL: אתם יכולים לייבא מסד נתונים של Cloud SQL ל-MySQL אל Spanner.
- יצירת מסד נתונים עם נתונים לדוגמה: אתם יכולים לאכלס מסד נתונים באמצעות אחת מקבוצות הנתונים הזמינות לדוגמה כדי לנסות את היכולות של Spanner.
יצירת מסד נתונים
אתם יכולים ליצור מסד נתונים חדש במכונה קיימת. במסדי נתונים עם ניב GoogleSQL, אפשר להגדיר את סכימת מסד הנתונים בזמן יצירת מסד הנתונים או אחרי שהוא נוצר. במסדי נתונים עם ניב PostgreSQL, צריך להגדיר את הסכימה אחרי היצירה.
הסכימות מוגדרות באמצעות שפת הגדרת מסד הנתונים (DDL), שמתועדת ל-GoogleSQL ול-PostgreSQL. בקישורים הבאים מוסבר איך ליצור ולעדכן סכימות:
אחרי שיוצרים מסד נתונים, אפשר להפעיל את ההגנה מפני מחיקה כדי להגן על מסדי נתונים שחשובים לאפליקציות ולשירותים שלכם. מידע נוסף זמין במאמר מניעת מחיקה מקרית של מסד נתונים.
מסוף Google Cloud
נכנסים לדף Spanner instances במסוף Google Cloud .
בוחרים את המכונה שבה רוצים ליצור את מסד הנתונים.
לוחצים על Create database.
מזינים את הערכים הבאים:
- שם מסד נתונים שיוצג במסוף Google Cloud .
- הניב שבו משתמשים במסד הנתונים הזה.
- במסדי נתונים עם ניב GoogleSQL, אפשר לספק קבוצה של הצהרות DDL שמגדירות את הסכימה. אפשר להשתמש בתבניות DDL כדי למלא מראש רכיבים נפוצים. אם יש שגיאות בהצהרות ה-DDL, מסוף Google Cloud מחזיר שגיאה כשמנסים ליצור את מסד הנתונים.
- אם רוצים, בוחרים מפתח הצפנה בניהול הלקוח לשימוש במסד הנתונים הזה.
לוחצים על Create כדי ליצור את מסד הנתונים.
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
- המזהה של המפתח או המזהה המלא של המפתח.
חובה לציין את הדגל הזה אם מציינים אחד מהארגומנטים האחרים בקבוצה הזו. אפשר להשמיט את הארגומנטים האחרים אם מספקים את המזהה המלא.
--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. למידע נוסף, ראו הגדרת אימות לסביבת פיתוח מקומית.
המשך
במאמר ספריות הלקוח של 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. למידע נוסף, ראו הגדרת אימות לסביבת פיתוח מקומית.
המשך
במאמר ספריות הלקוח של 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.
ייבוא מסד נתונים מ-Cloud SQL
אם אתם משתמשים ב-Cloud SQL ל-MySQL ורוצים לבדוק את Spanner, אתם יכולים לייבא נתונים ממכונת Cloud SQL ל-MySQL אל Spanner. התכונה הזו ממירה את הסכימה של MySQL ויוצרת סכימה תואמת של Spanner. לאחר מכן, הוא טוען נתונים ממסד הנתונים של Cloud SQL ל-MySQL ל-Spanner.
הפונקציונליות הזו מבצעת רק טעינת נתונים בכמות גדולה באופן חד-פעמי. הוא לא תומך בלכידת שינויים בנתונים בזמן אמת או בגיבוי מ-Spanner למסד הנתונים של המקור.
מידע נוסף זמין במאמר ייבוא מ-Cloud SQL ל-Spanner.
שימוש במערך נתונים לדוגמה
כדי לבחון את Spanner Graph, חיפוש וקטורי או את המודל הרלציוני, אתם יכולים ליצור מסד נתונים חדש שמאוכלס מראש במערך נתונים לדוגמה. מערכי הנתונים לדוגמה שזמינים תלויים בניב של מסד הנתונים שנבחר (GoogleSQL או PostgreSQL).
נכנסים לדף Spanner instances במסוף Google Cloud .
בוחרים את המכונה שבה רוצים ליצור את מסד הנתונים.
לוחצים על Explore datasets.
בוחרים קבוצת נתונים, בהתאם לניב של מסד הנתונים:
GoogleSQL
- תרשים פיננסי: משתמשים ב<b>קבוצת נתונים</b> זו כדי לבחון את התכונות של התרשים ומסד הנתונים הרלציוני של Spanner.
- בנקאות דיגיטלית: קבוצת נתונים שמאפשרת לבחון את התכונות של Spanner לחיפוש טקסט מלא וחיפוש וקטורי.
- משחקים אונליין: השתמשו בקבוצת הנתונים הזו כדי לבחון את התכונות של מסד הנתונים הרלציוני של Spanner.
- קמעונאות: משתמשים בקבוצת הנתונים הזו כדי לבחון את התכונות של Spanner: תרשים, חיפוש טקסט מלא וחיפוש וקטורי.
PostgreSQL
- בנקאות דיגיטלית: קבוצת נתונים שמאפשרת לבחון את תכונות חיפוש הטקסט המלא של Spanner.
- משחקים אונליין: השתמשו בקבוצת הנתונים הזו כדי לבחון את התכונות של מסד הנתונים הרלציוני של Spanner.
- Retail: קבוצת נתונים שמאפשרת לבחון את התכונות של Spanner לחיפוש טקסט מלא וחיפוש וקטורי.
לוחצים על Create database.
עדכון הסכימה או האפשרויות של מסד הנתונים
אתם יכולים לעדכן את הסכימה והאפשרויות של מסד הנתונים באמצעות הצהרות 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;
למידע נוסף על האפשרויות הנתמכות, עיינו בחומר העזר בנושא DDL של ALTER DATABASE ל-GoogleSQL או ל-PostgreSQL.
למידע על עדכוני סכימה, ראו עדכוני סכימה.
מסוף Google Cloud
נכנסים לדף Spanner instances במסוף Google Cloud .
בוחרים את המכונה שמכילה את מסד הנתונים שרוצים לשנות.
בוחרים את מסד הנתונים.
לוחצים על Spanner Studio.
לוחצים על New tab או משתמשים בכרטיסיית העריכה הריקה. לאחר מכן, מזינים את הצהרות ה-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 צריך לכלול, עיינו בחומר העזר בנושא DDL של ALTER DATABASE ל-GoogleSQL או ל-PostgreSQL.
DDL
פרטים נוספים זמינים במאמרי העזרה בנושא DDL של ALTER DATABASE ל-GoogleSQL או ל-PostgreSQL.
בדיקת ההתקדמות של פעולות עדכון הסכימה
כדי לבדוק את התקדמות הפעולות של עדכון הסכימה, בוחרים באחת מהשיטות הבאות:
מסוף Google Cloud
בתפריט הניווט של Spanner, לוחצים על הכרטיסייה Operations. בדף Operations מוצגת רשימה של פעולות שמתבצעות כרגע.
מוצאים את פעולת הסכימה ברשימה. אם הפעולה עדיין פועלת, סרגל ההתקדמות בעמודה End time מציג את אחוז הפעולה שהושלמה, כפי שמוצג בתמונה הבאה:

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 אין תמיכה בתחביר למחיקת מסד נתונים.
המאמרים הבאים
- יוצרים מסד נתונים וטוענים אותו עם נתונים לדוגמה.
- מידע נוסף על חומר עזר בנושא GoogleSQL DDL
- מידע נוסף על הפניית PostgreSQL DDL
- איך מגבים ומשחזרים מסד נתונים
- איך למנוע מחיקה מקרית של מסד נתונים
- איך מעדכנים סכימה