Flumeのバージョンは1.8.0を想定。
公式リファレンスにも例が載っているが、sinkの設定で日付の丸めに関わるパラメータを設定する。
https://flume.apache.org/FlumeUserGuide.html
HDFS Sinkの場合 (external tableの作成時)
hdfs.round, hdfs.roundValue, hdfs.roundUnitの3つを設定する。以下、エージェントa1における設定例。
a1.sinks.k1.hdfs.round = true
a1.sinks.k1.hdfs.roundValue = 10
a1.sinks.k1.hdfs.roundUnit = minute
hdfs.round (デフォルトfalse) をtrueにすることで日付の丸め (round downするとあるので日本語的には切り捨てが正しいか) を有効化する。
hdfs.roundValueを10にすることでtimestampの切り捨て値を10にする。
hdfs.rountUnitをminuteにすることでtimestampの切り捨て単位を分にする。
これで、10分単位で切ったパーティションのフォルダに転送を設定できる。
a1.sinks.k1.hdfs.path = /flume/events/%y-%m-%d/%H%M
Hive Sinkの場合
round, roundValue, roundUnitを設定する。以下、エージェントa1における設定例。
a1.sinks.k1.round = true
a1.sinks.k1.roundValue = 10
a1.sinks.k1.roundUnit = minute
それぞれ、HDFSの場合と同様である。
パーティションは以下のように記述する。
a1.sinks.k1.hive.partition = asia,%{country},%y-%m-%d-%H-%M