בדף הזה מוסבר איך ליצור ולנהל מיקומי נתונים ב-Spanner.
מידע נוסף על חלוקה גיאוגרפית למחיצות זמין במאמר סקירה כללית על חלוקה גיאוגרפית למחיצות.
יצירת מיקום מודעה
אחרי יצירת המחיצות של מופע Spanner ומסדי הנתונים, יוצרים את מיקום המודעה.
המסוף
נכנסים לדף Instances במסוף Google Cloud .
בוחרים את המופע עם מחיצות המופע שנוצרו על ידי המשתמשים.
בוחרים את מסד הנתונים שרוצים לחלק את הנתונים שלו.
בתפריט הניווט, לוחצים על Spanner Studio.
בדף Spanner Studio, לוחצים על New tab או משתמשים בכרטיסיית העריכה הריקה.
מזינים את הצהרת ה-DDL
CREATE PLACEMENT(GoogleSQL, PostgreSQL).לדוגמה, אפשר להריץ את הפקודה הבאה כדי ליצור טבלת מיקומי מודעות
europeplacementבמחיצת המופעeurope-partition:GoogleSQL
CREATE PLACEMENT europeplacement OPTIONS (instance_partition="europe-partition");PostgreSQL
CREATE PLACEMENT europeplacement WITH (instance_partition='europe-partition');אופציונלי: אפשר גם להשתמש בחלונית Object Explorer כדי להציג, לחפש ולבצע פעולות באובייקטים של מיקומי המודעות. מידע נוסף מופיע במאמר עיון בנתונים.
לוחצים על Run.
gcloud
כדי ליצור מיקום באמצעות פקודת Google Cloud CLI, משתמשים בפקודה gcloud spanner databases ddl update.
לדוגמה, יצירת מיקום במחיצת המופע europe-partition:
GoogleSQL
gcloud spanner databases ddl update example-db \
--instance=test-instance \
--ddl="CREATE PLACEMENT europeplacement OPTIONS (instance_partition='europe-partition')"
PostgreSQL
gcloud spanner databases ddl update example-db \
--instance=test-instance \
--ddl="CREATE PLACEMENT europeplacement WITH (instance_partition='europe-partition')"
הגדרת מנהיג ברירת מחדל למיקום
אם המיקום של מיקום המודעה הוא בשני אזורים או במספר אזורים, אפשר להגדיר את אזור ברירת המחדל של המיקום. האזור הראשי החדש חייב להיות אחד משני האזורים לקריאה ולכתיבה במיקום בשני אזורים או במספר אזורים. מידע נוסף זמין בטבלאות הגדרות זמינות בשני אזורים והגדרות זמינות במספר אזורים.
אם לא מגדירים אזור מוביל, המיקום משתמש באזור המוביל שמוגדר כברירת מחדל לפי המיקום שלו. בטבלאות תצורות זמינות של שני אזורים ותצורות זמינות של מספר אזורים מפורטת רשימת האזורים המובילים לכל מיקום בשני אזורים או במספר אזורים. אזור ברירת המחדל לניהול מוגדר עם L. לדוגמה, אזור ברירת המחדל של nam8 הוא לוס אנג'לס(us-west2). בהוראות הבאות מוסבר איך להגדיר אותו לאורגון(us-west1).
המסוף
נכנסים לדף Instances במסוף Google Cloud .
בוחרים את המופע עם מחיצות המופע שנוצרו על ידי המשתמשים.
בוחרים את מסד הנתונים שרוצים לחלק את הנתונים שלו.
בתפריט הניווט, לוחצים על Spanner Studio.
בדף Spanner Studio, לוחצים על New tab או משתמשים בכרטיסיית העריכה הריקה.
מזינים את הצהרת ה-DDL
CREATE PLACEMENT(GoogleSQL, PostgreSQL).לדוגמה, אפשר להריץ את הפקודה הבאה כדי ליצור טבלת מיקום
nam8placementבמחיצת המופעnam8-partitionעם מיקום ברירת המחדל של הלידר שמוגדר כ-us-west1:GoogleSQL
CREATE PLACEMENT `nam8placement` OPTIONS (instance_partition="nam8-partition", default_leader="us-west1");PostgreSQL
CREATE PLACEMENT nam8placement WITH (instance_partition='nam8-partition', default_leader='us-west1');אופציונלי: אפשר גם להשתמש בחלונית Object Explorer כדי להציג, לחפש ולבצע פעולות באובייקטים של מיקומי המודעות. מידע נוסף מופיע במאמר עיון בנתונים.
לוחצים על Run.
gcloud
כדי ליצור מיקום באמצעות פקודת ה-CLI של gcloud, משתמשים בפקודה gcloud spanner databases ddl update.
לדוגמה, כדי ליצור טבלת מיקום nam8placement במחיצת המכונה nam8-partition עם מיקום ברירת המחדל של הלידר שמוגדר כ-us-west1:
GoogleSQL
gcloud spanner databases ddl update example-db \
--instance=test-instance \
--ddl="CREATE PLACEMENT nam8placement \
OPTIONS (instance_partition='nam8-partition', default_leader='us-west1')"
PostgreSQL
gcloud spanner databases ddl update example-db \
--instance=test-instance \
--ddl="CREATE PLACEMENT nam8placement WITH (instance_partition='nam8-partition', default_leader='us-west1')"
הוספת מיקום נתונים
לפני שמסירים מיקום מודעה, צריך להסיר ממנו את כל נתוני השורה. אחרי שמבצעים את הפעולה הזו, אפשר להשתמש במסוף Google Cloud או ב-CLI של gcloud כדי להסיר את המיקום.
המסוף
- בתפריט הניווט, לוחצים על Spanner Studio.
- בדף Spanner Studio, לוחצים על New tab או משתמשים בכרטיסיית העריכה הריקה.
מזינים את הצהרת ה-DDL
DROP PLACEMENT(GoogleSQL, PostgreSQL).לדוגמה, אפשר להריץ את הפקודה הבאה כדי להסיר את טבלת המיקומים
europeplacement:GoogleSQL
DROP PLACEMENT europeplacement;PostgreSQL
DROP PLACEMENT europeplacement;
gcloud
כדי להסיר מיקום באמצעות פקודת ה-CLI של gcloud, משתמשים בפקודה gcloud spanner databases ddl update.
לדוגמה, מיקום של תפריט נפתח europeplacement:
gcloud spanner databases ddl update example-db \
--instance=test-instance \
--ddl="DROP PLACEMENT europeplacement"
שגיאות בהצבת רכיב Drop
אם המיקום נמצא בשימוש, הפעולה DROP PLACEMENT נכשלת ומוצגת הודעת שגיאה כמו: "Statement failed: Placement PLACEMENT_NAME cannot be dropped because it is in use by placement table PLACEMENT_TABLE_NAME." (ההצהרה נכשלה: אי אפשר להסיר את המיקום PLACEMENT_NAME כי הוא נמצא בשימוש בטבלת המיקום PLACEMENT_TABLE_NAME). אם השגיאה הזו מופיעה, צריך לבצע את הפעולות הבאות:
- משנים את האפליקציה כדי להפסיק להוסיף או לעדכן שורות עם מיקום המודעה שרוצים להסיר.
אחת מהאפשרויות:
מעבירים שורות קיימות של מיקומי מודעות שמשתמשות במיקום המודעה שרוצים למחוק למיקום מודעה אחר באמצעות הצהרת DML עם חלוקה למחיצות כמו בדוגמה הבאה:
UPDATE PLACEMENT_TABLE_NAME SET LOCATION = NEW_PLACEMENT_NAME WHERE LOCATION = ORIGINAL_PLACEMENT_NAME;מוחקים את השורות של מיקום המודעה באמצעות פקודת DML מחולקת למחיצות, כמו הפקודה הבאה:
DELETE FROM PLACEMENT_TABLE_NAME WHERE LOCATION = ORIGINAL_PLACEMENT_NAME;פקודות ה-DML הקודמות שספציפיות למיקום המודעה פועלות רק עם DML מחולק. הן ייכשלו כמו פקודות DML רגילות. מידע נוסף מופיע בקטע מגבלות. אפשר גם להשתמש ב-Mutation API כדי להעביר או להשמיט שורות של מיקומי מודעות.
ביטול פעולה של DROP PLACEMENT
אפשר לבטל פעולת DROP PLACEMENT בכל שלב לפני שהפעולה ארוכת הטווח מוחקת לחלוטין את מיקום המודעה מסכימת מסד הנתונים. במאמר ניהול פעולות ממושכות ומעקב אחריהן מוסבר איך מקבלים את מזהה הפעולה הממושכת כדי לבדוק את הסטטוס או לבטל את הפעולה.
יצירת טבלה עם מפתח מיקום
המסוף
- בתפריט הניווט, לוחצים על Spanner Studio.
- בדף Spanner Studio, לוחצים על New tab או משתמשים בכרטיסיית העריכה הריקה.
מזינים את הצהרת ה-DDL
CREATE TABLE(GoogleSQL, PostgreSQL).לדוגמה, אפשר ליצור טבלה
Singersשמשתמשת במפתח מיקום כדי לחלק את נתוני הזמרים:GoogleSQL
CREATE TABLE Singers ( SingerId INT64 NOT NULL, SingerName STRING(MAX) NOT NULL, ... Location STRING(MAX) NOT NULL PLACEMENT KEY ) PRIMARY KEY (SingerId);PostgreSQL
CREATE TABLE Singers ( SingerId bigint PRIMARY KEY, SingerName varchar(1024), ... Location varchar(1024) NOT NULL PLACEMENT KEY );
gcloud
כדי ליצור טבלה, משתמשים בפקודה gcloud spanner databases ddl update.
לדוגמה, אפשר ליצור טבלה Singers שמשתמשת במפתח מיקום כדי לחלק את נתוני הזמרים:
GoogleSQL
gcloud spanner databases ddl update example-db \
--instance=test-instance \
--ddl="CREATE TABLE Singers ( SingerId INT64 NOT NULL, SingerName STRING(MAX) NOT NULL, Location STRING(MAX) NOT NULL PLACEMENT KEY ) PRIMARY KEY (SingerId);"
PostgreSQL
gcloud spanner databases ddl update example-db \
--instance=test-instance \
--ddl="CREATE TABLE Singers ( SingerId bigint PRIMARY KEY, SingerName varchar(1024), Location varchar(1024) NOT NULL PLACEMENT KEY );"
עריכת טבלה באמצעות מפתח מיקום
אי אפשר להסיר מפתח מיקום מטבלה. בנוסף, אי אפשר להוסיף מפתח מיקום מודעה לטבלה אחרי שהיא נוצרה. עם זאת, אפשר להשתמש בהצהרת DDL ALTER TABLE (GoogleSQL, PostgreSQL) כדי לשנות שדות אחרים בטבלה, למשל על ידי הוספה והסרה של עמודות מפתח שאינן עמודות מיקום.
מחיקת טבלה עם מפתח מיקום
לפני שמוחקים טבלה עם מפתח מיקום, צריך קודם:
- מחיקת כל השורות בטבלת המיקומים.
- ממתינים עד ש
version_retention_periodיעבור את מסד הנתונים. מידע נוסף זמין במאמר בנושא שחזור מערכת מנקודה מסוימת בזמן (PITR). לאחר מכן, פועלים לפי השלבים הבאים:
המסוף
- בתפריט הניווט, לוחצים על Spanner Studio.
- בדף Spanner Studio, לוחצים על New tab או משתמשים בכרטיסיית העריכה הריקה.
מזינים את הצהרת ה-DDL
DROP TABLE(GoogleSQL, PostgreSQL).לדוגמה, כדי להסיר את הטבלה
Singers:DROP TABLE Singers;
gcloud
כדי להסיר טבלה, משתמשים ב-gcloud spanner databases ddl update.
לדוגמה, כדי להסיר את הטבלה Singers:
gcloud spanner databases ddl update example-db \
--instance=test-instance \
--ddl="DROP TABLE Singers"
הוספת שורה לטבלת מיקומים
המסוף
- בתפריט הניווט, לוחצים על Spanner Studio.
- בדף Spanner Studio, לוחצים על New tab או משתמשים בכרטיסיית העריכה הריקה.
מזינים את הצהרת ה-DDL
INSERT INTO(GoogleSQL, PostgreSQL).לדוגמה, מוסיפים את הזמר מארק ריצ'רדס לטבלה
Singersומחלקים אותה למחיצות ב-europeplacement:INSERT INTO Singers(SingerId, SingerName, Location) VALUES (1, 'Marc Richards', 'europeplacement')
gcloud
כדי לכתוב נתונים לטבלה, משתמשים ב-gcloud spanner rows insert.
לדוגמה, מוסיפים את הזמר מארק ריצ'רדס לטבלה Singers ומחלקים אותה למחיצות ב-europeplacement:
gcloud spanner rows insert --table=Singers --database=example-db \
--instance=test-instance --data=SingerId=1,SingerName='Marc Richards',Location='europeplacement'
עדכון שורה בטבלת מיקומים
המסוף
- בתפריט הניווט, לוחצים על Spanner Studio.
- בדף Spanner Studio, לוחצים על New tab או משתמשים בכרטיסיית העריכה הריקה.
כדי לעדכן נתונים בטבלת מיקומי מודעות, משתמשים ב-DML או במוטציות.
לדוגמה, כדי לעדכן את השם
singerid=1בטבלהSingersל-Catalina Smith:UPDATE Singers s SET s.name='Catalina Smith' WHERE s.id=1;
gcloud
כדי לעדכן נתונים בטבלת מיקומי מודעות, משתמשים ב-gcloud spanner rows update.
לדוגמה, כדי לעדכן את השם singerid=1 בטבלה Singers ל-Catalina Smith:
gcloud spanner rows update --table=Singers --database=example-db \
--instance=test-instance --data=SingerId=1,SingerName='Catalina Smith'
העברת שורה בטבלת מיקומים
המסוף
- אם עדיין לא עשיתם זאת, צרו מחיצה חדשה של מופע ומיקום.
- בתפריט הניווט, לוחצים על Spanner Studio.
- בדף Spanner Studio, לוחצים על New tab או משתמשים בכרטיסיית העריכה הריקה.
כדי להעביר נתונים למחיצת המופע החדשה, משתמשים ב-DML או במוטציות.
לדוגמה, מעבירים את
singerid=1בטבלהSingersאלasiaplacement:UPDATE Singers s SET s.location='asiaplacement' WHERE s.id=1;
gcloud
אחרי שיוצרים את המיקום והמחיצה של המופע שאליו רוצים להעביר את הנתונים, משתמשים ב-gcloud spanner rows update.
לדוגמה, מעבירים את singerid=1 בטבלה Singers אל asiaplacement:
gcloud spanner rows update --table=Singers --database=example-db \
--instance=test-instance --data=SingerId=1,Location='asiaplacement'
מחיקת שורה בטבלת מיקומי מודעות
המסוף
gcloud
כדי למחוק נתונים, משתמשים בסמל gcloud spanner rows delete.
לדוגמה, כדי למחוק את singerid=1 בטבלה Singers:
gcloud spanner rows delete --table=Singers --database=example-db \
--instance=test-instance --keys=1
שליחת שאילתות לנתונים בטבלת מיקומי מודעות
המסוף
- בתפריט הניווט, לוחצים על Spanner Studio.
- בדף Spanner Studio, לוחצים על New tab או משתמשים בכרטיסיית העריכה הריקה.
מריצים את השאילתה.
לדוגמה, אפשר להריץ שאילתה בטבלה
Singers:SELECT * FROM Singers s WHERE s.SingerId=1;
gcloud
כדי להריץ שאילתות על נתונים, משתמשים ב-gcloud spanner databases execute-sql.
לדוגמה, אפשר להריץ שאילתה בטבלה Singers:
gcloud spanner databases execute-sql example-db \
--instance=test-instance \
--sql='SELECT * FROM Singers s WHERE s.SingerId=1'