publish_as_db_view

Usage

view: my_view {
  derived_table: {
    publish_as_db_view: yes
    ...
  }
}
היררכיה
publish_as_db_view

- או -

publish_as_db_view
ערך ברירת המחדל
no

אישור
ערך בוליאני (yes או no)

כללים מיוחדים
  • תצוגת מסד הנתונים היציבה מתפרסמת (נוצרת) במחזור הבא של הגנרטור מחדש של Looker אחרי שקוד ה-LookML של הטבלה המתמידה נפרס בסביבת הייצור באמצעות publish_as_db_view: yes
  • תצוגות יציבות של מסדי נתונים נתמכות רק בטבלאות קבועות שמשתמשות ב-datagroup או בsql_trigger_value אסטרטגיות של קביעות. טבלאות קבועות שמשתמשות ב-persist_for לא נתמכות.
  • תצוגות מסד נתונים יציבות נתמכות רק בחיבורים למסד נתונים עם הרשאות CREATE VIEW לסכימה הזמנית.

הגדרה

הפרמטר publish_as_db_view מאפשר לסמן טבלאות שנשמרות (שכוללות גם טבלאות נגזרות שנשמרות וגם טבלאות מצטברות) כדי להריץ עליהן שאילתות מחוץ ל-Looker. עבור טבלאות שנשמרות עם הערך yes של הפרמטר publish_as_db_view,‏ Looker יוצר תצוגת מסד נתונים יציבה במסד הנתונים של הטבלה שנשמרת. תצוגת מסד הנתונים היציבה נוצרת במסד הנתונים עצמו, כך שאפשר להריץ עליה שאילתות מחוץ ל-Looker. המושג תצוגת מסד נתונים יציבה שונה מתצוגת LookML, כי תצוגות LookML קיימות במופע Looker ולא במסד הנתונים עצמו.

תצוגת מסד הנתונים היציבה תפורסם (תיווצר) במחזור הבא של הכלי ליצירה מחדש של Looker אחרי שקובץ ה-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 אחרי ש-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 כדי לקבל את שם התצוגה היציב של מסד הנתונים עבור טבלה שנשמרה:

  1. לוחצים על סמל התפריט הראשי של Looker‏ ובוחרים באפשרות אדמין, אם התפריט אדמין לא מוצג כבר. (אם אתם נמצאים בקטע ניתוח נתונים או פיתוח בתפריט הראשי של Looker, יכול להיות שתצטרכו ללחוץ על חץ החזרה כדי לראות את התפריט אדמין).
  2. בתפריט Admin (ניהול), בוחרים באפשרות Persistent Derived Tables (טבלאות נגזרות קבועות).
  3. בדף Persistent Derived Tables (טבלאות נגזרות מתמידות), מחפשים את השם של הטבלה המתמידה.
  4. לוחצים על תפריט שלוש הנקודות של הטבלה הקבועה ובוחרים באפשרות פרטי PDT.
  5. בתיבת הדו-שיח PDT Details, מחפשים את השדה Stable Name.

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


SELECT * from tmp.CL_e_redlook_e_redlook_inc_pdt

הכרטיסייה SQL בדף 'אפשרויות נוספות'

אם אין לכם גישה לדף האדמין Persistent Derived Tables, תוכלו להשתמש במידע שמופיע בכרטיסייה SQL של Explore כדי לקבוע את שם התצוגה היציב של טבלה שנשמרה. השם של התצוגה היציבה מופיע בפורמט הבא:

[scratch schema name].[connection registration key]_[model_name]_[view_name]

לדוגמה, אם יש לכם טבלה קבועה שנמצאת במודל בשם faa ותצוגה בשם e_flights_pdt, אתם צריכים רק את שם סכימת הבסיס ואת מפתח רישום החיבור. את שניהם אפשר למצוא בכרטיסייה 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
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+
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
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