Usage
explore: view_name_1 {
join: view_name_2 {
foreign_key: dimension_name
}
}
|
היררכיה
foreign_key |
ערך ברירת המחדל
ללא
מקבל
שם של מאפיין ב-Looker
כללים מיוחדים
|
הגדרה
foreign_key יוצר קשר של צירוף בין תצוגה לבין ה-Explore שלה. Looker מתאים את המאפיין שאליו מתייחס foreign_key למפתח הראשי של התצוגה המצורפת. כדי להגדיר את המפתח הראשי של התצוגה המאוחדת, מפעילים את האפשרות primary_key בשדה שמשמש כמפתח הראשי.
אפשר לצרף תצוגה ישירות ל-Explore כשמשתמשים ב-foreign_key, או לצרף אותה דרך תצוגה שנייה שכבר צורפה ל-Explore הזה.
דוגמה למקרה הראשון, שבו תצוגה מצורפת ישירות ל-Explore:
explore: order {
join: customer {
foreign_key: customer_id
}
}
בהנחה שהמפתח הראשי של customer נקרא id, ה-SQL שנוצר ב-Looker יהיה:
SELECT ...
FROM order
LEFT JOIN customer
ON order.customer_id = customer.id
במקרה השני, תצוגה מצורפת ל-Explore דרך תצוגת ביניים שכבר מצורפת ל-Explore הזה. לדוגמה:
explore: order_items {
join: order {
foreign_key: order_id
}
join: customer {
foreign_key: order.customer_id
}
}
במקרה הזה, אי אפשר לצרף את customer ישירות אל order_items. במקום זאת, צריך להצטרף אליו דרך order. בהנחה שהמפתחות הראשיים של order ושל customer נקראו id, קוד ה-SQL ש-Looker יצר יהיה:
SELECT ...
FROM order_items
LEFT JOIN order
ON order_items.order_id = order.id
LEFT JOIN customer
ON order.customer_id = customer.id
כדי שהפעולה הזו תתבצע בצורה תקינה, השתמשנו בהפניה לשדה עם היקף מלא order.customer_id כשביצענו הצטרפות ל-customer, במקום להשתמש רק ב-customer_id. אם היינו משתמשים רק ב-customer_id, Looker היה מנסה לצרף את customer ישירות ל-order_items.customer_id במקום דרך order.customer_id.
דוגמאות
מצטרפים לתצוגה בשם customer לניתוח בשם order על ידי התאמת המפתח הראשי מ-customer ל-order.customer_id:
explore: order {
join: customer {
foreign_key: customer_id
}
}
מצטרפים לתצוגה שנקראת customer לניתוח שנקרא order_items דרך התצוגה שנקראת order. מתאימים את המפתח הראשי מ-customer ל-order.customer_id, ואת המפתח הראשי מ-order ל-order_items.order_id:
explore: order_items {
join: order {
foreign_key: order_id
}
join: customer {
foreign_key: order.customer_id
}
}
מצטרפים לתצוגות המפורטות שנקראות order ו-inventory_item ב-Explore שנקרא order_items. מתאימים את המפתח הראשי מ-order ל-order_items.order_id, ואת המפתח הראשי מ-inventory_item ל-order_items.inventory_id:
explore: order_items {
join: order {
foreign_key: order_id
}
join: inventory_item {
foreign_key: inventory_id
}
}
אתגרים נפוצים
השדה foreign_key חייב להפנות לשם של מאפיין, ולא לשם של עמודה
הפרמטר foreign_key מקבל רק שם של מימד, ולא את שם העמודה במסד הנתונים הבסיסי של SQL. לעתים קרובות שם המאפיין ושם העמודה זהים, מה שעלול להוביל למסקנה השגויה שאפשר להשתמש בשמות העמודות.
חובה להגדיר מפתח ראשי בתצוגות שהצטרפו באמצעות foreign_key
כדי ש-foreign_key יפעל בצורה תקינה, אחד מהמאפיינים בתצוגה המאוחדת צריך להיות מוגדר כמפתח הראשי של התצוגה הזו. מגדירים מפתח ראשי באמצעות הפרמטר primary_key.
אפשר להגדיר רק מאפיין אחד כמפתח ראשי, ולכן אי אפשר להשתמש ב-foreign_key בתצוגות שיש להן מפתח ראשי עם כמה עמודות. במקרה כזה, תצטרכו להשתמש ב-sql_on במקום זאת.
חשוב לדעת
foreign_key היא לא הדרך היחידה להצטרף ב-Looker
אי אפשר ליצור חלק מיחסי הצירוף באמצעות foreign_key. לדוגמה, יכול להיות שההצטרפות לא תשתמש במפתח הראשי של התצוגה המצורפת, או שהיא תדרוש שחלק מההצטרפות יהיו מספר תנאים. במקרים כאלה, צריך להשתמש ב-sql_on במקום זאת.