블랙홀 커넥터
블랙홀 커넥터 (Black Hole connector)
블랙홀 커넥터는 주로 다른 컴포넌트의 고성능 테스트를 위해 설계됐어요. 데이터 쓰기에서는 Unix 계열 운영체제의 /dev/null처럼 동작하고, 데이터 읽기에서는 /dev/null 또는 /dev/zero처럼 동작해요. 하지만 Trino를 더 통제된 방식으로 테스트할 수 있게 해 주는 다른 기능도 있어요. 이 커넥터로 생성된 테이블의 메타데이터는 코디네이터의 메모리에 보관되고, Trino가 재시작되면 버려져요. 생성된 테이블은 기본적으로 항상 비어 있고, 쓰인 데이터는 무시되며, 데이터 읽기는 행을 반환하지 않아요.
출처: 문서
본문
테이블 생성 중에 원하는 행 수를 지정할 수 있어요. 그런 경우 쓰기는 같은 방식으로 동작하지만, 읽기는 항상 지정된 수의 일정한(상수) 행을 반환해요. 그런 행의 내용에 의존해서는 안 돼요.
설정 (Configuration)
blackhole 커넥터를 example 카탈로그로 마운트하려면 다음 내용으로 etc/catalog/example.properties를 만드세요:
connector.name=blackhole
블랙홀 테이블은 기본적으로 모든 쓰기를 흡수하고 읽기는 빈 결과를 반환해요:
CREATE TABLE example.test.nation AS
SELECT * from tpch.tiny.nation;
INSERT INTO example.test.nation
SELECT * FROM tpch.tiny.nation;
SELECT count(*) FROM example.test.nation;
테이블 생성 시 split_count, pages_per_split, rows_per_page를 지정하면 읽기가 그만큼의 상수 행을 반환해요:
CREATE TABLE example.test.nation (
nationkey BIGINT,
name VARCHAR
)
WITH (
split_count = 500,
pages_per_split = 1000,
rows_per_page = 2000
);
SELECT count(*) FROM example.test.nation;
field_length로 생성할 필드(문자열)의 길이도 정할 수 있어요:
CREATE TABLE example.test.nation (
nationkey BIGINT,
name VARCHAR
)
WITH (
split_count = 500,
pages_per_split = 1000,
rows_per_page = 2000,
field_length = 100
);
page_processing_delay로 페이지 처리에 의도적인 지연을 넣어 지연 테스트를 할 수도 있어요:
CREATE TABLE example.test.delay (
dummy BIGINT
)
WITH (
split_count = 1,
pages_per_split = 1,
rows_per_page = 1,
page_processing_delay = '5s'
);
더 알아보기 (Learn more)
성능 테스트용 커넥터가 궁금하다면 TPCH 커넥터 문서를 이어서 읽어 보세요.