Unified Digital
Upgrading to 0.4.0#
If you make use of the conversion module, and don't wish to do a full refresh, you will need to add the new column and update the existing records with the correct values for the model to run successfully incrementally.
- Redshift
- Snowflake
- BigQuery
- Databricks
ALTER TABLE your_schema_derived.snowplow_unified_conversions add column cv_id TEXT;
UPDATE your_schema_derived.snowplow_unified_conversions set cv_id = md5(cast(coalesce(cast(event_id as TEXT), '_dbt_utils_surrogate_key_null_') || '-' || coalesce(cast(cv_type as TEXT), '_dbt_utils_surrogate_key_null_') as TEXT))
where 1=1;
ALTER TABLE your_schema_derived.snowplow_unified_conversions add column cv_id TEXT;
UPDATE your_schema_derived.snowplow_unified_conversions set cv_id = md5(cast(coalesce(cast(event_id as TEXT), '_dbt_utils_surrogate_key_null_') || '-' || coalesce(cast(cv_type as TEXT), '_dbt_utils_surrogate_key_null_') as TEXT))
where 1=1;
ALTER TABLE your_schema_derived.snowplow_unified_conversions add column cv_id string;
UPDATE your_schema_derived.snowplow_unified_conversions set cv_id = to_hex(md5(cast(coalesce(cast(event_id as string), '_dbt_utils_surrogate_key_null_') || '-' || coalesce(cast(cv_type as string), '_dbt_utils_surrogate_key_null_') as string)))
where 1=1;
ALTER TABLE your_schema_derived.snowplow_unified_conversions add column cv_id string;
UPDATE your_schema_derived.snowplow_unified_conversions set cv_id = md5(cast(coalesce(cast(event_id as string), '_dbt_utils_surrogate_key_null_') || '-' || coalesce(cast(cv_type as string), '_dbt_utils_surrogate_key_null_') as string))
where 1=1;
Upgrading to 0.3.0#
snowplow__page_view_passthroughshas been renamed tosnowplow__view_passthroughs. Please rename this in your project yaml if you have set any.- If you currently use
snowplow__allow_refreshwithout also adding a--full-refreshflag in any script this is now required to ensure the manifest tables are fully refreshed.
Upgrading to 0.2.0#
The views table needs to be altered for existing Snowflake, Databricks or Redshift users as the data type of engaged_time_in_s, absolute_time_in_s have changed. Please modify the below script to fit your schemas and apply them before running the upgraded package.
The other option is to do a complete refresh of the package.
Updates to the views table
- Changed type:
engaged_time_in_s,absolute_time_in_s
SQL scripts
- snowflake
- databricks
- redshift
create or replace TRANSIENT TABLE (your_schema)_derived.snowplow_unified_views_new cluster by (to_date(start_tstamp))(
VIEW_ID VARCHAR(16777216),
EVENT_NAME VARCHAR(16777216),
EVENT_ID VARCHAR(16777216),
SESSION_IDENTIFIER VARCHAR(16777216),
VIEW_IN_SESSION_INDEX NUMBER(18,0),
VIEWS_IN_SESSION NUMBER(18,0),
SESSION__PREVIOUS_SESSION_ID VARCHAR(36),
USER_ID VARCHAR(16777216),
USER_IDENTIFIER VARCHAR(16777216),
STITCHED_USER_ID VARCHAR(16777216),
NETWORK_USERID VARCHAR(16777216),
DVCE_CREATED_TSTAMP TIMESTAMP_NTZ(9),
COLLECTOR_TSTAMP TIMESTAMP_NTZ(9),
DERIVED_TSTAMP TIMESTAMP_NTZ(9),
START_TSTAMP TIMESTAMP_NTZ(9),
END_TSTAMP TIMESTAMP_NTZ(9),
MODEL_TSTAMP TIMESTAMP_NTZ(9),
APP_ID VARCHAR(16777216),
PLATFORM VARCHAR(16777216),
DEVICE_IDENTIFIER VARCHAR(16777216),
DEVICE_CATEGORY VARCHAR(16777216),
DEVICE_SESSION_INDEX NUMBER(38,0),
OS_VERSION VARCHAR(16777216),
OS_TYPE VARCHAR(16777216),
MOBILE__DEVICE_MANUFACTURER VARCHAR(16777216),
MOBILE__DEVICE_MODEL VARCHAR(16777216),
MOBILE__OS_TYPE VARCHAR(16777216),
MOBILE__OS_VERSION VARCHAR(16777216),
MOBILE__ANDROID_IDFA VARCHAR(16777216),
MOBILE__APPLE_IDFA VARCHAR(16777216),
MOBILE__APPLE_IDFV VARCHAR(16777216),
MOBILE__CARRIER VARCHAR(16777216),
MOBILE__OPEN_IDFA VARCHAR(16777216),
MOBILE__NETWORK_TECHNOLOGY VARCHAR(16777216),
MOBILE__NETWORK_TYPE VARCHAR(255),
MOBILE__PHYSICAL_MEMORY NUMBER(38,0),
MOBILE__SYSTEM_AVAILABLE_MEMORY NUMBER(38,0),
MOBILE__APP_AVAILABLE_MEMORY NUMBER(38,0),
MOBILE__BATTERY_LEVEL NUMBER(38,0),
MOBILE__BATTERY_STATE VARCHAR(16777216),
MOBILE__LOW_POWER_MODE BOOLEAN,
MOBILE__AVAILABLE_STORAGE NUMBER(38,0),
MOBILE__TOTAL_STORAGE NUMBER(38,0),
MOBILE__IS_PORTRAIT BOOLEAN,
MOBILE__RESOLUTION VARCHAR(16777216),
MOBILE__SCALE FLOAT,
MOBILE__LANGUAGE VARCHAR(16777216),
MOBILE__APP_SET_ID VARCHAR(16777216),
MOBILE__APP_SET_ID_SCOPE VARCHAR(16777216),
OS_TIMEZONE VARCHAR(16777216),
SCREEN_RESOLUTION VARCHAR(16777216),
YAUAA__DEVICE_CLASS VARCHAR(16777216),
YAUAA__DEVICE_VERSION VARCHAR(16777216),
YAUAA__OPERATING_SYSTEM_VERSION VARCHAR(16777216),
YAUAA__OPERATING_SYSTEM_CLASS VARCHAR(16777216),
YAUAA__OPERATING_SYSTEM_NAME VARCHAR(16777216),
YAUAA__OPERATING_SYSTEM_NAME_VERSION VARCHAR(16777216),
GEO_COUNTRY VARCHAR(16777216),
GEO_REGION VARCHAR(16777216),
GEO_REGION_NAME VARCHAR(16777216),
GEO_CITY VARCHAR(16777216),
GEO_ZIPCODE VARCHAR(16777216),
GEO_LATITUDE FLOAT,
GEO_LONGITUDE FLOAT,
GEO_TIMEZONE VARCHAR(16777216),
USER_IPADDRESS VARCHAR(16777216),
ENGAGED_TIME_IN_S DOUBLE,
ABSOLUTE_TIME_IN_S DOUBLE,
HORIZONTAL_PIXELS_SCROLLED NUMBER(38,0),
VERTICAL_PIXELS_SCROLLED NUMBER(38,0),
HORIZONTAL_PERCENTAGE_SCROLLED FLOAT,
VERTICAL_PERCENTAGE_SCROLLED FLOAT,
MKT_MEDIUM VARCHAR(16777216),
MKT_SOURCE VARCHAR(16777216),
MKT_TERM VARCHAR(16777216),
MKT_CONTENT VARCHAR(16777216),
MKT_CAMPAIGN VARCHAR(16777216),
MKT_CLICKID VARCHAR(16777216),
MKT_NETWORK VARCHAR(16777216),
DEFAULT_CHANNEL_GROUP VARCHAR(25),
PAGE_URL VARCHAR(16777216),
PAGE_REFERRER VARCHAR(16777216),
REFR_MEDIUM VARCHAR(16777216),
REFR_SOURCE VARCHAR(16777216),
REFR_TERM VARCHAR(16777216),
PAGE_TITLE VARCHAR(16777216),
CONTENT_GROUP VARCHAR(39),
PAGE_URLSCHEME VARCHAR(16777216),
PAGE_URLHOST VARCHAR(16777216),
PAGE_URLPATH VARCHAR(16777216),
PAGE_URLQUERY VARCHAR(16777216),
PAGE_URLFRAGMENT VARCHAR(16777216),
REFR_URLSCHEME VARCHAR(16777216),
REFR_URLHOST VARCHAR(16777216),
REFR_URLPATH VARCHAR(16777216),
REFR_URLQUERY VARCHAR(16777216),
REFR_URLFRAGMENT VARCHAR(16777216),
BR_LANG VARCHAR(16777216),
BR_VIEWWIDTH NUMBER(38,0),
BR_VIEWHEIGHT NUMBER(38,0),
BR_COLORDEPTH VARCHAR(16777216),
BR_RENDERENGINE VARCHAR(16777216),
DOC_WIDTH NUMBER(38,0),
DOC_HEIGHT NUMBER(38,0),
IAB__CATEGORY VARCHAR(16777216),
IAB__PRIMARY_IMPACT VARCHAR(16777216),
IAB__REASON VARCHAR(16777216),
IAB__SPIDER_OR_ROBOT BOOLEAN,
YAUAA__DEVICE_NAME VARCHAR(16777216),
YAUAA__AGENT_CLASS VARCHAR(16777216),
YAUAA__AGENT_NAME VARCHAR(16777216),
YAUAA__AGENT_NAME_VERSION VARCHAR(16777216),
YAUAA__AGENT_NAME_VERSION_MAJOR VARCHAR(16777216),
YAUAA__AGENT_VERSION VARCHAR(16777216),
YAUAA__AGENT_VERSION_MAJOR VARCHAR(16777216),
YAUAA__LAYOUT_ENGINE_CLASS VARCHAR(16777216),
YAUAA__LAYOUT_ENGINE_NAME VARCHAR(16777216),
YAUAA__LAYOUT_ENGINE_NAME_VERSION VARCHAR(16777216),
YAUAA__LAYOUT_ENGINE_NAME_VERSION_MAJOR VARCHAR(16777216),
YAUAA__LAYOUT_ENGINE_VERSION VARCHAR(16777216),
YAUAA__LAYOUT_ENGINE_VERSION_MAJOR VARCHAR(16777216),
UA__DEVICE_FAMILY VARCHAR(16777216),
UA__OS_VERSION VARCHAR(16777216),
UA__OS_MAJOR VARCHAR(16777216),
UA__OS_MINOR VARCHAR(16777216),
UA__OS_PATCH VARCHAR(16777216),
UA__OS_PATCH_MINOR VARCHAR(16777216),
UA__USERAGENT_FAMILY VARCHAR(16777216),
UA__USERAGENT_MAJOR VARCHAR(16777216),
UA__USERAGENT_MINOR VARCHAR(16777216),
UA__USERAGENT_PATCH VARCHAR(16777216),
UA__USERAGENT_VERSION VARCHAR(16777216),
SCREEN_VIEW__NAME VARCHAR(16777216),
SCREEN_VIEW__PREVIOUS_ID VARCHAR(36),
SCREEN_VIEW__PREVIOUS_NAME VARCHAR(16777216),
SCREEN_VIEW__PREVIOUS_TYPE VARCHAR(16777216),
SCREEN_VIEW__TRANSITION_TYPE VARCHAR(16777216),
SCREEN_VIEW__TYPE VARCHAR(16777216),
APP__BUILD VARCHAR(255),
APP__VERSION VARCHAR(255),
GEO__ALTITUDE FLOAT,
GEO__ALTITUDE_ACCURACY FLOAT,
GEO__BEARING FLOAT,
GEO__LATITUDE FLOAT,
GEO__LATITUDE_LONGITUDE_ACCURACY FLOAT,
GEO__LONGITUDE FLOAT,
GEO__SPEED FLOAT,
SCREEN__FRAGMENT VARCHAR(16777216),
SCREEN__TOP_VIEW_CONTROLLER VARCHAR(16777216),
SCREEN__VIEW_CONTROLLER VARCHAR(16777216),
USERAGENT VARCHAR(16777216),
V_COLLECTOR VARCHAR(16777216),
EVENT_ID2 VARCHAR(16777216),
LAST_LIST_ITEM_INDEX NUMBER(38,0),
LIST_ITEMS_COUNT NUMBER(38,0),
LIST_ITEMS_PERCENTAGE_SCROLLED FLOAT
);
insert into (your_schema)_derived.snowplow_unified_views_new select *, NULL AS LAST_LIST_ITEM_INDEX, NULL AS LIST_ITEMS_COUNT, NULL AS LIST_ITEMS_PERCENTAGE_SCROLLED from (your_schema)_derived.snowplow_unified_views;
drop table (your_schema)_derived.snowplow_unified_views;
create table (your_schema)_derived.snowplow_unified_views as select * from (your_schema)_derived.snowplow_unified_views_new;
drop table (your_schema)_derived.snowplow_unified_views_new;
Updates to the views table
CREATE TABLE (your_schema)_derived.snowplow_unified_views_new (
view_id STRING,
event_name STRING,
event_id STRING,
session_identifier STRING,
view_in_session_index INT,
views_in_session INT,
session__previous_session_id STRING,
user_id STRING,
user_identifier STRING,
stitched_user_id STRING,
network_userid STRING,
dvce_created_tstamp TIMESTAMP,
collector_tstamp TIMESTAMP,
derived_tstamp TIMESTAMP,
start_tstamp TIMESTAMP,
end_tstamp TIMESTAMP,
model_tstamp TIMESTAMP,
app_id STRING,
platform STRING,
device_identifier STRING,
device_category STRING,
device_session_index INT,
os_version STRING,
os_type STRING,
mobile__device_manufacturer STRING,
mobile__device_model STRING,
mobile__os_type STRING,
mobile__os_version STRING,
mobile__android_idfa STRING,
mobile__apple_idfa STRING,
mobile__apple_idfv STRING,
mobile__carrier STRING,
mobile__open_idfa STRING,
mobile__network_technology STRING,
mobile__network_type STRING,
mobile__physical_memory INT,
mobile__system_available_memory INT,
mobile__app_available_memory INT,
mobile__battery_level INT,
mobile__battery_state STRING,
mobile__low_power_mode BOOLEAN,
mobile__available_storage BIGINT,
mobile__total_storage BIGINT,
mobile__is_portrait BOOLEAN,
mobile__resolution STRING,
mobile__scale FLOAT,
mobile__language STRING,
mobile__app_set_id STRING,
mobile__app_set_id_scope STRING,
screen_resolution STRING,
geo_country STRING,
geo_region BIGINT,
geo_region_name BIGINT,
geo_city BIGINT,
geo_zipcode BIGINT,
geo_latitude BIGINT,
geo_longitude BIGINT,
geo_timezone BIGINT,
user_ipaddress STRING,
engaged_time_in_s FLOAT,
absolute_time_in_s FLOAT,
horizontal_pixels_scrolled BIGINT,
vertical_pixels_scrolled BIGINT,
horizontal_percentage_scrolled FLOAT,
vertical_percentage_scrolled FLOAT,
last_list_item_index INT,
list_items_count INT,
list_items_percentage_scrolled FLOAT,
mkt_medium STRING,
mkt_source STRING,
mkt_term STRING,
mkt_content STRING,
mkt_campaign STRING,
mkt_clickid BIGINT,
mkt_network BIGINT,
default_channel_group STRING,
page_url STRING,
page_referrer STRING,
refr_medium STRING,
refr_source STRING,
refr_term STRING,
screen_view__name STRING,
screen_view__previous_id STRING,
screen_view__previous_name STRING,
screen_view__previous_type STRING,
screen_view__transition_type STRING,
screen_view__type STRING,
app__build STRING,
app__version STRING,
screen__fragment STRING,
screen__top_view_controller STRING,
screen__view_controller STRING,
useragent STRING,
v_collector STRING,
event_id2 STRING,
start_tstamp_date DATE)
USING delta
PARTITIONED BY (start_tstamp_date)
TBLPROPERTIES (
'delta.autoOptimize.autoCompact' = 'true',
'delta.autoOptimize.optimizeWrite' = 'true',
'delta.checkpoint.writeStatsAsJson' = 'false',
'delta.checkpoint.writeStatsAsStruct' = 'true',
'delta.minReaderVersion' = '1',
'delta.minWriterVersion' = '2');
insert into (your_schema)_derived.snowplow_unified_views_new select *, null as last_list_item_index, null as list_items_count, null as list_items_percentage_scrolled from (your_schema)_derived.snowplow_unified_views;
drop table (your_schema)_derived.snowplow_unified_views;
create table (your_schema)_derived.snowplow_unified_views as select * from (your_schema)_derived.snowplow_unified_views_new;
drop table (your_schema)_derived.snowplow_unified_views_new;
Updates to the views table
CREATE TABLE IF NOT EXISTS (your_schema)_derived.snowplow_unified_views_new
(
view_id VARCHAR(65535) ENCODE lzo
,event_name VARCHAR(22) ENCODE lzo
,event_id VARCHAR(36) ENCODE lzo
,session_identifier VARCHAR(36) ENCODE lzo
,view_in_session_index BIGINT ENCODE az64
,views_in_session BIGINT ENCODE az64
,session__previous_session_id VARCHAR(36) ENCODE lzo
,user_id VARCHAR(256) ENCODE lzo
,user_identifier VARCHAR(36) ENCODE lzo
,stitched_user_id VARCHAR(65535) ENCODE lzo
,network_userid VARCHAR(36) ENCODE lzo
,dvce_created_tstamp TIMESTAMP WITHOUT TIME ZONE ENCODE az64
,collector_tstamp TIMESTAMP WITHOUT TIME ZONE ENCODE az64
,derived_tstamp TIMESTAMP WITHOUT TIME ZONE ENCODE az64
,start_tstamp TIMESTAMP WITHOUT TIME ZONE ENCODE RAW
,end_tstamp TIMESTAMP WITHOUT TIME ZONE ENCODE az64
,model_tstamp TIMESTAMP WITHOUT TIME ZONE ENCODE az64
,app_id VARCHAR(256) ENCODE lzo
,platform VARCHAR(3) ENCODE lzo
,device_identifier VARCHAR(36) ENCODE lzo
,device_category VARCHAR(22) ENCODE lzo
,device_session_index INTEGER ENCODE az64
,os_version VARCHAR(3) ENCODE lzo
,os_type VARCHAR(25) ENCODE lzo
,mobile__device_manufacturer VARCHAR(7) ENCODE lzo
,mobile__device_model VARCHAR(37) ENCODE lzo
,mobile__os_type VARCHAR(25) ENCODE lzo
,mobile__os_version VARCHAR(3) ENCODE lzo
,mobile__android_idfa VARCHAR(36) ENCODE lzo
,mobile__apple_idfa VARCHAR(2) ENCODE lzo
,mobile__apple_idfv VARCHAR(2) ENCODE lzo
,mobile__carrier VARCHAR(7) ENCODE lzo
,mobile__open_idfa VARCHAR(2) ENCODE lzo
,mobile__network_technology VARCHAR(2) ENCODE lzo
,mobile__network_type VARCHAR(4) ENCODE lzo
,mobile__physical_memory INTEGER ENCODE az64
,mobile__system_available_memory INTEGER ENCODE az64
,mobile__app_available_memory INTEGER ENCODE az64
,mobile__battery_level INTEGER ENCODE az64
,mobile__battery_state VARCHAR(8) ENCODE lzo
,mobile__low_power_mode BOOLEAN ENCODE RAW
,mobile__available_storage INTEGER ENCODE az64
,mobile__total_storage BIGINT ENCODE az64
,mobile__is_portrait BOOLEAN ENCODE RAW
,mobile__resolution VARCHAR(9) ENCODE lzo
,mobile__scale DOUBLE PRECISION ENCODE RAW
,mobile__language VARCHAR(2) ENCODE lzo
,mobile__app_set_id VARCHAR(2) ENCODE lzo
,mobile__app_set_id_scope VARCHAR(2) ENCODE lzo
,screen_resolution VARCHAR(9) ENCODE lzo
,geo_country VARCHAR(256) ENCODE lzo
,geo_region INTEGER ENCODE az64
,geo_region_name INTEGER ENCODE az64
,geo_city INTEGER ENCODE az64
,geo_zipcode INTEGER ENCODE az64
,geo_latitude INTEGER ENCODE az64
,geo_longitude INTEGER ENCODE az64
,geo_timezone INTEGER ENCODE az64
,user_ipaddress VARCHAR(10) ENCODE lzo
,engaged_time_in_s DOUBLE PRECISION ENCODE RAW
,absolute_time_in_s DOUBLE PRECISION ENCODE RAW
,horizontal_pixels_scrolled INTEGER ENCODE az64
,vertical_pixels_scrolled INTEGER ENCODE az64
,horizontal_percentage_scrolled DOUBLE PRECISION ENCODE RAW
,vertical_percentage_scrolled DOUBLE PRECISION ENCODE RAW
,last_list_item_index INTEGER ENCODE az64
,list_items_count INTEGER ENCODE az64
,list_items_percentage_scrolled DOUBLE PRECISION ENCODE RAW
,mkt_medium VARCHAR(256) ENCODE lzo
,mkt_source VARCHAR(256) ENCODE lzo
,mkt_term VARCHAR(256) ENCODE lzo
,mkt_content VARCHAR(256) ENCODE lzo
,mkt_campaign VARCHAR(256) ENCODE lzo
,mkt_clickid INTEGER ENCODE az64
,mkt_network INTEGER ENCODE az64
,default_channel_group VARCHAR(25) ENCODE lzo
,page_url VARCHAR(256) ENCODE lzo
,page_referrer VARCHAR(256) ENCODE lzo
,refr_medium VARCHAR(256) ENCODE lzo
,refr_source VARCHAR(256) ENCODE lzo
,refr_term VARCHAR(256) ENCODE lzo
,screen_view__name VARCHAR(2) ENCODE lzo
,screen_view__previous_id VARCHAR(2) ENCODE lzo
,screen_view__previous_name VARCHAR(2) ENCODE lzo
,screen_view__previous_type VARCHAR(2) ENCODE lzo
,screen_view__transition_type VARCHAR(2) ENCODE lzo
,screen_view__type VARCHAR(2) ENCODE lzo
,app__build VARCHAR(2) ENCODE lzo
,app__version VARCHAR(2) ENCODE lzo
,screen__fragment VARCHAR(2) ENCODE lzo
,screen__top_view_controller VARCHAR(2) ENCODE lzo
,screen__view_controller VARCHAR(2) ENCODE lzo
,useragent VARCHAR(51) ENCODE lzo
,v_collector VARCHAR(28) ENCODE lzo
,event_id2 VARCHAR(36) ENCODE lzo
)
DISTSTYLE KEY
DISTKEY (view_id)
SORTKEY (
start_tstamp
)
;
insert into (your_schema)_derived.snowplow_unified_views_new select *, null as last_list_item_index, null as list_items_count, null as list_items_percentage_scrolled from (your_schema)_derived.snowplow_unified_views;
drop table (your_schema)_derived.snowplow_unified_views;
alter table (your_schema)_derived.snowplow_unified_views_new
rename to snowplow_unified_views;