הגדרת מסד נתונים של PostgreSQL בניהול עצמי ל-CDC

בדף הזה מוסבר איך להגדיר לכידת נתונים משתנים (CDC) כדי להזרים נתונים ממסד נתונים של PostgreSQL בניהול עצמי אל יעד נתמך, כמו BigQuery או Cloud Storage.

הפעלת שכפול לוגי במסד הנתונים

  1. מגדירים את הפרמטר wal_level במסד הנתונים על ידי הוספת wal_level=logical לקובץ postgresql.conf.

  2. מפעילים מחדש את השרת.

יצירה של אתר חדשות ושל משבצת שכפול

  1. נכנסים למסוף PostgreSQL כמשתמש על.

  2. יוצרים אתר חדשות. מומלץ ליצור פרסום רק עבור הטבלאות שרוצים לשכפל. כך 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;
    
  3. יוצרים משבצת שכפול באמצעות פקודת ה-SQL הבאה:

    SELECT PG_CREATE_LOGICAL_REPLICATION_SLOT('REPLICATION_SLOT_NAME', 'pgoutput');

    מחליפים את מה שכתוב בשדות הבאים:

    • REPLICATION_SLOT_NAME: השם של משבצת השכפול. תצטרכו לספק את השם הזה כשתיצרו מקור נתונים באשף ליצירת מקור נתונים ב-Datastream.

יצירת משתמש Datastream

  1. כדי ליצור משתמש Datastream, מזינים את פקודות ה-SQL הבאות:

    CREATE USER USER_NAME WITH ENCRYPTED PASSWORD 'USER_PASSWORD';

    מחליפים את מה שכתוב בשדות הבאים:

    • USER_NAME: השם של משתמש Datastream שרוצים ליצור.
    • USER_PASSWORD: סיסמת הכניסה של משתמש Datastream שרוצים ליצור.
  2. מעניקים למשתמש שיצרתם את ההרשאות הבאות:

    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: השם של הסכימה שרוצים לתת לה את ההרשאות.

המאמרים הבאים