黑洞連接器

黑洞連接器主要設計用於其他元件的高效能測試。它的運作方式類似於類 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'
);