sql-scripts/rideshare_lakehouse_curated/sp_create_looker_studio_view.sql (29 lines of code) (raw):

/*################################################################################## # Copyright 2022 Google LLC # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # https://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. ###################################################################################*/ /* Use Cases: - Creates a View used by Looker that combines the AI/ML prediction results with the realtime streaming data Description: - Creates a View used by Looker that combines the AI/ML prediction results with the realtime streaming data Show: - Realtime results combined with static data References: - Clean up / Reset script: DROP VIEW IF EXISTS `${project_id}.${bigquery_rideshare_lakehouse_curated_dataset}.looker_high_value_rides`; */ CREATE OR REPLACE VIEW `${project_id}.${bigquery_rideshare_lakehouse_curated_dataset}.looker_high_value_rides` AS WITH AggregateData AS ( SELECT high_value.location_id AS Location, high_value.ride_distance AS RideLength, high_value.is_raining AS isRaining, high_value.is_snowing AS isSnowing, COUNT(streaming_data.pickup_location_id) AS CurrentTrips FROM `${project_id}.${bigquery_rideshare_lakehouse_curated_dataset}.bigquery_predict_high_value_rides` AS high_value LEFT JOIN `${project_id}.${bigquery_rideshare_lakehouse_curated_dataset}.bigquery_streaming_rideshare_trips` AS streaming_data ON high_value.location_id = streaming_data.pickup_location_id AND streaming_data.pickup_datetime BETWEEN TIMESTAMP_SUB(CURRENT_TIMESTAMP(), INTERVAL 1 HOUR) AND CURRENT_TIMESTAMP() WHERE high_value.is_high_value_ride = TRUE GROUP BY 1,2,3,4 ) SELECT AggregateData.Location, CASE WHEN AggregateData.RideLength = 'short' THEN 'Short' WHEN AggregateData.RideLength = 'medium' THEN 'Medium' ELSE 'Long' END AS RideLength, AggregateData.isRaining, AggregateData.isSnowing, high_value.borough AS Borough, high_value.zone AS Zone, high_value.geo_point AS MapCoordinate, AggregateData.CurrentTrips FROM `${project_id}.${bigquery_rideshare_lakehouse_curated_dataset}.bigquery_predict_high_value_rides` AS high_value INNER JOIN AggregateData ON high_value.location_id = AggregateData.Location;