SQL Electronics cloud storage

Day1 View Usage By Mesh

Day1 View Usage By Mesh model for electronics cloud storage.

source-preserved

Blocks

day1_view_usage_by_mesh.sql · 47 lines
inferred
-- models/day1_view_usage_by_mesh.sql
{{ config(materialized='view') }}

select va.mesh_id,
case when vil.name is null then 'Unknown view ' || va.view_id else vil.name end as view_name,
CASE
   WHEN vil.name = 'Startup' or vil.name = 'WelcomeSplash' THEN 1
   WHEN vil.name like 'SetupAccount%' or vil.name = 'Settings' THEN 2
   WHEN vil.name = 'Scene_Digest' THEN 4
   WHEN vil.name = 'Scene_Timeline' THEN 8
   WHEN vil.name = 'Scene_Album' THEN 16
   WHEN vil.name = 'Scene_Photos' THEN 32
   WHEN vil.name = 'Scene_Mesh' or vil.name = 'MeshStatus' THEN 64
   WHEN vil.name like '%List' THEN 128
   WHEN vil.name = 'Scene_JustAdded' THEN 256
   WHEN vil.name = 'Scene_FullScreen' THEN 512
   WHEN vil.name = 'PlayVideo' or vil.name = 'Scene_Videos' THEN 1024
   WHEN vil.name = 'Scene_Page' THEN 2048
   WHEN vil.name = 'Scene_Favorites' THEN 4096
   WHEN vil.name = 'ImportSelection' or vil.name = 'ContinuousImport' or vil.name = 'Scene_PowerCopy' THEN 8192
   WHEN vil.name like 'Scene_Event%' or vil.name like 'Event%' THEN 16384
   WHEN vil.name = 'Scene_ActionNeeded' THEN 32768
   WHEN vil.name = 'Scene_BackingUp' THEN 65536
   WHEN vil.name like 'Scene_Tag%' or vil.name like 'Tag%' THEN 131072
   WHEN vil.name like 'MomentsPast%' THEN 262144
   WHEN true THEN 0
END AS view_mask
from {{ this }}.view_access va
left join {{ this }}.view_lookup vil on va.view_id = vil.id
join analytics.user_account_map uam on va.mesh_id = uam.mesh_id
where va.view_id is not null and va.view_id > 1
  and va.message_ts <= dateadd( day, 1, uam.created )
group by va.mesh_id, view_name, view_mask

# models/schema.yml
version: 2

models:
  - name: day1_view_usage_by_mesh
    columns:
      - name: mesh_id
      - name: pk
        tests:
          - unique
          - not_null
      - name: view_name
      - name: view_mask

Assumptions

  • materialized='view' is the default; no persist hint found.
  • schema.yml columns come from view dimensions; a primary_key dimension gets unique + not_null tests.
day1_view_usage_by_mesh.sql · 30 lines
source-preserved validation: not checked
select va.mesh_id,
case when vil.name is null then 'Unknown view ' || va.view_id else vil.name end as view_name,
CASE
   WHEN vil.name = 'Startup' or vil.name = 'WelcomeSplash' THEN 1
   WHEN vil.name like 'SetupAccount%' or vil.name = 'Settings' THEN 2
   WHEN vil.name = 'Scene_Digest' THEN 4
   WHEN vil.name = 'Scene_Timeline' THEN 8
   WHEN vil.name = 'Scene_Album' THEN 16
   WHEN vil.name = 'Scene_Photos' THEN 32
   WHEN vil.name = 'Scene_Mesh' or vil.name = 'MeshStatus' THEN 64
   WHEN vil.name like '%List' THEN 128
   WHEN vil.name = 'Scene_JustAdded' THEN 256
   WHEN vil.name = 'Scene_FullScreen' THEN 512
   WHEN vil.name = 'PlayVideo' or vil.name = 'Scene_Videos' THEN 1024
   WHEN vil.name = 'Scene_Page' THEN 2048
   WHEN vil.name = 'Scene_Favorites' THEN 4096
   WHEN vil.name = 'ImportSelection' or vil.name = 'ContinuousImport' or vil.name = 'Scene_PowerCopy' THEN 8192
   WHEN vil.name like 'Scene_Event%' or vil.name like 'Event%' THEN 16384
   WHEN vil.name = 'Scene_ActionNeeded' THEN 32768
   WHEN vil.name = 'Scene_BackingUp' THEN 65536
   WHEN vil.name like 'Scene_Tag%' or vil.name like 'Tag%' THEN 131072
   WHEN vil.name like 'MomentsPast%' THEN 262144
   WHEN true THEN 0
END AS view_mask
from ${TABLE}.view_access va
left join ${TABLE}.view_lookup vil on va.view_id = vil.id
join analytics.user_account_map uam on va.mesh_id = uam.mesh_id
where va.view_id is not null and va.view_id > 1
  and va.message_ts <= dateadd( day, 1, uam.created )
group by va.mesh_id, view_name, view_mask
day1_view_usage_by_mesh.view.lkml · 56 lines
inferred
view: day1_view_usage_by_mesh {
  derived_table: {
    sql: select va.mesh_id,
case when vil.name is null then 'Unknown view ' || va.view_id else vil.name end as view_name,
CASE
   WHEN vil.name = 'Startup' or vil.name = 'WelcomeSplash' THEN 1
   WHEN vil.name like 'SetupAccount%' or vil.name = 'Settings' THEN 2
   WHEN vil.name = 'Scene_Digest' THEN 4
   WHEN vil.name = 'Scene_Timeline' THEN 8
   WHEN vil.name = 'Scene_Album' THEN 16
   WHEN vil.name = 'Scene_Photos' THEN 32
   WHEN vil.name = 'Scene_Mesh' or vil.name = 'MeshStatus' THEN 64
   WHEN vil.name like '%List' THEN 128
   WHEN vil.name = 'Scene_JustAdded' THEN 256
   WHEN vil.name = 'Scene_FullScreen' THEN 512
   WHEN vil.name = 'PlayVideo' or vil.name = 'Scene_Videos' THEN 1024
   WHEN vil.name = 'Scene_Page' THEN 2048
   WHEN vil.name = 'Scene_Favorites' THEN 4096
   WHEN vil.name = 'ImportSelection' or vil.name = 'ContinuousImport' or vil.name = 'Scene_PowerCopy' THEN 8192
   WHEN vil.name like 'Scene_Event%' or vil.name like 'Event%' THEN 16384
   WHEN vil.name = 'Scene_ActionNeeded' THEN 32768
   WHEN vil.name = 'Scene_BackingUp' THEN 65536
   WHEN vil.name like 'Scene_Tag%' or vil.name like 'Tag%' THEN 131072
   WHEN vil.name like 'MomentsPast%' THEN 262144
   WHEN true THEN 0
END AS view_mask
from ${TABLE}.view_access va
left join ${TABLE}.view_lookup vil on va.view_id = vil.id
join analytics.user_account_map uam on va.mesh_id = uam.mesh_id
where va.view_id is not null and va.view_id > 1
  and va.message_ts <= dateadd( day, 1, uam.created )
group by va.mesh_id, view_name, view_mask ;;
  }

  dimension: mesh_id {
    sql: ${TABLE}.mesh_id ;;
  }

  dimension: pk {
    primary_key: yes
    sql: ${mesh_id} || ${view_name} ;;
  }

  dimension: view_name {
    sql: ${TABLE}.view_name ;;
  }

  dimension: view_mask {
    sql: ${TABLE}.view_mask ;;
  }

  measure: count {
    type: count
    drill_fields: [detail*]
  }
}
day1_view_usage_by_mesh.view.lookml · 46 lines
source-preserved
- view: day1_view_usage_by_mesh
  derived_table:
    sql: select va.mesh_id,
case when vil.name is null then 'Unknown view ' || va.view_id else vil.name end as view_name,
CASE
   WHEN vil.name = 'Startup' or vil.name = 'WelcomeSplash' THEN 1
   WHEN vil.name like 'SetupAccount%' or vil.name = 'Settings' THEN 2
   WHEN vil.name = 'Scene_Digest' THEN 4
   WHEN vil.name = 'Scene_Timeline' THEN 8
   WHEN vil.name = 'Scene_Album' THEN 16
   WHEN vil.name = 'Scene_Photos' THEN 32
   WHEN vil.name = 'Scene_Mesh' or vil.name = 'MeshStatus' THEN 64
   WHEN vil.name like '%List' THEN 128
   WHEN vil.name = 'Scene_JustAdded' THEN 256
   WHEN vil.name = 'Scene_FullScreen' THEN 512
   WHEN vil.name = 'PlayVideo' or vil.name = 'Scene_Videos' THEN 1024
   WHEN vil.name = 'Scene_Page' THEN 2048
   WHEN vil.name = 'Scene_Favorites' THEN 4096
   WHEN vil.name = 'ImportSelection' or vil.name = 'ContinuousImport' or vil.name = 'Scene_PowerCopy' THEN 8192
   WHEN vil.name like 'Scene_Event%' or vil.name like 'Event%' THEN 16384
   WHEN vil.name = 'Scene_ActionNeeded' THEN 32768
   WHEN vil.name = 'Scene_BackingUp' THEN 65536
   WHEN vil.name like 'Scene_Tag%' or vil.name like 'Tag%' THEN 131072
   WHEN vil.name like 'MomentsPast%' THEN 262144
   WHEN true THEN 0
END AS view_mask
from ${TABLE}.view_access va
left join ${TABLE}.view_lookup vil on va.view_id = vil.id
join analytics.user_account_map uam on va.mesh_id = uam.mesh_id
where va.view_id is not null and va.view_id > 1
  and va.message_ts <= dateadd( day, 1, uam.created )
group by va.mesh_id, view_name, view_mask
  fields:
  - dimension: mesh_id
    sql: ${TABLE}.mesh_id
  - dimension: pk
    primary_key: true
    sql: ${mesh_id} || ${view_name}
  - dimension: view_name
    sql: ${TABLE}.view_name
  - dimension: view_mask
    sql: ${TABLE}.view_mask
  - measure: count
    type: count
    drill_fields:
    - detail*

Contents

  • day1_view_usage_by_mesh.sql
  • day1_view_usage_by_mesh.sql
  • day1_view_usage_by_mesh.view.lkml
  • day1_view_usage_by_mesh.view.lookml