בדף הזה מוסבר איך לוודא שהנתונים שהועברו מלאים ומדויקים. לפחות, כדאי להריץ הצהרות SQL כדי לוודא שהטבלאות קיימות במסד הנתונים של Cloud SQL שהועבר. כדי להשוות את הנתונים בצורה מדויקת יותר בין מסד הנתונים של המקור לבין מסד הנתונים של היעד, אפשר להשתמש ב-Data Validation Tool בקוד פתוח.
אימות נתוני היעד באמצעות הצהרות SQL
אפשר להריץ הצהרות SQL כדי לוודא שהטבלאות קיימות במסד הנתונים של Cloud SQL שהועבר. צריך לבצע את הפעולות הבאות:
- מתחברים למכונה של Cloud SQL ל-PostgreSQL באמצעות כלי שבו אפשר להריץ פקודות SQL על מסדי הנתונים שהועברו.
מידע נוסף על התחברות למכונות Cloud SQL זמין במאמר אפשרויות חיבור במאמרי העזרה של Cloud SQL.
מריצים פקודות SQL כדי לאמת את הנתונים שהועברו. לדוגמה:
- הצגת כל הטבלאות במסד הנתונים:
SELECT * FROM pg_catalog.pg_tables;
- בודקים את תוכן הטבלה:
SELECT * FROM TABLE_NAME';
- הצגת כל הטבלאות במסד הנתונים:
אימות הנתונים באמצעות Data Validation Tool
הכלי לאימות נתונים בקוד פתוח מאפשר לבצע השוואות מדויקות מאוד בין נתונים בשני מסדי נתונים, אבל נדרש ליצור חיבורי רשת למסדי הנתונים של המקור והיעד.
בדוגמה המינימלית הבאה אפשר לראות איך עושים את זה:
פריסה או שימוש במכונה וירטואלית עם גישה גם למקור וגם ליעד.
במכונה הווירטואלית, יוצרים תיקייה להתקנת Data Validation Tool.
עוברים לתיקייה הזו.
משתמשים ב-
pipכדי להתקין את Data Validation Tool.pip install google-pso-data-validator
יוצרים חיבורים למסד הנתונים של 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
יוצרים או מפיקים רשימה של טבלאות להשוואת נתונים בין מסד הנתונים של המקור לבין מסד הנתונים של היעד:
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)
מריצים אימות מלא על כל הטבלאות:
data-validation validate column --source-conn source --target-conn target --tables-list "${TABLES_LIST}"
מומלץ להריץ את האימות הזה במהלך השכפול כדי להבטיח עקביות יחסית. יכול להיות שייקח יותר מדי זמן להריץ שאילתות בטבלאות גדולות במהלך חלון קצר של קידום מכירות. במקרים כאלה, כדאי להשתמש בכלי לאימות נתונים כדי להוסיף מסננים שיקצרו את זמן הריצה, או להכין את רשימת הטבלאות כך שתכלול קבוצת משנה של טבלאות לאימות הסופי.