SequoiaDB巨杉資料庫-createCL()概述1
名稱
createCL - 建立一個新的集合。
語法
db.collectionspace.createCL(<name>,[options])
類別
Collection Space
描述
在指定集合空間下建立集合(Collection),集合是資料庫中存放文件記錄的邏輯物件,任何一條文件記錄必須屬於一個且僅屬於一個集合。
引數
-
name
( String, 必填 )集合名,在同一個集合空間中,集合名必須唯一。
-
options
( Object, 選填 )在建立集合時,可以通過
options
引數設定集合的其他屬性,如指定集合的分割槽鍵,是否以壓縮的形式插入資料等。可組合使用options
-
ShardingKey
( Object ):分割槽鍵。格式:
ShardingKey:{<欄位1> : <1|-1>,[<欄位2> : <1|-1>, ...]}
-
ShardingType
( String ):分割槽方式。預設為 hash 分割槽。其可選取值如下:- "hash":hash 分割槽。
- "range":範圍分割槽。
格式:
ShardingType:"hash"|"range"
-
Partition
( Int32 ):分割槽數。僅當選擇 hash 分割槽時填寫,代表了 hash 分割槽的個數。其值必須是2的冪。範圍在[2^3,2^20]。預設為4096。格式:
Partition: <分割槽數>
-
ReplSize
( Int32 ):寫操作需同步的副本數。預設值為1。其可選取值如下:- -1:表示寫請求需同步到該複製組若干活躍的節點之後,資料庫寫操作才返回應答給客戶端。
- 0:表示寫請求需同步到該複製組的所有節點之後,資料庫寫操作才返回應答給客戶端。
- 1 - 7:表示寫請求需同步到該複製組指定數量個節點之後,資料庫寫操作才返回應答給客戶端。
格式:
ReplSize: <num>
-
Compressed
( Bool ):標示新集合是否開啟資料壓縮功能。預設為 true。格式:
Compressed:true|false
-
CompressionType
- "snappy":使用 snappy 演算法壓縮。
- "lzw":使用 lzw 演算法壓縮。
格式:
CompressionType:"snappy"|"lzw"
-
IsMainCL
( Bool ):標示新集合是否為主分割槽集合,預設為 false。格式:
IsMainCL:true|false
-
AutoSplit
( Bool ):標示新集合是否開啟自動切分功能,預設為 false。格式:
AutoSplit:true|false
-
Group
( String ):指定新集合將被建立到哪個複製組。格式:
Group:<group name>
-
AutoIndexId
( Bool ):標示新集合是否自動使用_id欄位建立名字為"$id"的唯一索引,預設為 true。格式:
AutoIndexId:true|false
-
EnsureShardingIndex
( Bool ):標示集合是否自動使用ShardingKey包含的欄位建立名字為"$shard"的索引,預設為true。格式:
EnsureShardingIndex:true|false
-
StrictDataMode
( Bool ):標示對該集合的操作是否開啟嚴格資料型別模式,預設為false(不開啟)。嚴格資料模式的開啟標示對數值操作存在以下限制:- 運算過程不改資料型別;
- 數值運算出現溢位時直接報錯,錯誤碼SDB_VALUE_OVERFLOW;
格式:
StrictDataMode:true|false
-
AutoIncrement
( Object ):自增欄位格式:
AutoIncrement:{Field: <欄位>, ...}
或AutoIncrement:[ {Field: <欄位1>, ...}, {Field: <欄位2>, ...}, ... ]
例子:
AutoIncrement: { Field: "userID", Generated: "always" }
- 引數詳情可參考
-
LobShardingKeyFormat
( String ):指定大物件生成主表切分鍵鍵值的格式。目前支援將大物件ID中的時間屬性轉換成如下字串形式:- "YYYYMMDD":將大物件ID的時間屬性轉換為年月日的字串形式,如"20190701"。
- "YYYYMM":將大物件ID的時間屬性轉換為年月的字串形式,如"201907"。
- "YYYY":將大物件ID的時間屬性轉換為年的字串形式,如"2019"。
格式:
LobShardingKeyFormat:"YYYYMMDD"|"YYYYMM"|"YYYY"
-
Note:
集合名限制請參考
當引數
options
內設定了多個引數時,需用英文半形的逗號","將各引數的取值隔開。在時,可以指定所屬的。建立集合時,使用 Group 引數,指定的複製組必須在域內;不使用 Group 引數,集合將被建立在域的任意一個複製組上。
建立集合的 AutoSplit 引數比資料域的 AutoSplit 屬性優先順序更高。
AutoSplit 不能與 Group 引數同時使用。
AutoSplit 必須配合雜湊分割槽使用。
壓縮演算法選擇策略:snappy 壓縮演算法是以單條記錄為單位進行壓縮,記錄內部的資料重複度直接影響到壓縮率。因此,當記錄內部資料重複度較高,如每條記錄的欄位名、欄位值相似,使用 snappy 演算法可獲得良好的壓縮效能。如果記錄內部資料重複度很低,但記錄間具有更高的相似性,如不同記錄之間有相同的欄位名,相近的欄位值等,則使用 lzw 演算法更優。
LobShardingKeyFormat 只能在主表中使用,同時要求切分鍵只能有一個切分欄位。
瞭解更多內容請點選