לפני שמייבאים נתונים, צריך:
יוצרים אשכול מסדי נתונים כדי לייבא אליו את הנתונים.
מעלים את קובץ ה-dump לקטגוריית אחסון. הוראות מפורטות מופיעות במאמר בנושא העלאת אובייקטים לקטגוריות אחסון.
נותנים לחשבון השירות של שירות הייבוא של Database Service גישת קריאה לקובץ ה-dump. איך מעניקים גישה לאחסון ומקבלים גישה לאחסון לדוגמה, אפשר להקצות את התפקיד
project-bucket-object-viewerלחשבון השירות של הייבוא.מערכת שירות מסד הנתונים יוצרת את חשבון השירות הזה באופן אוטומטי כשנוצר אשכול מסד הנתונים. סטטוס אשכול מסד הנתונים כולל את השם ואת מרחב השמות של חשבון השירות לייבוא.
כדי לאחזר את השם ומרחב השמות של חשבון השירות של הייבוא, מריצים את הפקודה הבאה:
kubectl --kubeconfig=MGMT_API_KUBECONFIG \ get dbcluster.postgresql -n PROJECT_ID DATABASE_CLUSTER_NAME \ -o jsonpath='{.status.serviceAccounts.import}'הפקודה הזו מחזירה אובייקט JSON שמכיל את השם ואת פרטי מרחב השמות:
{"name":"postgresql-import-DATABASE_CLUSTER_NAME","namespace":"SERVICE_ACCOUNT_NAMESPACE"}
אזהרה: צריך ליצור את קובץ ה-dump של מסד הנתונים באמצעות pg_dump בפורמט ארכיון שתואם ל-pg_restore.
אין תמיכה בפורמט SQL רגיל (ברירת המחדל אם לא מציינים אפשרות פורמט).
אפשר לייבא קובץ dump לאשכול מסדי נתונים באמצעות מסוף GDC או Distributed Cloud CLI:
המסוף
פותחים את הדף Database cluster overview במסוף GDC כדי לראות את האשכול שמכיל את מסד הנתונים שאתם מייבאים.
לוחצים על Import. תיפתח החלונית Import data to accounts.
בקטע מקור בחלונית ייבוא נתונים לחשבונות, מציינים את המיקום של קובץ ה-SQL dump שהעליתם קודם.
בשדה יעד, מציינים מסד נתונים קיים לייבוא.
לוחצים על Import. באנר במסוף GDC מציג את סטטוס הייבוא.
gdcloud CLI
לפני שמשתמשים ב-Distributed Cloud CLI, צריך להתקין ולהפעיל אותו. לאחר מכן, מאמתים את הזהות מול הארגון.
מריצים את הפקודה הבאה כדי לייבא קובץ dump למסד נתונים:
gdcloud database import sql DATABASE_CLUSTER BUCKET_NAME/sample.dmp \ --project=PROJECT_NAMEמחליפים את מה שכתוב בשדות הבאים:
- DATABASE_CLUSTER בשם של אשכול מסד הנתונים שאליו רוצים לייבא את הנתונים.
- BUCKET_NAME/SAMPLE.dmp במיקום של קובץ ה-dump.
- PROJECT_NAME בשם הפרויקט שבו נמצא אשכול מסדי הנתונים.
מריצים את הפקודה הבאה כדי לבדוק את סטטוס הייבוא:
gdcloud database operations list --project=PROJECT_NAME --cluster=DATABASE_CLUSTER
API
apiVersion: postgresql.dbadmin.gdc.goog/v1
kind: Import
metadata:
name: IMPORT_NAME
namespace: USER_PROJECT
spec:
dbclusterRef: DBCLUSTER_NAME
dumpStorage:
s3Options:
bucket: BUCKET_NAME
key: DUMP_FILE_PATH
type: S3
מחליפים את המשתנים הבאים:
-
IMPORT_NAME: השם של פעולת הייבוא. -
USER_PROJECT: השם של פרויקט המשתמש שבו נוצר אשכול מסד הנתונים לייבוא. -
DBCLUSTER_NAME: השם של אשכול מסד הנתונים. -
BUCKET_NAME: השם של קטגוריית האחסון של האובייקטים שבה מאוחסנים קובצי הייבוא. -
DUMP_FILE_PATH: השם של הנתיב לאחסון האובייקטים שבו מאוחסנים הקבצים.