일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- Zookeeper
- 데이터 웨어하우스
- 스파크
- delta lake
- airflow
- 데이터 엔지니어링
- 레드시프트
- Redshift
- 스파크 스트리밍
- Data Warehouse
- 컬럼 기반
- 카프카 구축
- 데이터 엔지니어
- 델타레이크
- Schema Registry
- Parquet
- docker
- Data engineering
- 대용량 처리
- spark
- s3
- spark streaming
- 에어플로우
- 카프카
- AWS
- 데이터
- kafka rest api
- MySQL
- Data Engineer
- kafka
- Today
- Total
데이터 엔지니어 기술 블로그
[🧙Kafka] 카프카 토픽 이름 짓는 법(Topic Naming Convention) 본문
개요
카프카에서는 토픽을 많이 생성해서 사용하는데 Naming Convention 없이 사용하게 된다면 나중에 복잡해질수도 있기 때문에 알아보려고 한다.
Convention
카프카에서 토픽을 생성할 때 유효한 문자는 [영문, 숫자, '.', '_', '-']만 사용할 수 있다. 그리고 유의할 점은 마침표(.)와 밑줄(_)은 충돌할 수 있기 때문에 둘 중 하나만 사용하는 것이 좋다.
선택할 수 있는 예시들은 다음과 같다.
- <namespace>.<product>.<event-type>
- <application>-<data-type>-<event-type>
- <organization>.<application-name>.<event-type>.<event>
- <message type>.<dataset name>.<data name>
- <root name space>.<product>.<product specific hierarchy>
- <app type>.<app name>.<dataset name>.<stage of processing>
- <app type>.<dataset name>.<data>
<message type>.<dataset name>.<data name>
이 게시물을 작성한 사람은 이 데이터 타입으로 성공했다고 한다. 이 방식으로 사용하면 인프라가 어느정도 커져도 커버할 수 있을 것으로 예상된다.
message type
- logging
- queuing
- tracking
- etl/db
- streaming
- push
- user
- ...
dataset name
RDMBS의 데이터베이스 이름이라고 생각한다.
data name
RDMBS의 테이블 이름이라고 생각한다.
case
위 메세지 타입을 고안한 사람의 블로그에서는 snake_case를 사용하면 좋다고 하지만 마침표(.)와 밑줄(_)이 충돌하기 때문에 snake_case는 사용할 수 없을 것 같고 kebab-case를 사용하는 것이 깔끔하게 보일 것 같다.
팁
사용하면 안되는 이름
시간이 지남에 따라 변경되는 이름은 사용하지 않는 것이 좋다. 팀 이름이나 제품 이름 등 변경될 수 있는 것을 이름으로 사용하면 토픽의 이름을 변경할 수 없기 때문에 문제가 된다.
소비자와 생산자와 관련된 이름도 시간이 지남에 따라 변경될 수 있기 때문에 사용하지 않는 것이 좋다.
auto.create.topics.enable=false
토픽을 자동으로 생성할 수 없게 하고 관리하면 컨벤션을 지키는데에 도움이 된다.
'데이터 엔지니어링' 카테고리의 다른 글
[⚡AWS] Redshift 기초 이해하기 (0) | 2021.10.12 |
---|---|
private PyPI 구축하기(S3 backend) (0) | 2021.10.11 |
[압축 방식 비교] gzip vs snappy vs lz4 vs brotli vs zstd vs lzo (0) | 2021.07.10 |
[🧙Kafka] S3 Sink Connector: 카프카 S3와 연동하기 (0) | 2021.07.09 |
[Airflow] Task 알아보기: Operator, Sensor, TaskFlow (0) | 2021.06.21 |