שימוש
view: my_view {
derived_table: { ... }
}
|
היררכיה
derived_table |
ערך ברירת המחדל
ללא
|
הגדרה
אפשר להתייחס לטבלה נגזרת כאילו היא טבלה רגילה במסד הנתונים. אפשר ליצור את הסוגים הבאים של טבלאות נגזרות:
- טבלה נגזרת מבוססת LookML שמוגדרת באמצעות הפרמטר
explore_source - טבלה נגזרת שמבוססת על SQL, שמשתמשת בשאילתת SQL גולמית שאתם מגדירים באמצעות הפרמטר
sql
במקרים חריגים מסוימים, לא ניתן להשתמש בפרמטר
sql. במקרים כאלה, Looker תומך בפרמטרים הבאים להגדרת שאילתת SQL ל-PDT:create_processsql_createעם הפרמטר
sql,create_processאוsql_create, בכל המקרים האלה אתם מגדירים את הטבלה הנגזרת באמצעות שאילתת SQL, כך שכולן נחשבות לטבלאות נגזרות שמבוססות על SQL.
הפרמטר derived_table מתחיל קטע של LookML שבו מגדירים איך לחשב טבלה נגזרת, באילו אינדקסים או מפתחות היא צריכה להשתמש ומתי צריך ליצור אותה מחדש.
טבלאות נגזרות יכולות להיות טבלאות נגזרות זמניות שמחושבות באופן אד-הוק כשהמשתמשים מבקשים מהן נתונים, או טבלאות נגזרות מתמידות (PDT) שנשמרות במסד הנתונים באמצעות אסטרטגיית שמירה.
אם הניב תומך בהן, אתם יכולים להשתמש בטבלאות PDT מצטברות בפרויקט. PDT מצטבר הוא PDT שנבנה באופן מצטבר על ידי הוספת נתונים חדשים לטבלה, במקום לבנות מחדש את הטבלה כולה. מידע נוסף על טבלאות PDT מצטברות זמין בדף התיעוד טבלאות PDT מצטברות.
מידע נוסף על טבלאות נגזרות זמין בדף התיעוד טבלאות נגזרות ב-Looker.
תת-פרמטרים של טבלה נגזרת
בקטע הזה מפורטים תתי-הפרמטרים של הטבלה הנגזרת.
| פרמטר | תיאור |
|---|---|
cluster_keys: ["column_name", "column_name", ...] |
מציין ש-PDT יקובץ לפי שדה אחד או יותר ב-BigQuery וב-Snowflake. |
create_process: { sql_step:SQL query ;; } |
מציין רצף מסודר של שלבים ליצירת PDT בדיאלקט של מסד נתונים שדורש פקודות DDL בהתאמה אישית. |
datagroup_trigger: datagroup_name |
מציין את קבוצת הנתונים שבה צריך להשתמש במדיניות הבנייה מחדש של ה-PDT. |
distribution: "column_name" |
מגדיר את מפתח ההפצה של PDT שנוצר ב-Redshift או ב-Aster. |
distribution_style: all | even |
מגדירה את סגנון ההפצה של PDT שנוצר ב-Redshift. |
explore_source: explore_name { # Desired subparameters (described on explore_source page) } |
מציינת טבלה נגזרת מבוססת LookML (NDT) שמבוססת על Explore. |
increment_key: "column_name" |
מציין את מרווח הזמן שבו צריך לשלוח שאילתה לגבי נתונים חדשים ולהוסיף אותם ל-PDT מצטבר. |
increment_offset: N |
מציין את מספר התקופות הקודמות (ברמת הפירוט של מפתח ההוספה) שנבנות מחדש כדי להביא בחשבון נתונים שהגיעו באיחור ל-PDT מצטבר. |
indexes: ["column_name", "column_name", ...] |
מגדיר את האינדקסים של PDT שנוצר במסד נתונים מסורתי (לדוגמה, MySQL, Postgres) או מפתח מיון משולב ב-Redshift. |
interval_trigger: "N (seconds | minutes | hours)" |
מציין לוח זמנים לבנייה מחדש של PDT. |
materialized_view: yes | no |
יוצרת תצוגה מהותית במסד הנתונים של טבלה נגזרת. |
partition_keys: ["column_name", "column_name", ...] |
מציין ש-PDT יחולק למחיצות לפי שדה אחד או יותר ב-Presto, או לפי שדה תאריך/שעה יחיד ב-BigQuery. |
persist_for: "N (seconds | minutes | hours)" |
הגדרת הגיל המקסימלי של PDT לפני שהוא נוצר מחדש. |
publish_as_db_view: yes | no |
יוצר תצוגת מסד נתונים יציבה ל-PDT כדי לאפשר שליחת שאילתות לטבלה מחוץ ל-Looker. |
sortkeys: ["column_name", "column_name", ...] |
מגדיר את מפתחות המיון של PDT שנוצר ב-Redshift. |
sql: SQL query ;; |
מצהיר על שאילתת ה-SQL של טבלה נגזרת. |
sql_create: { SQL query ;; } |
מגדיר הצהרת SQL CREATE כדי ליצור PDT בדיאלקט של מסד נתונים שדורש פקודות DDL בהתאמה אישית. |
sql_trigger_value: SQL query ;; |
מציין את התנאי שגורם ליצירה מחדש של PDT. |
table_compression: GZIP | SNAPPY |
מציין את דחיסת הטבלה שבה צריך להשתמש עבור PDT ב-Amazon Athena. |
table_format: PARQUET | ORC | AVRO | JSON | TEXTFILE |
מציין את פורמט הטבלה שבו צריך להשתמש ל-PDT ב-Amazon Athena. |
דוגמאות
יוצרים טבלה נגזרת מבוססת LookML (NDT) של customer_order_facts עם הפרמטר explore_source:
view: customer_order_facts {
derived_table: {
explore_source: order {
column: customer_id { field: order.customer_id }
column: lifetime_orders { field: order.count }
column: lifetime_spend { field: order.total_spend }
}
}
}
יוצרים טבלה נגזרת של customer_order_facts עם הפרמטר sql:
view: customer_order_facts {
derived_table: {
sql:
SELECT
customer_id,
COUNT(*) AS lifetime_orders,
SUM(total) AS lifetime_spend
FROM
order
GROUP BY
customer_id ;;
}
}
מה כדאי לקחת בחשבון?
הימנעו משימוש יתר בטבלאות נגזרות כדי ליצור פתרונות SQL טהורים
משתמשים עם ידע נרחב ב-SQL משתמשים לעיתים קרובות בטבלאות נגזרות כדי לפתור בעיות באמצעות שאילתות SQL מורכבות, ואז אפשר לחשוף את התוצאות שלהן למשתמשים. לפעמים צריך לעשות את זה, אבל זה גם יכול לפספס את האופי המודולרי והניתן לשימוש חוזר של LookML, ולנעול את המשתמשים בדרכים נוקשות לחקור את הנתונים שלהם.
ההצעה הכללית שלנו היא לחשוב על המטרה הבסיסית של שאילתת ה-SQL ואז להמיר את הלוגיקה הזו ל-LookML, במקום להעתיק ולהדביק שאילתות קיימות בטבלה נגזרת. אם אתם צריכים עזרה ביצירת ניתוחים שלא מסתמכים על טבלאות נגזרות, מנתחי התמיכה של Looker יכולים לעזור לכם עם שיטות מומלצות.
ניבים נתמכים של מסדי נתונים לטבלאות נגזרות
ניבים נתמכים של מסדי נתונים לטבלאות נגזרות זמניות
כדי ש-Looker יתמוך בטבלאות נגזרות בפרויקט 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 |
ניבים נתמכים של מסדי נתונים ל-PDT
כדי ש-Looker יתמוך בטבלאות PDT בפרויקט Looker, גם הניב של מסד הנתונים צריך לתמוך בהן.
כדי לתמוך בכל סוג של PDT (מבוסס-LookML או מבוסס-SQL), הדיאלקט חייב לתמוך בכתיבה למסד הנתונים, בין דרישות אחרות. יש כמה הגדרות של מסדי נתונים לקריאה בלבד שלא מאפשרות לשמור את הנתונים (בדרך כלל מסדי נתונים של רפליקות להחלפה חמה של Postgres). במקרים כאלה, אפשר להשתמש במקום זאת בטבלאות נגזרות זמניות.
בטבלה הבאה מוצגים הניבים שתומכים בטבלאות נגזרות מתמידות שמבוססות על SQL בגרסה האחרונה של 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 |
כדי לתמוך בטבלאות נגזרות מתמידות מבוססות LookML (שכוללות שאילתות מבוססות LookML), הניב חייב לתמוך גם בפונקציית DDL של CREATE TABLE. זו רשימה של הניבים שתומכים בטבלאות נגזרות מבוססות LookML מתמידות בגרסה האחרונה של 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 |
אין תמיכה בטבלאות PDT בחיבורים ל-Snowflake שמשתמשים ב-OAuth.
ניבי מסד נתונים נתמכים לטבלאות PDT מצטברות
כדי ש-Looker יתמוך ב-PDT מצטברים בפרויקט Looker, הניב של מסד הנתונים חייב לתמוך בפקודות של שפת הגדרת נתונים (DDL) שמאפשרות למחוק ולהוסיף שורות.
בטבלה הבאה מוצג אילו דיאלקטים תומכים בטבלאות PDT מצטברות בגרסה האחרונה של 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 |