黑洞连接器¶
黑洞连接器主要用于对其他组件进行高性能测试。它类似于类 Unix 操作系统上的 /dev/null
设备,用于数据写入,类似于 /dev/null
或 /dev/zero
设备,用于数据读取。但是,它还有一些其他功能,可以更受控地测试 Presto。通过此连接器创建的任何表的元数据都保存在协调器内存中,并在 Presto 重新启动时被丢弃。默认情况下,创建的表始终为空,写入它们的数据将被忽略,数据读取将不返回任何行。
在创建表时,可以指定所需的行数。在这种情况下,写入的行为相同,但读取将始终返回指定数量的某些常量行。你不应该依赖此类行的内容。
警告
此连接器不适用于多个协调器,因为每个协调器将拥有不同的元数据。
配置¶
要配置黑洞连接器,请创建一个目录属性文件 etc/catalog/blackhole.properties
,其内容如下:
connector.name=blackhole
示例¶
使用黑洞连接器创建表
CREATE TABLE blackhole.test.nation AS
SELECT * from tpch.tiny.nation;
将数据插入黑洞连接器中的表
INSERT INTO blackhole.test.nation
SELECT * FROM tpch.tiny.nation;
从黑洞连接器中选择
SELECT count(*) FROM blackhole.test.nation;
上面的查询将始终返回零。
创建一个具有固定行数的表(500 * 1000 * 2000)
CREATE TABLE blackhole.test.nation (
nationkey bigint,
name varchar
)
WITH (
split_count = 500,
pages_per_split = 1000,
rows_per_page = 2000
);
现在查询它
SELECT count(*) FROM blackhole.test.nation;
上面的查询将返回 1,000,000,000。
可以使用 field_length
表属性控制可变长度列的长度(默认值为 16)。
CREATE TABLE blackhole.test.nation (
nationkey bigint,
name varchar
)
WITH (
split_count = 500,
pages_per_split = 1000,
rows_per_page = 2000,
field_length = 100
);
可以使用 page_processing_delay
表属性减慢消费和生产速度。将此属性设置为 5s
将导致在消费或生产新页面之前延迟 5 秒。
CREATE TABLE blackhole.test.delay (
dummy bigint
)
WITH (
split_count = 1,
pages_per_split = 1,
rows_per_page = 1,
page_processing_delay = '5s'
);