0% found this document useful (0 votes)
3 views7 pages

Modularizing LookML Code With Extends

The document defines several views for a data model related to an e-commerce training platform, including 'location', 'users', and 'events', each with specific dimensions and measures. It establishes relationships between these views and includes an exploration structure for analyzing order items, events, and conversions. Additionally, it specifies a connection to BigQuery and includes settings for caching and data grouping.

Uploaded by

dinit85311
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as TXT, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
3 views7 pages

Modularizing LookML Code With Extends

The document defines several views for a data model related to an e-commerce training platform, including 'location', 'users', and 'events', each with specific dimensions and measures. It establishes relationships between these views and includes an exploration structure for analyzing order items, events, and conversions. Additionally, it specifies a connection to BigQuery and includes settings for caching and data grouping.

Uploaded by

dinit85311
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as TXT, PDF, TXT or read online on Scribd
You are on page 1/ 7

FILE NAME :- location

view: location {
extension: required
dimension: city {
type: string
sql: ${TABLE}.city ;;
}
dimension: state {
type: string
sql: ${TABLE}.state ;;
map_layer_name: us_states
}
dimension: zip {
type: zipcode
sql: ${TABLE}.zip ;;
}
dimension: country {
type: string
map_layer_name: countries
sql: ${TABLE}.country ;;
}

dimension: latitude {
type: number
sql: ${TABLE}.latitude ;;
}

dimension: longitude {
type: number
sql: ${TABLE}.longitude ;;
}
}

-----------------------------------------------------------------------------------
-----------------------------------------------------------------------------------
-----------------------------------------------------------------

FILE NAME :- users

include: location.view
view: users {
extends: [location]
sql_table_name: `cloud-training-demos.looker_ecomm.users`
;;
drill_fields: [id]

dimension: id {
primary_key: yes
type: number
sql: ${TABLE}.id ;;
}

dimension: age {
type: number
sql: ${TABLE}.age ;;
}

dimension: city {
type: string
sql: ${TABLE}.city ;;
}

dimension: country {
type: string
map_layer_name: countries
sql: ${TABLE}.country ;;
}

dimension_group: created {
type: time
timeframes: [
raw,
time,
date,
week,
month,
quarter,
year
]
sql: ${TABLE}.created_at ;;
}

dimension: email {
type: string
sql: ${TABLE}.email ;;
}

dimension: first_name {
type: string
sql: ${TABLE}.first_name ;;
}

dimension: gender {
type: string
sql: ${TABLE}.gender ;;
}

dimension: last_name {
type: string
sql: ${TABLE}.last_name ;;
}

dimension: latitude {
type: number
sql: ${TABLE}.latitude ;;
}
dimension: longitude {
type: number
sql: ${TABLE}.longitude ;;
}

dimension: state {
type: string
sql: ${TABLE}.state ;;
map_layer_name: us_states
}

dimension: traffic_source {
type: string
sql: ${TABLE}.traffic_source ;;
}

dimension: zip {
type: zipcode
sql: ${TABLE}.zip ;;
}

measure: count {
type: count
drill_fields: [id, last_name, first_name, events.count, order_items.count]
}
}

-----------------------------------------------------------------------------------
-----------------------------------------------------------------------------------
-----------------------------------------------------------------

FILE NAME :- events

include: location.view
view: events {
extends: [location]
sql_table_name: `cloud-training-demos.looker_ecomm.events`
;;
drill_fields: [id]

dimension: id {
primary_key: yes
type: number
sql: ${TABLE}.id ;;
}

dimension: ad_event_id {
type: number
# hidden: yes
sql: ${TABLE}.ad_event_id ;;
}

dimension: browser {
type: string
sql: ${TABLE}.browser ;;
}

dimension: city {
type: string
sql: ${TABLE}.city ;;
}

dimension: country {
type: string
map_layer_name: countries
sql: ${TABLE}.country ;;
}

dimension_group: created {
type: time
timeframes: [
raw,
time,
date,
week,
month,
quarter,
year
]
sql: ${TABLE}.created_at ;;
}

dimension: event_type {
type: string
sql: ${TABLE}.event_type ;;
}

dimension: ip_address {
type: string
sql: ${TABLE}.ip_address ;;
}

dimension: latitude {
type: number
sql: ${TABLE}.latitude ;;
}

dimension: longitude {
type: number
sql: ${TABLE}.longitude ;;
}

dimension: os {
type: string
sql: ${TABLE}.os ;;
}

dimension: referrer_code {
type: string
sql: ${TABLE}.referrer_code ;;
}

dimension: sequence_number {
type: number
sql: ${TABLE}.sequence_number ;;
}

dimension: session_id {
type: string
sql: ${TABLE}.session_id ;;
}

dimension: state {
type: string
sql: ${TABLE}.state ;;
}

dimension: traffic_source {
type: string
sql: ${TABLE}.traffic_source ;;
}

dimension: uri {
type: string
sql: ${TABLE}.uri ;;
}

dimension: user_id {
type: number
# hidden: yes
sql: ${TABLE}.user_id ;;
}

dimension: zip {
type: zipcode
sql: ${TABLE}.zip ;;
}

measure: count {
type: count
drill_fields: [id, ad_events.id, users.last_name, users.id, users.first_name]
}
}

-----------------------------------------------------------------------------------
-----------------------------------------------------------------------------------
-----------------------------------------------------------------

FILE NAME :- training_ecommerce


connection: "bigquery_public_data_looker"

# include all the views


include: "/views/*.view"
include: "/z_tests/*.lkml"
include: "/**/*.dashboard"

datagroup: training_ecommerce_default_datagroup {
# sql_trigger: SELECT MAX(id) FROM etl_log;;
max_cache_age: "1 hour"
}

persist_with: training_ecommerce_default_datagroup

label: "E-Commerce Training"

explore: order_items {
join: users {
type: left_outer
sql_on: ${order_items.user_id} = ${users.id} ;;
relationship: many_to_one
}

join: inventory_items {
type: left_outer
sql_on: ${order_items.inventory_item_id} = ${inventory_items.id} ;;
relationship: many_to_one
}

join: products {
type: left_outer
sql_on: ${inventory_items.product_id} = ${products.id} ;;
relationship: many_to_one
}

join: distribution_centers {
type: left_outer
sql_on: ${products.distribution_center_id} = ${distribution_centers.id} ;;
relationship: many_to_one
}
}

explore: base_events {
extension: required
join: event_session_facts {
type: left_outer
sql_on: ${events.session_id} = ${event_session_facts.session_id} ;;
relationship: many_to_one
}
join: users {
type: left_outer
sql_on: ${events.user_id} = ${users.id} ;;
relationship: many_to_one
}
}
explore: events {
description: "Start here for Event analysis"
fields: [ALL_FIELDS*]
from: events
view_name: events
extends: [base_events]
join: event_session_funnel {
type: left_outer
sql_on: ${events.session_id} = ${event_session_funnel.session_id} ;;
relationship: many_to_one
}
}

explore: conversions {
description: "Start here for Conversion Analysis"
fields: [ALL_FIELDS*, -order_items.total_revenue_from_completed_orders]
from: events
view_name: events
extends: [base_events]
join: order_items {
type: left_outer
sql_on: ${users.id} = ${order_items.user_id} ;;
relationship: many_to_many
}
}

-----------------------------------------------------------------------------------
-----------------------------------------------------------------------------------
-----------------------------------------------------------------

You might also like