טעינת נתונים מ-ServiceNow ל-BigQuery

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

מגבלות

העברות נתונים ב-ServiceNow כפופות למגבלות הבאות:

  • המחבר של ServiceNow תומך רק ב-ServiceNow table API.
  • לא מומלץ להפעיל כמה העברות נתונים בו-זמנית באותו מופע של ServiceNow. זה עלול לגרום לעיכובים או לכשלים בגלל עומס על המכונה של ServiceNow.
    • מומלץ לתזמן את שעות ההתחלה של ההעברות כך שלא יהיה חפיפה בין ההעברות.
  • כדי לשפר את הביצועים של העברת הנתונים, מומלץ להגביל את מספר הנכסים ל-20 פריטים לכל העברת נתונים.
  • מרווח הזמן המינימלי בין העברות נתונים חוזרות הוא 15 דקות. מרווח הזמן שמוגדר כברירת מחדל להעברה חוזרת הוא 24 שעות.
  • הגדרת העברה אחת יכולה לתמוך רק בהרצה אחת של העברת נתונים בזמן נתון. אם מתוכננת העברת נתונים שנייה לפני שההעברה הראשונה מסתיימת, רק ההעברה הראשונה תושלם. כל העברת נתונים אחרת שחופפת להעברה הראשונה תדלג.
    • כדי למנוע דילוג על העברות בהגדרת העברה אחת, מומלץ להגדיל את משך הזמן בין העברות נתונים גדולות על ידי הגדרת תדירות החזרה.
  • כדי להשתמש בחיבור לרשת עם העברת הנתונים הזו, קודם צריך ליצור חיבור לרשת על ידי הגדרת כתובת IP סטטית.

מגבלות על העברה מצטברת

ההעברות המצטברות של ServiceNow כפופות למגבלות הבאות:

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

אפשרויות להטמעת נתונים

בקטעים הבאים מתוארות האפשרויות להטמעת נתונים לצורך הגדרת העברת נתונים מ-ServiceNow.

העברות מלאות או מצטברות

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

אתם יכולים להגדיר העברת נתונים מלאה כדי להעביר את כל הנתונים ממערכי הנתונים של ServiceNow בכל העברת נתונים.

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

מצב כתיבה של עדכון או הוספה (upsert)

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

כשבוחרים במצב "לעדכן או להוסיף (upsert)", צריך לבחור עמודת סימן מים ומפתח ראשי:

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

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

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

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

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

התנהגות של הוספה מצטברת

כשמבצעים שינויים בסכימת הטבלה במקור הנתונים, העברות נתונים מצטברות מהטבלאות האלה משתקפות ב-BigQuery באופנים הבאים:

שינויים במקור הנתונים התנהגות של הוספה מצטברת
הוספת עמודה חדשה עמודה חדשה נוספת לטבלת היעד ב-BigQuery. כל הרשומות הקודמות בעמודה הזו יקבלו ערכי null.
מחיקת עמודה העמודה שנמחקה נשארת בטבלת היעד ב-BigQuery. ערכים חדשים בעמודה שנמחקה יאוכלסו בערכי null.
שינוי סוג הנתונים בעמודה המחבר תומך רק ב המרות של סוגי נתונים שנתמכות על ידי הצהרת ה-DDL‏ ALTER COLUMN. כל המרה אחרת של סוג נתונים תגרום לכך שהעברת הנתונים תיכשל.

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

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

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

לפני שיוצרים העברת נתונים מ-ServiceNow, צריך לבצע את הפעולות הבאות ב-ServiceNow וב-BigQuery.

דרישות מוקדמות של ServiceNow

  • כדי לגשת לממשקי ה-API של ServiceNow, צריך ליצור פרטי כניסה ל-OAuth.
  • צריך להפעיל את כל האפליקציות הבאות של ServiceNow במכונה של ServiceNow:

  • כדי להתחיל בהעברה של ServiceNow, צריך להיות לכם את פרטי הכניסה הנכונים להתחברות למופע ServiceNow.

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

דרישות מוקדמות ל-BigQuery

התפקידים הנדרשים ב-BigQuery

כדי לקבל את ההרשאות שדרושות ליצירת העברת נתונים באמצעות שירות העברת הנתונים ל-BigQuery, בקשו מהאדמין להקצות לכם את התפקיד אדמין ב-BigQuery (roles/bigquery.admin) ב-IAM בפרויקט. כדי לקרוא הסבר על מתן תפקידים, ראו איך מנהלים את הגישה ברמת הפרויקט, התיקייה והארגון.

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

ההרשאות הנדרשות

כדי ליצור העברת נתונים באמצעות שירות העברת הנתונים ל-BigQuery, נדרשות ההרשאות הבאות:

  • הרשאות לשירות העברת נתונים ל-BigQuery:
    • bigquery.transfers.update
    • bigquery.transfers.get
  • הרשאות ב-BigQuery:
    • bigquery.datasets.get
    • bigquery.datasets.getIamPolicy
    • bigquery.datasets.update
    • bigquery.datasets.setIamPolicy
    • bigquery.jobs.create

יכול להיות שתקבלו את ההרשאות האלה באמצעות תפקידים בהתאמה אישית או תפקידים מוגדרים מראש אחרים.

מידע נוסף מופיע במאמר בנושא מתן גישה ל-bigquery.admin.

הגדרת העברת נתונים מ-ServiceNow

כדי להוסיף נתונים מ-ServiceNow ל-BigQuery, צריך להגדיר העברה באמצעות אחת מהאפשרויות הבאות:

המסוף

  1. עוברים לדף 'העברות נתונים' במסוף Google Cloud .

    מעבר אל 'העברות נתונים'

  2. לוחצים על Create transfer (יצירת העברה).

  3. בקטע Source type, בשדה Source בוחרים באפשרות ServiceNow.

  4. בקטע פרטי מקור הנתונים, מבצעים את הפעולות הבאות:

    • (אופציונלי) בשדה Network attachment, בוחרים חיבור רשת מהתפריט הנפתח או לוחצים על Create Network Attachment.
    • בשדה מזהה מופע, מזינים את מזהה המופע של ServiceNow. אפשר למצוא את זה בכתובת ה-URL של ServiceNow, לדוגמה https://INSTANCE_ID.service-now.com.
    • (אופציונלי) בשדה ServiceNow Cloud Type, בוחרים את סוג הענן של חשבון ServiceNow:
      • בוחרים באפשרות מסחרי אם כתובת ה-URL של מופע ServiceNow שלכם היא בתבנית https://INSTANCE_ID.service-now.com. זה ערך ברירת המחדל.
      • בוחרים באפשרות Government Community Cloud (GCC) אם כתובת ה-URL של מופע ServiceNow שלכם תואמת לתבנית https://INSTANCE_ID.servicenowservices.com.
    • בשדה Username, מזינים את שם המשתמש ב-ServiceNow שבו רוצים להשתמש לחיבור.
    • בשדה Password, מזינים את הסיסמה של ServiceNow.
    • בשדה Client ID, מזינים את מזהה הלקוח מפרטי הכניסה ל-OAuth. הוראות ליצירת פרטי כניסה זמינות במאמר יצירת פרטי כניסה של OAuth.
    • בשדה Client secret, מזינים את סוד הלקוח מפרטי הכניסה ל-OAuth.
    • בשדה Enable legacy mapping, בוחרים באפשרות true (ברירת המחדל) כדי להשתמש במיפוי סוגי הנתונים הקודם. בוחרים באפשרות false כדי להשתמש במיפוי המעודכן של סוגי הנתונים. מידע נוסף על העדכונים במיפוי של סוגי הנתונים זמין בקטע 16 במרץ 2027.
    • בקטע סוג ההטמעה, בוחרים באפשרות מלאה או מצטברת.
    • כדי להעביר טבלאות של ServiceNow, לוחצים על עיון:
      • בוחרים את האובייקטים שרוצים להעביר למערך הנתונים של היעד ב-BigQuery. אפשר גם להזין באופן ידני אובייקטים שרוצים לכלול בהעברת הנתונים בשדה הזה.
      • אם בחרתם באפשרות Upsert (עדכון או הוספה) כמצב הכתיבה המצטבר, אתם צריכים לבחור עמודה כעמודת סימן המים, ואז לבחור עמודה אחת או יותר כמפתח הראשי.
    • בקטע Value type (סוג ערך), בוחרים אחת מהאפשרויות הבאות:
      • כדי להעביר את הערכים ששמורים במסד הנתונים, בוחרים באפשרות בפועל.
      • כדי להעביר את הערכים שמוצגים בעמודות, בוחרים באפשרות תצוגה.
  5. בקטע Destination settings, בשדה Dataset בוחרים את מערך הנתונים שיצרתם כדי לאחסן את הנתונים.

  6. בקטע Transfer config name, בשדה Display name, נותנים שם להעברת הנתונים.

  7. בקטע Schedule options:

    • ברשימה Repeat frequency, בוחרים אפשרות כדי לציין את התדירות שבה העברת הנתונים הזו תפעל. כדי להגדיר תדירות חזרה מותאמת אישית, לוחצים על בהתאמה אישית. אם בוחרים באפשרות על פי דרישה, העברת הנתונים תתבצע כשמפעילים את ההעברה באופן ידני.
    • אם רלוונטי, בוחרים באפשרות Start now או באפשרות Start at set time, ומציינים תאריך התחלה וזמן ריצה.
  8. אופציונלי: בקטע אפשרויות התראה, מבצעים את הפעולות הבאות:

    • כדי להפעיל התראות באימייל, לוחצים על המתג התראות באימייל. כשמפעילים את האפשרות הזו, האדמין של ההעברה מקבל התראה באימייל אם ההעברה נכשלת.
    • כדי להפעיל התראות על הפעלת העברה ב-Pub/Sub להעברת הנתונים הזו, לוחצים על המתג התראות Pub/Sub. אפשר לבחור את שם הנושא או ללחוץ על יצירת נושא כדי ליצור נושא חדש.
  9. לוחצים על Save.

BQ

מזינים את הפקודה bq mk ומציינים את הדגל ליצירת העברה, --transfer_config:

bq mk
    --transfer_config
    --project_id=PROJECT_ID
    --data_source=DATA_SOURCE
    --display_name=DISPLAY_NAME
    --target_dataset=DATASET
    --params='PARAMETERS'

מחליפים את מה שכתוב בשדות הבאים:

  • ‫PROJECT_ID (אופציונלי): מזהה הפרויקט ב- Google Cloud . אם לא מציינים מזהה פרויקט, המערכת משתמשת בפרויקט שמוגדר כברירת מחדל.
  • DATA_SOURCE: מקור הנתונים (לדוגמה, servicenow).
  • ‫DISPLAY_NAME: השם המוצג של הגדרות ההעברה. השם של העברת הנתונים יכול להיות כל ערך שיאפשר לכם לזהות את ההעברה אם תצטרכו לשנות אותה בהמשך.
  • DATASET: מערך הנתונים של היעד להגדרת ההעברה.
  • ‫PARAMETERS: הפרמטרים של הגדרות ההעברה שנוצרו, בפורמט JSON. לדוגמה: --params='{"param":"param_value"}'. אלה הפרמטרים להעברת נתונים מ-ServiceNow:

    פרמטר של ServiceNow חובה או אופציונלי תיאור
    connector.networkAttachment אופציונלי השם של מחבר הרשת שבו משתמשים כדי להבטיח קישוריות למופע ServiceNow.
    connector.instanceId חובה מזהה המופע של ServiceNow
    connector.authentication.username חובה שם המשתמש של המופע של ServiceNow של המשתמש.
    connector.authentication.password חובה הסיסמה למופע של ServiceNow של המשתמש.
    connector.authentication.oauth.clientId חובה מזהה הלקוח לאימות OAuth עם המכונה של ServiceNow.
    connector.authentication.oauth.clientSecret חובה סוד הלקוח לאימות OAuth במופע ServiceNow.
    connector.instanceCloudType אופציונלי מציינים את סוג הענן של חשבון ServiceNow. הערכים הנתמכים הם:
    • COMMERCIAL_CLOUD, אם כתובת ה-URL של המכונה של ServiceNow תואמת לתבנית https://INSTANCE_ID.service-now.com
    • ‫GOVERNMENT_COMMUNITY_CLOUD if your ServiceNow instance URL follows the pattern https://INSTANCE_ID.servicenowservices.com
    ingestionType אופציונלי ההגדרה הזו מגדירה את השיטה להעברת נתונים ממקור ServiceNow ליעד, וקובעת אם יתבצע טעינה מחדש של מערך נתונים מלא או עדכון מצטבר יעיל.
    writeMode אופציונלי אם משתמשים בהטמעה מצטברת, קובע את אסטרטגיית הסנכרון להטמעה מצטברת. השדה הזה נדרש להעברות מצטברות. הערך הנתמך הוא WRITE_MODE_UPSERT.
    assets חובה רשימת השמות של טבלאות ServiceNow שיועברו מ-ServiceNow כחלק מההעברה.
    watermarkColumns אופציונלי אם משתמשים בהטמעה מצטברת, שדה טבלת המקור (בדרך כלל datetime) משמש למעקב אחרי נקודת הסנכרון האחרונה שהצליחה, וכך מאפשר למחבר לשלוח שאילתות ביעילות ולהעביר רק את הרשומות שנוצרו או שונו מאז אותו זמן ספציפי. השדה הזה נדרש להעברות מצטברות.
    primaryKeys אופציונלי אם משתמשים בהטמעה מצטברת, העמודה הייחודית או שילוב העמודות שמשמשים לזיהוי ייחודי של כל שורה בטבלת המקור. השדה הזה נדרש להעברות מצטברות.
    valueType אופציונלי קובע איך סוגי נתונים ספציפיים מ-ServiceNow ממופים לסוגי נתונים ב-BigQuery.
    connector.legacyMapping חובה מגדירים את הערך true (ברירת מחדל) כדי להשתמש במיפוי סוגי הנתונים מדור קודם. כדי להשתמש במיפוי המעודכן של סוגי הנתונים, מגדירים את הערך false. אם מבצעים העברה מצטברת, הערך הזה חייב להיות false. למידע נוסף על העדכונים במיפוי סוגי הנתונים, ראו 16 במרץ 2027.

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

    לדוגמה, הפקודה הבאה יוצרת העברת נתונים מ-ServiceNow בפרויקט ברירת המחדל עם כל הפרמטרים הנדרשים:

      bq mk
        --transfer_config
        --target_dataset=mydataset
        --data_source=servicenow
        --display_name='My Transfer'
        --params='{"connector.authentication.oauth.clientId": "1234567890",
            "connector.authentication.oauth.clientSecret":"ABC12345",
            "connector.authentication.username":"user1",
            "connector.authentication.password":"abcdef1234",
            "connector.instanceId":"dev-instance",
            "connector.networkAttachment": "projects/dev-project1/regions/us-central1/networkattachments/na1"}'
    

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

      bq mk
          --transfer_config
          --target_dataset=mydataset
          --data_source=servicenow
          --display_name='My Transfer'
          --params='{"assets": ["incident", "change_request"],
              "connector.authentication.oauth.clientId": "1234567890",
              "connector.authentication.oauth.clientSecret":"ABC12345",
              "connector.authentication.username":"user1",
              "connector.authentication.password":"abcdef1234",
              "connector.instanceId":"dev-instance",
              "ingestionType":"incremental",
              "writeMode":"WRITE_MODE_UPSERT",
              "watermarkColumns":["sys_updated_on","sys_updated_on"],
              "primaryKeys":[["sys_id"], ["sys_id"]]}'
    

API

משתמשים בשיטה projects.locations.transferConfigs.create ומספקים מופע של המשאב TransferConfig.

כששומרים את הגדרת ההעברה, המחבר של ServiceNow מפעיל אוטומטית את ההעברה בהתאם לאפשרות של לוח הזמנים שהגדרתם. בכל הפעלה של העברה, המחבר של ServiceNow מעביר את כל הנתונים הזמינים מ-ServiceNow ל-BigQuery.

כדי להפעיל ידנית העברת נתונים מחוץ ללוח הזמנים הרגיל, אפשר להתחיל הרצה של מילוי נתונים.

מיפוי סוגי נתונים

בטבלה הבאה מוצג המיפוי של סוגי הנתונים בהעברת נתונים מ-ServiceNow:

סוג הנתונים ב-ServiceNow סוג נתונים ב-BigQuery סוג נתונים מעודכן ב-BigQuery
decimal FLOAT64
integer INTEGER
boolean BOOLEAN
glide_date DATE
glide_date_time DATETIME
glide_list STRING ARRAY
glide_time INT64
reference STRING
currency STRING
sys_class_name STRING
domain_id STRING
domain_path STRING
guid STRING
translated_html STRING
journal STRING
string STRING
list STRING ARRAY

פתרון בעיות בהעברה

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

מידע נוסף זמין במאמר פתרון בעיות בהגדרות העברה.

ההעברה נכשלת בגלל הפעלת ServiceNow

בעיה שגורמת להעברות נתונים להיכשל מתרחשת כשהאפליקציות Procurement,‏ Product Catalog או Contract Management לא מופעלות ב-ServiceNow. כדי לפתור את הבעיה, צריך להפעיל את כל שלושת היישומים:

הבעיה מתרחשת במהלך הפעלת ההעברה

מתרחשת בעיה שגורמת לכך שהרצת ההעברה לא נוצרת כמצופה. כדי לפתור את הבעיה:

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

שגיאות אחרות

מידע על שגיאות אחרות שהתרחשו במהלך העברת נתונים ב-ServiceNow זמין במאמר בעיות בהעברה ב-ServiceNow

תמחור

מידע על מחירי ההעברות מ-ServiceNow זמין במאמר התמחור של שירות העברת הנתונים.

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