Usage
# SQL-based derived analytic model
view: view_name {
derived_analytic_model: {
publish_as_db_analytic_model: yes | no
sql: analytic_model_definition ;;
}
}
# LookML-based derived analytic model
view: view_name {
derived_analytic_model: {
publish_as_db_analytic_model: yes | no
model_source: explore_name {
fields: [field_1, field_2, ...]
join: +joined_view_name {
foreign_key: field_name
}
}
}
}
|
היררכיה
derived_analytic_model |
ערך ברירת המחדל
ללא
כללים מיוחדים
מודלים אנליטיים נתמכים רק בחיבורים ל-BigQuery ול-Snowflake.
|
הגדרה
בחיבורים ל-BigQuery ול-Snowflake, הפרמטר derived_analytic_model מגדיר מודל ניתוח בתוך מסד הנתונים (גרף BigQuery או תצוגה סמנטית ב-Snowflake) שמנוהל על ידי Looker.
בניגוד לטבלאות נגזרות, אובייקטים של מודלים אנליטיים שמנוהלים על ידי Looker לא שומרים נתונים במסד הנתונים, והם לא מתעדכנים באופן מצטבר. במקום זאת, הם מייצגים מודלים סמנטיים שמגדירים קשרים ומדדים ישירות במסד הנתונים.
Looker תומך בשני סוגים של מודלים אנליטיים נגזרים:
- מודלים אנליטיים נגזרים מבוססי-SQL: אתם מגדירים את המודל האנליטי באמצעות הצהרות של שפת הגדרת נתונים (DDL) ב-SQL. מערכת Looker יוצרת את המודל האנליטי בתוך מסד הנתונים על ידי הפעלת הצהרות ה-SQL שאתם מציינים.
- מודלים אנליטיים נגזרים שמבוססים על LookML: אתם מגדירים את המודל האנליטי על ידי הפניה לניתוח קיים ב-LookML. Looker מתרגם באופן אוטומטי את הטופולוגיה, הצירופים, המאפיינים והמדדים של הניתוח שלכם להצהרות DDL של מודל ניתוח מקורי של מסד הנתונים, ויוצר ומנהל את המודל במסד הנתונים.
מודלים אנליטיים נגזרים שמבוססים על SQL
במודל אנליטי נגזר שמבוסס על SQL, Looker יוצר את המודל האנליטי במסד הנתונים על ידי הפעלת ההצהרות המתאימות של שפת הגדרת נתונים (DDL) של SQL שצוינו בהגדרה של פרמטר LookML derived_analytic_model. התחביר של SQL שמוגדר בפרמטר derived_analytic_model צריך להיות נתמך על ידי מסד הנתונים.
כדי להגדיר מודל ניתוח מבוסס-SQL, משתמשים באחד מפרמטרי המשנה הבאים של הפרמטר derived_analytic_model:
בנוסף, אם מגדירים את תצוגת ניתוח הנתונים באמצעות תת-הפרמטר sql, אפשר להשתמש בתת-הפרמטר publish_as_db_analytic_model של הפרמטר derived_analytic_model כדי ליצור מודל ניתוחי יציב שאפשר לשלוח עליו שאילתות מחוץ ל-Looker.
אחרי שמגדירים את המודל האנליטי בפרמטר derived_analytic_model, אפשר להגדיר מאפיינים ומדדים של LookML שממופים למודל האנליטי. מידע נוסף זמין בקטע דוגמאות למודלים אנליטיים נגזרים מבוססי-SQL.
sql
משתמשים בפרמטר sql אם רוצים לספק את ה-SQL רק להגדרה של המודל האנליטי, ולתת ל-Looker לנהל את היצירה של המודל האנליטי. כשמשתמשים בתת-פרמטר sql, לא צריך לכלול הצהרה של CREATE או CREATE OR REPLACE, כי Looker ייצור אוטומטית את הצהרת ה-DDL כדי ליצור את המודל האנליטי בצד מסד הנתונים.
במאמר יצירת מודל ניתוח נתונים נגזר באמצעות sql מופיעה דוגמה לשימוש בפרמטר sql כדי ליצור מודל ניתוח נתונים במסד הנתונים.
sql_create
משתמשים בפרמטר sql_create כדי להגדיר הצהרת SQL מלאה ליצירת מודל ניתוח. כשמשתמשים בפרמטר sql_create, צריך לכלול הצהרת CREATE OR REPLACE (או הצהרת CREATE, אם הניב לא תומך ב-CREATE OR REPLACE).
כשמשתמשים בפרמטר המשנה sql_create, חשוב לשים לב לנקודות הבאות:
- בחיבורים ל-BigQuery, משתמשים בהצהרת
CREATE OR REPLACEכדי ליצור את המודל האנליטי. - משתמשים ב-
${SQL_TABLE_NAME}כדי להחליף את השם המחושב של המודל האנליטי שנוצר. כך אפשר לוודא שהצהרת ה-SQL תכלול בצורה נכונה את שם המודל האנליטי שציינתם בפרמטרviewשל LookML.
במאמר יצירת מודל ניתוח נתונים נגזר באמצעות sql_create מופיעה דוגמה לשימוש בפרמטר sql_create כדי ליצור מודל ניתוח נתונים במסד הנתונים.
create_process
משתמשים בפרמטר create_process כשצריך להגדיר כמה הצהרות SQL רציפות כדי להגדיר את המודל האנליטי. בפרמטר create_process, משתמשים בפרמטר המשנה sql_step כדי לציין את משפטי ה-SQL הבודדים. מסד הנתונים יבצע את ההצהרות של sql_step אחת בכל פעם, בסדר שציינתם. מערכת Looker מנפיקה את הצהרות ה-SQL בתת-פרמטרים sql_step כמו שהגדרתם אותם, ללא wrapper. כלומר, אתם צריכים לכלול שלב עם הצהרת CREATE OR REPLACE (או הצהרת CREATE, אם הדיאלקט שלכם לא תומך ב-CREATE OR REPLACE).
במאמר יצירת מודל ניתוח נתונים נגזר באמצעות create_process מופיעה דוגמה לשימוש בפרמטר create_process כדי ליצור מודל ניתוח נתונים במסד הנתונים.
publish_as_db_analytic_model
למודלים אנליטיים נגזרים שנוצרו באמצעות הפרמטר sql, אפשר להגדיר את המודל האנליטי הנגזר באמצעות publish_as_db_analytic_model: yes כדי להנחות את Looker ליצור מודל אנליטי יציב שאפשר להריץ עליו שאילתות מחוץ ל-Looker.
מודל הניתוח היציב יפורסם (ייווצר) במחזור הבא של הגנרטור מחדש של Looker אחרי שקוד ה-LookML של מודל הניתוח הנגזר ייפרסם בסביבת הייצור עם publish_as_db_analytic_model: yes.
כשמציינים publish_as_db_analytic_model: yes, הכלי ליצירה מחדש של Looker יוצר שני מודלים אנליטיים במסד הנתונים: אחד עם שם פנימי ואחד עם שם יציב. אחרת, הגנרטור יוצר רק מודל אנליטי אחד במסד הנתונים, באמצעות השם הפנימי.
בקטע גישה למודל האנליטי היציב מוסבר איך מקבלים את השם של המודל האנליטי היציב כדי שאפשר יהיה להשתמש בשם הזה לשליחת שאילתות למודל האנליטי היציב מחוץ ל-Looker.
יצירת מאפיינים ומדדים של LookML על סמך תצוגת ניתוח מבוססת-SQL
אחרי שמגדירים את המודל האנליטי, אפשר להגדיר באותו קובץ תצוגה מאפיינים ומדדים של LookML שמבוססים על המודל האנליטי.
במסמכי התיעוד של הניב שלכם מוסבר מה התחביר הנכון להגדרת המודל האנליטי ולהתייחסות לרכיבים במודל האנליטי. לדוגמה, כדי ליצור מאפיין LookML מישות של תרשים BigQuery, צריך להשתמש בקו תחתון כדי להפריד בין רכיבים כשמגדירים את ההיקף. לדוגמה, במקרה של BigQuery Graph, המאפיין הזה של LookML מבוסס על המאפיין location_id בטבלת הצמתים Stores:
dimension: location_id {
type: number
sql: Stores_location_id ;;
}
עם זאת, כדי ליצור מאפיין LookML שמבוסס על תצוגה סמנטית של Snowflake, צריך להשתמש בשם לא מוסמך של מדד או מאפיין.
דוגמאות למודלים אנליטיים נגזרים שמבוססים על SQL
בקטעים הבאים מופיעות דוגמאות ליצירת תצוגת ניתוח באמצעות פרמטרים משניים שונים של derived_analytic_model:
- יצירת מודל אנליטי נגזר באמצעות
sql - יצירת מודל אנליטי נגזר באמצעות
create_process - יצירת מודל אנליטי נגזר באמצעות
sql_create
יצירת מודל אנליטי נגזר באמצעות sql
בהמשך מופיע קובץ תצוגה מסוג LookML שמגדיר מודל ניתוח נתונים מבוסס-SQL למסד נתונים של BigQuery באמצעות תת-הפרמטר sql של derived_analytic_model. Looker ייצור את המודל האנליטי בתוך מסד הנתונים על ידי הפעלת פקודות SQL DDL שמופיעות בפרמטר sql.
בדוגמה הזו:
- תת-הפרמטר
sqlמכיל רק את ההגדרה של המודל האנליטי עצמו. אין הצהרה שלCREATE, כיsqlLooker מטפל באופן אוטומטי בפקודותCREATEשל המודל האנליטי. - המודל האנליטי מוגדר באמצעות
publish_as_db_analytic_model: yes, ולכן Looker ייצור מודל אנליטי יציב שאפשר להריץ עליו שאילתות מחוץ ל-Looker.
view: MyWarehouseOrdersView {
derived_analytic_model: {
publish_as_db_analytic_model: yes
# Defining the analytic model
sql:
NODE TABLES (
Customers
KEY(customer_id)
PROPERTIES(
country_code,
concat(first_name, ' ', last_name) AS name,
age,
MEASURE(AVG(age)) AS AvgAge
),
Orders
KEY(order_id)
PROPERTIES (
customer_id,
employee_id,
date,
discount,
MEASURE(AVG(discount)) AS AvgDiscount
)
EDGE TABLES (
-- Relationship: Orders -> Customers
looker_test.orders AS orders_to_users
KEY(id)
SOURCE KEY (order_id) REFERENCES orders (order_id)
DESTINATION KEY (customer_id) REFERENCES Customers (customer_id)
NO PROPERTIES
) ;;
}
# Mapping dimensions/measures to the dimensions/measures
# provided by the analytic model
dimension: customer_id {
type: number
sql: Customers_customer_id ;;
}
dimension: customer_age {
type: number
sql: Customers_age ;;
}
measure: orders_avg_discount {
type: number
sql: Orders_AvgDiscount ;;
}
}
יצירת מודל אנליטי נגזר באמצעות create_process
בהמשך מופיע קובץ תצוגה מסוג LookML שמגדיר מודל ניתוח נתונים מבוסס-SQL למסד נתונים של BigQuery באמצעות תת-הפרמטר create_process של derived_analytic_model. בדוגמה הזו, צריך להגדיר כמה הצהרות SQL עוקבות כדי להגדיר את המודל האנליטי. בשלב הראשון, המודל האנליטי נמחק אם הוא כבר קיים, ובשלב השני המודל האנליטי נוצר.
view: university_statistics {
derived_analytic_model: {
create_process: {
sql_step:
DROP PROPERTY GRAPH IF EXISTS ${SQL_TABLE_NAME} ;;
sql_step:
CREATE PROPERTY GRAPH ${SQL_TABLE_NAME}
NODE TABLES (
university.College
KEY(college_id)
PROPERTIES(college_id, college_name),
university.Department
KEY(dept_id)
PROPERTIES(dept_id, dept_name, college_id,
budget OPTIONS(description="Department budget in USD"),
MEASURE(SUM(budget)) AS total_budget),
university.Course
KEY(course_id)
PROPERTIES(
course_id,
course_name,
credits,
dept_id,
MEASURE(AVG(credits)) AS avg_credits,
MEASURE(SUM(credits)) AS total_credits,
MEASURE(COUNT(course_id)) AS course_count)
)
EDGE TABLES (
university.Department AS CollegeDept
SOURCE KEY (college_id) REFERENCES College (college_id)
DESTINATION KEY (dept_id) REFERENCES Department (dept_id),
university.Course AS DeptCourse
SOURCE KEY (dept_id) REFERENCES Department (dept_id)
DESTINATION KEY (course_id) REFERENCES Course (course_id)
);;
}
}
# Mapping dimensions/measures to the dimensions/measures
# provided by the analytic model
dimension: college_id {
type: number
sql: College_college_id ;;
}
dimension: course_name {
type: string
sql: Course_course_name ;;
}
...
}
יצירת מודל אנליטי נגזר באמצעות sql_create
בהמשך מופיע קובץ תצוגה מסוג LookML שמגדיר מודל ניתוח נתונים מבוסס-SQL למסד נתונים של BigQuery באמצעות תת-הפרמטר sql_create של derived_analytic_model. בדוגמה הזו, הפרמטר sql_create מגדיר את ההצהרה המלאה CREATE OR REPLACE שצריך להריץ כדי ליצור את המודל האנליטי בשלב אחד.
view: MyWarehouseOrdersView {
derived_analytic_model: {
sql_create:
CREATE OR REPLACE PROPERTY GRAPH ${SQL_TABLE_NAME}
NODE TABLES(
accounting.Loan AS Loan
KEY(loanId)
LABEL Loan PROPERTIES(
loanId,
loanAmount,
balance,
createTime,
interestRate,
accountId,
balance + 100 AS derived_balance,
CASE WHEN balance > 1000 THEN "High" ELSE "Low" END AS risk_level,
CONCAT("ID-", CAST(loanId AS STRING)) AS full_id,
DATE(2024, 1, 1) AS fixed_date,
MEASURE(AVG(interestRate)) AS avg_interest_rate
),
accounting.AccountView AS Account
KEY(accountId)
LABEL Account PROPERTIES(
accountId,
createTime,
isBlocked,
accountType,
amount,
ownerId,
MEASURE(MIN(createTime)) AS oldest_account_create_time,
MEASURE(MAX(createTime)) AS newest_account_create_time,
MEASURE(AVG(amount)) AS avg_account_amount,
MEASURE(SUM(amount)) AS total_account_amount,
MEASURE(COUNT(DISTINCT accountType)) AS account_type_count
),
accounting.PersonMV AS Person
KEY(personId)
LABEL Person PROPERTIES(
personId,
personName,
age,
age_tier,
MEASURE(AVG(age)) AS avg_age,
MEASURE(COUNT(DISTINCT age_tier)) AS age_tier_count
)
)
EDGE TABLES(
accounting.Loan AS Account_Repay_Loan
KEY(loanId)
SOURCE KEY(loanId) REFERENCES Loan(loanId)
DESTINATION KEY(accountId) REFERENCES Account(accountId)
LABEL Repay NO PROPERTIES,
accounting.Account AS Person_Own_Account
KEY(accountId)
SOURCE KEY(accountId) REFERENCES Account(accountId)
DESTINATION KEY(ownerId) REFERENCES Person(personId)
LABEL Own NO PROPERTIES
);;
}
# Mapping dimensions/measures to the dimensions/measures
# provided by the analytic model
dimension: loan_id {
type: number
sql: Loan_loanId ;;
}
dimension: account_ID {
type: number
sql: Account_accountID ;;
}
...
}
גישה למודל האנליטי היציב
אם יצרתם את המודל האנליטי הנגזר באמצעות פרמטר המשנה sql והוספתם את ההצהרה publish_as_db_analytic_model: yes מתחת לפרמטר derived_analytic_model, מערכת Looker תפרסם (תצור) את המודל האנליטי היציב במחזור הבא של Looker regenerator אחרי שקובץ ה-LookML של המודל האנליטי הנגזר ייפרסם בייצור עם publish_as_db_analytic_model: yes.
אחרי שמפרסמים את המודל האנליטי היציב, אפשר לשלוח אליו שאילתות ישירות באמצעות השם היציב שלו. יש שתי דרכים לקבל את השם היציב של מודל ניתוח:
חלון העזר עם פרטי PDT
אם אתם אדמינים או משתמשים עם הרשאה see_pdts, אתם יכולים לבצע את השלבים הבאים כדי להשתמש בדף Persistent Derived Tables בקטע Admin ב-Looker כדי לקבל את השם של מודל אנליטי יציב:
- לוחצים על סמל התפריט הראשי של Looker ובוחרים באפשרות אדמין, אם התפריט אדמין לא מוצג. (אם אתם נמצאים בקטע Explore או Develop בתפריט הראשי של Looker, יכול להיות שתצטרכו ללחוץ על החץ 'חזרה' כדי לראות את התפריט Admin).
- בתפריט Admin (אדמין), בוחרים באפשרות Persistent Derived Tables (טבלאות נגזרות קבועות).
- בדף Persistent Derived Tables (טבלאות נגזרות קבועות), מחפשים את השם של המודל האנליטי.
- לוחצים על תפריט שלוש הנקודות של המודל האנליטי ובוחרים באפשרות פרטי PDT.
- בתיבת הדו-שיח PDT Details, מחפשים את השדה Stable Name.
כדי לשלוח שאילתה ישירות למודל האנליטי היציב, מוסיפים את שם סכימת הבסיס לפני שם המודל. לדוגמה, אם שם סכימת בסיס ה-scratch הוא tmp, אפשר לשלוח שאילתה במודל האנליטי היציב באמצעות פקודה כמו:
SELECT * from tmp.PA_bq_analytic_model_sales_semantic_view
הכרטיסייה SQL בדף 'ניתוח נתונים'
אם אין לכם גישה לדף האדמין Persistent Derived Tables (טבלאות נגזרות קבועות), תוכלו לקבוע את השם היציב מהמידע שמופיע בכרטיסייה SQL בקטע Data (נתונים) של שאילתת ניתוח בכלי הניתוחים. כדי לקבל את השם היציב של מודל ניתוח:
פותחים את התכונה 'ניתוח' בתצוגה של המודל האנליטי.
בניתוח, בוחרים מאפיינים או מדדים מבוחר השדות.
לוחצים על הכרטיסייה SQL בקטע נתונים.
בכרטיסייה SQL, מאתרים אחת מהצהרות ה-SQL הבאות:
- ל-BigQuery Graph:
CREATE PROPERTY GRAPHSELECT ... FROM GRAPH_EXPAND('PROPERTY_GRAPH_NAME')
- לתצוגה סמנטית של Snowflake:
CREATE SEMANTIC VIEWSELECT ... FROM SEMANTIC_VIEW_NAME
- ל-BigQuery Graph:
השם היציב הוא תצוגה שנוצרת ב-Looker בסכימת ה-scratch, והיא מצביעה על הטבלה המוסתרת בפועל שמוצגת בכרטיסיית ה-SQL. כדי לקבל את השם הקבוע של התצוגה האנליטית, ממלאים את הפרטים הבאים מהצהרת ה-SQL:
SCRATCH_SCHEMA_NAME.CONNECTION_REGISTRATION_KEY_MODEL_NAME_VIEW_NAME- SCRATCH_SCHEMA_NAME: השם של סכימת בסיס הוא תחילת המחרוזת אחרי ההצהרה
CREATEאוSELECT, לפני '.' - CONNECTION_REGISTRATION_KEY: מפתח רישום החיבור הוא מחרוזת של שני תווים. בהתאם לדיאלקט של מסד הנתונים, הוא יופיע אחרי סימן הדולר או אחרי הקו התחתון הראשון בשם הטבלה בהצהרת
CREATEאוSELECT. - MODEL_NAME: השם של מודל LookML.
- VIEW_NAME: השם של התצוגה שבה מוגדר המודל האנליטי.
- SCRATCH_SCHEMA_NAME: השם של סכימת בסיס הוא תחילת המחרוזת אחרי ההצהרה
לדוגמה, הנה הטקסט מהכרטיסייה SQL של שאילתת ניתוח לחיבור BigQuery. המודל האנליטי מוגדר בתצוגה שנקראת sales_analytic_model, והשם של מודל LookML הוא thelook. במקרה הזה, Looker כבר יצר את המודל האנליטי, ולכן אין הצהרה של CREATE. אבל ההצהרה SELECT ... FROM GRAPH_EXPAND מכילה את פרטי שם הטבלה:
-- use existing sales_analytic_model in `looker-test-db.looker_scratch.LG_J7LSZ1778710001008_sales_analytic_model`
SELECT
sales_analytic_model.orders_id AS sales_analytic_model_orders_id,
AGG(sales_analytic_model.orders_count_orders ) AS sales_analytic_model_count_orders
FROM GRAPH_EXPAND("looker-test-db.looker_scratch.LG_J7LSZ1778710001008_sales_analytic_model") AS sales_analytic_model
GROUP BY
1
ORDER BY
2 DESC
LIMIT 500
אלה הערכים שצריך להשתמש בהם כדי לגזור את השם היציב של המודל האנליטי:
- הערך של SCRATCH_SCHEMA_NAME הוא
looker-test-db.looker_scratch - הערך של CONNECTION_REGISTRATION_KEY הוא
J7 - הערך של MODEL_NAME הוא
thelook - הערך של VIEW_NAME הוא
sales_analytic_model
לכן, השם היציב של המודל האנליטי הוא:
looker-test-db.looker_scratch.J7_thelook_sales_analytic_model
אחרי שמקבלים את השם היציב של המודל האנליטי, אפשר לשלוח שאילתה ישירות למודל האנליטי.
מודלים אנליטיים נגזרים שמבוססים על LookML
מודלים אנליטיים נגזרים שמבוססים על LookML מאפשרים להגדיר מודל אנליטי בתוך מסד נתונים (כמו BigQuery Graph או Snowflake semantic view) ישירות מתוך LookML Explore קיים, בלי צורך לכתוב הצהרות SQL DDL ספציפיות למסד הנתונים.
כדי להגדיר מודל ניתוח נגזר שמבוסס על LookML, משתמשים בפרמטרים הבאים:
model_source-
publish_as_db_analytic_model(הפרמטר הזה חל על מודלים אנליטיים נגזרים שמבוססים על LookML ועל SQL)
כדי ליצור מודל אנליטי נגזר שמבוסס על LookML, משתמשים בפרמטר model_source כדי להפנות אל מקור Explore שמגדיר את טופולוגיית הנתונים. לאחר מכן, Looker מתרגם באופן אוטומטי את התצוגות, ההצטרפויות, המאפיינים והמדדים של LookML להצהרות DDL של מודל אנליטי מקורי של מסד הנתונים:
- צמתים / טבלאות: כל תצוגת LookML במקור Explore הופכת לטבלת צומת ב-BigQuery Graph או לטבלה בתצוגה סמנטית של Snowflake.
- קצוות / קשרים: כל הצטרפות שמוגדרת באמצעות הפרמטר
foreign_keyבמקור Explore הופכת לטבלת קצוות ב-BigQuery Graph או לקשר בתצוגה סמנטית של Snowflake. - מאפיינים / מאפיינים ומדדים: מאפייני LookML ומדדים מתצוגות המקור הופכים למאפייני צומת ב-BigQuery Graph או למאפיינים ומדדים בתצוגה סמנטית של Snowflake.
כשמריצים שאילתה על תצוגת ניתוח נתונים נגזרת שמבוססת על LookML, Looker יוצרת ומריצה את ה-DDL של מסד הנתונים כדי ליצור את מודל ניתוח הנתונים בסכימת ה-scratch של מסד הנתונים, ואז מריצה את השאילתה על מודל ניתוח הנתונים שנוצר. אחרי שיוצרים את המודל האנליטי, Looker שומר אותו כך ששאילתות עתידיות יפנו ישירות למודל הקיים עד שמשנים את הגדרת LookML שלו.
model_source
הפרמטר model_source מציין את השם של כלי הניתוח LookML Explore שמשמש כמקור לטופולוגיה וליחסים של המודל האנליטי.
view: sales_analytic_model {
derived_analytic_model: {
model_source: order_items {
fields: [order_items.id, orders.id, orders.status, users.name]
}
}
}
לתצוגות שנכללות ב'ניתוח נתונים' של המקור צריך להיות מפתח ראשי שמוגדר באמצעות primary_key: yes במאפיין המפתח הראשי שלהן.
model_source מקבלת את הפרמטרים המשניים הבאים:
| פרמטר | תיאור |
|---|---|
fields |
זה שינוי אופציונלי. מציינים רשימת היתרים או רשימת חסימה של שדות ממקור Explore לייצוא למודל הניתוח. |
join (או joins) |
זה שינוי אופציונלי. הגדרה או שיפור של הצטרפויות ממקור Explore באופן ספציפי למודל הניתוח. |
fields
כברירת מחדל, כל השדות הזמינים מהתצוגות ב'ניתוח' של המקור מיוצאים למודל הניתוח (יכול להיות שחלק מהשדות מ'ניתוח' של המקור לא יהיו זמינים אם 'ניתוח' של המקור עצמו מוגדר עם פרמטר fields). אפשר להשתמש בתת-פרמטר fields בתוך model_source כדי לציין קבוצת משנה של שדות לייצוא, או כדי להחריג שדות ספציפיים באמצעות תחביר רגיל של רשימת LookML:
view: sales_analytic_model {
derived_analytic_model: {
model_source: order_items {
fields: [
order_items.id,
order_items.price,
orders.id,
orders.status,
users.name
]
}
}
}
join
הפרמטר join בתוך model_source מאפשר לכם להוסיף שיפורים לצירופים שכבר צוינו במקור של הניתוח ב-Explore. הוספת שיפורים מאפשרת לכם לבצע התאמות שמוגבלות למודל הניתוח בלבד, בלי לשנות את הגדרת הניתוח המקורי.
בפרמטר join בקטע model_source, מציינים את השם של הצטרפות ממקור Explore עם מחוון הזיקוק +. לדוגמה, join: +view_name. לאחר מכן, משתמשים בפרמטרים המשניים join כדי לשפר את הצירוף ממקור הניתוח לפי הצורך במודל הניתוח. דוגמה
הפרמטר join בתוך model_source מקבל רק שיפורים של צירוף. אי אפשר להוסיף הצטרפות חדשה למודל הניתוח שלא קיימת כבר במקור ב-Explore.
הפרמטר join בתוך model_source תומך בפרמטרים המשניים הבאים:
| תת-פרמטר | תיאור |
|---|---|
foreign_key |
מציין את עמודת המפתח הזר או את המאפיין שמגדירים את הקשר למודל הניתוח. דוגמה עם הפרמטר foreign_key מופיעה בשלב 1. |
relationship |
הגדרה של עוצמת (cardinality) הצירוף (many_to_one, one_to_one, one_to_many או many_to_many). |
הגדרה של מודל ניתוח נגזר שמבוסס על LookML
כדי להגדיר מודל אנליטי נגזר שמבוסס על LookML:
- הגדרת תצוגות הבסיס ו-Explore של המקור באמצעות צירופים של
foreign_key - יצירת תצוגת מודל אנליטי נגזר
- הגדרת מאפיינים ומדדים של LookML בתצוגת מודל הניתוח
- יצירת ניתוח בפריסה גמישה לתצוגת המודל האנליטי
- הפעלת שאילתה במודל הניתוח ב-Looker
שלב 1: מגדירים את תצוגות הבסיס ואת מקור ה-Explore באמצעות foreign_key הצטרפויות
קודם כול, מוודאים שהתצוגות הבסיסיות (כמו order_items, orders ו-users) מוגדרות עם מפתחות ראשיים.
לאחר מכן, מגדירים Explore בקובץ מודל LookML שמציין את קשרי הגומלין בין התצוגות. כדי ליצור קשרים במודל ניתוח בתוך מסד נתונים, חובה להשתמש בפרמטר foreign_key בכל איחוד ב-Explore של המקור:
explore: order_items {
fields: [ALL_FIELDS*]
join: orders {
relationship: many_to_one
foreign_key: order_id
}
join: users {
relationship: many_to_one
foreign_key: orders.user_id
}
}
שלב 2: יצירת תצוגת מודל אנליטי נגזר
יוצרים קובץ תצוגה חדש (לדוגמה, sales_analytic_model.view.lkml) ומוסיפים בלוק derived_analytic_model עם הפרמטר model_source שמפנה אל מקור ה-Explore:
view: sales_analytic_model {
derived_analytic_model: {
model_source: order_items {
# Optional: Use fields to restrict the properties exported to the analytic model
# fields: [order_items.id, orders.id, orders.status, users.name]
# Optional: Use join refinements to refine the relationships from the source Explore
# join: +orders {
# foreign_key: order_id
# }
# join: +users {
# foreign_key: orders.user_id
# }
}
}
...
שלב 3: הגדרת מאפיינים ומדדים של LookML בתצוגת מודל הניתוח
באותו קובץ תצוגה של מודל ניתוח, מגדירים את המאפיינים, קבוצות המאפיינים והמדדים שממופים למאפיינים במודל הניתוח שנוצר, כדי שאפשר יהיה להריץ עליהם שאילתות ב-Looker Explores.
כדי להפנות לשדות מהמודל הבסיסי, משתמשים ב-${TABLE}.<view_name>_<field_name> (או ב-${TABLE}.<property_name>):
# Dimensions
dimension: order_items_id {
type: number
sql: ${TABLE}.order_items_id ;;
}
dimension: orders_id {
type: number
sql: ${TABLE}.orders_id ;;
}
dimension: orders_status {
type: string
sql: ${TABLE}.orders_status ;;
}
dimension_group: orders_created {
type: time
timeframes: [raw, time, date, week, month, quarter, year]
sql: ${TABLE}.orders_created_at ;;
}
dimension: users_name {
type: string
sql: ${TABLE}.users_name ;;
}
dimension_group: users_created {
type: time
timeframes: [raw, time, date, week, month, quarter, year]
sql: ${TABLE}.users_created_at ;;
}
# Measures
measure: count_users {
type: number
sql: ${TABLE}.users_count_users ;;
}
measure: count_orders {
type: number
sql: ${TABLE}.orders_count_orders ;;
}
measure: total_order_amount {
type: number
sql: ${TABLE}.orders_total_order_amount ;;
}
measure: total_order_item_amount {
type: number
sql: ${TABLE}.order_items_total_order_item_amount ;;
}
}
שלב 4: יצירת חקירה לתצוגת מודל הניתוח
בקובץ המודל (למשל sales.model.lkml), יוצרים ניתוח נתונים בתצוגת המודל האנליטי באמצעות שם התצוגה:
explore: sales_analytic_model {}
ל-Explore שמבוסס על תצוגת מודל אנליטי לא יכולים להיות צירופים, כי הקשרים מוגדרים באופן פנימי בתוך המודל האנליטי עצמו.
שלב 5: שולחים שאילתה למודל הניתוח ב-Looker
פותחים את הכלי החדש 'ניתוח' (לדוגמה, מודל ניתוח מכירות) ב-Looker, בוחרים מאפיינים ומדדים ומריצים את השאילתה.
כדי לבדוק את ה-SQL שנוצר, פועלים לפי השלבים הבאים:
- לוחצים על הכרטיסייה SQL בחלונית נתונים.
- בכרטיסייה SQL אפשר לראות את הצהרת ה-DDL הספציפית למסד הנתונים שנוצר ב-Looker (למשל
CREATE PROPERTY GRAPH ...עםNODE TABLESו-EDGE TABLESעבור BigQuery Graph) ואת השאילתה שמופעלת מול המודל האנליטי (למשלFROM GRAPH_EXPAND(...) AS sales_analytic_model). - כשהשאילתה מופעלת, Looker שומר את המודל האנליטי בסכמת ה-scratch של מסד הנתונים. בשאילתות הבאות נעשה שימוש חוזר במודל שנשמר, וכך נמנעת הרצה מחדש של DDL עד שהגדרת LookML משתנה.
שיקולים לגבי מודלים אנליטיים נגזרים שמבוססים על LookML
כשמגדירים מודלים אנליטיים נגזרים שמבוססים על LookML, חשוב לזכור את השיקולים הבאים:
- מפתחות ראשיים: לכל תצוגה ב'ניתוח נתונים' של המקור חייב להיות מאפיין של מפתח ראשי שמוגדר באמצעות
primary_key: yes. - טופולוגיה לא מחזורית: היחסים שמוגדרים על ידי הצטרפות ב-Explore של מקור הנתונים חייבים ליצור מבנה עץ לא מחזורי. אין תמיכה ביחסים מחזוריים.
- דרישות לגבי תצוגת המקור: תצוגות שכלולות בניתוח המקור חייבות להיות טבלאות מסד נתונים רגילות או טבלאות נגזרות קבועות (PDT) עם שם יציב. אי אפשר להשתמש כמקורות בטבלאות ובאמצעי תצוגה נגזרים זמניים (לא קבועים) שמבוססים על מודלים אנליטיים אחרים.
- פרמטרים של ניתוח: פרמטרים של סינון דינמי בזמן ריצה (
sql_always_where,always_filter,access_filter) ו-sql_always_joinבניתוח המקור מתעלמים מהם במהלך יצירת המודל האנליטי.
דברים שכדאי לקחת בחשבון
כשמשתמשים במודלים אנליטיים בתוך מסד נתונים, חשוב לזכור את הנקודות הבאות:
סוגי נתונים: יש תמיכה רק בסוגי הנתונים הבאים של מאפיינים ומדדים במודלים אנליטיים:
- נתמך עבור מאפיינים ומדדים:
stringnumberdateyesno
- המאפיין הזה נתמך רק למימדים:
timedate_time
- נתמך עבור מאפיינים ומדדים:
מדדים:
- צריך להגדיר מראש מדדים בסיסיים: צריך להגדיר מראש מדדים בסיסיים במודל הניתוח של מסד הנתונים הבסיסי. Looker לא יכול להגדיר מדד בסיסי חדש על ידי ביצוע צבירה (כמו
type: sumאוtype: count) על מאפיין ממודל ניתוח. יש תמיכה במדדים שמבוססים על מדדים אחרים: אפשר להשתמש בפרמטר
sqlשל מדד LookML כדי לבצע חישובים לא מצטברים שמשתמשים במדדי בסיס מוגדרים מראש מהמודל האנליטי. כשיוצרים מדד שמבוסס על מדדים אחרים, אי אפשר להגדיר את המדד החדש כסוג מדד מצטבר כמוsumאוcount. צריך להגדיר את המדד החדש כמדד מסוג לא מצטבר, כמוstring,number,dateאוyesno. דוגמה:measure: average_order_amount { type: number sql: ROUND(${total_order_amount} / NULLIF(${count_orders}, 0), 2) ;; }
- צריך להגדיר מראש מדדים בסיסיים: צריך להגדיר מראש מדדים בסיסיים במודל הניתוח של מסד הנתונים הבסיסי. Looker לא יכול להגדיר מדד בסיסי חדש על ידי ביצוע צבירה (כמו
צירופים: ניתוח שהתצוגה הבסיסית שלו מבוססת על מודל אנליטי לא יכול לכלול צירופים. באופן דומה, אי אפשר לצרף תצוגה שמבוססת על מודל ניתוח לניתוח ב'הצגה כניתוח' שמבוסס על תצוגת בסיס רגילה של LookML.
צירופים מרומזים: תכונות שמסתמכות על צירופים מרומזים לא נתמכות במודלים אנליטיים. דוגמאות לתכונות שמסתמכות על הצטרפות מרומזת הן יומנים מותאמים אישית ושדות שמוגדרים באמצעות
type: location,type: distanceאוtype: zipcode.התכונות הבאות לא נתמכות במודלים אנליטיים: