שדות (בניתוחים)

בדף הזה מוסבר על הפרמטר fields שהוא חלק מכלי הניתוחים.

אפשר להשתמש ב-fields גם כחלק מצירוף, כפי שמתואר בדף התיעוד של הפרמטר fields (לצירופים).

אפשר להשתמש ב-fields גם כחלק ממערך, כמו שמתואר בדף התיעוד של הפרמטר set.

Usage


explore: explore_name {
  fields: [
    field-or-set-specification,
    field-or-set-specification,
    ...
  ]
}
היררכיה
fields
ערך ברירת המחדל
ALL_FIELDS*

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

כללים מיוחדים
  • צריך להגדיר את כל השדות והקבוצות באופן מלא (להשתמש בתחביר view_name.field_name)
  • כדי להחריג שדות וקבוצות, צריך להוסיף סימן מינוס (-) לפני השם שלהם.
  • שמות של הגדרות תמיד מסתיימים בכוכבית (*)
  • אפשר להשתמש בשם הקבוצה המובנה ALL_FIELDS*, שכולל את כל השדות ב'התנסות'.
  • אפשר להשתמש בשם הקבוצה המובנה view_name*, שכולל את כל השדות בתצוגה שאליה מפנים.

הגדרה

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

אפשר להשתמש ברשימת שדות באופן הבא: [view_name.field_a, view_name.field_b].

אפשר גם להפנות לקבוצת שדות (שמוגדרת בפרמטר set של תצוגה מפורטת), כמו [view_name.set_a*]. הכוכבית מציינת ל-Looker שאתם מתייחסים לשם של קבוצה ולא לשם של שדה.

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

‫Looker יוצר באופן אוטומטי קבוצה בשם ALL_FIELDS*, שמכילה את כל השדות בתצוגת הבסיס ובצירופים של הכלי 'ניתוח נתונים'. האפשרות הזו שימושית במיוחד להחרגת מספר קטן של שדות לא רצויים, כמו בדוגמה הבאה:

explore: view_name {
  fields: [ALL_FIELDS*, -joined_view_name.unwanted_field]
}

בנוסף, מערכת Looker יוצרת באופן אוטומטי קבוצות שמכילות את כל השדות בתצוגה נתונה, שאפשר להפנות אליהן באמצעות הפורמט view_name*. לדוגמה, החיפוש הבא ב-Explore כולל רק שדות בתצוגה customers:

explore: all_people {
  fields: [customers*]
}

דוגמאות

הצגת השדה שנקרא name מהתצוגה customer ב'ניתוחים' customer:

explore: customer {
  fields: [customer.name]
}

הצגת השדות name, address ו-age בלבד מהתצוגה customer ב-customer Explore:

explore: customer {
  fields: [customer.name, customer.address, customer.age]
}

יוצג רק קבוצת השדות בexport_fields, מתוך התצוגה customer, בcustomer ניתוח:

explore: customer {
  fields: [customer.export_fields*]
}

להחריג את השדה שנקרא status בתצוגה customer מהניתוח order:

explore: order {
  fields: [ALL_FIELDS*, -customer.status]
  join: customer {
    sql_on: ${order.customer_id} = ${customer.id} ;;
  }
}

חשוב לדעת

אפשר להחריג פריטים ספציפיים או קבוצות של פריטים באמצעות fields עם explore

אפשר להשתמש ב-fields בפרמטר explore כדי להגדיר ALL_FIELDS* ואז להחריג שדות. לדוגמה:

explore: order {
  fields: [
    ALL_FIELDS*,
    -customer.unwanted_field_a,
    -customer.unwanted_field_b
  ]
  join: customer {
    sql_on: ${order.customer_id} = ${customer.id} ;;
  }
}

הצלחנו להפנות לשדות מהתצוגה המאוחדת customer בפרמטר fields ברמת הניתוח באמצעות התחביר view_name.field_name.

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

explore: orders {
  fields: [ALL_FIELDS*, -users.statezip*]
  join: users {
    sql_on: ${orders.user_id} = ${users.id} ;;
    relationship: many_to_one
  }
}

view: users {
  set: statezip {
    fields:[state, zip]
  }
}

בפרמטר fields שהוא חלק מ-join אי אפשר להשתמש בערך ALL_FIELDS set

בדף הזה יש הפניה לפרמטר fields שהוא צאצא של explore. כשמשתמשים בפרמטר fields בצורה הזו, אפשר לגשת לערך ALL_FIELDS* ואז להחריג שדות לא רצויים, כמו שמוצג למעלה.

יש גם פרמטר fields שהוא צאצא של join. כשמשתמשים בהם בצורה הזו, אי אפשר להשתמש בערכת ALL_FIELDS*.

הפרמטר ALL_FIELDS מוגבל על ידי הפרמטר fields שהוא חלק מ-join

בדף הזה נסביר על fields כשהוא מוטמע בפרמטר explore. יש גם פרמטר דומה fields שמוטמע בתוך join. חשוב להבין את ההשלכות של החלת fields על שתי הרמות בו-זמנית.

קודם כל, המערכת מחילה את כל הפרמטרים fields בקטע join. כך נוצרת קבוצת השדות שאפשר לבחור מתוכה ב'ניתוח נתונים'. דוגמה:

explore: orders {
  join: users {
    fields: [name]
    sql_on: ${orders.user_id} = ${users.id} ;;
  }
}

במקרה כזה:

  • כל השדות מ-orders יהיו זמינים וייכללו ב-ALL_FIELDS*.
  • name מ-users יהיה זמין ויכלל ב-ALL_FIELDS*.
  • שדות אחרים ב-users לא יהיו זמינים או ייכללו בקבוצה ALL_FIELDS*.

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

explore: orders {
  fields: [orders.price, users.address]
  join: users {
    fields: [name]
    sql_on: ${orders.user_id} = ${users.id} ;;
  }
}

במקרה כזה:

  • המוצר price מ-orders יוצג כצפוי, כי הוא נמצא בקבוצה ALL_FIELDS* שיצרנו.
  • ההודעה address מ-users לא תוצג, כי היא לא נכללה כש-users הצטרף (רק name נכללה).
  • גם name מ-users לא יופיע, כי לא הוספנו אותו לניתוח בשורה fields: [orders.price, users.address].