我撰寫了這個腳本來使用 DolphinDB 中的 TSDB 存盤引擎創建一個磁區表。
dbName = "dfs://tsdb_value_int"
n = 10000
t = table(n:n, [`int,`long,`short,`float,`double,`string,`char,`bool,`timestamp], [INT, LONG, SHORT,FLOAT, DOUBLE, STRING, CHAR, BOOL, TIMESTAMP])
pt1 = db.createPartitionedTable(table=t, tableName=`pt1, partitionColumns=`int,compressMethods=dict(`timestamp`long,`delta`delta),keepDuplicates=ALL)
它引發了一個例外:
The sort keys must be specified for TSDB engine.
如何在 DolphinDB 中創建磁區表?
uj5u.com熱心網友回復:
要使用 TSDB 存盤引擎,必須指定 function 的 sortColumns createPartitionedTable。TSDB 引擎根據排序列的順序維護一個索引,因此您可以將那些經常查詢的列指定為排序列。
dbName = "dfs://tsdb_value_int"
if(existsDatabase(dbName)){
dropDatabase(dbName)
}
db = database(directory=dbName, partitionType=VALUE, partitionScheme=1..10,engine="TSDB")
n = 10000
t = table(n:n, [`int,`long,`short,`float,`double,`string,`char,`bool,`timestamp], [INT, LONG, SHORT,FLOAT, DOUBLE, STRING, CHAR, BOOL, TIMESTAMP])
pt1 = db.createPartitionedTable(table=t, tableName=`pt1, partitionColumns=`int,compressMethods=dict(`timestamp`long,`delta`delta),sortColumns=`short`int, keepDuplicates=ALL)
t[`int] = rand(100,n)
t[`long] = rand(100000l,n)
t[`short] = rand(10h,n)
t[`float] = rand(100.0f,n)
t[`double] = rand(100.0,n)
t[`string] = rand("A" string(1..1000),n)
t[`char] = rand(100,n)
t[`bool] = rand([true,false],n)
tem = 2012.06.13T13:30:10.000
ts = array(timestamp,0,n)
for(i in 1..n){
tem=temporalAdd(tem, 1, `s)
ts.append!(tem)
}
t[`timestamp] = ts
pt1.append!(t)
有關詳細資訊,請參閱createPartitionedTable — DolphinDB 2.0 檔案 。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/514791.html
上一篇:如何在使用冒泡排序時對學生的ID、姓名和分數進行排序?
下一篇:兩級排序演算法如何作業?
