טעינת נתונים מ-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 בכל העברת נתונים.

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

מצב כתיבה של Upsert

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    • כדי לקבל את פרטי הכניסה למופע של ServiceNow Developer, צריך להתחבר לפורטל ServiceNow Developer. אפשר להשתמש בשם המשתמש ובסיסמה שמופיעים בדף Manage instance password (ניהול הסיסמה של המופע). מידע על איפוס הסיסמה ב-ServiceNow זמין במאמר איפוס סיסמה.
    • כדי לקבל את פרטי הכניסה למופע ייצור או למופע משני של ServiceNow, צריך לפנות לאדמין הלקוח של ServiceNow ולבקש את שם המשתמש והסיסמה.

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

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

כדי לקבל את ההרשאות שנדרשות ליצירת העברת נתונים באמצעות שירות העברת נתונים ל-BigQuery, צריך לבקש מהאדמין להקצות לכם את תפקיד BigQuery Admin ‏ (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. עוברים לדף 'העברות נתונים' במסוף Cloud de Confiance .

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

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

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

  4. בקטע Data source details (פרטים של מקור הנתונים), מבצעים את הפעולות הבאות:

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

  6. בקטע Transfer config name (שם הגדרת ההעברה), בשדה Display name (שם מוצג), מזינים שם להעברת הנתונים.

  7. בקטע Schedule options:

    • ברשימה תדירות החזרה, בוחרים אפשרות כדי לציין באיזו תדירות תתבצע העברת הנתונים הזו. כדי לציין תדירות חזרה מותאמת אישית, בוחרים באפשרות בהתאמה אישית. אם בוחרים באפשרות על פי דרישה, העברת הנתונים הזו תפעל כשמפעילים את ההעברה באופן ידני.
    • אם רלוונטי, בוחרים באפשרות התחלה מיידית או התחלה בשעה שנקבעה, ומזינים תאריך התחלה ומשך הפעלה.
  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 (אופציונלי): מזהה הפרויקט ב- Cloud de Confiance by S3NS . אם לא מציינים מזהה פרויקט, המערכת משתמשת בפרויקט שמוגדר כברירת מחדל.
  • 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 אם כתובת ה-URL של מופע ServiceNow שלכם תואמת לתבנית 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 זמין במאמר בנושא המחירים של השירות להעברת נתונים.

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