בעזרת Datastream אתם יכולים להעביר עדכונים של שינויים בנתונים (CDC) ממסד נתונים בניהול עצמי ב-PostgreSQL או ב-AlloyDB Omni ליעד נתמך, כמו BigQuery או Cloud Storage. כדי להכין את מסד הנתונים של המקור, צריך להפעיל רפליקציה לוגית, ליצור פרסום ומשבצת רפליקציה ולהגדיר משתמש Datastream עם הרשאות רפליקציה.
הפעלת שכפול לוגי במסד הנתונים
מגדירים את הפרמטר
wal_levelבמסד הנתונים על ידי הוספתwal_level=logicalלקובץpostgresql.conf.מפעילים מחדש את השרת.
יצירת פרסום ומשבצת רפליקציה
נכנסים למסוף PostgreSQL כמשתמש-על.
יוצרים אתר חדשות. מומלץ ליצור פרסום רק לטבלאות שרוצים לשכפל. כך Datastream יכול לקרוא רק את הנתונים הרלוונטיים, והעומס על מסד הנתונים ועל Datastream פוחת:
CREATE PUBLICATION PUBLICATION_NAME FOR TABLE SCHEMA1.TABLE1, SCHEMA2.TABLE2;
מחליפים את מה שכתוב בשדות הבאים:
- PUBLICATION_NAME: שם אתר החדשות. תצטרכו לספק את השם הזה כשתצרו מקור נתונים באשף ליצירת מקורות נתונים ב-Datastream.
- SCHEMA: שם הסכימה שמכילה את הטבלה.
- TABLE: שם הטבלה שרוצים לשכפל.
אפשר ליצור פרסום לכל הטבלאות בסכימה. הגישה הזו מאפשרת לשכפל שינויים בטבלאות ברשימת הסכימות שצוינה, כולל טבלאות שתיצרו בעתיד:
CREATE PUBLICATION PUBLICATION_NAME FOR TABLES IN SCHEMA SCHEMA1, SCHEMA2;
אפשר גם ליצור פרסום לכל הטבלאות במסד הנתונים. חשוב לזכור שהגישה הזו מגדילה את העומס גם על מסד הנתונים של המקור וגם על Datastream:
CREATE PUBLICATION PUBLICATION_NAME FOR ALL TABLES;
כדי ליצור משבצת רפליקציה, מזינים את פקודת ה-SQL הבאה:
SELECT PG_CREATE_LOGICAL_REPLICATION_SLOT('REPLICATION_SLOT_NAME', 'pgoutput');מחליפים את מה שכתוב בשדות הבאים:
- REPLICATION_SLOT_NAME: השם של מיקום הרפליקציה. תצטרכו לספק את השם הזה כשתצרו מקור נתונים באשף ליצירת מקורות נתונים ב-Datastream.
יצירת משתמש ב-Datastream
כדי ליצור משתמש ב-Datastream, מזינים את פקודות ה-SQL הבאות:
CREATE USER USER_NAME WITH ENCRYPTED PASSWORD 'USER_PASSWORD';
מחליפים את מה שכתוב בשדות הבאים:
- USER_NAME: השם של משתמש Datastream שרוצים ליצור.
- USER_PASSWORD: סיסמת הכניסה של המשתמש ב-Datastream שרוצים ליצור.
נותנים למשתמש שיצרתם את ההרשאות הבאות:
ALTER ROLE USER_NAME WITH REPLICATION; GRANT SELECT ON ALL TABLES IN SCHEMA SCHEMA_NAME TO USER_NAME; GRANT USAGE ON SCHEMA SCHEMA_NAME TO USER_NAME; ALTER DEFAULT PRIVILEGES IN SCHEMA SCHEMA_NAME GRANT SELECT ON TABLES TO USER_NAME;
מחליפים את מה שכתוב בשדות הבאים:
- USER_NAME: המשתמש שרוצים לתת לו את ההרשאות.
- SCHEMA_NAME: שם הסכימה שרוצים לתת לה את ההרשאות.