ブラックホールコネクター

主にブラックホールコネクターは、他のコンポーネントの高性能テスト用に設計されています。これは、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'
);