אימות של העברה

בדף הזה מוסבר איך לוודא שהנתונים שהועברו מלאים ומדויקים. לפחות, כדאי להריץ הצהרות SQL כדי לוודא שהטבלאות קיימות במסד הנתונים של Cloud SQL שהועבר. כדי להשוות את הנתונים בצורה מדויקת יותר בין מסד הנתונים של המקור לבין מסד הנתונים של היעד, אפשר להשתמש ב-Data Validation Tool בקוד פתוח.

אימות נתוני היעד באמצעות הצהרות SQL

אפשר להריץ הצהרות SQL כדי לוודא שהטבלאות קיימות במסד הנתונים של Cloud SQL שהועבר. צריך לבצע את הפעולות הבאות:

  1. מתחברים למכונה של Cloud SQL ל-PostgreSQL באמצעות כלי שבו אפשר להריץ פקודות SQL על מסדי הנתונים שהועברו.

    מידע נוסף על התחברות למכונות Cloud SQL זמין במאמר אפשרויות חיבור במאמרי העזרה של Cloud SQL.

  2. מריצים פקודות SQL כדי לאמת את הנתונים שהועברו. לדוגמה:

    • הצגת כל הטבלאות במסד הנתונים:
      SELECT * FROM pg_catalog.pg_tables;
    • בודקים את תוכן הטבלה:
      SELECT * FROM TABLE_NAME';

אימות הנתונים באמצעות Data Validation Tool

הכלי לאימות נתונים בקוד פתוח מאפשר לבצע השוואות מדויקות מאוד בין נתונים בשני מסדי נתונים, אבל נדרש ליצור חיבורי רשת למסדי הנתונים של המקור והיעד.

בדוגמה המינימלית הבאה אפשר לראות איך עושים את זה:

  1. פריסה או שימוש במכונה וירטואלית עם גישה גם למקור וגם ליעד.

  2. במכונה הווירטואלית, יוצרים תיקייה להתקנת Data Validation Tool.

  3. עוברים לתיקייה הזו.

  4. משתמשים ב- pip כדי להתקין את Data Validation Tool.

    pip install google-pso-data-validator
    
  5. יוצרים חיבורים למסד הנתונים של Oracle כמקור ולמסד הנתונים של Cloud SQL ל-PostgreSQL כיעד:

    data-validation connections add -c source Oracle --host 'ip-address' --port port --user username --password pswd --database database-name
    data-validation connections add -c target Postgres --host 'ip-address' --port port --user username --password pswd --database database-name
    

    לדוגמה:

    data-validation connections add -c source Oracle --host '10.10.10.11' --port 1521 --user system --password pswd --database XE
    data-validation connections add -c target Postgres --host '10.10.10.12' --port 5432 --user postgres --password pswd --database postgres
    
  6. יוצרים או מפיקים רשימה של טבלאות להשוואת נתונים בין מסד הנתונים של המקור לבין מסד הנתונים של היעד:

    export TABLES_LIST=$(data-validation find-tables --source-conn source --target-conn target --allowed-schemas schema-name)
    

    לדוגמה:

    export TABLES_LIST=$(data-validation find-tables --source-conn source --target-conn target --allowed-schemas public)
    
  7. מריצים אימות מלא על כל הטבלאות:

    data-validation validate column --source-conn source --target-conn target --tables-list "${TABLES_LIST}"
    

מומלץ להריץ את האימות הזה במהלך השכפול כדי להבטיח עקביות יחסית. יכול להיות שייקח יותר מדי זמן להריץ שאילתות בטבלאות גדולות במהלך חלון קצר של קידום מכירות. במקרים כאלה, כדאי להשתמש בכלי לאימות נתונים כדי להוסיף מסננים שיקצרו את זמן הריצה, או להכין את רשימת הטבלאות כך שתכלול קבוצת משנה של טבלאות לאימות הסופי.