일반 속성
일반 속성 (General properties)
Trino 클러스터를 전반적으로 구성하는 데 쓰이는 일반 속성들을 소개할게요.
출처: 문서
본문
join-distribution-type
- 타입: string
- 허용 값:
AUTOMATIC,PARTITIONED,BROADCAST - 기본값:
AUTOMATIC - 세션 속성:
join_distribution_type
사용할 분산 조인 유형이에요. PARTITIONED로 설정하면 Trino가 해시 분산 조인(hash distributed join)을 사용해요. BROADCAST로 설정하면 오른쪽 테이블을 클러스터에서 왼쪽 테이블의 데이터를 가진 모든 노드로 브로드캐스트해요. 파티셔닝 조인은 조인 키의 해시를 사용해 양쪽 테이블을 모두 재분산해야 해요. 이것은 브로드캐스트 조인보다 느릴 때가 있는데, 때로는 상당히 느릴 수 있지만 훨씬 더 큰 조인을 허용해요. 특히 오른쪽 테이블이 왼쪽보다 훨씬 작으면 브로드캐스트 조인이 더 빨라요. 다만 브로드캐스트 조인은 필터링 후 조인의 오른쪽 테이블이 각 노드의 메모리에 들어맞아야 하는 반면, 분산 조인은 모든 노드에 걸친 분산 메모리에 들어맞기만 하면 돼요. AUTOMATIC으로 설정하면 Trino가 어느 분산 유형이 최적인지 비용 기반으로 결정해요. 조인의 왼쪽·오른쪽 입력을 바꾸는 것도 고려해요. AUTOMATIC 모드에서 테이블에 통계가 없어 비용을 계산할 수 없으면 Trino는 해시 분산 조인을 기본으로 사용해요.
redistribute-writes
- 타입: boolean
- 기본값:
true - 세션 속성:
redistribute_writes
이 속성은 쓰기 전에 데이터 재분산을 활성화해요. 데이터를 클러스터 노드 전체에 해시함으로써 쓰기 시 데이터 스큐(skew)의 성능 영향을 없앨 수 있어요. 출력 데이터셋이 스큐되지 않는다는 걸 알면 네트워크를 통해 모든 데이터를 해시·재분산하는 오버헤드를 피하기 위해 이 속성을 비활성화할 수 있어요.
파일 압축·해제 (File compression and decompression)
Trino는 aircompressor 라이브러리를 사용해 ORC, Parquet 및 기타 파일을 LZ4, zstd, Snappy 및 기타 알고리즘으로 압축·해제해요. 이 라이브러리는 기본적으로 이 알고리즘을 위한 임베디드(embedded)·고성능 네이티브 구현을 활용해요.
필요하다면 JVM 설정에 다음 구성을 추가해 이 동작을 비활성화하고 JVM 기반 구현으로 폴백할 수 있어요:
-Dio.airlift.compress.v3.disable-native=true
압축 임시 디렉토리도 지정할 수 있어요:
-Daircompressor.tmpdir=/mnt/example
더 알아보기 (Learn more)
조인 성능을 최적화하는 다른 속성이 궁금하다면 옵티마이저 속성(Optimizer properties) 문서를 이어서 읽어 보세요.