天天看點

自定義LOG投遞OSS資料Partition,優化你的計算資料劃分PartitionLOG投遞OSS設定Partition

日志作為一種時間序列(time-series)資料,指定年、月、日進行分析是一種常見做法。例如使用hive來分析oss上的日志:

如果沒有partition,計算需要掃描整表(對應于oss bucket字首目錄下的所有檔案)

如果用時間設定了partition,隻需要加載指定oss日期目錄下的object即可

自定義LOG投遞OSS資料Partition,優化你的計算資料劃分PartitionLOG投遞OSS設定Partition

對于大部分的日志分析而言,oss上的日志通過partition方式來存儲,通過減少計算引擎需要掃描的資料規模可以得到三個好處:

縮短了資料分析的延時

免去計算引擎處理額外資料産生的開銷

節約非必要oss讀請求産生的費用

自定義LOG投遞OSS資料Partition,優化你的計算資料劃分PartitionLOG投遞OSS設定Partition

日志服務的每個投遞任務會寫入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:

自定義LOG投遞OSS資料Partition,優化你的計算資料劃分PartitionLOG投遞OSS設定Partition