出租車公司把載客日志保存在阿里云日志服務上,利用日志服務可靠的存儲,以及快速統計計算,挖掘日志中有用信息。本文將展示出租車公司如何使用阿里云日志服務來挖掘數據中的信息。
出租車公司記錄了每一次載客交易發生的信息細節,包括上下客時間、經緯度、路程距離、支付方式、支付金額、繳稅額等信息。詳細的數據,為出租車公司的運營提供了極大的幫助。例如,了解哪些時間段比較熱門,對應增加運行車次;哪些地區需求比較廣泛,調度更多車輛前往。這些數據,使得乘客的需求得到了及時的響應,而駕駛員的收入也得到了提高,進而整個社會的效率得到了提高。
數據樣例:
RatecodeID: 1VendorID: 2__source__: 192.0.2.1 __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美元之間。
文檔內容是否對您有幫助?