From the GIS database to the warehouse
A separate pipeline loads the GIS database (PostgreSQL) into BigQuery every night. It sends only what changed since the last run and reprojects geometry from Web Mercator (EPSG:3857) to WGS 84 (EPSG:4326), the coordinate system BigQuery’s geography type uses. A separate full-rebuild path reloads a table from scratch when it needs it.
A spatiotemporal data model for permits
A film permit rarely has one start and one end. A production can hold the same location every other Tuesday from noon to 3 PM, skip a holiday, then move to the next block over. The pipelines feed a multi-temporal spatial data model built for that: each reservation keeps its location and its schedule together, recurring and gapped time windows included.
- Recurring and gapped schedules. One-off dates, repeating patterns such as every other Tuesday, and excluded dates live on the same record.
- Versioned. A change to a location or a schedule is a new version, so earlier versions stay on record.
- Granular. Each reservation expands into location-by-time records, so what is filming where at a given hour comes straight from the data.