2016-11-16 42 views
0

此刻我只能在dfs.tmp.工作區工作,這很煩人。於是,我就change the default workspace到一個新的(現有的)文件夾(鑽用戶自備):Apache Drill無法設置默認工作區

"workspaces": { 
    "default": { 
     "location": "/var/drill", 
     "writable": true, 
     "defaultInputFormat": null 
    }, 
    "root": { 
     "location": "/", 
     "writable": false, 
     "defaultInputFormat": null 
    }, 
... 

但它不工作:

CREATE TABLE `test` as SELECT 'Test' FROM (VALUES(1)) 

返回下面的錯誤,這表明修改設置會被忽略。

org.apache.drill.common.exceptions.UserRemoteException: PARSE ERROR: Root schema is immutable. Creating or dropping tables/views is not allowed in root schema.Select a schema using 'USE schema' command.

我也前綴(沒有成功)試了一下

CREATE TABLE dfs.default.`test` as SELECT 'Test' FROM (VALUES(1)) 

PARSE ERROR: Encountered ". default" at line 1, column 17.

而且還試圖重新啓動鑽機,使root寫入。

回答

1

添加此答案僅用於結合ColemanTO和devツ 中的兩個現有示例並顯示示例。

因此,就像迄今爲止所說的其他答案一樣,在鑽取查詢中保留單詞「default」。您正確地引用docs來表示創建一個新的默認工作區,以便定義可寫入的根(/)工作區。然而,documentation也給出了一個例子,爲了實際引用自定義的「默認」工作區,您需要添加反引號。

所以,如果你增加了一個工作區

{ 
    "type": "file", 
    "enabled": true, 
    "connection": "hdfs:///", 
    "config": null, 
    "workspaces": { 
    "default": { 
     "location": "/some/path", 
     "writable": true, 
     "defaultInputFormat": null 
    } 
    ... 
    } 
... 
} 

你指的是在一個查詢,如:

SELECT * FROM dfs.`default`.`path/relative/to/custom/default/location` LIMIT 10; 

在你的原貼的問題的情況下,你也可以創建一個新的工作區稱爲「var_drill」,這樣您就不必在查詢中從關鍵字「default」中跳出。

0

在工作區中使用除default之外的其他任何名稱。

defaultreserved keyword爲鑽。 「

+0

我知道!但在手冊中聲明,我必須覆蓋「默認」工作區以更改我的默認工作區!只需看看:https://drill.apache.org/docs/workspaces/ – NaN

0

」注意:默認值是一個保留字,您必須在保留字中包含保留字作爲後備符號中的標識符。「

0

是默認值是一個保留關鍵字,它應該反引號