בדף הזה מוסבר איך להפעיל את מנוע מבוסס-העמודות של Spanner במסד נתונים, בטבלה או באינדקס, ואיך להאיץ את יצירת פורמט הקובץ.
הפעלת מנוע מבוסס-עמודות של Spanner (GoogleSQL)
מפעילים את מנוע מבוסס-העמודות של Spanner באמצעות פסקה SET OPTIONS עם האפשרות columnar_policy. אפשר להחיל את האפשרות הזו כשיוצרים או משנים אובייקטים של סכימה DATABASE, TABLE או INDEX. אובייקטים של סכימת SEARCH INDEX ו-VECTOR INDEX אף פעם לא מוצגים בפורמט של עמודות.
טבלאות ואינדקסים מקבלים בירושה את התג columnar_policy שצוין ברמת מסד הנתונים.
האפשרות columnar_policy כוללת את הדגלים הבאים:
-
'enabled'או'disabled'מפעילים או משביתים את מנוע מבוסס-העמודות עבור אובייקט סכימה ספציפי. -
NULL(ברירת מחדל) משתמש במדיניות של מנוע מבוסס-עמודות מאובייקט האב, אם קיים כזה. NULLמוחק הגדרות קודמות באובייקט של טבלה.
אפשר גם להשמיט את OPTIONS כדי להעביר את columnar_policy מאובייקט ההורה.
בדוגמה הבאה אפשר לראות איך:
- יוצרים מסד נתונים עם מדיניות עמודות מופעלת.
- מגדירים
Singersטבלה שמקבלת בירושה את מדיניות העמודות ממסד הנתונים (משמיטים אתcolumnar_policy = NULLלאפשרות הטבלה). - מגדירים טבלה
Concertsעם מדיניות עמודות מושבתת באופן מפורש.
CREATE DATABASE Music;
ALTER DATABASE Music SET OPTIONS (columnar_policy = 'enabled');
CREATE TABLE Singers(
SingerId INT64 NOT NULL,
FirstName STRING(1024),
LastName STRING(1024),
BirthDate DATE,
Status STRING(1024),
LastUpdated TIMESTAMP,)
PRIMARY KEY(SingerId);
CREATE TABLE Concerts(
VenueId INT64 NOT NULL,
SingerId INT64 NOT NULL,
ConcertDate DATE NOT NULL,
BeginTime TIMESTAMP,
EndTime TIMESTAMP,)
PRIMARY KEY(VenueId, SingerId, ConcertDate),
OPTIONS (columnar_policy = 'disabled');
אפשר גם להשתמש ב-ALTER TABLE עם פסוקית SET OPTIONS כדי להפעיל או להשבית את columnar_policy בטבלה. בדוגמה הבאה אפשר לראות איך משביתים את המדיניות בטבלה Singers:
ALTER TABLE Singers SET OPTIONS (columnar_policy = 'disabled');
הפעלת מנוע מבוסס-עמודות ב-Spanner (PostgreSQL)
אפשר להפעיל את מנוע מבוסס-העמודות של Spanner לכל הטבלאות והאינדקסים על ידי הפעלת ההצהרה הבאה:
ALTER DATABASE db_name SET spanner.columnar_policy TO enabled
כדי להפעיל את מנוע מבוסס-העמודות של Spanner לטבלאות ולאינדקסים ספציפיים, מוסיפים את האפשרות COLUMNAR POLICY enabled כשיוצרים או משנים אובייקט סכימה מסוג TABLE או INDEX. אובייקטים של סכימות SEARCH INDEX ו-VECTOR INDEX אף פעם לא מופיעים בפורמט של עמודות.
טבלאות ואינדקסים מקבלים בירושה את COLUMNAR POLICY שצוין ברמת מסד הנתונים.
הערכים האפשריים של אפשרות מילת המפתח COLUMNAR POLICY הם:
-
enabledאוdisabledמפעילים או משביתים את מנוע מבוסס-העמודות עבור אובייקט סכימה ספציפי. -
NULLמשתמש במדיניות של מנוע מבוסס-עמודות מאובייקט האב, אם קיים כזה. NULLמוחק את ההגדרה הקודמת באובייקט של סכימת טבלה או אינדקס.
בדוגמה הבאה אפשר לראות איך:
- יוצרים מסד נתונים עם מדיניות עמודות מופעלת.
- מגדירים
Singersטבלה שמקבלת בירושה את מדיניות העמודות ממסד הנתונים (משמיטים אתcolumnar_policy = NULLלאפשרות הטבלה). - מגדירים טבלת
Concertsעם מדיניות עמודות שמושבתת באופן מפורש.
CREATE DATABASE Music;
ALTER DATABASE "Music" SET spanner.columnar_policy TO enabled;
CREATE TABLE Singers(
SingerId bigint PRIMARY KEY,
FirstName varchar,
LastName varchar,
BirthDate date,
Status varchar,
LastUpdated timestamptz
);
CREATE TABLE Concerts(
VenueId bigint NOT NULL,
SingerId bigint NOT NULL,
ConcertDate date NOT NULL,
BeginTime timestamptz,
EndTime timestamptz,
PRIMARY KEY(VenueId, SingerId, ConcertDate)
) COLUMNAR POLICY disabled;
אפשר גם להשתמש ב-ALTER TABLE עם הפסוקית SET COLUMNAR POLICY כדי להפעיל או להשבית את מדיניות העמודות בטבלה. בדוגמה הבאה אפשר לראות איך משביתים את המדיניות בטבלה Singers:
ALTER TABLE Singers SET COLUMNAR POLICY disabled;
כדי להסיר את הגדרת המדיניות העמודתית ברמת מסד הנתונים, משתמשים בפקודה RESET:
ALTER DATABASE Music RESET spanner.columnar_policy;
הפעלת מנוע מבוסס-עמודות ב-Spanner מגדילה את נפח האחסון הנדרש של מסד הנתונים או הטבלה (בהתאם לאפשרות ההפעלה שבה משתמשים) בכ-60%. העלייה המדויקת תלויה בסוג הנתונים ובמאפייני הדחיסה שלהם. חשוב לוודא שלמופע Spanner יש מספיק קיבולת אחסון כדי להכיל את הגידול בשימוש באחסון. מידע נוסף זמין במאמר בנושא מגבלות על מסדי נתונים.
יצירת פורמט קובץ מבוסס-עמודות
Spanner יוצר את פורמט הקובץ העמודתי בזמן הדחיסה. הדחיסה היא תהליך שמתבצע ברקע, ובדרך כלל נמשך כמה ימים. עם זאת, אם גודל מסד הנתונים גדל באופן משמעותי, יכול להיות שהדחיסה תסתיים מוקדם יותר. מידע נוסף זמין במאמר בנושא כיסוי אופטימלי של עמודות.
אם יוצרים מסד נתונים חדש ללא נתונים ומפעילים את מנוע העמודות, Spanner מאחסן את הנתונים בפורמט עמודות בזמן שמוסיפים אותם ובזמן שמתבצעות פעולות דחיסה ברקע.
פורמט נתונים של עמודות לא נוצר לגיבויים.
כשמפעילים את מנוע מבוסס-העמודות של Spanner במסד נתונים קיים שיש בו נתונים, Spanner מספק מנגנון להפעלת דחיסות באופן ידני. מידע נוסף זמין במאמר בנושא הפעלה ידנית של דחיסת נתונים.
המאמרים הבאים
- מידע נוסף על מנוע מבוסס-עמודות.
- איך מריצים שאילתות על נתונים בפורמט עמודות
- איך עוקבים אחרי מנוע מבוסס-עמודות