본문 바로가기

빅데이터/Kafka

confluent HdfsSinkConnector 파티셔너 설명

confluent에서는 hdfs2를 위한 sink connector를 컨플루언트 커뮤니티 라이센스로 제공합니다. 해당 기능 중 파티셔너 기능에 대해 정리합니다.

 

https://docs.confluent.io/kafka-connect-hdfs/current/overview.html#partitioners-and-storage

 

HDFS 2 Sink Connector for Confluent Platform | Confluent Documentation

Home Kafka Connectors HDFS 2 Sink Connector for Confluent Platform The Kafka Connect HDFS 2 Sink connector allows you to export data from Kafka topics to HDFS 2.x files in a variety of formats and integrates with Hive to make data immediately available for

docs.confluent.io

partitioner.class

데이터를 HDFS에 저장할 때 파티션 종류를 지정합니다.

- Type: class
- Default: io.confluent.connect.storage.partitioner.DefaultPartitioner
- Importance: high
- Dependents: partition.field.name, partition.duration.ms, path.format, locale, timezone

 

사용가능한 파티셔너 종류는 다음과 같습니다.

- DefaultPartitioner : 카프카 파티션 번호를 기준으로 파티션을 구분
DailyPartitioner : 일 단위로 파티션 구분
- HourlyPartitioner : 시간 단위로 파티션 구분
FieldPartitioner : 특정 필드 이름별로 파티션 구분. partition.field.name 설정 필요함.
- TimeBasedPartitioner : 유입된 시간 기준으로(timestamp인듯) 파티션 설정

 

partition.field.name

FieldPartitioner를 사용할 경우 설정해야하는 옵션. 만약 여러 depth로 파티셔닝을 하려면 콤마를 기준으로 이름을 작성합니다.

 

partition.duration.ms

TimeBasedPartitioner를 사용할 경우 몇 밀리초단위로 파티션을 지정할지 정합니다. 기본값은 -1로서 TimeBasedPartitioner를 사용하지 않는 다는 뜻이 됩니다.

 

path.format

TimeBasedParitioner를 사용할 경우 시간 다뉘 파티션을 어떻게 나눌 것인지 정하게 됩니다. 예를 들어

path.format='year'=YYYY/'month'=MM/'day'=dd/'hour'=HH

로 설정할 경우 다음과 같이 적재됩니다.

/year=2015/month=12/day=07/hour=15/

 

locale

TimeBasedPartitioner를 사용할 경우 어느 나라 포맷을 사용할 것인지 정합니다.

 

timezone

TimeBasedPartitioner를 사용할 경우 어느 timezone을 기준으로 정할지 지정합니다.

 

timestamp.extractor

TimeBasedPartitioner를 사용할 경우 Wallclock 또는 Record 또는 RecordField 중 기준이 되는 시간을 지정합니다.

 

timestamp.field

TimeBasedPartitioner를 사용하고 RecordField로 시간을 뽑아낼 때 해당 시간을 사용하는 필드명을 지정합니다.

반응형