Skip to content
This repository was archived by the owner on Dec 4, 2024. It is now read-only.

dbt-labs/segment

Folders and files

NameName
Last commit message
Last commit date

Latest commit

195d680 Β· Dec 4, 2024
Jan 6, 2023
Jun 29, 2020
Apr 28, 2020
Feb 7, 2022
Dec 6, 2022
Dec 6, 2022
Dec 4, 2021
Oct 17, 2018
Oct 17, 2018
Mar 7, 2022
Oct 17, 2018
Dec 4, 2024
Dec 6, 2022
Dec 6, 2022

Repository files navigation

Archival Notice

This repository has been archived.

As a result all of its historical issues and PRs have been closed.

Please do not clone this repo without understanding the risk in doing so:

  • It may have unaddressed security vulnerabilities
  • It may have unaddressed bugs
Click for historical readme

β›”πŸšοΈ This package is no longer developed or maintained by dbt Labs. A fork is maintained at https://github.com/fleetio/dbt-segment

dbt-segment

This dbt package:

  • Performs "user stitching" to tie all events associated with a cookie to the same user_id
  • Transforms pageviews into sessions ("sessionization")

Installation instructions

New to dbt packages? Read more about them here.

  1. Include this package in your packages.yml β€” check here for the latest version number.
  2. Run dbt deps
  3. Include the following in your dbt_project.yml directly within your vars: block (making sure to handle indenting appropriately). Update the value to point to your segment page views table.
# dbt_project.yml
config-version: 2
...

vars:
  segment:
    segment_page_views_table: "{{ source('segment', 'pages') }}"

This package assumes that your data is in a structure similar to the test file included in example_segment_pages. You may have to do some pre-processing in an upstream model to get it into this shape. Similarly, if you need to union multiple sources, de-duplicate records, or filter out bad records, do this in an upstream model.

  1. Optionally configure extra parameters by adding them to your own dbt_project.yml file – see dbt_project.yml for more details:
# dbt_project.yml
config-version: 2

...

vars:
  segment:
    segment_page_views_table: "{{ source('segment', 'pages') }}"
    segment_sessionization_trailing_window: 3
    segment_inactivity_cutoff: 30 * 60
    segment_pass_through_columns: []
    segment_bigquery_partition_granularity: 'day' # BigQuery only: partition granularity for `partition_by` config
  1. Execute dbt seed -- this project includes a CSV that must be seeded for it the package to run successfully.
  2. Execute dbt run – the Segment models will get built as part of your run!

Database support

This package has been tested on Redshift, Snowflake, BigQuery, and Postgres.