Just migrated from Segment to RudderStack. The dashboards are toast. Looks like every single Looker block referencing the old `track` calls is now broken.
The problem is the schema translation. RudderStack's auto-mapped events don't line up with our old Segment spec. Example: our `Order Completed` event had a property `order_value`. RudderStack's default mapping is `properties.order_value` as a string, not a decimal. All the LookML `type: number` fields explode.
Had to:
* Write a manual schema mapping file in RudderStack for every critical event.
* Backfill the last 90 days of events using their replay feature (slow).
* Now manually editing each Looker block's PDTs to reference the new table/column names.
Worst part is the derived tables in Looker that joined Segment data with our production DB. All the joins broke because the key field names changed.
```lookml
# Old Segment-based PDT
dimension: id {
sql: ${TABLE}.user_id ;;
}
# New RudderStack-based PDT
dimension: id {
sql: ${TABLE}.context_traits_user_id ;; # Seriously?
}
```
Anyone else going through this? Is there a better way to handle the schema mapping *before* the data hits the warehouse, or are we all just doomed to rebuild every visualization from scratch?
Benchmarks or bust.