記憶體連接器

記憶體連接器將所有資料和中繼資料儲存在工作節點上的 RAM 中,並且在 Presto 重新啟動時會將兩者都捨棄。

設定

若要設定記憶體連接器,請建立一個目錄屬性檔案 etc/catalog/memory.properties,內容如下

connector.name=memory
memory.max-data-per-node=128MB

memory.max-data-per-node 定義每個節點上,此連接器儲存頁面的記憶體限制(預設值為 128MB)。

範例

使用記憶體連接器建立表格

CREATE TABLE memory.default.nation AS
SELECT * from tpch.tiny.nation;

將資料插入記憶體連接器中的表格

INSERT INTO memory.default.nation
SELECT * FROM tpch.tiny.nation;

從記憶體連接器中選取

SELECT * FROM memory.default.nation;

刪除表格

DROP TABLE memory.default.nation;

SQL 支援

記憶體連接器允許在記憶體中查詢和建立表格與結構描述。以下是一些支援的 SQL 操作範例

CREATE SCHEMA

建立一個名為 default1 的新結構描述

CREATE SCHEMA memory.default1;

CREATE TABLE

default1 結構描述中,建立一個名為 my_table 的新表格

CREATE TABLE memory.default1.my_table (id integer, name varchar, age integer);

INSERT INTO

將資料插入 my_table 表格

INSERT INTO memory.default1.my_table (id, name, age) VALUES (1, 'John Doe', 30);

SELECT

my_table 表格選取資料

SELECT * FROM memory.default1.my_table;

DROP TABLE

刪除現有表格

DROP TABLE memory.default.nation;

注意

在使用 DROP TABLE 之後,記憶體不會立即釋放。它會在下次寫入記憶體連接器時釋放。

記憶體連接器限制

不支援下列 SQL 陳述式

限制

  • 當一個工作節點故障或重新啟動時,儲存在其記憶體中的所有資料將永遠遺失。為了防止靜默資料遺失,此連接器會對任何此類損毀表格的讀取存取產生錯誤。

  • 當查詢在寫入記憶體表格期間因任何原因失敗時,該表格會處於未定義的狀態。應手動刪除並重新建立此類表格。讀取此類表格可能會失敗或可能傳回部分資料。

  • 當協調器故障或重新啟動時,所有關於表格的中繼資料都會遺失。表格的資料仍然存在於工作節點上,但該資料無法存取。

  • 此連接器無法與多個協調器正常運作,因為每個協調器都有不同的中繼資料。