라이터 스케일링 속성
라이터 스케일링 속성 (Writer scaling properties)
라이터 스케일링(writer scaling)은 고정된 수의 태스크를 할당하는 대신 라이터 태스크 수를 Trino가 동적으로 확장할 수 있게 해 줘요.
출처: 문서
본문
라이터 스케일링을 사용하면 Trino가 고정된 수의 태스크를 할당하는 대신 라이터 태스크 수를 동적으로 늘려요. 라이터당 평균 물리 데이터 양이 최소 임계값보다 높을 때 추가 태스크가 더해지는데, 다만 쿼리가 쓰기에서 병목이 될 때만 그래요.
라이터 스케일링은 Hive처럼 라이터당 파일을 하나 이상 생성하는 커넥터에서 유용해요. 라이터 수를 줄이면 평균 파일 크기가 커지기 때문이죠. 다만 라이터 스케일링은 라이터 수가 쿼리 요구에 맞춰 올라가는 동안 라이터 병렬성이 줄어들어 쿼리 벽시계 시간에 약간 영향을 줄 수 있어요.
scale-writers
- 타입: boolean
- 기본값:
true - 세션 속성:
scale_writers
클러스터에서 라이터 태스크 수를 동적으로 늘려 라이터 스케일링을 활성화할지 여부예요.
task.scale-writers.enabled
- 타입: boolean
- 기본값:
true - 세션 속성:
task_scale_writers_enabled
태스크 내 동시 라이터 수를 스케일링할지 여부예요. 스케일링을 위한 태스크당 최대 라이터 수는 task.max-writer-count예요. 추가 라이터는 라이터당 처리되는 평균 압축되지 않은 데이터 양이 writer-scaling-min-data-processed의 최소 임계값보다 높고 쿼리가 쓰기에서 병목일 때만 더해져요.
task.scale-writers.max-writer-memory-percentage
- 타입: double
- 기본값:
70 - 세션 속성:
task_scale_writers_max_writer_memory_percentage
라이터 스케일링을 멈추기 전에 태스크 내 동시 라이터가 사용할 수 있는 노드당 메모리의 최대 백분율이에요. 이 값은 0.0과 100.0 사이여야 해요. 총 사용 메모리가 노드당 최대 메모리의 이 백분율을 초과하면 메모리 부족 오류를 막기 위해 라이터 스케일링이 일시 중지돼요.
writer-scaling-min-data-processed
- 타입: data size
- 기본값:
120MB - 세션 속성:
writer_scaling_min_data_processed
다른 라이터를 추가하기 전에 한 라이터가 처리해야 하는 압축되지 않은 데이터의 최소 양이에요.
더 알아보기 (Learn more)
쓰기 성능 관련 태스크 속성이 궁금하다면 태스크 속성(Task properties) 문서를 이어서 읽어 보세요.