dbt
Video editing
Company Events
Company Events model for video editing.
inferred
Blocks
company_events.sql · 98 lines
inferred
-- models/company_events.sql
{{ config(materialized='table') }}
SELECT
domain_userid,
domain_sessionidx,
event_id,
event,
collector_tstamp,
dvce_tstamp,
page_title,
page_urlscheme,
page_urlhost,
page_urlpath,
page_urlport,
page_urlquery,
page_urlfragment,
refr_medium,
refr_source,
refr_term,
refr_urlhost,
refr_urlpath,
pp_xoffset_max,
pp_xoffset_min,
pp_yoffset_max,
pp_yoffset_min,
se_category,
se_action,
se_label,
se_property,
se_value,
doc_height,
doc_width,
tr_orderid,
tr_affiliation,
tr_total,
tr_tax,
tr_city,
tr_state,
tr_country,
ti_orderid,
ti_category,
ti_sku,
ti_name,
ti_price,
ti_quantity
FROM company_analytics.events
WHERE domain_userid IS NOT NULL
# models/schema.yml
version: 2
models:
- name: company_events
columns:
- name: event_id
tests:
- unique
- not_null
- name: event_type
- name: timestamp
- name: session_index
- name: user_id
- name: session_id
- name: page_title
- name: page_url_scheme
- name: page_url_host
- name: page_url_path
- name: page_url_port
- name: page_url_query
- name: page_url_fragment
- name: refr_medium
- name: first_event_in_session
- name: first_event_for_visitor
- name: refr_source
- name: refr_term
- name: refr_url_host
- name: refr_url_path
- name: x_offset
- name: pp_xoffset_min
- name: y_offset
- name: pp_yoffset_min
- name: structured_event_action
- name: structured_event_category
- name: structured_event_label
- name: structured_event_property
- name: structured_event_value
- name: user_agent
- name: page_height
- name: page_width
- name: transaction_order_id
- name: transaction_affiliation
- name: transaction_value
- name: transaction_tax
- name: transaction_address_city
- name: transaction_address_state
- name: transaction_address_country
- name: transaction_item_order_id
Assumptions
- materialized='table' inferred from a LookML persist hint (persist_for / datagroup / sql_trigger_value).
- schema.yml columns come from view dimensions; a primary_key dimension gets unique + not_null tests.
company_events.sql · 45 lines
source-preserved
validation: parses
SELECT
domain_userid,
domain_sessionidx,
event_id,
event,
collector_tstamp,
dvce_tstamp,
page_title,
page_urlscheme,
page_urlhost,
page_urlpath,
page_urlport,
page_urlquery,
page_urlfragment,
refr_medium,
refr_source,
refr_term,
refr_urlhost,
refr_urlpath,
pp_xoffset_max,
pp_xoffset_min,
pp_yoffset_max,
pp_yoffset_min,
se_category,
se_action,
se_label,
se_property,
se_value,
doc_height,
doc_width,
tr_orderid,
tr_affiliation,
tr_total,
tr_tax,
tr_city,
tr_state,
tr_country,
ti_orderid,
ti_category,
ti_sku,
ti_name,
ti_price,
ti_quantity
FROM company_analytics.events
WHERE domain_userid IS NOT NULL
company_events.view.lkml · 377 lines
inferred
view: company_events {
derived_table: {
sql: SELECT
domain_userid,
domain_sessionidx,
event_id,
event,
collector_tstamp,
dvce_tstamp,
page_title,
page_urlscheme,
page_urlhost,
page_urlpath,
page_urlport,
page_urlquery,
page_urlfragment,
refr_medium,
refr_source,
refr_term,
refr_urlhost,
refr_urlpath,
pp_xoffset_max,
pp_xoffset_min,
pp_yoffset_max,
pp_yoffset_min,
se_category,
se_action,
se_label,
se_property,
se_value,
doc_height,
doc_width,
tr_orderid,
tr_affiliation,
tr_total,
tr_tax,
tr_city,
tr_state,
tr_country,
ti_orderid,
ti_category,
ti_sku,
ti_name,
ti_price,
ti_quantity
FROM company_analytics.events
WHERE domain_userid IS NOT NULL ;;
persist_for: "24 hours"
}
dimension: event_id {
primary_key: yes
sql: ${TABLE}.event_id ;;
}
dimension: event_type {
sql: ${TABLE}.event ;;
}
dimension: timestamp {
sql: ${TABLE}.collector_tstamp ;;
}
dimension: session_index {
type: number
sql: ${TABLE}.domain_sessionidx ;;
}
dimension: user_id {
sql: ${TABLE}.domain_userid ;;
}
dimension: session_id {
sql: ${TABLE}.domain_userid || '-' || ${TABLE}.domain_sessionidx ;;
}
dimension: page_title {
sql: ${TABLE}.page_title ;;
}
dimension: page_url_scheme {
sql: ${TABLE}.page_urlscheme ;;
}
dimension: page_url_host {
sql: ${TABLE}.page_urlhost ;;
}
dimension: page_url_path {
sql: ${TABLE}.page_urlpath ;;
}
dimension: page_url_port {
type: int
hidden: yes
sql: ${TABLE}.page_urlport ;;
}
dimension: page_url_query {
hidden: yes
sql: ${TABLE}.page_urlquery ;;
}
dimension: page_url_fragment {
hidden: yes
sql: ${TABLE}.page_urlfragment ;;
}
dimension: refr_medium {
sql: ${TABLE}.refr_medium ;;
}
dimension: first_event_in_session {
type: yesno
sql: ${TABLE}.refr_medium != 'internal' ;;
}
dimension: first_event_for_visitor {
type: yesno
sql: ${TABLE}.refr_medium != 'internal' AND ${TABLE}.domain_sessionidx = 1 ;;
}
dimension: refr_source {
sql: ${TABLE}.refr_source ;;
}
dimension: refr_term {
sql: ${TABLE}.refr_term ;;
}
dimension: refr_url_host {
sql: ${TABLE}.refr_urlhost ;;
}
dimension: refr_url_path {
sql: ${TABLE}.refr_urlpath ;;
}
dimension: x_offset {
type: int
sql: ${TABLE}.pp_xoffset_max ;;
}
dimension: pp_xoffset_min {
type: int
hidden: yes
sql: ${TABLE}.pp_xoffset_min ;;
}
dimension: y_offset {
type: int
sql: ${TABLE}.pp_yoffset_max ;;
}
dimension: pp_yoffset_min {
type: int
hidden: yes
sql: ${TABLE}.pp_yoffset_min ;;
}
dimension: structured_event_action {
sql: ${TABLE}.se_action ;;
}
dimension: structured_event_category {
sql: ${TABLE}.se_category ;;
}
dimension: structured_event_label {
sql: ${TABLE}.se_label ;;
}
dimension: structured_event_property {
sql: ${TABLE}.se_property ;;
}
dimension: structured_event_value {
type: number
sql: ${TABLE}.se_value ;;
}
dimension: user_agent {
hidden: yes
sql: ${TABLE}.useragent ;;
}
dimension: page_height {
type: int
sql: ${TABLE}.doc_height ;;
}
dimension: page_width {
type: int
sql: ${TABLE}.doc_width ;;
}
dimension: transaction_order_id {
sql: ${TABLE}.tr_orderid ;;
}
dimension: transaction_affiliation {
sql: ${TABLE}.tr_affiliation ;;
}
dimension: transaction_value {
type: number
sql: ${TABLE}.tr_total ;;
}
dimension: transaction_tax {
type: number
sql: ${TABLE}.tr_tax ;;
}
dimension: transaction_address_city {
sql: ${TABLE}.tr_city ;;
}
dimension: transaction_address_state {
sql: ${TABLE}.tr_state ;;
}
dimension: transaction_address_country {
sql: ${TABLE}.tr_country ;;
}
dimension: transaction_item_order_id {
sql: ${TABLE}.ti_orderid ;;
}
dimension: transaction_item_category {
sql: ${TABLE}.ti_category ;;
}
dimension: transaction_item_sku {
sql: ${TABLE}.ti_sku ;;
}
dimension: transaction_item_name {
sql: ${TABLE}.ti_name ;;
}
dimension: transaction_item_price {
type: number
sql: ${TABLE}.ti_price ;;
}
dimension: transaction_item_quantity {
type: int
sql: ${TABLE}.ti_quantity ;;
}
dimension: transaction_items_list {
sql: ${transaction_order_id} ;;
}
dimension_group: timestamp {
type: time
timeframes: [time, date, week, month]
sql: ${TABLE}.collector_tstamp ;;
}
dimension_group: device_timestamp {
type: time
timeframes: [time, date, week, month]
sql: ${TABLE}.dvce_tstamp ;;
}
measure: count {
type: count
}
measure: page_pings_count {
type: count
filters: [event_type: "page_ping"]
}
measure: page_views_count {
type: count
filters: [event_type: "page_view"]
}
measure: transactions_count {
type: count_distinct
filters: [event_type: "transaction"]
sql: ${transaction_order_id} ;;
}
measure: distinct_pages_viewed_count {
type: count_distinct
sql: ${page_url_path} ;;
}
measure: sessions_count {
type: count_distinct
sql: ${session_id} ;;
}
measure: page_pings_per_session {
type: number
sql: NULLIF(${page_pings_count},0)/NULLIF(${sessions_count},0)::REAL ;;
}
measure: page_pings_per_visitor {
type: number
sql: NULLIF(${page_pings_count},0)/NULLIF(${visitors_count},0)::REAL ;;
}
measure: transactions_per_session {
type: number
sql: NULLIF(${transactions_count},0)/NULLIF(${sessions_count},0)::REAL ;;
}
measure: transactions_per_visitor {
type: number
sql: NULLIF(${transactions_count},0)/NULLIF(${visitors_count},0)::REAL ;;
}
measure: visitors_count {
type: count_distinct
hidden: yes
sql: ${user_id} ;;
}
measure: events_per_session {
type: number
sql: ${count}/NULLIF(${sessions_count},0)::REAL ;;
}
measure: events_per_visitor {
type: number
sql: ${count}/NULLIF(${visitors_count},0)::REAL ;;
}
measure: page_views_per_sessions {
type: number
sql: ${page_views_count}/NULLIF(${sessions_count},0)::REAL ;;
}
measure: page_views_per_visitor {
type: number
sql: ${page_views_count}/NULLIF(${visitors_count},0)::REAL ;;
}
measure: landing_page_views_count {
type: count
filters: [event_type: "page_view"]
filters: [first_event_in_session: "True"]
}
measure: internal_page_views_count {
type: count
filters: [event_type: "page_view"]
filters: [first_event_in_session: "False"]
}
measure: approx_user_usage_in_minutes {
type: number
sql: APPROXIMATE COUNT( DISTINCT CONCAT(FLOOR(EXTRACT (EPOCH FROM ${TABLE}.collector_tstamp)/10), ${TABLE}.domain_userid) ) /6 ;;
}
measure: approx_usage_per_visitor_in_seconds {
type: number
sql: ${approx_user_usage_in_minutes}/NULLIF(${visitors_count}, 0)::REAL ;;
}
measure: approx_usage_per_visit_in_seconds {
type: number
sql: ${approx_user_usage_in_minutes}/NULLIF(${sessions_count}, 0)::REAL ;;
}
measure: transactions_value {
type: sum
filters: [event_type: "transaction"]
sql: ${transaction_value} ;;
}
}
company_events.view.lookml · 251 lines
source-preserved
- view: company_events
derived_table:
sql: SELECT
domain_userid,
domain_sessionidx,
event_id,
event,
collector_tstamp,
dvce_tstamp,
page_title,
page_urlscheme,
page_urlhost,
page_urlpath,
page_urlport,
page_urlquery,
page_urlfragment,
refr_medium,
refr_source,
refr_term,
refr_urlhost,
refr_urlpath,
pp_xoffset_max,
pp_xoffset_min,
pp_yoffset_max,
pp_yoffset_min,
se_category,
se_action,
se_label,
se_property,
se_value,
doc_height,
doc_width,
tr_orderid,
tr_affiliation,
tr_total,
tr_tax,
tr_city,
tr_state,
tr_country,
ti_orderid,
ti_category,
ti_sku,
ti_name,
ti_price,
ti_quantity
FROM company_analytics.events
WHERE domain_userid IS NOT NULL
persist_for: 24 hours
fields:
- dimension: event_id
primary_key: true
sql: ${TABLE}.event_id
- dimension: event_type
sql: ${TABLE}.event
- dimension: timestamp
sql: ${TABLE}.collector_tstamp
- dimension: session_index
type: number
sql: ${TABLE}.domain_sessionidx
- dimension: user_id
sql: ${TABLE}.domain_userid
- dimension: session_id
sql: ${TABLE}.domain_userid || '-' || ${TABLE}.domain_sessionidx
- dimension: page_title
sql: ${TABLE}.page_title
- dimension: page_url_scheme
sql: ${TABLE}.page_urlscheme
- dimension: page_url_host
sql: ${TABLE}.page_urlhost
- dimension: page_url_path
sql: ${TABLE}.page_urlpath
- dimension: page_url_port
type: int
hidden: true
sql: ${TABLE}.page_urlport
- dimension: page_url_query
hidden: true
sql: ${TABLE}.page_urlquery
- dimension: page_url_fragment
hidden: true
sql: ${TABLE}.page_urlfragment
- dimension: refr_medium
sql: ${TABLE}.refr_medium
- dimension: first_event_in_session
type: yesno
sql: ${TABLE}.refr_medium != 'internal'
- dimension: first_event_for_visitor
type: yesno
sql: ${TABLE}.refr_medium != 'internal' AND ${TABLE}.domain_sessionidx = 1
- dimension: refr_source
sql: ${TABLE}.refr_source
- dimension: refr_term
sql: ${TABLE}.refr_term
- dimension: refr_url_host
sql: ${TABLE}.refr_urlhost
- dimension: refr_url_path
sql: ${TABLE}.refr_urlpath
- dimension: x_offset
type: int
sql: ${TABLE}.pp_xoffset_max
- dimension: pp_xoffset_min
type: int
hidden: true
sql: ${TABLE}.pp_xoffset_min
- dimension: y_offset
type: int
sql: ${TABLE}.pp_yoffset_max
- dimension: pp_yoffset_min
type: int
hidden: true
sql: ${TABLE}.pp_yoffset_min
- dimension: structured_event_action
sql: ${TABLE}.se_action
- dimension: structured_event_category
sql: ${TABLE}.se_category
- dimension: structured_event_label
sql: ${TABLE}.se_label
- dimension: structured_event_property
sql: ${TABLE}.se_property
- dimension: structured_event_value
type: number
sql: ${TABLE}.se_value
- dimension: user_agent
hidden: true
sql: ${TABLE}.useragent
- dimension: page_height
type: int
sql: ${TABLE}.doc_height
- dimension: page_width
type: int
sql: ${TABLE}.doc_width
- dimension: transaction_order_id
sql: ${TABLE}.tr_orderid
- dimension: transaction_affiliation
sql: ${TABLE}.tr_affiliation
- dimension: transaction_value
type: number
sql: ${TABLE}.tr_total
- dimension: transaction_tax
type: number
sql: ${TABLE}.tr_tax
- dimension: transaction_address_city
sql: ${TABLE}.tr_city
- dimension: transaction_address_state
sql: ${TABLE}.tr_state
- dimension: transaction_address_country
sql: ${TABLE}.tr_country
- dimension: transaction_item_order_id
sql: ${TABLE}.ti_orderid
- dimension: transaction_item_category
sql: ${TABLE}.ti_category
- dimension: transaction_item_sku
sql: ${TABLE}.ti_sku
- dimension: transaction_item_name
sql: ${TABLE}.ti_name
- dimension: transaction_item_price
type: number
sql: ${TABLE}.ti_price
- dimension: transaction_item_quantity
type: int
sql: ${TABLE}.ti_quantity
- dimension: transaction_items_list
sql: ${transaction_order_id}
- dimension_group: timestamp
type: time
timeframes:
- time
- date
- week
- month
sql: ${TABLE}.collector_tstamp
- dimension_group: device_timestamp
type: time
timeframes:
- time
- date
- week
- month
sql: ${TABLE}.dvce_tstamp
- measure: count
type: count
- measure: page_pings_count
type: count
filters:
- event_type: page_ping
- measure: page_views_count
type: count
filters:
- event_type: page_view
- measure: transactions_count
type: count_distinct
filters:
- event_type: transaction
sql: ${transaction_order_id}
- measure: distinct_pages_viewed_count
type: count_distinct
sql: ${page_url_path}
- measure: sessions_count
type: count_distinct
sql: ${session_id}
- measure: page_pings_per_session
type: number
sql: NULLIF(${page_pings_count},0)/NULLIF(${sessions_count},0)::REAL
- measure: page_pings_per_visitor
type: number
sql: NULLIF(${page_pings_count},0)/NULLIF(${visitors_count},0)::REAL
- measure: transactions_per_session
type: number
sql: NULLIF(${transactions_count},0)/NULLIF(${sessions_count},0)::REAL
- measure: transactions_per_visitor
type: number
sql: NULLIF(${transactions_count},0)/NULLIF(${visitors_count},0)::REAL
- measure: visitors_count
type: count_distinct
sql: ${user_id}
- measure: events_per_session
type: number
sql: ${count}/NULLIF(${sessions_count},0)::REAL
- measure: events_per_visitor
type: number
sql: ${count}/NULLIF(${visitors_count},0)::REAL
- measure: page_views_per_sessions
type: number
sql: ${page_views_count}/NULLIF(${sessions_count},0)::REAL
- measure: page_views_per_visitor
type: number
sql: ${page_views_count}/NULLIF(${visitors_count},0)::REAL
- measure: landing_page_views_count
type: count
filters:
- event_type: page_view
- first_event_in_session: True
- measure: internal_page_views_count
type: count
filters:
- event_type: page_view
- first_event_in_session: False
- measure: approx_user_usage_in_minutes
type: number
sql: APPROXIMATE COUNT( DISTINCT CONCAT(FLOOR(EXTRACT (EPOCH FROM ${TABLE}.collector_tstamp)/10), ${TABLE}.domain_userid) ) /6
- measure: approx_usage_per_visitor_in_seconds
type: number
sql: ${approx_user_usage_in_minutes}/NULLIF(${visitors_count}, 0)::REAL
- measure: approx_usage_per_visit_in_seconds
type: number
sql: ${approx_user_usage_in_minutes}/NULLIF(${sessions_count}, 0)::REAL
- measure: transactions_value
type: sum
filters:
- event_type: transaction
sql: ${transaction_value}
Contents
- company_events.sql
- company_events.sql
- company_events.view.lkml
- company_events.view.lookml