SequoiaDB能夠支持分佈式存儲結構化和半結構化數據,還能夠使用LOB大對象技術存儲海量的非結構化數據。除了能夠支持海量數據分佈式存儲外,還能夠爲用戶提供多索引功能,支持用戶在高併發場景下做數據訪問。其底層主要基於分佈式、高可用、高性能與動態數據類型設計,與Spark這種分佈式計算框架緊密集成。
sdb 'db = new Sdb("localhost",11810)'
#其中localhost表示需要連接的主機名,選擇集羣中任意一臺機器即可,11810爲協調節點。
db.createDomain( <name>, <groups>, [options] )
創建一個域。域中可以包含若干個複製組(Replica Group)。
參數描述:
name :參數類型爲string,其爲域名全局唯一;
groups : 域所包含的複製組;
options : 參數類型爲json,創建域時執行的屬性,{“AutoSplit”:true},表示打散域中保存的數據。
給創建的域名爲domain1包含所有的數據組,創建語句爲:
sdb ‘db.createDomain( “domain1”, [“gd1”,”dg2”, “gd3”,”dg4”, “gd5”,”dg6”,“gd7”,”dg8” ,“gd9”,”dg10”],{“AutoSplit”:true})’
創建語句爲:
db.createCS( <name>, [options] )
參數描述:
name 類型是string 集合空間名,同一個數據庫對象中,集合空間名必須唯一。
options 類型是Json 對象,集合空間可選屬性。
創建名爲 foo 的集合空間,所屬域爲“domain1”
sdb ‘db.createCS( "foo", { Domain: "domain1" } )’
- 創建集合
創建語句爲:
db.collectionspace.createCL(<name>,[options])
在指定集合空間下創建集合(Collection),集合是數據庫中存放文檔記錄的邏輯對象,任何一條文檔記錄必須屬於一個且僅屬於一個集合。
在foo這個集合空間下創建集合bar
sdb ‘db.foo.createCL("bar")’
給foo.bar這個集合插入一條a=1 、b=2這兩條記錄
sdb 'db.foo.bar.insert({“a”:1})'
sdb 'db.foo.bar.insert({“b”:2})'
查詢foo.bar這個集合中a=1的這條記錄
sdb 'db.foo.bar.find({“a”:1})'
查詢foo.bar這個集合中的所有記錄
sdb 'db.foo.bar.find()'
統計foo.bar這個集合中的數據量
sdb 'db.foo.bar.count()'
修改foo.bar這個集合中b=2 的記錄爲b=3
sdb 'db.foo.bar.update({“$set”:{“b”:3}},{“b”:2})'
- 刪除(delete)操作
刪除foo.bar這個集合中a=1的這條記錄
sdb 'db.foo.bar.remove({“a”:1})'
刪除foo.bar這個集合中的所有記錄
sdb 'db.foo.bar.truncate()'
- SequoiaDB導入數據
SequoiaDB導入數據可以導入csv文件和json這兩種文件。
- 導入csv文件
有csv文件test2.csv
連接數據庫,創建需要的集合空間和集合
使用sdbimprt命令進行導入,其中type類型選擇使用csv,導入後會顯示導入信息。
sdbimprt -s localhost -p 11810 -c foo -l bar --file=./test2.csv --type=csv --fields='a int , b int ,c int '
其中字段類型根據需要自定義。
- 導入json格式的文件
存在json文件test2.json
連接數據,創建集合空間和集合
使用sdbimprt導入數據,其中type類型選擇使用json,導入後會打印導入信息。
sdbimprt -s localhost -p 11810 -c foo -l bar --type=json --file=./test2.json
- SequoiaDB導出工具
導出json類型數據
sdbexprt -s localhost -p 11810 -c foo -l bar --type=json --file=test2.json
導出csv類型數據
sdbexprt -s localhost -p 11810 -c foo -l bar --type=csv --file=test2.csv --field='a , b ,c'
其中file爲指定導出目錄文件,導出查看相關的目錄文件爲導出數據。
sdb 'db.createDomain( “domain1”, [“gd1”,”dg2”, “gd3”,”dg4”, “gd5”,”dg6”,“gd7”,”dg8” ,“gd9”,”dg10”],{“AutoSplit”:true})'
sdb'db.createDomain(“domain1”,[“gd1”,“dg2”,“gd3”,“dg4”,“gd5”,“dg6”,“gd7”,“dg8”,“gd9”,“dg10” ],{“自動分割”:真})”