日誌係列--行車軌跡日誌的統計分析
簡介
出租車公司記錄了每一次載客交易發生的信息細節,包括上下客時間、經緯度、路程距離、支付方式、支付金額、繳稅額等信息。詳細的數據,為出租車公司的運營提供了極大的幫助,例如,了解哪些時間段比較熱門,對應增加運行車次;哪些地區需求比較廣泛,調度更多車輛前往。這些數據,使得乘客的需求得到了及時的響應,而駕駛員的收入也得到了提高,進而整個社會的效率得到了提高。
出租車公司把載客日誌保存在阿裏雲日誌服務上,利用日誌服務可靠的存儲,以及快速統計計算,挖掘日誌中有用信息。本文將展示出租車公司如何使用阿裏雲日誌服務來挖掘數據中的信息。
數據樣例:
RatecodeID: 1VendorID: 2__source__: 11.164.232.105 __topic__: dropoff_latitude: 40.743995666503906 dropoff_longitude: -73.983505249023437extra: 0 fare_amount: 9 improvement_surcharge: 0.3 mta_tax: 0.5 passenger_count: 2 payment_type: 1 pickup_latitude: 40.761466979980469 pickup_longitude: -73.96246337890625 store_and_fwd_flag: N tip_amount: 1.96 tolls_amount: 0 total_amount: 11.76 tpep_dropoff_datetime: 2016-02-14 11:03:13 tpep_dropoff_time: 1455418993 tpep_pickup_datetime: 2016-02-14 10:53:57 tpep_pickup_time: 1455418437 trip_distance: 2.02
常見的統計
-
分時段乘車人次,查看哪些時段比較熱門
*| select count(1) as deals, sum(passenger_count) as passengers, (tpep_pickup_time %(24*3600)/3600+8)%24 as time group by (tpep_pickup_time %(24*3600)/3600+8)%24 order by time limit 24
從結果中可以看出,上午上班時間,以及晚上下班後,是乘車需求最旺盛的時候,出租車公司可以相應的調度更多的車輛。
-
分時段平均乘車裏程
*| select avg(trip_distance) as trip_distance, (tpep_pickup_time %(24*3600)/3600+8)%24 as time group by (tpep_pickup_time %(24*3600)/3600+8)%24 order by time limit 24
某些時刻,對乘車裏程的需求也挺旺盛,出租車公司在對應的時候也需要準備更多的車輛。
-
分時段平均乘車分鍾數,單位裏程需要的秒數,看看哪些時段比較堵
*| select avg(tpep_dropoff_time-tpep_pickup_time)/60 as driving_minutes, (tpep_pickup_time %(24*3600)/3600+8)%24 as time group by (tpep_pickup_time %(24*3600)/3600+8)%24 order by time limit 24
*| select sum(tpep_dropoff_time-tpep_pickup_time)/sum(trip_distance) as driving_minutes, (tpep_pickup_time %(24*3600)/3600+8)%24 as time group by (tpep_pickup_time %(24*3600)/3600+8)%24 order by time limit 24
一些時刻特別堵,需要準備更多車輛來應對需求。
-
分時段平均乘車費用,看看哪些時間賺的多
*| select avg(total_amount) as dollars, (tpep_pickup_time %(24*3600)/3600+8)%24 as time group by (tpep_pickup_time %(24*3600)/3600+8)%24 order by time limit 24
淩晨4點鍾的客單價比較高,有經濟壓力的駕駛員可以選擇在這個時候提供服務。
-
看看賬單範圍分布情況
*| select case when total_amount < 1 then 'bill_0_1' when total_amount < 10 then 'bill_1_10' when total_amount < 20 then 'bill_10_20' when total_amount < 30 then 'bill_20_30' when total_amount < 40 then 'bill_30_40' when total_amount < 50 then 'bill_10_50' when total_amount < 100 then 'bill_50_100' when total_amount < 1000 then 'bill_100_1000' else 'bill_1000_' end as bill_level , count(1) as count group by case when total_amount < 1 then 'bill_0_1' when total_amount < 10 then 'bill_1_10' when total_amount < 20 then 'bill_10_20' when total_amount < 30 then 'bill_20_30' when total_amount < 40 then 'bill_30_40' when total_amount < 50 then 'bill_10_50' when total_amount < 100 then 'bill_50_100' when total_amount < 1000 then 'bill_100_1000' else 'bill_1000_' end order by count desc
從成交金額的成交區間,可以看出大部分的成交金額在1到20(美元)之間。
最後更新:2017-08-31 23:32:37