Blob 및 ADLS 의 Partition Key 는 the full blob name (account + container + blob) 이다.
https://[account].dfs.core.windows.net/[container]/[blob]
예를 들어, 데이터 레이크 계정 이름이 acdatalake
이고 랜딩 존을 위한 컨테이너는 이름은 landing
, 실제 파일인 blob이 file.parquet
이라면 아래와 파티션 키는 아래와 같다.
https://acdatalake.dfs.core.windows.net/landing/file.parquet
파티셔닝에서 "파티션 키"는
데이터를 파티션으로 나누기 위한 기준이 되는 열(또는 여러 열) 을 나타낸다. 이 키를 기반으로 데이터가 여러 부분으로 나뉘어 저장된다. 파티션 키는 데이터를 어떻게 분할할지 결정하며, 이는 데이터의 효율적인 관리와 쿼리 성능을 향상시키는 데 중요한 역할을 한다.
Range-Based Partitioning 을 사용한다.
데이터는 범위(range)로 분할되며 이는 storage system 전체에 로드 밸런싱된다.
부하가 일정 수준까지 증가하면 데이터는 더 작은 범위로 분할된다.
The naming convention will greatly affect how data is partitoned.
그리고 최상의 성능과 관리상의 고민을 줄이기 위해서, keep partiotion size smaller and prune.
이름을 신중하게 지어야 한다. (~ Partition Key)
Parallel Operations, 병렬 작업이 가능하도록 설계한다.
동시에 발생할 수 있는 read 와 write 가 많을 수록 더 좋다. 작업이 병렬로 진행될 수 있도록 파티셔닝을 설계해야 한다.
불필요한 데이터를 Pruning
Pruning data는 어플리케이션이 작은 양의 데이터를 처리할 때,
불필요한 데이터를 더 적은 양의 공간을 차지하도록 제거하거나 줄이는 것을 의미한다.
대부분 날짜에 기반하여 결정되지만, 언제 시스템에서 데이터를 정리할 수 있는지 고려해야 한다.
파티션 크기를 작게 유지하면 쿼리 응답 시간이 줄어든다.
파티션을 오프라인으로 전환한다는 것은,
특정 파티션(데이터의 물리적 또는 논리적 분할)을 일시적으로 액세스 불가능하게 만드는 것을 의미한다. 이는 유지보스, 데이터 마이그레이션, 스키마 변경 등 다양한 이유로 필요할 수 있다. 예를 들어, 특정 데이터 세트의 스키마를 변경하거나, 데이터를 정리하거나, 특정 데이터를 다른 포맷으로 변환하는 작업 등이 이에 해당할 수 있다.