Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Commit a06b2c0

Browse files
authored
Create Modularizing LookML Code with Extends
1 parent bd2e840 commit a06b2c0

File tree

1 file changed

+311
-0
lines changed

1 file changed

+311
-0
lines changed
Lines changed: 311 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,311 @@
1+
2)
2+
3+
include: location.view
4+
view: users {
5+
extends: [location]
6+
sql_table_name: `cloud-training-demos.looker_ecomm.users`
7+
;;
8+
drill_fields: [id]
9+
10+
dimension: id {
11+
primary_key: yes
12+
type: number
13+
sql: ${TABLE}.id ;;
14+
}
15+
16+
dimension: age {
17+
type: number
18+
sql: ${TABLE}.age ;;
19+
}
20+
21+
dimension: city {
22+
type: string
23+
sql: ${TABLE}.city ;;
24+
}
25+
26+
dimension: country {
27+
type: string
28+
map_layer_name: countries
29+
sql: ${TABLE}.country ;;
30+
}
31+
32+
dimension_group: created {
33+
type: time
34+
timeframes: [
35+
raw,
36+
time,
37+
date,
38+
week,
39+
month,
40+
quarter,
41+
year
42+
]
43+
sql: ${TABLE}.created_at ;;
44+
}
45+
46+
dimension: email {
47+
type: string
48+
sql: ${TABLE}.email ;;
49+
}
50+
51+
dimension: first_name {
52+
type: string
53+
sql: ${TABLE}.first_name ;;
54+
}
55+
56+
dimension: gender {
57+
type: string
58+
sql: ${TABLE}.gender ;;
59+
}
60+
61+
dimension: last_name {
62+
type: string
63+
sql: ${TABLE}.last_name ;;
64+
}
65+
66+
dimension: latitude {
67+
type: number
68+
sql: ${TABLE}.latitude ;;
69+
}
70+
71+
dimension: longitude {
72+
type: number
73+
sql: ${TABLE}.longitude ;;
74+
}
75+
76+
dimension: state {
77+
type: string
78+
sql: ${TABLE}.state ;;
79+
map_layer_name: us_states
80+
}
81+
82+
dimension: traffic_source {
83+
type: string
84+
sql: ${TABLE}.traffic_source ;;
85+
}
86+
87+
dimension: zip {
88+
type: zipcode
89+
sql: ${TABLE}.zip ;;
90+
}
91+
92+
measure: count {
93+
type: count
94+
drill_fields: [id, last_name, first_name, events.count, order_items.count]
95+
}
96+
}
97+
98+
99+
100+
101+
102+
103+
3)
104+
105+
include: location.view
106+
view: events {
107+
extends: [location]
108+
sql_table_name: `cloud-training-demos.looker_ecomm.events`
109+
;;
110+
drill_fields: [id]
111+
112+
dimension: id {
113+
primary_key: yes
114+
type: number
115+
sql: ${TABLE}.id ;;
116+
}
117+
118+
dimension: ad_event_id {
119+
type: number
120+
# hidden: yes
121+
sql: ${TABLE}.ad_event_id ;;
122+
}
123+
124+
dimension: browser {
125+
type: string
126+
sql: ${TABLE}.browser ;;
127+
}
128+
129+
dimension: city {
130+
type: string
131+
sql: ${TABLE}.city ;;
132+
}
133+
134+
dimension: country {
135+
type: string
136+
map_layer_name: countries
137+
sql: ${TABLE}.country ;;
138+
}
139+
140+
dimension_group: created {
141+
type: time
142+
timeframes: [
143+
raw,
144+
time,
145+
date,
146+
week,
147+
month,
148+
quarter,
149+
year
150+
]
151+
sql: ${TABLE}.created_at ;;
152+
}
153+
154+
dimension: event_type {
155+
type: string
156+
sql: ${TABLE}.event_type ;;
157+
}
158+
159+
dimension: ip_address {
160+
type: string
161+
sql: ${TABLE}.ip_address ;;
162+
}
163+
164+
dimension: latitude {
165+
type: number
166+
sql: ${TABLE}.latitude ;;
167+
}
168+
169+
dimension: longitude {
170+
type: number
171+
sql: ${TABLE}.longitude ;;
172+
}
173+
174+
dimension: os {
175+
type: string
176+
sql: ${TABLE}.os ;;
177+
}
178+
179+
dimension: referrer_code {
180+
type: string
181+
sql: ${TABLE}.referrer_code ;;
182+
}
183+
184+
dimension: sequence_number {
185+
type: number
186+
sql: ${TABLE}.sequence_number ;;
187+
}
188+
189+
dimension: session_id {
190+
type: string
191+
sql: ${TABLE}.session_id ;;
192+
}
193+
194+
dimension: state {
195+
type: string
196+
sql: ${TABLE}.state ;;
197+
}
198+
199+
dimension: traffic_source {
200+
type: string
201+
sql: ${TABLE}.traffic_source ;;
202+
}
203+
204+
dimension: uri {
205+
type: string
206+
sql: ${TABLE}.uri ;;
207+
}
208+
209+
dimension: user_id {
210+
type: number
211+
# hidden: yes
212+
sql: ${TABLE}.user_id ;;
213+
}
214+
215+
dimension: zip {
216+
type: zipcode
217+
sql: ${TABLE}.zip ;;
218+
}
219+
220+
measure: count {
221+
type: count
222+
drill_fields: [id, ad_events.id, users.last_name, users.id, users.first_name]
223+
}
224+
}
225+
226+
227+
228+
229+
4)
230+
231+
connection: "bigquery_public_data_looker"
232+
233+
# include all the views
234+
include: "/views/*.view"
235+
include: "/z_tests/*.lkml"
236+
include: "/**/*.dashboard"
237+
238+
datagroup: training_ecommerce_default_datagroup {
239+
# sql_trigger: SELECT MAX(id) FROM etl_log;;
240+
max_cache_age: "1 hour"
241+
}
242+
243+
persist_with: training_ecommerce_default_datagroup
244+
245+
label: "E-Commerce Training"
246+
247+
explore: order_items {
248+
join: users {
249+
type: left_outer
250+
sql_on: ${order_items.user_id} = ${users.id} ;;
251+
relationship: many_to_one
252+
}
253+
254+
join: inventory_items {
255+
type: left_outer
256+
sql_on: ${order_items.inventory_item_id} = ${inventory_items.id} ;;
257+
relationship: many_to_one
258+
}
259+
260+
join: products {
261+
type: left_outer
262+
sql_on: ${inventory_items.product_id} = ${products.id} ;;
263+
relationship: many_to_one
264+
}
265+
266+
join: distribution_centers {
267+
type: left_outer
268+
sql_on: ${products.distribution_center_id} = ${distribution_centers.id} ;;
269+
relationship: many_to_one
270+
}
271+
}
272+
273+
explore: base_events {
274+
extension: required
275+
join: event_session_facts {
276+
type: left_outer
277+
sql_on: ${events.session_id} = ${event_session_facts.session_id} ;;
278+
relationship: many_to_one
279+
}
280+
join: users {
281+
type: left_outer
282+
sql_on: ${events.user_id} = ${users.id} ;;
283+
relationship: many_to_one
284+
}
285+
}
286+
287+
explore: events {
288+
description: "Start here for Event analysis"
289+
fields: [ALL_FIELDS*]
290+
from: events
291+
view_name: events
292+
extends: [base_events]
293+
join: event_session_funnel {
294+
type: left_outer
295+
sql_on: ${events.session_id} = ${event_session_funnel.session_id} ;;
296+
relationship: many_to_one
297+
}
298+
}
299+
300+
explore: conversions {
301+
description: "Start here for Conversion Analysis"
302+
fields: [ALL_FIELDS*, -order_items.total_revenue_from_completed_orders]
303+
from: events
304+
view_name: events
305+
extends: [base_events]
306+
join: order_items {
307+
type: left_outer
308+
sql_on: ${users.id} = ${order_items.user_id} ;;
309+
relationship: many_to_many
310+
}
311+
}

0 commit comments

Comments
 (0)