黑洞连接器

黑洞连接器主要用于对其他组件进行高性能测试。它类似于类 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'
);