Looker āđāļĨāļ° LookML āļāļĩ 2026: āļāļđāđāļĄāļ·āļ Business Intelligence āđāļĨāļ°āļāļģāļāļēāļĄāļŠāļąāļĄāļ āļēāļĐāļāđ
āļāļđāđāļĄāļ·āļ LookML āļāļāļąāļāļŠāļĄāļāļđāļĢāļāđāļŠāļģāļŦāļĢāļąāļ data analyst āđāļāļāļĩ 2026 āđāļĢāļĩāļĒāļāļĢāļđāđ semantic layer āļāļēāļĢāļŠāļĢāđāļēāļāđāļĄāđāļāļĨāļāđāļāļĄāļđāļĨ derived tables āđāļĨāļ°āļāļģāļāļēāļĄāļŠāļąāļĄāļ āļēāļĐāļāđ Looker āļāļĩāđāļāļāļāđāļāļĒ

āļāļģāļāļēāļĄāļŠāļąāļĄāļ āļēāļĐāļāđ Looker āļĄāļąāļāļĄāļļāđāļāđāļāđāļāđāļāļāļĩāđāļāļēāļĢāļŠāļĢāđāļēāļāđāļĄāđāļāļĨ LookML āļāļĢāļ°āļāļ§āļāļāļēāļĢāļŠāļģāļĢāļ§āļāļāđāļāļĄāļđāļĨ āđāļĨāļ°āļ§āļīāļāļĩāļāļĩāđ semantic layer āđāļāļĨāļāļāļĢāļĢāļāļ°āļāļēāļāļāļļāļĢāļāļīāļāđāļŦāđāđāļāđāļāļāļīāļĒāļēāļĄāļāļĩāđāļŠāļēāļĄāļēāļĢāļāļāļģāļāļĨāļąāļāļĄāļēāđāļāđāđāļŦāļĄāđāđāļāđ āļāļđāđāļĄāļ·āļāļāļĩāđāļāļĢāļāļāļāļĨāļļāļĄāđāļāļ§āļāļīāļāļŦāļĨāļąāļāļāļāļ LookML āļĢāļđāļāđāļāļāļāļēāļĢāđāļāđāļāļēāļāļāļĢāļīāļ āđāļĨāļ°āļāļģāļāļēāļĄāļāļĩāđ data analyst āļāđāļāļāđāļāļāļīāļāđāļĄāļ·āđāļāļŠāļąāļĄāļ āļēāļĐāļāđāļŠāļģāļŦāļĢāļąāļāļāļģāđāļŦāļāđāļāļāļĩāđāđāļāđāļ Looker āđāļāļāļĩ 2026
LookML āđāļĒāļāļāļēāļĢāļŠāļĢāđāļēāļāđāļĄāđāļāļĨāļāđāļāļĄāļđāļĨāļāļāļāļāļēāļāļāļēāļĢāļŠāļģāļĢāļ§āļāļāđāļāļĄāļđāļĨ āļāļąāļāļ§āļīāđāļāļĢāļēāļ°āļŦāđāļāļģāļŦāļāļ dimensions measures āđāļĨāļ° relationships āļāļĢāļąāđāļāđāļāļĩāļĒāļ§āđāļ model layer āļāļēāļāļāļąāđāļāļāļđāđāđāļāđāļāļēāļāļāļļāļĢāļāļīāļāļŠāļēāļĄāļēāļĢāļ query āļāđāļāļĄāļđāļĨāđāļāđāđāļāļĒāđāļĄāđāļāđāļāļāđāļāļĩāļĒāļ SQLâāļĢāļđāļāđāļāļāļāļĩāđāļāļĢāļēāļāļāđāļāļāļēāļĢāļŠāļąāļĄāļ āļēāļĐāļāđāļāļēāļāđāļāļāļāļīāļ Looker āđāļāļ·āļāļāļāļļāļāļāļĢāļąāđāļ
āļāļģāļāļ§āļēāļĄāđāļāđāļēāđāļ Semantic Layer āļāļāļ LookML
LookML āļāļģāļŦāļāđāļēāļāļĩāđāđāļāđāļāļāļąāđāļāļāļēāļĢāđāļāļĨāļĢāļ°āļŦāļ§āđāļēāļāļāļēāļĢāļēāļāļāļēāļāļāđāļāļĄāļđāļĨāļāļīāļāđāļĨāļ° metrics āļāļĩāđāđāļāđāļāļĄāļīāļāļĢāļāļąāļāļāļļāļĢāļāļīāļ āđāļāļāļāļĩāđāļāļ°āđāļāļĩāļĒāļ SQL joins āļāļĩāđāļāļąāļāļāđāļāļāļāđāļģāđāļĨāđāļ§āļāđāļģāđāļĨāđāļē āļāļąāļāļ§āļīāđāļāļĢāļēāļ°āļŦāđāļāļģāļŦāļāļ relationships āđāļāđāļāļĨāđāđāļĄāđāļāļĨāļāļĩāđ Looker āļāļāļĄāđāļāļĨāđāđāļāđāļ queries āļāļĩāđāļāļđāļāļāļĢāļąāļāđāļŦāđāđāļŦāļĄāļēāļ°āļŠāļĄ
Semantic layer āđāļāđāļāļąāļāļŦāļēāļŠāļēāļĄāļāļĢāļ°āļāļēāļĢāļāļĩāđāļāļđāđāļŠāļąāļĄāļ āļēāļĐāļāđāļĄāļąāļāļāļēāļĄāđāļāļĩāđāļĒāļ§āļāļąāļ:
- āļāļ§āļēāļĄāļŠāļāļāļāļĨāđāļāļ: āļāļđāđāđāļāđāļāļļāļāļāļāđāļŦāđāļāļāļīāļĒāļēāļĄ metric āđāļāļĩāļĒāļ§āļāļąāļ
- āļāļēāļĢāļāļģāļāļĨāļąāļāļĄāļēāđāļāđāđāļŦāļĄāđ: Dimensions āđāļĨāļ° measures āļĄāļĩāļāļĒāļđāđāļāļĢāļąāđāļāđāļāļĩāļĒāļ§ āļāđāļēāļāļāļīāļāđāļāđāļāļļāļāļāļĩāđ
- āļāļēāļĢāļāļģāļāļąāļāļāļđāđāļĨ: āļāļēāļĢāđāļāļĨāļĩāđāļĒāļāđāļāļĨāļāđāļāļĢāđāļāļĢāļ°āļāļēāļĒāđāļāļĒāļāļąāļāđāļāļĄāļąāļāļīāđāļāļĒāļąāļ dashboards āļāļąāđāļāļŦāļĄāļ
āđāļāļāļŠāļēāļĢ Looker āļāļāļ Google Cloud āļāļāļīāļāļēāļĒ LookML āļ§āđāļēāđāļāđāļāļ āļēāļĐāļēāļāļĩāđ "dependency-aware"âāđāļĄāļ·āđāļāļāļīāļĒāļēāļĄāļŦāļāļķāđāļāđāļāļĨāļĩāđāļĒāļāđāļāļĨāļ āļāļēāļĢāļāđāļēāļāļāļīāļ downstream āļāļ°āļāļąāļāđāļāļāđāļāļĒāļāļąāļāđāļāļĄāļąāļāļī āļāļ§āļēāļĄāļŠāļēāļĄāļēāļĢāļāđāļāļāļēāļĢāļĢāļąāļāļĢāļđāđ dependency āļāļĩāđāļāļĨāļēāļĒāđāļāđāļāļŠāļīāđāļāļŠāļģāļāļąāļāđāļĄāļ·āđāļāļāļđāđāļĨāđāļĄāđāļāļĨāļĢāļ°āļāļąāļāļāļāļāđāļāļĢ
Views āđāļĨāļ° Explores āļāļāļ LookML: āļāļāļāđāļāļĢāļ°āļāļāļāļāļ·āđāļāļāļēāļ
Views āļāļģāļŦāļāļāļāļāļĨāļąāļĄāļāđāļāļĩāđāļĄāļĩāļāļēāļāļāļēāļĢāļēāļāđāļāļĩāļĒāļ§āļŦāļĢāļ·āļ derived table Explores āļĢāļ§āļĄ views āļāđāļēāļ joins āđāļĨāļ°āđāļŠāļāļāđāļŦāđāļāļđāđāđāļāđāļāļēāļāļāļļāļĢāļāļīāļāđāļŦāđāļ
# views/orders.view.lkml
view: orders {
sql_table_name: `analytics.orders` ;;
dimension: order_id {
primary_key: yes
type: number
sql: ${TABLE}.order_id ;;
}
dimension_group: created {
type: time
timeframes: [raw, date, week, month, quarter, year]
sql: ${TABLE}.created_at ;;
}
dimension: status {
type: string
sql: ${TABLE}.status ;;
}
measure: total_orders {
type: count
drill_fields: [order_id, created_date, status]
}
measure: total_revenue {
type: sum
sql: ${TABLE}.amount ;;
value_format_name: usd
}
}āļāļēāļĢāļāļĢāļ°āļāļēāļĻ dimension_group āļŠāļĢāđāļēāļ dimensions āļŦāļĨāļēāļĒāļāļąāļ§āļāļēāļĄāđāļ§āļĨāļēāļāļēāļāļāļāļĨāļąāļĄāļāđ timestamp āđāļāļĩāļĒāļ§ āļāļđāđāļŠāļąāļĄāļ āļēāļĐāļāđāļĄāļąāļāļāļāđāļŦāđāļāļđāđāļŠāļĄāļąāļāļĢāļāļāļīāļāļēāļĒāļ§āđāļēāļāļģāđāļĄāļĢāļđāļāđāļāļāļāļĩāđāļĨāļāļāļēāļĢāļāļģāļāđāļģāđāļāđāļāđāļĨāļ°āļĢāļąāļāļāļĢāļ°āļāļąāļāļāļēāļĢāļāļąāļāļāļēāļĢāļ§āļąāļāļāļĩāđāļāļĩāđāļŠāļāļāļāļĨāđāļāļāļāļąāļāļāļąāđāļ§āļāļąāđāļāđāļĄāđāļāļĨ
āļāļēāļĢāļēāļĄāļīāđāļāļāļĢāđ drill_fields āļāļģāļŦāļāļāļŠāļīāđāļāļāļĩāđāļāļđāđāđāļāđāđāļŦāđāļāđāļĄāļ·āđāļāļāļĨāļīāļāļāļĩāđāļāđāļē measureâāļĢāļēāļĒāļĨāļ°āđāļāļĩāļĒāļ UX āļāļĩāđāđāļŠāļāļāļāļķāļāļāļ§āļēāļĄāđāļāđāļēāđāļāļ§āđāļēāļāļąāļāļ§āļīāđāļāļĢāļēāļ°āļŦāđāđāļāđāļāļāļāļāļąāļ Looker āļāļĒāđāļēāļāđāļĢāļāļĢāļīāļāđ
Joins āđāļĨāļ° Relationships āđāļ LookML
Explores āļāļģāļŦāļāļāļ§āļīāļāļĩāļāļĩāđ views āđāļāļ·āđāļāļĄāļāđāļāļāđāļēāļ SQL joins āļāļĢāļ°āđāļ āļ join āđāļĨāļ°āļāļēāļĢāļāļĢāļ°āļāļēāļĻ relationship āļŠāđāļāļāļĨāđāļāļĒāļāļĢāļāļāđāļāļāļĢāļ°āļŠāļīāļāļāļīāļ āļēāļ query āđāļĨāļ°āļāļ§āļēāļĄāļāļđāļāļāđāļāļāļāļāļ aggregation
# models/ecommerce.model.lkml
explore: orders {
label: "Order Analysis"
description: "All orders with customer and product details"
join: customers {
type: left_outer
sql_on: ${orders.customer_id} = ${customers.customer_id} ;;
relationship: many_to_one
}
join: order_items {
type: left_outer
sql_on: ${orders.order_id} = ${order_items.order_id} ;;
relationship: one_to_many
}
join: products {
type: left_outer
sql_on: ${order_items.product_id} = ${products.product_id} ;;
relationship: many_to_one
}
}āļāļēāļĢāļēāļĄāļīāđāļāļāļĢāđ relationship āļāļāļ Looker āļ§āļīāļāļĩāļāļąāļāļāļēāļĢ aggregations Relationship one_to_many āļŦāļĄāļēāļĒāļāļ§āļēāļĄāļ§āđāļē measure āļāļ§āļĢ aggregate āļāļĩāđāļāļąāđāļ "one" āđāļāļ·āđāļāļŦāļĨāļĩāļāđāļĨāļĩāđāļĒāļāļāļēāļĢāļāļąāļāļāđāļģ āļāļēāļĢāļāļģāļāļīāļāļāļĨāļēāļāđāļāđāļĢāļ·āđāļāļāļāļĩāđāļāļģāđāļŦāđāļĒāļāļāļĢāļ§āļĄāđāļĄāđāļāļđāļāļāđāļāļâāļŠāļāļēāļāļāļēāļĢāļāđ debugging āļāļĩāđāļāļāļāđāļāļĒāđāļāļāļēāļĢāļŠāļąāļĄāļ āļēāļĐāļāđ
Symmetric aggregates āđāļāđāļāļąāļāļŦāļē fanout āđāļāļĒāļāļąāļāđāļāļĄāļąāļāļī āđāļĄāļ·āđāļ join āļāļēāļĢāļēāļāļāļĩāđāļĄāļĩ granularity āļāđāļēāļāļāļąāļ Looker āļŠāļĢāđāļēāļ SQL āļāļĩāđāļāļģāļāļ§āļ measures āļāļĩāđāļĢāļ°āļāļąāļāļāļĩāđāļāļđāļāļāđāļāļāļāđāļāļāļāļģ join
Derived Tables āļŠāļģāļŦāļĢāļąāļ Transformations āļāļĩāđāļāļąāļāļāđāļāļ
Derived tables āļŠāļĢāđāļēāļāļāļēāļĢāļēāļāđāļŠāļĄāļ·āļāļāļāļēāļ SQL queries āļŦāļĢāļ·āļ aggregations āļāļĩāđāļāļģāļŦāļāļāđāļ LookML Native derived tables āđāļāđāđāļ§āļĒāļēāļāļĢāļāđ LookML; SQL-derived tables āļāļąāļ SQL āļāļīāļ
# views/customer_order_facts.view.lkml
view: customer_order_facts {
derived_table: {
explore_source: orders {
column: customer_id { field: customers.customer_id }
column: first_order_date { field: orders.created_date }
column: lifetime_orders { field: orders.total_orders }
column: lifetime_revenue { field: orders.total_revenue }
derived_column: customer_tenure_days {
sql: DATE_DIFF(CURRENT_DATE(), first_order_date, DAY) ;;
}
}
datagroup_trigger: daily_etl
indexes: ["customer_id"]
}
dimension: customer_id {
primary_key: yes
hidden: yes
type: number
}
dimension: first_order_date {
type: date
sql: ${TABLE}.first_order_date ;;
}
dimension: lifetime_orders {
type: number
sql: ${TABLE}.lifetime_orders ;;
}
dimension: customer_tier {
type: string
sql: CASE
WHEN ${lifetime_orders} >= 10 THEN 'Gold'
WHEN ${lifetime_orders} >= 5 THEN 'Silver'
ELSE 'Bronze'
END ;;
}
}datagroup_trigger āļāļ§āļāļāļļāļĄāđāļ§āļĨāļēāļāļĩāđ Looker āļŠāļĢāđāļēāļ derived table āđāļŦāļĄāđâāđāļāļĒāļāļąāđāļ§āđāļāļŦāļĨāļąāļāļāļēāļ ETL upstream āđāļŠāļĢāđāļāļŠāļīāđāļ Persistent derived tables (PDTs) āļāļđāļ materialize āđāļāļāļēāļāļāđāļāļĄāļđāļĨ āđāļĨāļāļāļ·āđāļāļāļĩāđāļāļąāļāđāļāđāļāļāļąāļāļāļ§āļēāļĄāđāļĢāđāļ§ query
āļāļđāđāļŠāļąāļĄāļ āļēāļĐāļāđāļāļēāļĄāđāļāļĩāđāļĒāļ§āļāļąāļāļāļĨāļĒāļļāļāļāđ rebuild PDT āļāļēāļĢāļēāļĄāļīāđāļāļāļĢāđ sql_trigger_value āļĢāļąāļ SQL query; āđāļĄāļ·āđāļāļāļĨāļĨāļąāļāļāđāđāļāļĨāļĩāđāļĒāļ Looker āļāļ°āļŠāļĢāđāļēāļ PDT āđāļŦāļĄāđ āļĢāļđāļāđāļāļāļāļĩāđāļāļāļāđāļāļĒāđāļāđ SELECT MAX(updated_at) FROM source_table
āļāļĢāđāļāļĄāļāļĩāđāļāļ°āļāļīāļāļīāļāļāļēāļĢāļŠāļąāļĄāļ āļēāļĐāļāđ Data Analytics āđāļĨāđāļ§āļŦāļĢāļ·āļāļĒāļąāļāļāļĢāļąāļ?
āļāļķāļāļāļāļāđāļ§āļĒāļāļąāļ§āļāļģāļĨāļāļāđāļāļāđāļāđāļāļāļ, flashcards āđāļĨāļ°āđāļāļāļāļāļŠāļāļāđāļāļāļāļīāļāļāļĢāļąāļ
āļāļģāļāļēāļĄāļŠāļąāļĄāļ āļēāļĐāļāđ Looker: āļāļēāļĢāļāļāļāđāļāļāđāļĄāđāļāļĨ
āļāļēāļĢāļŠāļąāļĄāļ āļēāļĐāļāđāļāļēāļāđāļāļāļāļīāļāļŠāļģāļŦāļĢāļąāļāļāļģāđāļŦāļāđāļ Looker āđāļāđāļāļŦāļāļąāļāļāļĩāđāļāļēāļĢāļāļąāļāļŠāļīāļāđāļāđāļāļĩāđāļĒāļ§āļāļąāļāļāļēāļĢāļŠāļĢāđāļēāļāđāļĄāđāļāļĨ LookML āļāļģāļāļēāļĄāđāļŦāļĨāđāļēāļāļĩāđāļāļĢāļ°āđāļĄāļīāļāļ§āđāļēāļāļđāđāļŠāļĄāļąāļāļĢāđāļāđāļēāđāļ tradeoffs āļĢāļ°āļŦāļ§āđāļēāļāļāļ§āļēāļĄāļĒāļ·āļāļŦāļĒāļļāđāļāđāļĨāļ°āļāļĢāļ°āļŠāļīāļāļāļīāļ āļēāļāļŦāļĢāļ·āļāđāļĄāđ
āļāļģāļāļēāļĄ: āļāļ°āļŠāļĢāđāļēāļāđāļĄāđāļāļĨ fact table āļāļĩāđāļĄāļĩāļŦāļĨāļēāļĒ date dimensions āđāļāđāļāļĒāđāļēāļāđāļĢ?
āļāļģāļāļāļāđāļāļĩāđāļĒāļ§āļāđāļāļāļāļąāļāļāļēāļĢāļŠāļĢāđāļēāļ dimension groups āđāļĒāļāļāļąāļāđāļĨāļ°āļāļąāđāļāļāļ·āđāļ joins āļāļĒāđāļēāļāļāļąāļāđāļāļ:
# views/orders.view.lkml
view: orders {
dimension_group: order_created {
type: time
timeframes: [date, week, month, year]
sql: ${TABLE}.created_at ;;
}
dimension_group: order_shipped {
type: time
timeframes: [date, week, month, year]
sql: ${TABLE}.shipped_at ;;
}
dimension: days_to_ship {
type: number
sql: DATE_DIFF(${order_shipped_date}, ${order_created_date}, DAY) ;;
}
}āļāļģāļāļēāļĄ: āđāļĄāļ·āđāļāđāļāļāļ§āļĢāđāļāđ PDT āđāļāļĩāļĒāļāļāļąāļ dbt model?
PDTs āđāļŦāļĄāļēāļ°āļŠāļģāļŦāļĢāļąāļ aggregations āđāļāļāļēāļ° Looker āļāļĩāđāđāļāļĨāļĩāđāļĒāļāđāļāļĨāļāļāļēāļĄāđāļĄāđāļāļĨ Transformations dbt āđāļŦāļĄāļēāļ°āļŠāļģāļŦāļĢāļąāļ datasets āļāļĩāđāđāļāļĢāđāđāļĨāļ°āđāļāđāđāļāļĒāļŦāļĨāļēāļĒ tools āļĢāļđāļāđāļāļ āļāļēāļĢāļĢāļ§āļĄ dbt + Looker āđāļāđ dbt āļŠāļģāļŦāļĢāļąāļ transformations āļŦāļāļąāļāđāļĨāļ° PDTs āļŠāļģāļŦāļĢāļąāļ metrics āļāļąāđāļāļŠāļļāļāļāđāļēāļĒ
āļāļģāļāļēāļĄ: āļāļ°āļāļąāļāļāļēāļĢ slowly changing dimensions āđāļ LookML āđāļāđāļāļĒāđāļēāļāđāļĢ?
āļāļēāļĢāļēāļ SCD Type 2 āļāđāļāļāļāļēāļĢāļāļēāļĢāļāļĢāļāļāđāļāļĒāļąāļ record āļāļąāļāļāļļāļāļąāļ āđāļāļīāđāļĄ dimension āļāļĩāđāļāļĢāļāļāđāļāļ§āđāļĨāļ°āđāļāđ always_filter āđāļ explore:
# views/customer_history.view.lkml
view: customer_history {
dimension: is_current {
type: yesno
sql: ${TABLE}.end_date IS NULL ;;
}
}
# In the explore
explore: orders {
join: customer_history {
sql_on: ${orders.customer_id} = ${customer_history.customer_id} ;;
relationship: many_to_one
}
always_filter: {
filters: [customer_history.is_current: "Yes"]
}
}Liquid Templating āļŠāļģāļŦāļĢāļąāļāđāļĄāđāļāļĨāđāļāļāđāļāļāļēāļĄāļīāļ
Liquid templating āđāļāļīāļāđāļāđāļāļēāļāļāļĢāļĢāļāļ°āđāļāļ·āđāļāļāđāļāđāļāļāļīāļĒāļēāļĄ LookML User attributes āļāđāļē filter āđāļĨāļ° permissions āļŠāļēāļĄāļēāļĢāļāđāļāđāđāļ SQL āļāļĩāđāļŠāļĢāđāļēāļāļāļķāđāļ
# views/regional_orders.view.lkml
view: regional_orders {
sql_table_name:
{% if _user_attributes['region'] == 'EMEA' %}
analytics.orders_emea
{% elsif _user_attributes['region'] == 'APAC' %}
analytics.orders_apac
{% else %}
analytics.orders_us
{% endif %}
;;
dimension: amount {
type: number
sql: ${TABLE}.amount ;;
html:
{% if value > 1000 %}
<span style="color: green;">{{ rendered_value }}</span>
{% else %}
{{ rendered_value }}
{% endif %}
;;
}
}User attributes āļāļąāļāđāļāļĨāļ·āđāļāļ row-level security āđāļĨāļ°āļāļēāļĢāđāļĨāļ·āļāļāļāļēāļĢāļēāļāđāļāļāđāļāļāļēāļĄāļīāļ Object _user_attributes āđāļŦāđāļāļēāļĢāđāļāđāļēāļāļķāļāļāđāļēāļāļĩāđāļāļģāļŦāļāļāđāļāđāļāļāļāļđāđāļāļđāđāļĨāļĢāļ°āļāļ Looker
āļāļēāļĢāļēāļĄāļīāđāļāļāļĢāđ html āļāļĢāļąāļāđāļāđāļāļ§āļīāļāļĩāļāļēāļĢāđāļŠāļāļāļāđāļēāđāļāļāļēāļĢāļēāļāđāļĨāļ° visualizationsâconditional formatting āļāļĩāđāļāļĢāļēāļāļāļāđāļāļĒāđāļāđāļāļĢāđāļāļāļāđ take-home āļŠāļąāļĄāļ āļēāļĐāļāđ
āļĢāļđāļāđāļāļāļāļēāļĢāļāļĢāļąāļāļāļĢāļ°āļŠāļīāļāļāļīāļ āļēāļāđāļŦāđāđāļŦāļĄāļēāļ°āļŠāļĄ
Looker āļŠāļĢāđāļēāļ SQL āļāļēāļāļāļīāļĒāļēāļĄ LookML āļāļēāļĢāļāļĢāļąāļāđāļŦāđāđāļŦāļĄāļēāļ°āļŠāļĄāļāđāļāļāđāļāđāļēāđāļāļāļąāđāļ model layer āđāļĨāļ°āļāļēāļāļāđāļāļĄāļđāļĨāļāļ·āđāļāļāļēāļ
Aggregate awareness pre-compute aggregations āļāļąāđāļ§āđāļāļāļĩāđāļĢāļ°āļāļąāļ grain āļāđāļēāļāđ:
# views/orders.view.lkml
view: orders {
aggregate_table: daily_orders {
query: {
dimensions: [created_date]
measures: [total_orders, total_revenue]
}
materialization: {
datagroup_trigger: daily_etl
}
}
aggregate_table: monthly_orders {
query: {
dimensions: [created_month]
measures: [total_orders, total_revenue]
}
materialization: {
datagroup_trigger: daily_etl
}
}
}Looker āļāļģāļŦāļāļāđāļŠāđāļāļāļēāļ queries āđāļāļĒāļąāļ aggregate table āļāļĩāđāđāļĨāđāļāļāļĩāđāļŠāļļāļāļāļĩāđāļāļāļāļŠāļāļāļāļāļģāļāļāđāļāļĒāļāļąāļāđāļāļĄāļąāļāļī Query dashboard āļĢāļēāļĒāđāļāļ·āļāļāļāđāļēāļāļāļēāļ monthly_orders āđāļāļāļāļĩāđāļāļ°āļŠāđāļāļ fact table āļāļąāđāļāļŦāļĄāļ
āļāļēāļĢāļāļąāđāļāļāđāļēāļĢāļ°āļāļąāļ connection āļŠāđāļāļāļĨāļāđāļāļāļĢāļ°āļŠāļīāļāļāļīāļ āļēāļāļāļĒāđāļēāļāļĄāļĩāļāļąāļĒāļŠāļģāļāļąāļ āļāļēāļĢāđāļāļ·āđāļāļĄāļāđāļ BigQuery āļāļ§āļĢāđāļāļīāļāđāļāđāļāļēāļ query caching āđāļĨāļ°āļāļąāđāļāļāđāļē timeouts āļāļĩāđāđāļŦāļĄāļēāļ°āļŠāļĄ āļāļēāļĢāļēāļĄāļīāđāļāļāļĢāđ max_connections āļāļ§āļāļāļļāļĄ concurrent query slots
āļŠāļģāļŦāļĢāļąāļ data analyst āļāļĩāđāđāļāļĢāļĩāļĒāļĄāļāļąāļ§āļŠāļąāļĄāļ āļēāļĐāļāđ āļāļđāđāļĄāļ·āļ SQL window functions āļāļĢāļāļāļāļĨāļļāļĄ query patterns āļāļĩāđāđāļŠāļĢāļīāļĄāļāļąāļāļĐāļ°āļāļēāļĢāļŠāļĢāđāļēāļāđāļĄāđāļāļĨ LookML
Access Controls āđāļĨāļ° Content Management
Row-level security, model permissions āđāļĨāļ°āļāļēāļĢāļāļąāļāļĢāļ°āđāļāļĩāļĒāļāđāļāļ·āđāļāļŦāļēāļāļĢāļēāļāļāđāļāļāļēāļĢāļŠāļąāļĄāļ āļēāļĐāļāđ Looker āļĢāļ°āļāļąāļāļāļēāļ§āļļāđāļŠ āļāļĨāđāļ access_grant āļāļ§āļāļāļļāļĄāļāļ§āļēāļĄāļāļĢāđāļāļĄāđāļāđāļāļēāļāļāļāļāļāļĩāđāļāļāļĢāđ:
# models/ecommerce.model.lkml
access_grant: can_view_pii {
user_attribute: department
allowed_values: ["data_team", "compliance"]
}
explore: customers {
access_filter: {
field: customers.region
user_attribute: allowed_regions
}
}
view: customers {
dimension: email {
type: string
sql: ${TABLE}.email ;;
required_access_grants: [can_view_pii]
}
}access_filter āđāļāļīāđāļĄ WHERE clauses āđāļāļāđāļāļāļēāļĄāļīāļāļāļēāļĄ user attributes āļāļđāđāļāļąāļāļāļēāļĢāļāđāļēāļĒāļāļēāļĒāđāļŦāđāļāđāļāļāļēāļ°āļāđāļāļĄāļđāļĨāļāļāļāļ āļđāļĄāļīāļ āļēāļāļāļ āļāļēāļĢāļēāļĄāļīāđāļāļāļĢāđ required_access_grants āļāđāļāļ dimensions āļāļēāļāļāļđāđāđāļāđāļāļĩāđāđāļĄāđāļĄāļĩ grant āļāļĩāđāļĢāļ°āļāļļ
āļāļēāļĢāļāļąāļāļĢāļ°āđāļāļĩāļĒāļāđāļāļ·āđāļāļŦāļēāļāļēāļĄ hierarchy āđāļāļĨāđāļāļāļĢāđ Dashboards production āļāļĒāļđāđāđāļ shared spaces; āļāļēāļ development āļāļĒāļđāđāđāļ personal folders āļāļāļāļ§āđāļēāļāļ°āļāđāļēāļāļāļēāļĢāļāļĢāļ§āļāļŠāļāļ LookML validator āļāļĢāļ§āļāļāļąāļāļāđāļāļāļīāļāļāļĨāļēāļāđāļ§āļĒāļēāļāļĢāļāđāļāđāļāļ deployment
āļāđāļāļāļīāļāļāļĨāļēāļāđāļāļāļēāļĢāļŠāļąāļĄāļ āļēāļĐāļāđāļāļĩāđāļāļāļāđāļāļĒāļāļĩāđāļāļ§āļĢāļŦāļĨāļĩāļāđāļĨāļĩāđāļĒāļ
āļāļēāļĢāļŠāļąāļĄāļ āļēāļĐāļāđāļāļēāļāđāļāļāļāļīāļ Looker āđāļāļĒāđāļŦāđāđāļŦāđāļāļāļ§āļēāļĄāđāļāđāļēāđāļāļāļīāļāļāļĩāđāļāļāļāđāļāļĒ:
āļāļēāļĢāļāļĢāļ°āļāļēāļĻ relationship āļāļĩāđāđāļĄāđāļāļđāļāļāđāļāļ āļāļģāđāļŦāđ metric āļāļāļāļāļąāļ§ Relationship one_to_one āļāļ join one_to_many āļŠāļĢāđāļēāļ aggregates āļāļĩāđāļāļīāļ āļāļĢāļ§āļāļŠāļāļ cardinality āļāđāļ§āļĒ queries SELECT COUNT(*), COUNT(DISTINCT key) āđāļŠāļĄāļ
āļāļķāđāļāļāļē SQL-derived tables āļĄāļēāļāđāļāļīāļāđāļ āđāļāļ native derives Native derived tables āļĢāļ§āļĄāļāļąāļ dependency tracking āļāļāļ Looker; SQL-derived tables āļāđāļāļāļāļēāļĢāļāļēāļĢāļāļąāļāļāļēāļĢāļāđāļ§āļĒāļāļāđāļāļ
āđāļāļīāļāđāļāļĒ datagroup caching āļŦāļēāļāđāļĄāđāļĄāļĩ cache invalidation āļāļĩāđāđāļŦāļĄāļēāļ°āļŠāļĄ dashboards āļāļ°āđāļŠāļāļāļāđāļāļĄāļđāļĨāđāļāđāļē āļāļģāļŦāļāļ datagroups āļāļĩāđāļŠāļāļāļāļĨāđāļāļāļāļąāļāļāļēāļĢāļēāļ ETL āđāļĨāļ°āļāļģāļŦāļāļāđāļŦāđ explores
āļŠāļģāļŦāļĢāļąāļāļāļēāļĢāđāļāļĢāļĩāļĒāļĄāļāļąāļ§āļŠāļąāļĄāļ āļēāļĐāļāđāļāļĩāđāļāļĢāļāļāļāļĨāļļāļĄāđāļāļĩāđāļĒāļ§āļāļąāļāđāļāļ§āļāļīāļāļāļēāļĢāļŠāļĢāđāļēāļāđāļĄāđāļāļĨāļāđāļāļĄāļđāļĨāđāļĨāļ° analytics āļāļđāđāļĄāļ·āļāļāļģāļāļēāļĄāļŠāļąāļĄāļ āļēāļĐāļāđ data analytics āļāļĢāļāļāļāļĨāļļāļĄāļŦāļąāļ§āļāđāļāļāļĩāđāļāļ§āđāļēāļāļāļ§āđāļēāļāļ§āļēāļĄāļĢāļđāđāđāļāļāļēāļ° Looker
āļŠāļĢāļļāļ
āļāļēāļĢāļāļĢāļ°āļŠāļāļāļ§āļēāļĄāļŠāļģāđāļĢāđāļāđāļāļāļēāļĢāļŠāļąāļĄāļ āļēāļĐāļāđ Looker āļāđāļāļāđāļŠāļāļāđāļŦāđāđāļŦāđāļāļāļąāđāļāļāļ§āļēāļĄāļĢāļđāđāđāļ§āļĒāļēāļāļĢāļāđ LookML āđāļĨāļ°āļāļ§āļēāļĄāđāļāđāļēāđāļāļ§āđāļēāļāļģāđāļĄāļŠāļāļēāļāļąāļāļĒāļāļĢāļĢāļĄ semantic layer āļāļķāļāđāļāđāļāļāļĢāļ°āđāļĒāļāļāđāļāđāļāļāļāļāđāļāļĢ:
- LookML views āļāļģāļŦāļāļ dimensions āđāļĨāļ° measures; explores āļĢāļ§āļĄ views āļāđāļēāļ joins āļāļĩāđāļāļĢāļ°āļāļēāļĻāļāđāļ§āļĒ relationship types āļāļĩāđāļāļąāļāđāļāļ
- Derived tables materialize transformations āļāļĩāđāļāļąāļāļāđāļāļ; datagroups āļāļ§āļāļāļļāļĄ cache invalidation āđāļĨāļ°āļāļēāļĢāļēāļ rebuild PDT
- Liquid templating āđāļāļīāļāđāļāđāļāļēāļāļāļēāļĢāļŠāļĢāđāļēāļ SQL āđāļāļāđāļāļāļēāļĄāļīāļāļāļēāļĄ user attributes āđāļĨāļ°āļāļēāļĢāđāļĨāļ·āļāļ filter
- Aggregate awareness pre-compute metrics āļāļĩāđāļŦāļĨāļēāļĒ grains āļāļģāļŦāļāļāđāļŠāđāļāļāļēāļ queries āđāļāļĒāļąāļāļāļēāļĢāļēāļāļāļĩāđāđāļŦāļĄāļēāļ°āļŠāļĄāļāļĩāđāļŠāļļāļāđāļāļĒāļāļąāļāđāļāļĄāļąāļāļī
- Access controls āļĢāļ§āļĄ row-level filters, access grants āđāļĨāļ° content permissions āļŠāļģāļŦāļĢāļąāļ governed self-service
- āļāļēāļĢāļāļĢāļąāļāļāļĢāļ°āļŠāļīāļāļāļīāļ āļēāļāđāļŦāđāđāļŦāļĄāļēāļ°āļŠāļĄāļāđāļāļāļāļąāļāđāļāļ§āļĢāļđāļāđāļāļ LookML āļāļąāļāļāļēāļĢāļāļĢāļąāļāđāļāđāļāđāļāļāļēāļ°āļāļēāļāļāđāļāļĄāļđāļĨ (BigQuery slots, Snowflake warehouses)
āļāļķāļāļŠāļĢāđāļēāļāđāļĄāđāļāļĨ LookML āļāļąāļ sample datasets āļāđāļāļāļāļēāļĢāļŠāļąāļĄāļ āļēāļĐāļāđ BigQuery public datasets āļĄāļĩ schemas āļāļĩāđāļŠāļĄāļāļĢāļīāļāļŠāļģāļŦāļĢāļąāļāđāļāļāļāļķāļāļŦāļąāļāļāļēāļĢāļŠāļĢāđāļēāļāđāļĄāđāļāļĨ
āđāļĢāļīāđāļĄāļāļķāļāļāđāļāļĄāđāļĨāļĒ!
āļāļāļŠāļāļāļāļ§āļēāļĄāļĢāļđāđāļāļāļāļāļļāļāļāđāļ§āļĒāļāļąāļ§āļāļģāļĨāļāļāļŠāļąāļĄāļ āļēāļĐāļāđāđāļĨāļ°āđāļāļāļāļāļŠāļāļāđāļāļāļāļīāļāļāļĢāļąāļ
āļāļļāļāļŦāļēāļāļąāđāļāđāļ Data Analytics āđāļāļāđāļŦāļĄ
āđāļāđāļāļāļĢāļīāļāļŦāļāļķāđāļāļāļīāđāļ āļāļąāđāļāļāļĩāđāļāđāļāļāļāļĒāļđāđāļŦāļāļķāđāļāļāļļāļ āļ§āļąāļāļĨāļ°āļŦāļāļķāđāļāļāļĢāļąāđāļ āļĨāļāļāđāļāđāđāļāļĒāđāļĄāđāļāđāļāļāļĄāļĩāļāļąāļāļāļĩ

āđāļāļĩāļĒāļāđāļāļĒ
Anthony Fillion-Mailletāļāļđāđāļāđāļāļāļąāđāļ SharpSkill
āđāļāđāļāļāļąāļāļāļąāļāļāļēāļāļđāļĨāļŠāđāļāļāļĄāļēāļāļ§āđāļē 10 āļāļĩ āļāļđāđāļĨ SharpSkill āđāļĨāļ°āļĢāļąāļāļāļīāļāļāļāļāļāļļāļāļŠāļīāđāļāļāļĩāđāđāļāļĒāđāļāļĢāđāļāļĩāđāļāļĩāđ
āļāļąāļāđāļāļāđāļĄāļ·āđāļ 20 āļāļĢāļāļāļēāļāļĄ 2569
āđāļāđāļ
āđāļāļĢāđ
āļāļāļāļ§āļēāļĄāļāļĩāđāđāļāļĩāđāļĒāļ§āļāđāļāļ

Apache Superset āļāļĩ 2026: āđāļāļāļāļāļĢāđāļ SQL Lab āđāļĨāļ°āļāļģāļāļēāļĄāļŠāļąāļĄāļ āļēāļĐāļāđ
āđāļāļēāļ°āļĨāļķāļ Apache Superset: āļāļēāļĢāļŠāļĢāđāļēāļāđāļāļāļāļāļĢāđāļāļ§āļīāđāļāļĢāļēāļ°āļŦāđāļāđāļāļĄāļđāļĨ SQL Lab āđāļĨāļ° Jinja templating āļāļēāļĢāđāļāļĢāļĩāļĒāļāđāļāļĩāļĒāļāļāļąāļ Tableau āđāļĨāļ°āļāļģāļāļēāļĄāļŠāļąāļĄāļ āļēāļĐāļāđāļāļĩāđāļŠāļģāļāļąāļ

Pandas 3.0 āđāļāļāļĩ 2026: API āđāļŦāļĄāđ, Breaking Changes āđāļĨāļ°āļāļģāļāļēāļĄāļŠāļąāļĄāļ āļēāļĐāļāđāļāļēāļ
āļāļđāđāļĄāļ·āļāļāļāļąāļāļŠāļĄāļāļđāļĢāļāđāđāļāļĩāđāļĒāļ§āļāļąāļ Pandas 3.0 āļāļĢāļāļāļāļĨāļļāļĄ Copy-on-Write, PyArrow string backend, pd.col() expressions, breaking changes āđāļĨāļ°āļāļģāļāļēāļĄāļŠāļąāļĄāļ āļēāļĐāļāđ data analytics

dbt āļŠāļģāļŦāļĢāļąāļ Data Analyst āđāļāļāļĩ 2026: āļāļēāļĢāļŠāļĢāđāļēāļāđāļĄāđāļāļĨ āļāļēāļĢāļāļāļŠāļāļ āđāļĨāļ°āļāļģāļāļēāļĄāļŠāļąāļĄāļ āļēāļĐāļāđāļāļēāļ
āđāļĢāļĩāļĒāļāļĢāļđāđ dbt āļŠāļģāļŦāļĢāļąāļ Data Analyst āļāļąāđāļāđāļāđāļāļēāļĢāļŠāļĢāđāļēāļāđāļĄāđāļāļĨ āļāļēāļĢāļāļāļŠāļāļāļāđāļāļĄāļđāļĨ āđāļāļāļāļāļķāļāļāļģāļāļēāļĄāļŠāļąāļĄāļ āļēāļĐāļāđāļāļēāļāļāļĩāđāļāļāļāđāļāļĒ āļāļĢāđāļāļĄāļāļąāļ§āļāļĒāđāļēāļāđāļāđāļāđāļĨāļ°āđāļāļ§āļāļāļīāļāļąāļāļīāļāļĩāđāļāļĩ