שימוש בממשקי API של Datastream

Datastream

באמצעות Datastream API בארכיטקטורת REST, אתם יכולים לשכפל באופן פרוגרמטי נתוני שינויים ממקורות מקומיים וממקורות בענן ליעדים ב- Google Cloud , לצורך ניתוח נתונים כמעט בזמן אמת. במדריך הזה תיצרו פרופילי חיבור וסטרימינג כדי לשכפל סכימות, טבלאות ונתונים של Oracle לקטגוריה של Cloud Storage. במהלך השכפול, Datastream ממיר את הרשומות של המקור לקובצי Avro עם סכימת JSON, כדי שאפליקציות במורד הזרם יוכלו לקרוא נתונים באופן אחיד ממקורות שונים.

מטרות

במדריך הזה תלמדו איך:

  • מגדירים את משתני הסביבה. תשתמשו במשתנים האלה כשתשלחו בקשות ל-Datastream כדי ליצור ולנהל פרופילי חיבור וסטרים.
  • יצירה וניהול של פרופילי חיבור למסד נתונים של מקור ולקטגוריית יעד ב-Cloud Storage. כשיוצרים את פרופילי החיבור האלה, יוצרים רשומות שמכילות מידע על מסד הנתונים של המקור ועל קטגוריה של Cloud Storage. ה-stream ב-Datastream משתמש במידע שבפרופילי החיבור כדי להעביר נתונים ממסד הנתונים של המקור לתיקייה בקטגוריית היעד.
  • יצירה וניהול של שידור. ‫Datastream משתמש בסטרים הזה כדי להעביר נתונים, סכימות וטבלאות ממסד הנתונים של המקור לתיקייה בקטגוריית היעד.
  • מוודאים ש-Datastream מעביר את הנתונים והטבלאות שמשויכים לסכימה של מסד הנתונים של Oracle במקור לתיקייה בקטגוריית היעד, ומתרגם את הנתונים האלה לפורמט הקובץ Avro.
  • חשוב להסיר את המשאבים שיצרתם ב-Datastream כדי שלא יתפסו מקום במכסה ולא תחויבו עליהם בעתיד.

עלויות

במסמך הזה משתמשים ברכיבים הבאים של Google Cloud, והשימוש בהם כרוך בתשלום:

  • Cloud Storage

בעזרת מחשבון העלויות אתם יכולים להעריך את העלויות בהתאם לשימוש הצפוי.

משתמשים חדשים של Google Cloud ? יכול להיות שאתם זכאים לתקופת ניסיון בחינם.

לפני שמתחילים

  1. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Roles required to select or create a project

    • Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
    • Create a project: To create a project, you need the Project Creator role (roles/resourcemanager.projectCreator), which contains the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

  2. Verify that billing is enabled for your Google Cloud project.

  3. מפעילים את Datastream API.

    הפעלת ה-API

  4. מוודאים שלחשבון המשתמש שלכם הוקצה התפקיד "אדמין ב-Datastream".

    כניסה לדף IAM

  5. מוודאים שיש לכם מסד נתונים של מקור ש-Datastream יכול לגשת אליו. במדריך הזה, מסד נתונים של Oracle משמש כמקור.
  6. מגדירים את מסד הנתונים של המקור כך שיאפשר חיבורים נכנסים מכתובות ה-IP הציבוריות של Datastream. במאמר רשימות היתרים של כתובות IP ואזורים מוסבר איך לגשת למיקומים של כל האזורים של Datastream וכתובות ה-IP הציבוריות שמשויכות אליהם.
  7. ודאו שהגדרתם קטגוריה של Cloud Storage ש-Datastream יכול לגשת אליה באמצעות שיטת הקישוריות לרשת: רשימת היתרים של כתובות IP, מנהרת SSH להעברה או קישור VPC.
  8. חשוב לוודא שיש לכם נתונים, טבלאות וסכימות במסד הנתונים של המקור, ש-Datastream יכול להעביר לתיקייה בקטגוריה של Cloud Storage ביעד.
  9. מורידים ומתקינים את Cloud Shell. אפליקציית הלקוח הזו נותנת לכם גישה למשאבים שלכם בענן (כולל Datastream) בממשק שורת פקודה.
  10. מתקינים ומגדירים את הכלי jq. הכלי הזה הוא מעבד JSON קל וגמיש של שורת הפקודה. המעבד הזה משמש להצגת פקודות cURL מורכבות בטקסט שקל לקרוא.

הגדרה של משתני סביבה

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

  • ‫$PROJECT: המשתנה הזה משויך לפרויקט ב- Google Cloud. כל המשאבים ב-Google Cloud שאתם מקצים ומשתמשים בהם צריכים להיות שייכים לפרויקט.
  • ‫$TOKEN: המשתנה הזה משויך לטוקן גישה. טוקן הגישה מספק סשן שמשמש את Cloud Shell לביצוע משימות ב-Datastream באמצעות ממשקי API בארכיטקטורת REST.
  1. מפעילים את אפליקציית Cloud Shell.

  2. אחרי האימות באפליקציה באמצעות חשבון Google, מזינים את הפקודה הבאה:

    gcloud auth login
    
  3. בהנחיה Do you want to continue (Y/n)?, מזינים את Y.

  4. פותחים דפדפן אינטרנט ומעתיקים את כתובת ה-URL לדפדפן.

  5. מאמתים את ה-SDK של Google Cloud באמצעות חשבון Google. בדף כניסה מופיע קוד. הקוד הזה הוא טוקן הגישה שלכם.

  6. מעתיקים את טוקן הגישה, מדביקים אותו בפרמטר Enter verification code: באפליקציית Cloud Shell ולוחצים על Enter.

  7. מזינים את הפקודה PROJECT=\"YOUR_PROJECT_NAME\" כדי להגדיר את משתנה הסביבה $PROJECT לפרויקט ב- Google Cloud.

  8. מזינים את הפקודה gcloud config set project YOUR_PROJECT_NAME כדי להגדיר את הפרויקט שרוצים לעבוד עליו כפרויקט Google Cloud.

    שורת הפקודה מתעדכנת בהתאם לפרויקט הפעיל, בפורמט הבא: USERNAME@cloudshell:~ (YOUR_PROJECT_NAME)$

  9. מזינים את הפקודה TOKEN=$(gcloud auth print-access-token) כדי לאחזר את אסימון הגישה ולשמור אותו כמשתנה.

  10. מזינים את הפקודות הבאות כדי לוודא שהמשתנים $PROJECT ו-$TOKEN מוגדרים נכון:

    • echo $PROJECT
    • echo $TOKEN

אחרי שהגדרתם את המשתנים, אתם יכולים לשלוח בקשות ל-Datastream כדי ליצור ולנהל פרופילי חיבור וגם סטרימינג.

יצירה וניהול של פרופילי חיבורים

בקטע הזה יוצרים ומנהלים פרופילי חיבור למסד נתונים של Oracle במקור ולקטגוריית יעד ב-Cloud Storage.

כשיוצרים את פרופילי החיבור האלה, יוצרים רשומות שמכילות מידע על מסד הנתונים של המקור ועל קטגוריה של Cloud Storage ביעד. Datastream משתמש במידע שבפרופילי החיבור כדי להעביר נתונים ממסד הנתונים של המקור לתיקייה בקטגוריית היעד.

יצירה וניהול של פרופילי חיבור כוללים:

  • יצירת פרופילי חיבור למסד נתונים של Oracle במקור ולקטגוריה של Cloud Storage ביעד
  • אחזור מידע על פרופיל חיבור
  • שינוי פרופיל חיבור
  • ביצוע קריאה ל-API של זיהוי בפרופיל החיבור של מקור Oracle. הקריאה הזו מאפשרת לכם להסתכל בתוך מסד הנתונים כדי לראות את האובייקטים שמשויכים אליו. האובייקטים האלה כוללים את הסכימות והטבלאות שמכילות את הנתונים של מסד הנתונים. כשמשתמשים ב-Datastream כדי להגדיר מקור נתונים, יכול להיות שלא תרצו לשלוף את כל האובייקטים ממסד הנתונים, אלא רק קבוצת משנה של האובייקטים (לדוגמה, רק טבלאות וסכימות מסוימות של מסד הנתונים). משתמשים ב-Discovery API כדי למצוא (או לגלות) את קבוצת המשנה של אובייקטים במסד הנתונים שרוצים לשלוף.

יצירת פרופילי חיבורים

בשלב הזה יוצרים שני פרופילי חיבור: אחד למסד נתונים של Oracle במקור, והשני לקטגוריית יעד ב-Cloud Storage.

  1. יוצרים פרופיל חיבור למסד נתונים של Oracle במקור. בשורת הפקודה, מזינים את הפקודה הבאה:
ORACLE="{\"displayName\":\"DISPLAY_NAME\",\"oracle_profile\":{\"hostname\":\"HOSTNAME\",\"username\":\"USERNAME\",\"password\":\"PASSWORD\",\"database_service\":\"DATABASE_SERVICE\",\"port\":"PORT_NUMBER\"},\"no_connectivity\":{}}"
  

הטבלה הבאה תעזור לכם להבין את ערכי הפרמטרים של מסד הנתונים של Oracle במקור:

ערך הפרמטרהחלף ב
DISPLAY_NAMEהשם המוצג של פרופיל החיבור למסד הנתונים של המקור.
HOSTNAMEשם המארח של שרת מסד הנתונים של המקור.
USERNAMEשם המשתמש של החשבון במסד הנתונים של המקור (לדוגמה, ROOT).
PASSWORDהסיסמה של החשבון למסד הנתונים של המקור.
DATABASE_SERVICEהשירות שמוודא שמסד הנתונים של המקור מוגן ומנוטר. במסדי נתונים של Oracle, שירות מסד הנתונים הוא בדרך כלל ORCL.
PORT_NUMBERמספר היציאה ששמור למסד הנתונים של המקור. במסד נתונים של Oracle, מספר היציאה הוא בדרך כלל 1521.

  1. בשורת הפקודה, מזינים את הפקודה echo $ORACLE | jq כדי לראות את פרופיל החיבור של המקור שיצרתם בטקסט קל לקריאה.

    {
      "displayName": "DISPLAY_NAME",
      "oracle_profile": {
        "hostname": "HOSTNAME",
        "username": "USERNAME",
        "password": "PASSWORD",
        "database_service": "DATABASE_SERVICE",
        "port": PORT_NUMBER
       },
      "no_connectivity": {}
    }
  2. שולחים את פרופיל החיבור ל-Oracle כדי ליצור אותו. בשורת הפקודה, מזינים את הפקודה הבאה:

    curl -X POST -d $ORACLE -H "Authorization: Bearer $TOKEN" -H "Content-Type: application/json" https://datastream.googleapis.com/DATASTREAM_API_VERSION/PROJECT_PATH/connectionProfiles?connection_profile_id=SOURCE_CONNECTION_PROFILE_ID

    הטבלה הבאה תעזור לכם להבין את ערכי הפרמטרים של הפקודה הזו:

    ערך הפרמטרהחלף ב
    DATASTREAM_API_VERSIONהגרסה הנוכחית של Datastream API (לדוגמה, v1).
    PROJECT_PATHהנתיב המלא של הפרויקט ב- Google Cloud (לדוגמה, projects/$PROJECT/locations/YOUR_PROJECT_LOCATION).
    SOURCE_CONNECTION_PROFILE_IDהמזהה הייחודי ששמור לפרופיל החיבור הזה (לדוגמה, cp-1).
  3. מוודאים ששורות הקוד הבאות מופיעות:

    {
      "name": "PROJECT_PATH/operations/operation-SOURCE_CONNECTION_PROFILE_OPERATION_ID",
      "metadata": {
        "@type": "type.googleapis.com/google.cloud.datastream.DATASTREAM_API_VERSION.OperationMetadata",
        "createTime": "DATE_AND_TIME_STAMP",
        "target": "datastream.googleapis.com/DATASREAM_VERSION/PROJECT_PATH/connectionProfiles/SOURCE_CONNECTION_PROFILE_ID",
        "verb": "create",
        "requestedCancellation": false,
        "apiVersion": "DATASTREAM_API_VERSION"
      },
      "done": false
    }
  4. יוצרים פרופיל חיבור לקטגוריית יעד ב-Cloud Storage. בשורת הפקודה, מזינים את הפקודה הבאה:

    GOOGLECLOUDSTORAGE="{\"displayName\":\"DISPLAY_NAME\",\"gcs_profile\":{\"bucket\":\"BUCKET_NAME\",\"root_path\":\"/FOLDER_PATH\"},\"no_connectivity\":{}}"

    הטבלה הבאה תעזור לכם להבין את ערכי הפרמטרים של קטגוריית היעד:

    ערך הפרמטרהחלף ב
    DISPLAY_NAMEהשם המוצג של פרופיל החיבור לקטגוריית היעד.
    BUCKET_NAMEהשם של קטגוריית היעד.
    FOLDER_PATHהתיקייה בקטגוריית היעד שאליה Datastream יעביר נתונים ממסד הנתונים של המקור (לדוגמה, /root/path).
  5. בשורת הפקודה, מזינים את הפקודה echo $GOOGLECLOUDSTORAGE | jq כדי לראות את פרופיל החיבור של היעד שיצרתם בטקסט קל לקריאה.

    {
      "displayName": "DISPLAY_NAME",
      "gcs_profile": {
        "bucket": "BUCKET_NAME",
        "root_path": "/FOLDER_PATH"
      },
      "no_connectivity": {}
    }
  6. שולחים את פרופיל החיבור ל-Cloud Storage כדי ליצור אותו. בשורת הפקודה, מזינים את הפקודה הבאה:

    curl -X POST -d $GOOGLECLOUDSTORAGE -H "Authorization: Bearer $TOKEN" -H "Content-Type: application/json" https://datastream.googleapis.com/DATASTREAM_API_VERSION/PROJECT_PATH/connectionProfiles?connection_profile_id=DESTINATION_CONNECTION_PROFILE_ID
  7. מוודאים ששורות הקוד הבאות מופיעות:

    {
      "name": "PROJECT_PATH/operations/operation-DESTINATION_CONNECTION_PROFILE_OPERATION_ID",
      "metadata": {
        "@type": "@type": "type.googleapis.com/google.cloud.datastream.DATASTREAM_API_VERSION.OperationMetadata",
        "createTime": "DATE_AND_TIME_STAMP",
        "target": "datastream.googleapis.com/DATASTREAM_VERSION/PROJECT_PATH/connectionProfiles/DESTINATION_CONNECTION_PROFILE_ID",
        "verb": "create",
        "requestedCancellation": false,
        "apiVersion": "DATASTREAM_API_VERSION"
      },
      "done": false
    }
  8. מוודאים ששני פרופילי החיבור נוצרו. בשורת הפקודה, מזינים את הפקודה הבאה:

    curl -H "Authorization: Bearer $TOKEN" -H "Content-Type: application/json" https://datastream.googleapis.com/DATASTREAM_API_VERSION/PROJECT_PATH/connectionProfiles
  9. מוודאים שמתקבלות שתי תוצאות, גם לפרופיל החיבור של המקור וגם לפרופיל החיבור של היעד.

    {
      "connectionProfiles": [
        {
          "name": "PROJECT_PATH/connectionProfiles/DESTINATION_CONNECTION_PROFILE_ID",
          "createTime": "DATE_AND_TIME_STAMP",
          "updateTime": "DATE_AND_TIME_STAMP",
          "displayName": "DISPLAY_NAME",
          "gcsProfile": {
            "bucket": "BUCKET_NAME",
            "rootPath": "FOLDER_PATH"
          },
          "noConnectivity": {}
        },
       {
        "name": "PROJECT_PATH/connectionProfiles/SOURCE_CONNECTION_PROFILE_ID",
        "createTime": "DATE_AND_TIME_STAMP",
        "updateTime": "DATE_AND_TIME_STAMP",
        "displayName": "DISPLAY_NAME",
        "oracleProfile": {
          "hostname": "HOSTNAME",
          "port": PORT_NUMBER,
          "username": "USERNAME",
          "databaseService": "DATABASE_SERVICE"
        },
        "noConnectivity": {}
        }
      ]
    }

ניהול פרופילי חיבורים

בשלב הזה אתם מנהלים את פרופילי החיבור שיצרתם למסד נתונים של Oracle במקור ולקטגוריית יעד ב-Cloud Storage. למשל:

  • אחזור מידע על פרופיל החיבור של היעד ב-Cloud Storage
  • שינוי פרופיל החיבור הזה. במדריך הזה, תשנו את התיקייה של קטגוריית היעד ב-Cloud Storage ל-/root/tutorial. ‫Datastream מעביר נתונים ממסד הנתונים של המקור לתיקייה הזו.
  • ביצוע קריאה ל-API של גילוי בפרופיל החיבור של מקור Oracle
  1. אחזור מידע על פרופיל החיבור של היעד ב-Cloud Storage. בשורת הפקודה, מזינים את הפקודה הבאה:

    curl -H "Authorization: Bearer $TOKEN" -H "Content-Type: application/json" https://datastream.googleapis.com/DATASTREAM_API_VERSION/PROJECT_PATH/connectionProfiles/DESTINATION_CONNECTION_PROFILE_ID
  2. מוודאים שמופיע מידע על פרופיל החיבור הזה.

    {
      "name": "PROJECT_PATH/connectionProfiles/DESTINATION_CONNECTION_PROFILE_ID",
      "createTime": "DATE_AND_TIME_STAMP",
      "updateTime": "DATE_AND_TIME_STAMP",
      "displayName": "DISPLAY_NAME",
      "gcsProfile": {
        "bucket": "BUCKET_NAME",
        "rootPath": "FOLDER_PATH"
      },
      "noConnectivity": {}
    }
  3. שינוי פרופיל החיבור הזה. כדי לעשות את זה, קודם צריך להגדיר משתנה UPDATE. המשתנה הזה מכיל את הערכים של פרופיל החיבור שרוצים לשנות. במדריך הזה, תשנו את התיקייה של קטגוריית היעד ל-/root/tutorial.

    כדי להגדיר את המשתנה, מזינים את הפקודה הבאה בשורת הפקודה:

    UPDATE="{\"gcsProfile\":{\"rootPath\":\"/root/tutorial\"}}"
  4. מזינים את הפקודה הבאה:

    curl -X PATCH -d $UPDATE -H "Authorization: Bearer $TOKEN" -H "Content-Type: application/json" https://datastream.googleapis.com/DATASTREAM_API_VERSION/PROJECT_PATH/connectionProfiles/DESTINATION_CONNECTION_PROFILE_ID?update_mask=gcsProfile.rootPath
  5. מוודאים ששורות הקוד הבאות מופיעות:

    {
      "name": "PROJECT_PATH/operations/operation-DESTINATION_CONNECTION_PROFILE_OPERATION_ID",
      "metadata": {
        "@type": "type.googleapis.com/google.cloud.datastream.DATASTREAM_API_VERSION.OperationMetadata",
        "createTime": "DATE_AND_TIME_STAMP",
        "target": "PROJECT_PATH/connectionProfiles/DESTINATION_CONNECTION_PROFILE_ID",
        "verb": "update",
        "requestedCancellation": false,
        "apiVersion": "DATASTREAM_API_VERSION"
      },
      "done": false
    }
  6. מוודאים שפרופיל החיבור השתנה. בשורת הפקודה, מזינים את הפקודה הבאה:

    curl -H "Authorization: Bearer $TOKEN" -H "Content-Type: application/json" https://datastream.googleapis.com/DATASTREAM_API_VERSION/PROJECT_PATH/connectionProfiles/DESTINATION_CONNECTION_PROFILE_ID
  7. מוודאים שהתיקייה של קטגוריית היעד בפרופיל החיבור ל-Cloud Storage היא עכשיו /root/tutorial.

    {
      "name": "PROJECT_PATH/connectionProfiles/DESTINATION_CONNECTION_PROFILE_ID",
      "createTime": "DATE_AND_TIME_STAMP",
      "updateTime": "DATE_AND_TIME_STAMP",
      "displayName": "DISPLAY_NAME",
      "gcsProfile": {
        "bucket": "BUCKET_NAME",
        "rootPath": "/root/tutorial"
      },
      "noConnectivity": {}
    }
  8. משתמשים ב-Datastream discover API כדי לגלות את הסכימות והטבלאות של מסד הנתונים של Oracle במקור. ‫Datastream מספק גישה למסד הנתונים הזה דרך פרופיל החיבור של המקור.

    1. לגלות את הסכימות של מסד הנתונים של Oracle. בשורת הפקודה, מזינים את הפקודה הבאה:

      curl -X POST -d "{\"connection_profile_name\":\"projects/YOUR_PROJECT_NUMBER/locations/YOUR_PROJECT_LOCATION/connectionProfiles/SOURCE_CONNECTION_PROFILE_ID\", \"oracle_rdbms\":{\"oracleSchemas\":[{\"schema\":\"ROOT\"}]}}" -H "Authorization: Bearer $TOKEN" -H "Content-Type: application/json" https://datastream.googleapis.com/DATASTREAM_API_VERSION/PROJECT_PATH/connectionProfiles:discover
    2. מוודאים ש-Datastream מאחזר את כל הסכימות של מסד הנתונים.

    3. אחזור הטבלאות של סכימה במסד הנתונים. במדריך הזה תשתמשו ב-Discovery API כדי לאחזר את הטבלאות של הסכימה ROOT. עם זאת, אתם יכולים לגלות את הטבלאות של כל סכימה במסד הנתונים.

      בשורת הפקודה, מזינים את הפקודה הבאה:

    curl -X POST -d "{\"connection_profile_name\":\"projects/YOUR_PROJECT_NUMBER/locations/YOUR_PROJECT_LOCATION/connectionProfiles/SOURCE_CONNECTION_PROFILE_ID\", \"oracle_rdbms\":{\"oracleSchemas\":[{\"schema\":\"ROOT\"}]}}" -H "Authorization: Bearer $TOKEN" -H "Content-Type: application/json" https://datastream.googleapis.com/DATASTREAM_API_VERSION/PROJECT_PATH/connectionProfiles:discover
    1. מוודאים ש-Datastream מאחזר את כל הטבלאות של הסכימה שציינתם (במדריך הזה, הסכימה ROOT).

עכשיו, אחרי שיצרתם וניהלתם פרופילי חיבור למסד נתונים של Oracle במקור ולקטגוריית יעד ב-Cloud Storage, אתם יכולים ליצור ולנהל סטרימינג ב-Datastream.

יצירה וניהול של שידור

בקטע הזה אתם יוצרים ומנהלים שידור. Datastream משתמש בסטרימינג הזה כדי להעביר נתונים, סכימות וטבלאות ממסד הנתונים של המקור לתיקייה בקטגוריה של Cloud Storage.

יצירה וניהול של שידור כוללים:

  • אימות של מקור נתונים כדי לוודא שהוא יפעל בהצלחה, ושהוא יעבור את כל בדיקות האימות. הבדיקות האלה כוללות:
    • אם המקור מוגדר כמו שצריך כדי לאפשר ל-Datastream להעביר ממנו נתונים בסטרימינג.
    • אם ה-stream יכול להתחבר גם למקור וגם ליעד.
    • ההגדרה מקצה לקצה של השידור.
  • יוצרים את השידור עם הרשימות הבאות:
    • רשימת היתרים. הרשימה הזו מציינת את הטבלאות והסכימות במסד הנתונים של המקור, ש-Datastream יכול להעביר לתיקייה בקטגוריית היעד ב-Cloud Storage. במדריך הזה, התיקייה היא /root/tutorial.
    • רשימת דחייה. הרשימה הזו מציינת את הטבלאות והסכימות במסד הנתונים של המקור, ש-Datastream לא יכול להעביר לתיקייה בקטגוריית היעד של Cloud Storage.
  • מאחזר מידע על השידור
  • שינוי השידור
  • הפעלת ה-stream כדי ש-Datastream יוכל להעביר נתונים, סכימות וטבלאות ממסד הנתונים של המקור לתיקייה בקטגוריה של Cloud Storage.
  • שימוש ב-Fetch Errors API כדי לזהות שגיאות שקשורות לשידור
  • השידור מושהה. כשהסטרימינג מושהה, Datastream לא שולף נתונים חדשים ממסד הנתונים של המקור אל קטגוריית היעד.
  • מחדשים את הסטרימינג שהושהה כדי ש-Datastream יוכל להמשיך להעביר נתונים לקטגוריית היעד.

יצירת מקור נתונים

בשלב הזה יוצרים סטרימינג ממסד הנתונים של Oracle (המקור) לתיקייה בקטגוריה של Cloud Storage (היעד). השידור שתיצרו יכלול גם רשימת היתרים וגם רשימת דחייה.

  1. מגדירים משתנה SCHEMAS. המשתנה הזה מגדיר את הסכימות שמכילות את הנתונים והטבלאות שאתם רוצים ש-Datastream יאחזר ממסד הנתונים של המקור ויעביר לתיקייה /root/tutorial בקטגוריית היעד של Cloud Storage. במדריך הזה, תגדירו את המשתנה SCHEMAS כך שישויך לסכימה ROOT.

    מזינים את הפקודה הבאה:

    SCHEMAS="{\"oracleSchemas\":[{\"schema\":\"ROOT\"}]}"
  2. בשורת הפקודה, מזינים את הפקודה echo $SCHEMAS | jq כדי לראות את הסכימה ROOT שהגדרתם למשתנה הזה בטקסט שקל לקרוא.

  3. יוצרים מקור נתונים. בשורת הפקודה, מזינים את הפקודה הבאה:

    STREAM="{\"display_name\":\"DISPLAY_NAME\",\"source_config\":{\"source_connection_profile_name\":\"PROJECT_PATH/connectionProfiles/SOURCE_CONNECTION_PROFILE_ID",\"oracle_source_config\":{\"allowlist\":$SCHEMAS,\"rejectlist\":{}}},\"destination_config\":{\"destination_connection_profile_name\":\"PROJECT_PATH/connectionProfiles/DESTINATION_CONNECTION_PROFILE_ID\",\"gcs_destination_config\":{\"file_rotation_mb\":5,\"file_rotation_interval\":{\"seconds\":15},\"avro_file_format\":{}},\"backfill_all\":{}}}"
  4. בשורת הפקודה, מזינים את הפקודה echo $STREAM | jq כדי לראות את הסטרימינג שיצרתם בטקסט קל לקריאה.

    {
      "display_name": "DISPLAY_NAME",
      "source_config": {
        "source_connection_profile_name": "PROJECT_PATH/connectionProfiles/SOURCE_CONNECTION_PROFILE_ID",
        "oracle_source_config": {
          "allowlist": {
            "oracleSchemas": [
              {
                "schema": "ROOT"
              }
            ]
          },
          "rejectlist": {}
        }
      },
      "destination_config": {
        "destination_connection_profile_name": "PROJECT_PATH/connectionProfiles/DESTINATION_CONNECTION_PROFILE_ID",
        "gcs_destination_config": {
          "file_rotation_mb": 5,
          "file_rotation_interval": {
            "seconds": 15
          },
          "avro_file_format": {}
        }
      },
      "backfill_all": {}
    }

    אתם יכולים להיעזר בטבלה הבאה כדי להבין את הפרמטרים הבאים של השידור:

    פרמטרתיאור
    allowlistהסכימות, שמכילות טבלאות ונתונים, שיועברו ממסד הנתונים של המקור לתיקייה בקטגוריית היעד של Cloud Storage. במדריך הזה, כל הטבלאות והנתונים מהסכימה ROOT (ורק מהסכימה הזו) יועברו לתיקייה /root/tutorial בקטגוריית היעד.
    rejectlistכל הסכימות, שמכילות טבלאות ונתונים, שלא יועברו לתיקייה בקטגוריית היעד של Cloud Storage. במדריך הזה, הערך {} מציין שכל הטבלאות והנתונים ממסד הנתונים של המקור יועברו לקטגוריית היעד.
    file_rotation_mbהגודל (במגה-בייט) של קבצים שמכילים נתונים שמועברים ממסד הנתונים של המקור לתיקייה בקטגוריית היעד ב-Cloud Storage. במדריך הזה, הנתונים מאוחזרים ממסד הנתונים של המקור ונכתבים בקבצים בגודל 5MB. אם הנתונים חורגים מהגודל הזה, הם יחולקו לכמה קבצים בגודל 5MB.
    file_rotation_intervalמספר השניות שיחלפו לפני ש-Datastream יסגור קובץ קיים בתיקייה של קטגוריית היעד ב-Cloud Storage ויפתח קובץ אחר שיכיל נתונים שמועברים ממסד הנתונים של המקור. במדריך הזה, מרווח הזמן לרוטציה של הקבצים מוגדר ל-15 שניות.
    avro_file_format

    הפורמט של הקבצים ש-Datastream יעביר ממסד הנתונים של המקור לתיקייה בקטגוריית היעד של Cloud Storage. במדריך הזה, פורמט הקובץ הוא Avro.

    backfill_all

    הפרמטר הזה משויך למילוי היסטורי. אם מגדירים את הפרמטר הזה למילון ריק ({}), Datastream ימלא:

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

    curl -X POST -d $STREAM -H "Authorization: Bearer $TOKEN" -H "Content-Type: application/json" "https://datastream.googleapis.com/DATASTREAM_API_VERSION/PROJECT_PATH/streams?stream_id=STREAM_ID&validate_only=true"
  6. מוודאים ששורת הקוד {} מופיעה. המשמעות היא שהשידור עבר את כל בדיקות האימות ואין שגיאות שקשורות אליו.

  7. שולחים את השידור כדי ליצור אותו. בשורת הפקודה, מזינים את הפקודה הבאה:

    curl -X POST -d $STREAM -H "Authorization: Bearer $TOKEN" -H "Content-Type: application/json" https://datastream.googleapis.com/DATASTREAM_API_VERSION/PROJECT_PATH/streams?stream_id=STREAM_ID
  8. מוודאים ששורות הקוד הבאות מופיעות:

    {
      "name": "PROJECT_PATH/operations/operation-STREAM_OPERATION_ID",
      "metadata": {
        "@type": "type.googleapis.com/google.cloud.datastream.DATASTREAM_API_VERSION.OperationMetadata",
        "createTime": "DATE_AND_TIME_STAMP",
        "target": "PROJECT_PATH/streams/STREAM_ID",
        "verb": "create",
        "requestedCancellation": false,
        "apiVersion": "DATASTREAM_API_VERSION"
      },
      "done": false
    }
  9. מוודאים שהשידור נוצר. בשורת הפקודה, מזינים את הפקודה הבאה:

    curl -H "Authorization: Bearer $TOKEN" -H "Content-Type: application/json" https://datastream.googleapis.com/DATASTREAM_API_VERSION/PROJECT_PATH/streams
  10. מוודאים שמתקבלת תוצאה עבור הסטרימינג שיצרתם.

    {
      "streams": [
        {
          "name": "PROJECT_PATH/streams/STREAM_ID",
          "createTime": "DATE_AND_TIME_STAMP",
          "updateTime": "DATE_AND_TIME_STAMP",
          "displayName": "DISPLAY_NAME",
          "sourceConfig": {
            "sourceConnectionProfileName": "projects/YOUR_PROJECT_NUMBER/locations/YOUR_PROJECT_LOCATION/connectionProfiles/SOURCE_CONNECTION_PROFILE_ID",
            "oracleSourceConfig": {
              "allowlist": {
                "oracleSchemas": [
                  {
                    "schema": "ROOT"
                  }
                ]
              },
              "rejectlist": {}
            }
          },
          "destinationConfig": {
            "destinationConnectionProfileName": "projects/YOUR_PROJECT_NUMBER/locations/YOUR_PROJECT_LOCATION/connectionProfiles/DESTINATION_CONNECTION_PROFILE_ID",
          "gcsDestinationConfig": {
              "fileRotationMb": 5,
              "fileRotationInterval": "15s"
              "avroFileFormat": {}
            }
          },
          "state": "CREATED",
          "backfillAll": {}
        }
      ]
    }

ניהול השידור

בשלב הזה תשתמשו בסטרימינג שיצרתם כדי להעביר נתונים ממסד נתונים של Oracle (המקור) לתיקייה בקטגוריית יעד ב-Cloud Storage. למשל:

  • מאחזר מידע על השידור
  • שינוי השידור
  • השידור מתחיל
  • שימוש ב-Fetch Errors API כדי לזהות שגיאות שקשורות לשידור
  • השהיה והמשך של השידור
  1. אחזור מידע על השידור. בשורת הפקודה, מזינים את הפקודה הבאה:

    curl -H "Authorization: Bearer $TOKEN" -H "Content-Type: application/json" https://datastream.googleapis.com/DATASTREAM_API_VERSION/PROJECT_PATH/streams/STREAM_ID
  2. מוודאים שמופיע מידע על מקור הנתונים הזה.

    {
      "name": "PROJECT_PATH/streams/STREAM_ID",
      "createTime": "DATE_AND_TIME_STAMP",
      "updateTime": "DATE_AND_TIME_STAMP",
      "displayName": "DISPLAY_NAME",
      "sourceConfig": {
        "sourceConnectionProfileName": "projects/YOUR_PROJECT_NUMBER/locations/YOUR_PROJECT_LOCATION/connectionProfiles/SOURCE_CONNECTION_PROFILE_ID",
        "oracleSourceConfig": {
          "allowlist": {
            "oracleSchemas": [
              {
                "schema": "ROOT"
              }
            ]
          },
          "rejectlist": {}
         }
        },
        "destinationConfig": {
          "destinationConnectionProfileName": "projects/YOUR_PROJECT_NUMBER/locations/YOUR_PROJECT_LOCATION/connectionProfiles/DESTINATION_CONNECTION_PROFILE_ID",
          "gcsDestinationConfig": {
            "fileRotationMb": 5,
            "fileRotationInterval": "15s"
            "avroFileFormat": {}
          }
        },
        "state": "CREATED",
        "backfillAll": {}
      }
  3. שינוי מקור הנתונים הזה. כדי לעשות את זה, קודם צריך להגדיר משתנה UPDATE. המשתנה הזה מכיל את הערכים של המקור שרוצים לשנות. במדריך הזה, משנים את הגודל (במגה-בייט) של הקבצים שמכילים נתונים שמועברים ממסד הנתונים של המקור לתיקייה בקטגוריית היעד של Cloud Storage (מ-5MB ל-100MB). בזמן שהנתונים מאוחזרים ממסד הנתונים של המקור, הם נכתבים בקבצים של 100MB. אם הנתונים חורגים מהגודל הזה, הם יחולקו לכמה קבצים בגודל 100MB.

    כדי להגדיר את המשתנה, מזינים את הפקודה הבאה בשורת הפקודה:

    UPDATE="{\"destination_config\":{\"gcs_destination_config\":{\"file_rotation_mb\":100}}}"
  4. בשורת הפקודה, מזינים את הפקודה הבאה:

    curl -X PATCH -d $UPDATE -H "Authorization: Bearer $TOKEN" -H "Content-Type: application/json" https://datastream.googleapis.com/DATASTREAM_API_VERSION/PROJECT_PATH/streams/STREAM_ID/?update_mask=destination_config.gcs_destination_config.file_rotation_mb
  5. מוודאים ששורות הקוד הבאות מופיעות:

    {
      "name": "PROJECT_PATH/operations/operation-STREAM_OPERATION_ID",
      "metadata": {
        "@type": "type.googleapis.com/google.cloud.datastream.DATASTREAM_API_VERSION.OperationMetadata",
        "createTime": "DATE_AND_TIME_STAMP",
        "target": "PROJECT_PATH/streams/STREAM_ID",
        "verb": "update",
        "requestedCancellation": false,
        "apiVersion": "DATASTREAM_API_VERSION"
      },
      "done": false
    }
  6. מוודאים שהשינוי בוצע. בשורת הפקודה, מזינים את הפקודה הבאה:

    curl -H "Authorization: Bearer $TOKEN" -H "Content-Type: application/json" https://datastream.googleapis.com/DATASTREAM_API_VERSION/PROJECT_PATH/streams/STREAM_ID
  7. מוודאים שהערך של הפרמטר fileRotationMb בפרופיל החיבור של Cloud Storage הוא עכשיו 100.

    {
      "name": "PROJECT_PATH/streams/STREAM_ID",
      "createTime": "DATE_AND_TIME_STAMP",
      "updateTime": "DATE_AND_TIME_STAMP",
      "displayName": "DISPLAY_NAME",
      "sourceConfig": {
        "sourceConnectionProfileName": "projects/YOUR_PROJECT_NUMBER/locations/YOUR_PROJECT_LOCATION/connectionProfiles/SOURCE_CONNECTION_PROFILE_ID",
        "oracleSourceConfig": {
          "allowlist": {
            "oracleSchemas": [
              {
                "schema": "ROOT"
              }
            ]
          },
          "rejectlist": {}
         }
        },
        "destinationConfig": {
          "destinationConnectionProfileName": "projects/YOUR_PROJECT_NUMBER/locations/YOUR_PROJECT_LOCATION/connectionProfiles/DESTINATION_CONNECTION_PROFILE_ID",
          "gcsDestinationConfig": {
            "fileRotationMb": 100,
            "fileRotationInterval": "15s"
            "avroFileFormat": {}
          }
        },
        "state": "CREATED",
        "backfillAll": {}
      }
  8. מתחילים את השידור. כדי לעשות את זה:

    1. משנים את המשתנה UPDATE. בשורת הפקודה, מזינים את הפקודה הבאה:

      UPDATE="{\"state\":\"RUNNING\"}"
    2. ואז מזינים את הפקודה הבאה:

      curl -H "Authorization: Bearer $TOKEN" -H "Content-Type: application/json" https://datastream.googleapis.com/DATASTREAM_API_VERSION/PROJECT_PATH/streams/STREAM_ID?updateMask=state
  9. מוודאים ששורות הקוד הבאות מופיעות.

    {
      "name": "PROJECT_PATH/operations/operation-STREAM_OPERATION_ID",
      "metadata": {
        "@type": "type.googleapis.com/google.cloud.datastream.DATASTREAM_API_VERSION.OperationMetadata",
        "createTime": "DATE_AND_TIME_STAMP",
        "target": "PROJECT_PATH/streams/STREAM_ID",
        "verb": "start",
        "requestedCancellation": false,
        "apiVersion": "DATASTREAM_API_VERSION"
      },
      "done": false
    }
  10. אחרי כמה דקות, מאחזרים מידע על הסטרימינג כדי לוודא שהוא התחיל:

    curl -H "Authorization: Bearer $TOKEN" -H "Content-Type: application/json" https://datastream.googleapis.com/DATASTREAM_API_VERSION/PROJECT_PATH/streams/STREAM_ID
  11. מוודאים שהסטטוס של השידור השתנה מ-CREATED ל-RUNNING.

    {
      "name": "PROJECT_PATH/streams/STREAM_ID",
      "createTime": "DATE_AND_TIME_STAMP",
      "updateTime": "DATE_AND_TIME_STAMP",
      "displayName": "DISPLAY_NAME",
      "sourceConfig": {
        "sourceConnectionProfileName": "projects/YOUR_PROJECT_NUMBER/locations/YOUR_PROJECT_LOCATION/connectionProfiles/SOURCE_CONNECTION_PROFILE_ID",
        "oracleSourceConfig": {
          "allowlist": {
            "oracleSchemas": [
              {
                "schema": "ROOT"
              }
            ]
          },
          "rejectlist": {}
        }
      },
      "destinationConfig": {
        "destinationConnectionProfileName": "projects/YOUR_PROJECT_NUMBER/locations/YOUR_PROJECT_LOCATION/connectionProfiles/DESTINATION_CONNECTION_PROFILE_ID",
        "gcsDestinationConfig": {
          "fileRotationMb": 100,
          "fileRotationInterval": "15s"
          "avroFileFormat": {}
        }
      },
      "state": "RUNNING",
      "backfillAll": {}
    }
  12. שימוש ב-Fetch Errors API כדי לאחזר שגיאות שקשורות לשידור.

    1. מזינים את הפקודה הבאה:

      curl -X POST -H "Authorization: Bearer $TOKEN" -H "Content-Type: application/json" https://datastream.googleapis.com/DATASTREAM_API_VERSION/PROJECT_PATH/streams/STREAM_ID:fetchErrors
    2. מוודאים ששורות הקוד הבאות מופיעות:

        {
          "name": "PROJECT_PATH/operations/operation-FETCH_ERRORS_OPERATION_ID",
          "metadata": {
            "@type": "type.googleapis.com/google.cloud.datastream.DATASTREAM_API_VERSION.OperationMetadata",
            "createTime": "DATE_AND_TIME_STAMP",
            "target": "PROJECT_PATH/streams/STREAM_ID",
            "verb": "fetchErrors",
            "requestedCancellation": false,
            "apiVersion": "DATASTREAM_API_VERSION"
          },
          "done": false
        }
        

    3. מזינים את הפקודה הבאה:

      curl -H "Authorization: Bearer $TOKEN" -H "Content-Type: application/json" https://datastream.googleapis.com/DATASTREAM_API_VERSION/PROJECT_PATH/operations/operation-FETCH_ERRORS_OPERATION_ID
    4. מוודאים ששורות הקוד הבאות מופיעות:

        {
          "name": "PROJECT_PATH/operations/operation-FETCH_ERRORS_OPERATION_ID",
          "metadata": {
            "@type": "type.googleapis.com/google.cloud.datastream.DATASTREAM_API_VERSION.OperationMetadata",
            "createTime": "DATE_AND_TIME_STAMP",
            "endTime": "DATE_AND_TIME_STAMP",
            "target": "PROJECT_PATH/streams/STREAM_ID",
            "verb": "fetchErrors",
            "requestedCancellation": false,
            "apiVersion": "DATASTREAM_API_VERSION"
          },
          "done": true,
          "response": {
            "@type": "type.googleapis.com/google.cloud.datastream.DATASTREAM_API_VERSION.FetchErrorsResponse"
          }
        }
        

  13. להשהות את השידור. כדי לעשות את זה:

    1. משנים את המשתנה UPDATE. בשורת הפקודה, מזינים את הפקודה הבאה:

      UPDATE="{\"state\":\"PAUSED\"}"
    2. ואז מזינים את הפקודה הבאה:

      curl -H "Authorization: Bearer $TOKEN" -H "Content-Type: application/json" https://datastream.googleapis.com/DATASTREAM_API_VERSION/PROJECT_PATH/streams/STREAM_ID?updateMask=state
  14. מוודאים ששורות הקוד הבאות מופיעות.

    {
      "name": "PROJECT_PATH/operations/operation-STREAM_OPERATION_ID",
      "metadata": {
        "@type": "type.googleapis.com/google.cloud.datastream.DATASTREAM_API_VERSION.OperationMetadata",
        "createTime": "DATE_AND_TIME_STAMP",
        "target": "PROJECT_PATH/streams/STREAM_ID",
        "verb": "start",
        "requestedCancellation": false,
        "apiVersion": "DATASTREAM_API_VERSION"
      },
      "done": false
    }
  15. אחזור מידע על השידור כדי לוודא שהוא מושהה.

    curl -H "Authorization: Bearer $TOKEN" -H "Content-Type: application/json" https://datastream.googleapis.com/DATASTREAM_API_VERSION/PROJECT_PATH/streams/STREAM_ID
  16. מוודאים שהסטטוס של השידור השתנה מ-RUNNING ל-PAUSED.

    {
      "name": "PROJECT_PATH/streams/STREAM_ID",
      "createTime": "DATE_AND_TIME_STAMP",
      "updateTime": "DATE_AND_TIME_STAMP",
      "displayName": "DISPLAY_NAME",
      "sourceConfig": {
        "sourceConnectionProfileName": "projects/YOUR_PROJECT_NUMBER/locations/YOUR_PROJECT_LOCATION/connectionProfiles/SOURCE_CONNECTION_PROFILE_ID",
        "oracleSourceConfig": {
          "allowlist": {
            "oracleSchemas": [
              {
                "schema": "ROOT"
              }
            ]
          },
          "rejectlist": {}
        }
      },
      "destinationConfig": {
        "destinationConnectionProfileName": "projects/YOUR_PROJECT_NUMBER/locations/YOUR_PROJECT_LOCATION/connectionProfiles/DESTINATION_CONNECTION_PROFILE_ID",
        "gcsDestinationConfig": {
          "fileRotationMb": 100,
          "fileRotationInterval": "15s"
          "avroFileFormat": {}
        }
      },
      "state": "PAUSED",
      "backfillAll": {}
    }
  17. ממשיכים את השידור שהושהה. כדי לעשות את זה:

    1. משנים את המשתנה UPDATE. בשורת הפקודה, מזינים את הפקודה הבאה:

      UPDATE="{\"state\":\"RUNNING\"}"
    2. ואז מזינים את הפקודה הבאה:

      curl -H "Authorization: Bearer $TOKEN" -H "Content-Type: application/json" https://datastream.googleapis.com/DATASTREAM_API_VERSION/PROJECT_PATH/streams/STREAM_ID?updateMask=state
  18. מוודאים ששורות הקוד הבאות מופיעות.

    {
      "name": "PROJECT_PATH/operations/operation-STREAM_OPERATION_ID",
      "metadata": {
        "@type": "type.googleapis.com/google.cloud.datastream.DATASTREAM_API_VERSION.OperationMetadata",
        "createTime": "DATE_AND_TIME_STAMP",
        "target": "PROJECT_PATH/streams/STREAM_ID",
        "verb": "start",
        "requestedCancellation": false,
        "apiVersion": "DATASTREAM_API_VERSION"
      },
      "done": false
    }
  19. אחרי כמה שניות, מאחזרים מידע על השידור כדי לוודא שהוא פועל שוב.

    curl -H "Authorization: Bearer $TOKEN" -H "Content-Type: application/json" https://datastream.googleapis.com/DATASTREAM_API_VERSION/PROJECT_PATH/streams/STREAM_ID
  20. מוודאים שהסטטוס של השידור השתנה מ-PAUSED בחזרה ל-RUNNING.

    {
      "name": "PROJECT_PATH/streams/STREAM_ID",
      "createTime": "DATE_AND_TIME_STAMP",
      "updateTime": "DATE_AND_TIME_STAMP",
      "displayName": "DISPLAY_NAME",
      "sourceConfig": {
        "sourceConnectionProfileName": "projects/YOUR_PROJECT_NUMBER/locations/YOUR_PROJECT_LOCATION/connectionProfiles/SOURCE_CONNECTION_PROFILE_ID",
        "oracleSourceConfig": {
          "allowlist": {
            "oracleSchemas": [
              {
                "schema": "ROOT"
              }
            ]
          },
          "rejectlist": {}
        }
      },
      "destinationConfig": {
        "destinationConnectionProfileName": "projects/YOUR_PROJECT_NUMBER/locations/YOUR_PROJECT_LOCATION/connectionProfiles/DESTINATION_CONNECTION_PROFILE_ID",
        "gcsDestinationConfig": {
          "fileRotationMb": 100,
          "fileRotationInterval": "15s"
          "avroFileFormat": {}
        }
      },
      "state": "RUNNING",
      "backfillAll": {}
    }

אחרי שיצרתם וניהלתם את הסטרימינג, וידאתם שאין שגיאות שמשויכות אליו ושהסטטוס שלו הוא RUNNING, אתם יכולים לוודא שהוא יכול להעביר נתונים ממסד הנתונים של המקור לתיקייה בקטגוריית היעד ב-Cloud Storage.

אימות השידור

בשלב הזה מוודאים ש-Datastream:

  • העברת הנתונים מכל הטבלאות שמשויכות לסכימה ROOT של מסד הנתונים של Oracle במקור, לתיקייה /root/tutorial בקטגוריית היעד ב-Cloud Storage.
  • ממיר את הנתונים לפורמט הקובץ Avro.
  1. נכנסים לדף Storage browser ב-Cloud Storage.

    כניסה לדף Storage browser

  2. לוחצים על הקישור שמכיל את הקטגוריה.

  3. אם הכרטיסייה OBJECTS לא פעילה, לוחצים עליה.

  4. לוחצים על התיקייה root ואז על התיקייה tutorial.

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

  6. לוחצים על אחת מהתיקיות של הטבלאות ומעמיקים עד שרואים את הנתונים שמשויכים לטבלה.

  7. לוחצים על קובץ שמייצג את הנתונים ולוחצים על הורדה.

  8. פותחים את הקובץ בכלי Avro (לדוגמה, Avro Viewer) כדי לוודא שהתוכן קריא. זה מאשר ש-Datastream גם תרגם את הנתונים לפורמט הקובץ Avro.

הסרת המשאבים

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

מחיקת הפרויקט

הדרך הקלה ביותר לבטל את החיוב היא למחוק את הפרויקט שיצרתם בשביל המדריך הזה.

כדי למחוק את הפרויקט:

  1. במסוף Google Cloud , נכנסים לדף Manage resources.

    כניסה לדף Manage resources

  2. ברשימת הפרויקטים, בוחרים את הפרויקט שרוצים למחוק ולוחצים על Delete.
  3. כדי למחוק את הפרויקט, כותבים את מזהה הפרויקט בתיבת הדו-שיח ולוחצים על Shut down.

מחיקת קטגוריית היעד ב-Cloud Storage

  1. בחלונית ההזזה לניווט שבצד ימין של Cloud Storage, לוחצים על Browser.

  2. מסמנים את התיבה שמימין לקטגוריה ולוחצים על DELETE.

  3. בחלון Delete bucket?‎, מזינים את שם הקטגוריה בשדה הטקסט ולוחצים על CONFIRM.

מחיקת השידור

  1. מוודאים שאפליקציית Cloud Shell פעילה.

  2. מזינים את הפקודה הבאה:

    curl -X DELETE -H "Authorization: Bearer $TOKEN" -H "Content-Type: application/json" https://datastream.googleapis.com/DATASTREAM_API_VERSION/PROJECT_PATH/streams/STREAM_ID
  3. מוודאים ששורות הקוד הבאות מופיעות:

    {
      "name": "PROJECT_PATH/operations/operation-STREAM_OPERATION_ID",
      "metadata": {
        "@type": "type.googleapis.com/google.cloud.datastream.DATASTREAM_API_VERSION.OperationMetadata",
        "createTime": "DATE_AND_TIME_STAMP",
        "target": "PROJECT_PATH/streams/STREAM_ID",
        "verb": "delete",
        "requestedCancellation": false,
        "apiVersion": "DATASTREAM_API_VERSION"
      },
      "done": false
    }
  4. מוודאים שהשידור נמחק. בשורת הפקודה, מזינים את הפקודה הבאה:

    curl -H "Authorization: Bearer $TOKEN" -H "Content-Type: application/json" https://datastream.googleapis.com/DATASTREAM_API_VERSION/PROJECT_PATH/streams
  5. מוודאים שמוחזר ערך null של {}. זה אומר שאין יותר מקורות נתונים ב-Datastream, ומקור הנתונים שיצרתם נמחק.

מחיקת פרופילי החיבורים

  1. מוחקים את פרופיל החיבור למסד הנתונים של Oracle במקור. בשורת הפקודה, מזינים את הפקודה הבאה:

    curl -X DELETE -H "Authorization: Bearer $TOKEN" -H "Content-Type: application/json" https://datastream.googleapis.com/DATASTREAM_API_VERSION/PROJECT_PATH/connectionProfiles/SOURCE_CONNECTION_PROFILE_ID
  2. מוודאים ששורות הקוד הבאות מופיעות:

    {
      "name": "PROJECT_PATH/operations/operation-SOURCE_CONNECTION_PROFILE_OPERATION_ID",
      "metadata": {
        "@type": "type.googleapis.com/google.cloud.datastream.DATASTREAM_API_VERSION.OperationMetadata",
        "createTime": "DATE_AND_TIME_STAMP",
        "target": "PROJECT_PATH/connectionProfiles/SOURCE_CONNECTION_PROFILE_ID",
        "verb": "delete",
        "requestedCancellation": false,
        "apiVersion": "DATASTREAM_API_VERSION"
      },
      "done": false
    }
  3. מוחקים את פרופיל החיבור לקטגוריית היעד ב-Cloud Storage. בשורת הפקודה, מזינים את הפקודה הבאה:

    curl -X DELETE -H "Authorization: Bearer $TOKEN" -H "Content-Type: application/json" https://datastream.googleapis.com/DATASTREAM_API_VERSION/PROJECT_PATH/connectionProfiles/DESTINATION_CONNECTION_PROFILE_ID
  4. מוודאים ששורות הקוד הבאות מופיעות:

    {
      "name": "PROJECT_PATH/operations/operation-DESTINATION_CONNECTION_PROFILE_OPERATION_ID",
      "metadata": {
        "@type": "type.googleapis.com/google.cloud.datastream.DATASTREAM_API_VERSION.OperationMetadata",
        "createTime": "DATE_AND_TIME_STAMP",
        "target": "PROJECT_PATH/connectionProfiles/DESTINATION_CONNECTION_PROFILE_ID",
        "verb": "delete",
        "requestedCancellation": false,
        "apiVersion": "DATASTREAM_API_VERSION"
      },
      "done": false
    }
  5. מוודאים ששני פרופילי החיבור נמחקו. בשורת הפקודה, מזינים את הפקודה הבאה:

    curl -H "Authorization: Bearer $TOKEN" -H "Content-Type: application/json" https://datastream.googleapis.com/DATASTREAM_API_VERSION/PROJECT_PATH/connectionProfiles
  6. מוודאים שמוחזר ערך null של {}. זה אומר שאין יותר פרופילי חיבור ב-Datastream, והפרופילים שיצרתם נמחקו.

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