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

Datastream

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

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

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

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

כחלק מהעברת המידע הזה לתיקייה בקטגוריה של Cloud Storage ביעד, ‏ Datastream מתרגם את המידע הזה ל-Avro. פורמט Avro מוגדר על ידי סכימה שנכתבת ב-JavaScript Object Notation ‏ (JSON). התרגום הזה מאפשר לכם לקרוא נתונים ממקורות שונים בצורה אחידה.

מטרות

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

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

עלויות

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

  • Cloud Storage

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

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

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

  1. נכנסים לחשבון Google Cloud . אם אתם משתמשים חדשים ב- Google Cloud, צרו חשבון כדי שתוכלו להעריך את הביצועים של המוצרים שלנו בתרחישים מהעולם האמיתי. לקוחות חדשים מקבלים בחינם גם קרדיט בשווי 300$ להרצה, לבדיקה ולפריסה של עומסי העבודה.
  2. 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

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

  4. 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

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

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

    הפעלת ה-API

  7. מוודאים שחשבון המשתמש שלכם כולל את תפקיד האדמין של Datastream.

    כניסה לדף IAM

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

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

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

  • $PROJECT: המשתנה הזה משויך ל Google Cloud פרויקט. כל המשאבים ב-Google Cloud שאתם מקצים ומשתמשים בהם צריכים להיות שייכים לפרויקט.
  • $TOKEN: המשתנה הזה משויך לאסימון גישה. טוקן הגישה מספק סשן ש-Cloud Shell משתמש בו כדי לבצע משימות ב-Datastream באמצעות ממשקי REST API.
  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 כדי להגדיר מקור נתונים, יכול להיות שלא רוצים לשלוף את כל האובייקטים ממסד הנתונים, אלא רק קבוצת משנה של האובייקטים (למשל, רק טבלאות וסכימות מסוימות של מסד הנתונים). אפשר להשתמש ב-Discover 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השירות שמבטיח שמסד הנתונים של המקור מוגן ומפוקח. במסדי נתונים של אורקל, שירות מסד הנתונים הוא בדרך כלל 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_name\":\"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_name": "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": {
            "bucketName": "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 של Discover בפרופיל החיבור של מקור 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": {
        "bucketName": "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": {
        "bucketName": "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. איחזור הטבלאות של סכימה במסד הנתונים. במדריך הזה תשתמשו ב-Discover 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 להזרים ממנו נתונים.
    • האם אפשר לחבר את הזרם גם למקור וגם ליעד.
    • ההגדרה מקצה לקצה של מקור הנתונים.
  • יצירת השידור עם הרשימות הבאות:
    • רשימת היתרים. ברשימה הזו מצוינות הטבלאות והסכימות במסד הנתונים של המקור ש-Datastream יכול להעביר לתיקייה בקטגוריית היעד ב-Cloud Storage. במדריך הזה, זו התיקייה /root/tutorial.
    • רשימת דחייה. ברשימה הזו מפורטות הטבלאות והסכימות במסד הנתונים של המקור, שהמערכת של Datastream מנועה מלהעביר לתיקייה בקטגוריית היעד ב-Cloud Storage.
  • אחזור מידע על הזרם
  • שינוי השידור
  • הפעלת הזרם כדי ש-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 (מ-5 מגה-בייט ל-100 מגה-בייט). במהלך אחזור הנתונים ממסד הנתונים של המקור, הנתונים נכתבים בקבצים בגודל 100MB. אם יש נתונים שגודלם חורג מהמגבלה הזו, הם יפוצלו לכמה קבצים בגודל ‎100 MB.

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

    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. לוחצים על תיקיית הבסיס ואז על תיקיית ההדרכה.

  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. מסמנים את התיבה שמימין לדלי ולוחצים על מחיקה.

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

מחיקת השידור

  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, והפרופילים שיצרתם נמחקים.

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