derived_table

Usage

view: my_view {
  derived_table: { ... }
}
היררכיה
derived_table
ערך ברירת המחדל
ללא

הגדרה

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

במקרים מסוימים, לא ניתן להשתמש בפרמטר sql. במקרים כאלה, Looker תומך בפרמטרים הבאים להגדרת שאילתת SQL עבור PDT:

  • create_process
  • sql_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 על סמך ניתוח ב-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 ;; } הגדרת הצהרת CREATE של SQL ליצירת 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.

    דוגמאות

    יוצרים טבלה נגזרת מבוססת customer_order_facts LookML ‏(NDT) עם הפרמטר 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
    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
    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
    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
    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), הדיאלקט צריך לתמוך גם בפונקציית CREATE TABLE DDL. בגרסה האחרונה של Looker, הניבים הבאים תומכים בטבלאות נגזרות מתמידות מבוססות LookML:

    דיאלקט נתמך?
    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
    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, הניב של מסד הנתונים צריך לתמוך בפקודות Data Definition Language (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
    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
    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