dbt Media publishing

Click New

Click New model for media publishing.

inferred

Blocks

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

SELECT
  click.click_id,
  click.parent_visit AS parent_visit_id,
  click.click_duration AS "click_duration",
  click.click_number AS "click_sequence",
  click.internal_search AS "internal_search",
  click.is_constructed AS "is_constructed",
  click.is_first AS "is_first",
  click.is_last  AS "is_last",
  click.line_number AS "line_number",
  click.link_traversal_index AS "link_traversal_index",
  click.number_of_requests AS "number_of_requests",
  click.page_bytes_sent AS "page_bytes_sent",
  click.page_visit_index AS "page_visit_index",
  click.processing_time AS "processing_time",
  click.referral_url AS "referral_url",
  click.source_batch AS "source_batch",
  click.status_code AS "status_code",
  click.timestamp AS "timestamp_date",
  click.total_bytes_sent AS "total_bytes_sent",
  click_general.country_code AS "country_code",
  click_general.edition AS "edition",
  click_general.edition_date AS "edition_date",
  click_general.load_time_ms AS "load_time_ms",
  click_general.navigational AS "is_navigational",
  click_general.num_comments AS "num_comments",
  click_general.num_likes AS "num_likes",
  click_general.num_mentions AS "num_mentions",
  click_general.num_share_facebook AS "num_share_facebook",
  click_general.num_share_twitter AS "num_share_twitter",
  click_general.pid AS "pid",
  click_general.segid AS "segid",
  click_general.segment_id AS "segment_id",
  click_general.sub_type AS "sub_type",
  click_general.video AS "is_video",
  click_general.weekend  AS "is_weekend"
FROM sanitized_db.si_cs_click_recent AS click
LEFT JOIN sanitized_db.sanitized_click_general AS click_general ON click.click_id = click_general.click_id
WHERE
  ((click.timestamp) >= (DATEADD(day,-89, DATE_TRUNC('day',GETDATE()) )) AND (click.timestamp) < (DATEADD(day,90, DATEADD(day,-89, DATE_TRUNC('day',GETDATE()) ) )))

# models/schema.yml
version: 2

models:
  - name: click_new
    columns:
      - name: click_duration
      - name: parent_visit_id
      - name: click_sequence
      - name: internal_search
      - name: is_constructed
      - name: is_first
      - name: is_last
      - name: line_number
      - name: link_traversal_index
      - name: number_of_requests
      - name: page_bytes_sent
      - name: page_visit_index
      - name: processing_time
      - name: referral_url
      - name: source_batch
      - name: status_code
      - name: total_bytes_sent
      - name: country_code
      - name: edition
      - name: edition_date
      - name: load_time_ms
      - name: is_navigational
      - name: num_comments
      - name: num_likes
      - name: num_mentions
      - name: num_share_facebook
      - name: num_share_twitter
      - name: pid
      - name: segid
      - name: segment_id
      - name: sub_type
      - name: is_video
      - name: is_weekend

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.
click_new.sql · 40 lines
source-preserved validation: parses
SELECT
  click.click_id,
  click.parent_visit AS parent_visit_id,
  click.click_duration AS "click_duration",
  click.click_number AS "click_sequence",
  click.internal_search AS "internal_search",
  click.is_constructed AS "is_constructed",
  click.is_first AS "is_first",
  click.is_last  AS "is_last",
  click.line_number AS "line_number",
  click.link_traversal_index AS "link_traversal_index",
  click.number_of_requests AS "number_of_requests",
  click.page_bytes_sent AS "page_bytes_sent",
  click.page_visit_index AS "page_visit_index",
  click.processing_time AS "processing_time",
  click.referral_url AS "referral_url",
  click.source_batch AS "source_batch",
  click.status_code AS "status_code",
  click.timestamp AS "timestamp_date",
  click.total_bytes_sent AS "total_bytes_sent",
  click_general.country_code AS "country_code",
  click_general.edition AS "edition",
  click_general.edition_date AS "edition_date",
  click_general.load_time_ms AS "load_time_ms",
  click_general.navigational AS "is_navigational",
  click_general.num_comments AS "num_comments",
  click_general.num_likes AS "num_likes",
  click_general.num_mentions AS "num_mentions",
  click_general.num_share_facebook AS "num_share_facebook",
  click_general.num_share_twitter AS "num_share_twitter",
  click_general.pid AS "pid",
  click_general.segid AS "segid",
  click_general.segment_id AS "segment_id",
  click_general.sub_type AS "sub_type",
  click_general.video AS "is_video",
  click_general.weekend  AS "is_weekend"
FROM sanitized_db.si_cs_click_recent AS click
LEFT JOIN sanitized_db.sanitized_click_general AS click_general ON click.click_id = click_general.click_id
WHERE
  ((click.timestamp) >= (DATEADD(day,-89, DATE_TRUNC('day',GETDATE()) )) AND (click.timestamp) < (DATEADD(day,90, DATEADD(day,-89, DATE_TRUNC('day',GETDATE()) ) )))
click_new.view.lkml · 266 lines
inferred
view: click_new {
  derived_table: {
    sql: SELECT
  click.click_id,
  click.parent_visit AS parent_visit_id,
  click.click_duration AS "click_duration",
  click.click_number AS "click_sequence",
  click.internal_search AS "internal_search",
  click.is_constructed AS "is_constructed",
  click.is_first AS "is_first",
  click.is_last  AS "is_last",
  click.line_number AS "line_number",
  click.link_traversal_index AS "link_traversal_index",
  click.number_of_requests AS "number_of_requests",
  click.page_bytes_sent AS "page_bytes_sent",
  click.page_visit_index AS "page_visit_index",
  click.processing_time AS "processing_time",
  click.referral_url AS "referral_url",
  click.source_batch AS "source_batch",
  click.status_code AS "status_code",
  click.timestamp AS "timestamp_date",
  click.total_bytes_sent AS "total_bytes_sent",
  click_general.country_code AS "country_code",
  click_general.edition AS "edition",
  click_general.edition_date AS "edition_date",
  click_general.load_time_ms AS "load_time_ms",
  click_general.navigational AS "is_navigational",
  click_general.num_comments AS "num_comments",
  click_general.num_likes AS "num_likes",
  click_general.num_mentions AS "num_mentions",
  click_general.num_share_facebook AS "num_share_facebook",
  click_general.num_share_twitter AS "num_share_twitter",
  click_general.pid AS "pid",
  click_general.segid AS "segid",
  click_general.segment_id AS "segment_id",
  click_general.sub_type AS "sub_type",
  click_general.video AS "is_video",
  click_general.weekend  AS "is_weekend"
FROM sanitized_db.si_cs_click_recent AS click
LEFT JOIN sanitized_db.sanitized_click_general AS click_general ON click.click_id = click_general.click_id
WHERE
  ((click.timestamp) >= (DATEADD(day,-89, DATE_TRUNC('day',GETDATE()) )) AND (click.timestamp) < (DATEADD(day,90, DATEADD(day,-89, DATE_TRUNC('day',GETDATE()) ) ))) ;;
  }

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

  dimension: parent_visit_id {
    type: int
    hidden: yes
    sql: ${TABLE}.parent_visit_id ;;
  }

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

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

  dimension: is_constructed {
    type: yesno
    sql: ${TABLE}.is_constructed ;;
  }

  dimension: is_first {
    type: yesno
    sql: ${TABLE}.is_first ;;
  }

  dimension: is_last {
    type: yesno
    sql: ${TABLE}.is_last ;;
  }

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

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

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

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

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

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

  dimension: referral_url {
    type: int
    hidden: yes
    sql: ${TABLE}.referral_url ;;
  }

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

  dimension: status_code {
    type: int
    sql: ${TABLE}.status_code ;;
  }

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

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

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

  dimension: edition_date {
    type: date
    sql: ${TABLE}.edition_date ;;
  }

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

  dimension: is_navigational {
    type: yesno
    sql: ${TABLE}.is_navigational ;;
  }

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

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

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

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

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

  dimension: pid {
    type: int
    hidden: yes
    sql: ${TABLE}.pid ;;
  }

  dimension: segid {
    hidden: yes
    sql: ${TABLE}.segid ;;
  }

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

  dimension: sub_type {
    type: int
    hidden: yes
    sql: ${TABLE}.sub_type ;;
  }

  dimension: is_video {
    type: yesno
    sql: ${TABLE}.is_video ;;
  }

  dimension: is_weekend {
    type: yesno
    hidden: yes
    sql: ${TABLE}.is_weekend ;;
  }

  dimension_group: click {
    type: time
    timeframes: [time, date, week, month]
    sql: ${TABLE}.timestamp_date ;;
  }

  measure: count {
    type: count
    drill_fields: [detail*]
  }

  measure: total_likes {
    type: sum
    sql: ${num_likes} ;;
  }

  measure: total_comments {
    type: sum
    sql: ${num_comments} ;;
  }

  measure: total_mentions {
    type: sum
    sql: ${num_mentions} ;;
  }

  measure: total_fb_shares {
    type: sum
    sql: ${num_share_facebook} ;;
  }

  measure: total_twitter_shares {
    type: sum
    sql: ${num_share_twitter} ;;
  }

  measure: first_clicks {
    type: count
    filters: [is_first: "True"]
  }

  measure: last_clicks {
    type: count
    filters: [is_last: "True"]
  }

  measure: video_clicks {
    type: count
    filters: [is_video: "True"]
  }
}
click_new.view.lookml · 187 lines
source-preserved
- view: click_new
  derived_table:
    sql: SELECT
  click.click_id,
  click.parent_visit AS parent_visit_id,
  click.click_duration AS "click_duration",
  click.click_number AS "click_sequence",
  click.internal_search AS "internal_search",
  click.is_constructed AS "is_constructed",
  click.is_first AS "is_first",
  click.is_last  AS "is_last",
  click.line_number AS "line_number",
  click.link_traversal_index AS "link_traversal_index",
  click.number_of_requests AS "number_of_requests",
  click.page_bytes_sent AS "page_bytes_sent",
  click.page_visit_index AS "page_visit_index",
  click.processing_time AS "processing_time",
  click.referral_url AS "referral_url",
  click.source_batch AS "source_batch",
  click.status_code AS "status_code",
  click.timestamp AS "timestamp_date",
  click.total_bytes_sent AS "total_bytes_sent",
  click_general.country_code AS "country_code",
  click_general.edition AS "edition",
  click_general.edition_date AS "edition_date",
  click_general.load_time_ms AS "load_time_ms",
  click_general.navigational AS "is_navigational",
  click_general.num_comments AS "num_comments",
  click_general.num_likes AS "num_likes",
  click_general.num_mentions AS "num_mentions",
  click_general.num_share_facebook AS "num_share_facebook",
  click_general.num_share_twitter AS "num_share_twitter",
  click_general.pid AS "pid",
  click_general.segid AS "segid",
  click_general.segment_id AS "segment_id",
  click_general.sub_type AS "sub_type",
  click_general.video AS "is_video",
  click_general.weekend  AS "is_weekend"
FROM sanitized_db.si_cs_click_recent AS click
LEFT JOIN sanitized_db.sanitized_click_general AS click_general ON click.click_id = click_general.click_id
WHERE
  ((click.timestamp) >= (DATEADD(day,-89, DATE_TRUNC('day',GETDATE()) )) AND (click.timestamp) < (DATEADD(day,90, DATEADD(day,-89, DATE_TRUNC('day',GETDATE()) ) )))
  fields:
  - dimension: click_duration
    type: number
    sql: ${TABLE}.click_duration
  - dimension: parent_visit_id
    type: int
    hidden: true
    sql: ${TABLE}.parent_visit_id
  - dimension: click_sequence
    type: number
    sql: ${TABLE}.click_sequence
  - dimension: internal_search
    sql: ${TABLE}.internal_search
  - dimension: is_constructed
    type: yesno
    sql: ${TABLE}.is_constructed
  - dimension: is_first
    type: yesno
    sql: ${TABLE}.is_first
  - dimension: is_last
    type: yesno
    sql: ${TABLE}.is_last
  - dimension: line_number
    type: number
    sql: ${TABLE}.line_number
  - dimension: link_traversal_index
    type: number
    sql: ${TABLE}.link_traversal_index
  - dimension: number_of_requests
    type: number
    sql: ${TABLE}.number_of_requests
  - dimension: page_bytes_sent
    sql: ${TABLE}.page_bytes_sent
  - dimension: page_visit_index
    type: number
    sql: ${TABLE}.page_visit_index
  - dimension: processing_time
    type: number
    sql: ${TABLE}.processing_time
  - dimension: referral_url
    type: int
    hidden: true
    sql: ${TABLE}.referral_url
  - dimension: source_batch
    type: number
    hidden: true
    sql: ${TABLE}.source_batch
  - dimension: status_code
    type: int
    sql: ${TABLE}.status_code
  - dimension: total_bytes_sent
    type: number
    sql: ${TABLE}.total_bytes_sent
  - dimension: country_code
    sql: ${TABLE}.country_code
  - dimension: edition
    sql: ${TABLE}.edition
  - dimension: edition_date
    type: date
    sql: ${TABLE}.edition_date
  - dimension: load_time_ms
    type: number
    sql: ${TABLE}.load_time_ms
  - dimension: is_navigational
    type: yesno
    sql: ${TABLE}.is_navigational
  - dimension: num_comments
    type: number
    hidden: true
    sql: ${TABLE}.num_comments
  - dimension: num_likes
    type: number
    hidden: true
    sql: ${TABLE}.num_likes
  - dimension: num_mentions
    type: number
    hidden: true
    sql: ${TABLE}.num_mentions
  - dimension: num_share_facebook
    type: number
    hidden: true
    sql: ${TABLE}.num_share_facebook
  - dimension: num_share_twitter
    type: number
    hidden: true
    sql: ${TABLE}.num_share_twitter
  - dimension: pid
    type: int
    hidden: true
    sql: ${TABLE}.pid
  - dimension: segid
    hidden: true
    sql: ${TABLE}.segid
  - dimension: segment_id
    sql: ${TABLE}.segment_id
  - dimension: sub_type
    type: int
    hidden: true
    sql: ${TABLE}.sub_type
  - dimension: is_video
    type: yesno
    sql: ${TABLE}.is_video
  - dimension: is_weekend
    type: yesno
    hidden: true
    sql: ${TABLE}.is_weekend
  - dimension_group: click
    type: time
    timeframes:
    - time
    - date
    - week
    - month
    sql: ${TABLE}.timestamp_date
  - measure: count
    type: count
    drill_fields:
    - detail*
  - measure: total_likes
    type: sum
    sql: ${num_likes}
  - measure: total_comments
    type: sum
    sql: ${num_comments}
  - measure: total_mentions
    type: sum
    sql: ${num_mentions}
  - measure: total_fb_shares
    type: sum
    sql: ${num_share_facebook}
  - measure: total_twitter_shares
    type: sum
    sql: ${num_share_twitter}
  - measure: first_clicks
    type: count
    filters:
    - is_first: True
  - measure: last_clicks
    type: count
    filters:
    - is_last: True
  - measure: video_clicks
    type: count
    filters:
    - is_video: True

Contents

  • click_new.sql
  • click_new.sql
  • click_new.view.lkml
  • click_new.view.lookml