Usage
view: view_name {
filter: filter_name { ... }
}
|
היררכיה
filter |
ערך ברירת המחדל
ללא
אישור
מזהה Looker כדי לתת שם למסנן
כללים מיוחדים
שמות של מסננים לא יכולים להיות משותפים עם מסננים אחרים, dimension או measure באותו view
|
הגדרה
הפרמטר filter מגדיר שדה סינון בלבד ושם למסנן הזה. משתמש יכול להוסיף שדות סינון בלבד כמסננים כשהוא מבצע ניתוח, אבל הוא לא יכול להוסיף אותם לקבוצת התוצאות שלו. השדות האלה שמשמשים רק לסינון הופכים לשימושיים באמצעות מסננים מבוססי-תבניות, שהם נושא מתקדם ב-LookML. אפשר גם לעיין בדוגמה שימוש ב-filter לסינון לפי שדה מוסתר.
שם המסנן צריך:
- להיות ייחודי בכל תצוגה נתונה
- הם מורכבים מהתווים
aעדz(ללא אותיות רישיות),0עד9או_ - התחלה באות
יש הרבה סוגים של שדות סינון, כמו שמוסבר בהמשך בדף התיעוד בנושא סוגי מאפיינים, מסננים ופרמטרים.
פרמטרים משניים של filter
בדף העזר בנושא פרמטרים של שדות מופיעה רשימה של פרמטרים משניים שזמינים לשדות LookML.
דוגמאות
ריכזנו כאן כמה דוגמאות לשימוש בפרמטר filter.
יצירת מסנן שמוגדר על ידי המשתמש
יוצרים מסנן שמאפשר למשתמש לציין את order_region:
filter: order_region {
type: string
}
הגדרת טבלה נגזרת דינמית עם מסנן מבוסס-תבנית
כפי שמוסבר בדף התיעוד בנושא מסננים מבוססי-תבניות ופרמטרים של Liquid, צריך להגדיר טבלה נגזרת כדי לחשב את ההוצאות של הלקוחות באזור שהמשתמש מציין לאורך זמן. בדוגמה הזו נעשה שימוש ב-filter שנוצר בדוגמה הקודמת כחלק ממסנן מבוסס-תבנית. הקלט filter משמש בסעיף WHERE עם משתני Liquid:
view: customer_facts {
derived_table: {
sql:
SELECT
customer_id,
SUM(sale_price) AS lifetime_spend
FROM
order
WHERE
{% condition order_region %} order.region {% endcondition %}
GROUP BY 1
;;
}
filter: order_region {
type: string
}
}
שימוש בפרמטר sql עם filter
אפשר גם להשתמש בפרמטר sql עם filter, שחל על פסוקית ה-SQL WHERE בכל פעם שלמסנן יש ערך. כך אפשר ליצור פסקה דינמית של WHERE, על סמך הקלט של מסנן המשתמשים.
בדוגמה הבאה נוצר מסנן שמאפשר רק שמות משתמשים שקיימים במערך הנתונים:
filter: user_enabled {
type: string
suggest_dimension: user_name
sql: EXISTS (SELECT user_id FROM users WHERE {% condition %} user_name {% endcondition %} and state = 'enabled') ;;
}
בדוגמה הקודמת, אם הרשימה המלאה של שמות המשתמשים במערך הנתונים היא 'זאב', 'ארין' ו'ברט', התוצאה של המסנן היא פסקה WHERE הבאה:
WHERE EXISTS (SELECT user_id FROM users WHERE user_name in ('Zach', 'Erin', 'Brett') and state = 'enabled')
דוגמה לשימוש בפרמטר sql עם filter מופיעה בקטע שימוש ב-filter לסינון לפי שדה מוסתר בדף הזה.
שימוש ב-filter כדי להגדיר טבלה נגזרת דינמית ומסנן לפי הגדרת המשתמש
בדוגמה הקודמת שבה מוגדר טבלת נגזרת עם ערך אזור דינמי, אפשר להשתמש בפרמטר sql עם מסנן מבוסס-תבנית כדי ליצור באופן דינמי פסוקית WHERE שחלה גם על הטבלה הנגזרת וגם על השאילתה הראשית שנוצרה על ידי Looker:
view: customer_facts {
derived_table: {
sql:
SELECT
customer_id,
SUM(sale_price) AS lifetime_spend
FROM
order
WHERE
{% condition order_region %} order.region {% endcondition %}
GROUP BY 1
;;
}
filter: order_region {
type: string
sql: {% condition order_region %} ${region} {% endcondition %} ;;
}
dimension: region {
type: string
sql: ${TABLE}.region ;;
}
בדוגמה הקודמת, המשתמש מספק קלט למסנן order_region, שבתורו מספק את הערך למאפיין region. המאפיין region מספק את הערך של פסוקית WHERE ב-SQL של הטבלה הנגזרת, ובגלל הפרמטר sql בהגדרה של filter, את הערך של פסוקית WHERE בשאילתה שנוצרה על ידי Looker.
שימוש ב-filter כדי לסנן לפי שדה מוסתר
אפשר להשתמש ב-filter כדי ליצור מאפיין שמשתמשים יכולים לסנן לפיו, וגם למנוע מהמשתמשים לבחור את המאפיין בשאילתה.
קודם מסתירים את המאפיין הרלוונטי באמצעות
hidden: yes. כלומר, המשתמשים לא יוכלו לבחור את המאפיין הזה בבורר השדות של כלי המחקר.dimension: field_to_hide { type: string hidden: yes sql: ${TABLE}.field_to_hide ;; }עכשיו יוצרים שדה
filterכדי לקשר למאפייןfield_to_hide.filter: filter_on_field_to_hide { type: string sql: {% condition filter_on_field_to_hide %} ${field_to_hide} {% endcondition %} ;; }
כמו שמוסבר בדוגמה שימוש בפרמטר sql עם filter, הפרמטר sql של השדה filter מחיל SQL ישירות על פסוקית WHERE של השאילתה. במקרה הזה, התנאי של המסנן sql מוחל על המאפיין ${field_to_hide}.filter_on_field_to_hide
כך המשתמשים יכולים לסנן שאילתה לפי field_to_hide באמצעות המסנן filter_on_field_to_hide, בזמן שהמאפיין field_to_hide נשאר מוסתר.