Usage
view: my_view {
derived_table: {
publish_as_db_view: yes
...
}
}
|
היררכיה
publish_as_db_view- או - publish_as_db_view |
ערך ברירת המחדל
no
מקבל
ערך בוליאני (yes או no)
כללים מיוחדים
|
הגדרה
הפרמטר publish_as_db_view מאפשר לסמן טבלאות לשימוש חוזר (כולל טבלאות נגזרות מתמידות וטבלאות מסכמות) כדי לשלוח אליהן שאילתות מחוץ ל-Looker. בטבלאות קבועות שבהן הערך של publish_as_db_view מוגדר כ-yes, Looker יוצר תצוגת מסד נתונים יציבה במסד הנתונים של הטבלה הקבועה. תצוגת מסד הנתונים היציבה נוצרת במסד הנתונים עצמו, כך שאפשר לשלוח אליה שאילתות מחוץ ל-Looker. המושג תצוגת מסד נתונים יציבה שונה מתצוגת LookML, כי תצוגות LookML קיימות במכונת Looker ולא במסד הנתונים עצמו.
תצוגת מסד הנתונים היציבה תפורסם (תיווצר) במחזור הבא של Looker regenerator אחרי ש-LookML של הטבלה הקבועה ייפרס בסביבת הייצור עם publish_as_db_view: yes.
דוגמאות
יצירת תצוגה יציבה של מסד נתונים ל-PDT
יוצרים את ה-e_flights_pdt PDT שעבורו נוצר תצוגת מסד נתונים יציבה במסד הנתונים:
view: e_flights_pdt {
derived_table: {
publish_as_db_view: yes
datagroup_trigger: e_flights_default_datagroup
explore_source: ontime {
timezone: "America/Los_Angeles"
column: flight_num {}
column: carrier {}
column: arr_date {}
}
}
dimension: flight_num {}
dimension: carrier {}
dimension: arr_date {
type: date
}
}
תצוגת מסד הנתונים היציבה של e_flights_pdt תפורסם במחזור הבא של Looker regenerator אחרי ש-LookML של ה-PDT ייפרס בסביבת הייצור. אחרי ש-Looker יוצר את ה-PDT, אפשר להריץ שאילתות על תצוגת מסד הנתונים היציבה במסד הנתונים.
יצירת תצוגה יציבה של מסד נתונים לטבלה מסכמת
יוצרים את טבלת הצבירה weekly_orders שעבורה נוצר תצוגת מסד נתונים יציבה במסד הנתונים:
explore: orders {
aggregate_table: weekly_orders {
materialization: {
sql_trigger_value: SELECT CURDATE() ;;
publish_as_db_view: yes
}
query: {
dimensions: [orders.status, orders.created_week]
measures: [orders.count]
}
}
}
תצוגת מסד הנתונים היציבה של הטבלה המסכמת weekly_orders תפורסם במחזור הבא של Looker regenerator אחרי שקוד ה-LookML של הטבלה המסכמת ייפרס בסביבת הייצור. אחרי ש-Looker יוצר את טבלת הצבירה, אפשר להריץ שאילתות על תצוגת מסד הנתונים היציבה במסד הנתונים.
גישה לתצוגת מסד הנתונים היציבה
אחרי שמפרסמים את תצוגת מסד הנתונים היציבה של טבלה לשימוש חוזר, אפשר להריץ עליה שאילתה ישירות אחרי שמקבלים את השם היציב. יש שתי דרכים לקבל את שם התצוגה היציבה של טבלה שנשמרה:
חלון הפרטים של ה-PDT
אם אתם אדמינים או משתמשים עם ההרשאה see_pdts, אתם יכולים להשתמש בדף Persistent Derived Tables בקטע Admin ב-Looker כדי לקבל את השם של תצוגת מסד הנתונים היציבה של טבלה מתמידה:
- אם התפריט Admin לא מוצג, לוחצים על סמל התפריט הראשי של Looker ובוחרים באפשרות Admin. (אם אתם נמצאים בקטע Explore או Develop בתפריט הראשי של Looker, יכול להיות שתצטרכו ללחוץ על החץ חזרה כדי לראות את התפריט Admin).
- בתפריט Admin, בוחרים באפשרות Persistent Derived Tables.
- בדף Persistent Derived Tables (טבלאות נגזרות מתמידות), מחפשים את השם של הטבלה המתמידה.
- לוחצים על תפריט שלוש הנקודות של הטבלה הקבועה ובוחרים באפשרות פרטי PDT.
- במודאל PDT Details, מחפשים את השדה Stable Name.
כדי לשלוח שאילתה ישירות לטבלת התצוגה היציבה, מוסיפים את שם סכימת הבסיס לפני שם הטבלה. לדוגמה, אם השם של סכימת הבסיס הוא tmp, אפשר לשלוח שאילתה לתצוגת מסד הנתונים היציבה באמצעות פקודה כזו:
SELECT * from tmp.CL_e_redlook_e_redlook_inc_pdt
הכרטיסייה SQL ב-Explore
אם אין לכם גישה לדף הניהול Persistent Derived Tables, אתם יכולים להשתמש במידע שמופיע בכרטיסייה SQL של Explore כדי לקבוע את שם התצוגה היציב של טבלה מתמידה. השם של התצוגה היציבה מופיע בפורמט הבא:
SCRATCH_SCHEMA_NAME.CONNECTION_REGISTRATION_KEY_MODEL_NAME_VIEW_NAME
לדוגמה, אם יש לכם טבלה קבועה שנמצאת במודל בשם faa ותצוגה בשם e_flights_pdt, אתם צריכים רק את שם סכימת ה-scratch ואת מפתח רישום החיבור. אפשר למצוא את שניהם בכרטיסייה SQL בקטע Data של שאילתה בטבלה שנשמרה. במשפט CREATE TABLE או FROM בכרטיסייה SQL, אפשר למצוא את המידע באופן הבא:
- מפתח הרישום של החיבור הוא בן שני תווים. בהתאם לדיאלקט של מסד הנתונים, הוא יופיע אחרי סימן הדולר או אחרי הקו התחתון הראשון בשם הטבלה של הטבלה שנשמרה.
- השם של סכימת הבסיס הוא תחילת המחרוזת אחרי
CREATE TABLEאוFROM, לפני "."
בכל דוגמאות השאילתות הבאות, מפתח רישום החיבור הוא LB ושם סכימת הבסיס הוא tmp.
הנה דוגמה לשאילתת SQL שנוצרה ב-Looker עם הצהרת CREATE TABLE עבור דיאלקט שמשתמש בסימן דולר לפני מפתח רישום החיבור. שם התצוגה הוא e_flights_pdt, ושם הטבלה הנגזרת שנוצר הוא tmp.LR$LBC5Q1576702903774_e_flights_pdt.
generate derived table e_flights_pdt
Building e_flight::e_flights_pdt in dev mode on instance b6ff28049851f1954156526c66ca9912
CREATE TABLE tmp.LR$LBC5Q1576702903774_e_flights_pdt (INDEX(flight_num)) SELECT
ontime.flight_num AS `flight_num`
ontime.carrier AS `carrier,
(TIMESTAMP(DATE (CONVERT_TZ(ontime.arr_time, 'UTC', 'America/Los_Angeles')))) AS
`arr_date``
FROM `flightstats`.`ontime` AS `ontime`
GROUP BY
1,
2,
3
-- finished e_flights_pdt => tmp.LR$LBC5Q1576702903774_e_flights_pdt
SELECT
e_flights_pdt.flight_num AS `e_flights_pdt.flight_num`,
e_flights_pdt.carrier AS `e_flights_pdt.carrier`
FROM tmp.LR$LBC5Q1576702903774_e_flights_pdt AS e_flights_pdt
GROUP BY
1,
2
ORDER BY
e_flights_pdt.flight_num
LIMIT 5
הנה דוגמה לשאילתת SQL שנוצרה על ידי Looker עם הצהרת FROM עבור דיאלקט שמשתמש בקו תחתון לפני מפתח רישום החיבור. שם התצוגה הוא e_flights_pdt, ושם הטבלה הנגזרת שנוצר הוא tmp.LR_LBFIM1580333699953_e_flights_pdt.
--use existing e flights pdt in tmp.LR_LBFIM1580333699953_e_flights_pdt
SELECT
e_flights_pdt.id AS `e_flights_pdt.id`,
DATE(e_flights_pdt.faa_event_date) AS `e_flights_pdt. faa_event_date`
FROM tmp.LR_LBFIM1580333699953_e_flights_pdt AS e_flights_pdt
GROUP BY 1,2
ORDER BY DATE(e_flights_pdt.faa_event_date) DESC
LIMIT 5
שוב, התצוגה היציבה של מסד הנתונים היא בפורמט הבא:
SCRATCH_SCHEMA_NAME.CONNECTION_REGISTRATION_KEY_MODEL_NAME_VIEW_NAME
אלה כל הערכים:
- הערך של SCRATCH_SCHEMA_NAME הוא
tmp - הערך של CONNECTION_REGISTRATION_KEY הוא
LB - הערך של MODEL_NAME הוא
faa - הערך של VIEW_NAME הוא
e_flights_pdt
זהו שם התצוגה היציב של מסד הנתונים של הטבלה שנשמרה:
tmp.LB_faa_e_flights_pdt
אחרי שמקבלים את השם של תצוגת מסד הנתונים היציבה, אפשר להריץ עליה שאילתות ישירות. לדוגמה:
SELECT * from tmp.LB_faa_e_flights_pdt
דברים שכדאי לקחת בחשבון
בחלק מהניבים נדרש תחביר נוסף
אם מפתח הרישום של החיבור מתחיל במספר, בחלק מהניבים נדרשים מירכאות כפולות, גרשים הפוכים, סוגריים מרובעים או תחביר דומה סביב החלק השני של השם של תצוגת מסד הנתונים היציבה. לדוגמה, ב-Amazon Redshift נדרשים מרכאות כפולות. לכן, אם מפתח רישום החיבור מתחיל במספר, זה הפורמט:
[scratch schema name]."[connection registration key]_[model_name]_[view_name]"
לדוגמה, אם מפתח הרישום של החיבור הוא 84, צריך להוסיף מירכאות סביב החלק השני של שם הטבלה היציבה, אחרי הנקודה. לכן השאילתות למסד הנתונים ייראו בערך כך:
SELECT * from tmp."84_faa_e_flights_pdt"
כדי לקבל מידע על התחביר הספציפי שנדרש, עיינו במסמכי התיעוד של הניב שלכם.
לחיבור למסד הנתונים צריכות להיות הרשאות CREATE VIEW
כדי ליצור תצוגה במסד הנתונים, לחשבון שבו Looker משתמש כדי להתחבר למסד הנתונים צריכות להיות הרשאות CREATE VIEW לסכימה הזמנית של מסד הנתונים.
שם המשתמש, הסיסמה והסכימה הזמנית של מסד הנתונים מוגדרים כשמקשרים את Looker למסד הנתונים.
אתם יכולים לבדוק את החיבור כדי לראות אם שמות תצוגה יציבים נתמכים בחיבור שלכם. אם הדיאלקט תומך בשמות יציבים של תצוגות ואם הופעלו טבלאות PDT בחיבור, Looker יבדוק את החיבור כדי לראות אם הוא יאפשר תצוגות יציבות:
- אם החיבור מאפשר צפייה יציבה, בדיקת החיבור תחזיר תוצאה כמו
Can use stable views in temp schema "docsexamples_scratch" in database "flightstats". - אם החיבור לא מאפשר צפיות יציבות, בדיקת החיבור תחזיר תוצאה כמו
Cannot use stable views in temp schema "docsexamples" in database "flightstats", יחד עם פרטים נוספים כמוCREATE VIEW command denied to user 'docsexamples'.
תמיכה בניבים בתצוגות יציבות של מסדי נתונים
היכולת ליצור תצוגת מסד נתונים יציבה של טבלה לשימוש חוזר תלויה בניב של מסד הנתונים שבו משתמש החיבור שלכם ל-Looker. בגרסה האחרונה של Looker, הדיאלקטים הבאים תומכים בתצוגת מסד נתונים יציבה של טבלה מתמשכת:
| ניב | נתמך? |
|---|---|
| Actian Avalanche | |
| Amazon Athena | |
| Amazon Aurora MySQL | |
| Amazon Redshift | |
| Amazon Redshift 2.1+ | |
| Amazon Redshift Serverless 2.1+ | |
| Apache Druid | |
| Apache Druid 0.13.x - 0.17.x | |
| Apache Druid 0.18+ | |
| Apache Hive 2.3+ | |
| Apache Hive 3.1.2+ | |
| Apache Spark 3+ | |
| ClickHouse | |
| ClickHouse 26+ | |
| Cloudera Impala 3.1+ | |
| Cloudera Impala 3.1+ with Native Driver | |
| Cloudera Impala with Native Driver | |
| DataVirtuality | |
| Databricks | |
| Denodo 7 | |
| Denodo 8 & 9 | |
| Dremio | |
| Dremio 11+ | |
| Dremio 26+ with Arrow Flight SQL | |
| Exasol | |
| Google BigQuery Legacy SQL | |
| Google BigQuery Standard SQL | |
| Google Cloud AlloyDB for PostgreSQL | |
| Google Cloud PostgreSQL | |
| Google Cloud SQL | |
| Google Spanner | |
| Greenplum | |
| HyperSQL | |
| IBM Netezza | |
| MariaDB | |
| Microsoft Azure PostgreSQL | |
| Microsoft Azure SQL Database | |
| Microsoft Azure Synapse Analytics | |
| Microsoft SQL Server 2008+ | |
| Microsoft SQL Server 2012+ | |
| Microsoft SQL Server 2016 | |
| Microsoft SQL Server 2017+ | |
| MongoBI | |
| MongoSQL | |
| MySQL | |
| MySQL 8.0.12+ | |
| Oracle | |
| Oracle ADWC | |
| PostgreSQL 9.5+ | |
| PostgreSQL pre-9.5 | |
| PrestoDB | |
| PrestoSQL | |
| SAP HANA | |
| SAP HANA 2+ | |
| SingleStore | |
| SingleStore 7+ | |
| Snowflake | |
| Teradata | |
| Trino | |
| Vector | |
| Vertica |