Flink SQL FileSystem Connector 分割槽提交與自定義小檔案合併策略 ​

文宇肅然發表於2020-10-31

本文先通過原始碼簡單過一下分割槽提交機制的兩個要素——即觸發(trigger)和策略(policy)的實現,然後用合併小檔案的例項說一下自定義分割槽提交策略的方法。

PartitionCommitTrigger

在最新的 Flink SQL 中,FileSystem Connector 原生支援資料分割槽,並且寫入時採用標準 Hive 分割槽格式,如下所示。

path└── datetime=2019-08-25    └── hour=11        ├── part-0.parquet        ├── part-1.parquet    └── hour=12        ├── part-0.parquet└── datetime=2019-08-26    └── hour=6        ├── part-0.parquet

 

那麼,已經寫入的分割槽資料何時才能對下游可見呢?這就涉及到如何觸發分割槽提交的問題。根據官方文件,觸發引數有以下兩個:

  • sink.partition-commit.trigger:可選 process-time(根據處理時間觸發)和 partition-time(根據從事件時間中提取的分割槽時間觸發)。

  • sink.partition-commit.delay:分割槽提交的時延。如果 trigger 是 process-time

相關文章