日志作為一種時間序列(time-series)資料,指定年、月、日進行分析是一種常見做法。例如使用hive來分析oss上的日志:
如果沒有partition,計算需要掃描整表(對應于oss bucket字首目錄下的所有檔案)
如果用時間設定了partition,隻需要加載指定oss日期目錄下的object即可
對于大部分的日志分析而言,oss上的日志通過partition方式來存儲,通過減少計算引擎需要掃描的資料規模可以得到三個好處:
縮短了資料分析的延時
免去計算引擎處理額外資料産生的開銷
節約非必要oss讀請求産生的費用
日志服務的每個投遞任務會寫入oss一個檔案,路徑格式是oss://oss-bucket/oss-prefix/partition-fromat_random-id。以建立時間2017/01/20 19:50:43的投遞任務為例,說明oss prefix和分區格式與oss目标檔案路徑關系如下:
oss bucket
oss prefix
分區格式
oss檔案路徑
test-bucket
test-table
%y/%m/%d/%h/%m
oss://test-bucket/test-table/2017/01/20/19/50/43_1484913043351525351_2850008
log_ship_oss_example
%y/%m/%d/log_%h%m%s
oss://test-bucket/log_ship_oss_example/2017/01/20/log_195043_1484913043351525351_2850008
%y%m%d/%h
oss://test-bucket/log_ship_oss_example/20170120/19_1484913043351525351_2850008
%y%m%d/
oss://test-bucket/log_ship_oss_example/20170120/_1484913043351525351_2850008
%y%m%d%h
oss://test-bucket/log_ship_oss_example/2017012019_1484913043351525351_2850008
在這裡設定分區格式為:%y/%m/%d/log_%h%m%s: