查詢語句系列—掛載和卸載數據

### 掛載(ATTACH)

此查詢語句與 CREATE 語句類似,?

此語句本身并不在磁盤上創建數據, 假設 數據已經在合適的位置 , 則添加表相關信息到服務器上. 在執行 ATTACH 語句后, 服務器將知道表的存在.

如果數據庫的表之前已經卸載(DETACH), 意思是它的結構是已知的 , 你可以使用它作為快捷方式創建表,不需要定義表結構。

ATTACH TABLE [IF NOT EXISTS] [db.] name

當啟動服務器后,此查詢將可用。服務器保存表的元數據作為ATTACH掛載語句的文件,它在啟動時運行比較簡單。

### 卸載(DETACH)

從服務器上刪除相關表的信息. 清除服務器對表相關信息和表結構的記錄。

DETACH TABLE [IF EXISTS] [db.] name

它不刪除表的數據和元數據. 在下一次服務器啟動后,服務器將讀取元數據,再次找到相關的表. 與之類似的, 一個 "已卸載" 的表能夠使用ATTACH 語句重新掛載.

另外,并沒有 DETACH DATABASE 語句.

### 刪除語句(DROP)

此查詢有2種類型:?DROP DATABASE?和 DROP TABLE.

DROP DATABASE [IF EXISTS] db [ON CLUSTER cluster]

在 'db' 數據庫中刪除所有的表, 然后刪除 'db' 數據庫.如果IF EXISTS?被指定,如果數據庫不存在,則不返回錯誤。

DROP [TEMPORARY] TABLE [IF EXISTS] [db.] name [ON CLUSTER cluster]

刪除表 . 如果指定?IF EXISTS?,?如果表不存在或數據庫不存在,則不返回錯誤。

### 重命名(RENAME)

重命名單個表或多個表。

RENAME TABLE [db11.] name11 TO [db12.] name12, [db21.] name21 TO [db22.] name22,...[ON CLUSTER cluster]

所有的表在全局鎖下進行重命名操作. 重命名表是一個信號操作. 如果你在 TO 之后指定了另外一個數據庫, 此表將移動到此數據庫. 然而, 數據庫的路徑必須放在相同的文件系統中 (否則, 錯誤將返回).

### 更改語句(ALTER)

ALTER?查詢僅支持Merge、Distributed 或?*MergeTree?表, 此查詢有基本變量.

字段操作

更改表結構.

ALTER TABLE [db].name [ON CLUSTER cluster] ADD | DROP | MODIFY COLUMN...

在查詢過程中,指定一個逗號分隔的列表. 每個動作是對一個字段的操作.

如下的動作將被支持:

ADD COLUMN name[type][default_expr][AFTER name_after]

添加一個新字段到表中 ,表指定名稱、類型和默認表達式. 如果你指定?AFTER?name_after(另一個字段的名稱), 字段將在特定字段之后被添加. 否則, 此字段被添加到表的末尾. 目前還不支持在表的開頭添加新的字段。對于動作鏈,?'name_after'?是 一個列名被添加到之前的動作上.

添加一個列可改變表結構, 不需要執行任何的帶有數據的動作. 在?ALTER之后, 數據不出現在磁盤中. 當從表中讀取數據時,如果數據丟失, 它將填充默認值 (通過執行默認表達式, 或者使用0或空字符串). 在合并到數據分片之后,字段出現在磁盤上 (請參照合并樹(MergeTree)).

本方法可以讓你執行 ALTER 查詢, 而不需要增加老數據的磁盤卷.

DROP COLUMN name

刪除帶有名稱?'name' 的字段. 從文件系統中刪除數據. 當刪除整個文件后, 查詢立即可用.

MODIFY COLUMN name [type] [default_expr]

更改'name'列的類型到'type' 或者默認表達式到'default_expr'.當更改類型時,此值將被轉換,類似于在列上使用??'toType' 函數.

如果只有默認表達式更改,查詢不做復雜的操作,查詢執行也立即完成。

更改列類型也是復雜動作—它改變了數據文件的內容。對于一張大表,它將花很長時間。

有一些處理的階段:

為修改數據準備臨時文件

重命名舊文件

重命名臨時文件到舊的名稱

刪除舊文件

只有第一階段耗費時間. 如果在此階段發生故障, 數據將不改變. 如果在后續階段發生故障, 數據可被手動修復. 如果舊文件從文件系統中刪除,而新文件的數據還沒有寫到磁盤或者丟失,則發生異常。

不支持在數組和嵌套數據結構中更改字段。

ALTER?查詢允許你在嵌套數據結構中創建和刪除字段, 但是并不是整個嵌套數據結構. 為了添加一個嵌套數據結構, 你能夠添加帶有名稱?name.nested_name和 類型?Array(T)?的字段. 一個嵌套數據結構與 多個數組字段等價,并有相同的前綴.

不支持在主鍵上刪除字段或者樣本鍵(此列在Engine引擎表達式中)。改變主鍵列的類型,僅可能是此更改不會影響數據修改(例如,它允許添加值到Enum或者更改DateTime類型為UInt32)。

如果ALTER查詢對于更改表結構是不充足的,你可以創建一個新表,使用INSERT SELECT?語句將數據拷貝到新表中,然后使用RENAME查詢切換表,同時刪除舊的表。

ALTER請求阻塞了所有的讀寫操作. 換句話說, 如果一個?SELECT?語句在?ALTER語句執行時運行,?其他語句將等待ALTER?語句完成后再執行. 同時,對于相同表的 所有新查詢將等待,直到ALTER執行完成。

對于不存儲數據的表來說 (例如 Merge?和 Distributed),?ALTER 可以改變表的結構, 不改變下級表的結構. 例如, 當在分布式表中運行 ALTER 操作時, 你也需要運行ALTER 語句在所有的遠程節點服務器上.

對于更新字段的ALTER查詢是同步的. 具體配置保存在 ZooKeeper 中, 然后 每個副本節都可以使用它. 所有的 ALTER?查詢將按照相同的順序來運行. 而,在復制表中更改列的查詢是中斷的, 所有的動作將異步執行.

版權聲明:本文版權歸@神州云聯科技有限公司所有,未經允許任何單位或個人不得轉載,復制或以任何其他方式使用本文全部或部分,侵權必究。

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 230,527評論 6 544
  • 序言:濱河連續發生了三起死亡事件,死亡現場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機,發現死者居然都...
    沈念sama閱讀 99,687評論 3 429
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 178,640評論 0 383
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 63,957評論 1 318
  • 正文 為了忘掉前任,我火速辦了婚禮,結果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當我...
    茶點故事閱讀 72,682評論 6 413
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發上,一...
    開封第一講書人閱讀 56,011評論 1 329
  • 那天,我揣著相機與錄音,去河邊找鬼。 笑死,一個胖子當著我的面吹牛,可吹牛的內容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 44,009評論 3 449
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 43,183評論 0 290
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當地人在樹林里發現了一具尸體,經...
    沈念sama閱讀 49,714評論 1 336
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 41,435評論 3 359
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發現自己被綠了。 大學時的朋友給我發了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 43,665評論 1 374
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 39,148評論 5 365
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質發生泄漏。R本人自食惡果不足惜,卻給世界環境...
    茶點故事閱讀 44,838評論 3 350
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 35,251評論 0 28
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 36,588評論 1 295
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 52,379評論 3 400
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 48,627評論 2 380

推薦閱讀更多精彩內容