記憶體連接器¶
記憶體連接器將所有資料和中繼資料儲存在工作節點上的 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 陳述式
限制¶
當一個工作節點故障或重新啟動時,儲存在其記憶體中的所有資料將永遠遺失。為了防止靜默資料遺失,此連接器會對任何此類損毀表格的讀取存取產生錯誤。
當查詢在寫入記憶體表格期間因任何原因失敗時,該表格會處於未定義的狀態。應手動刪除並重新建立此類表格。讀取此類表格可能會失敗或可能傳回部分資料。
當協調器故障或重新啟動時,所有關於表格的中繼資料都會遺失。表格的資料仍然存在於工作節點上,但該資料無法存取。
此連接器無法與多個協調器正常運作,因為每個協調器都有不同的中繼資料。