Как правильно разделить в DolphinDB для достижения лучшей производительности? - PullRequest
0 голосов
/ 30 сентября 2019

У меня 10 тысяч устройств, и на каждом устройстве 10 тысяч записей. Для каждой записи у нас должны быть столбцы, включающие devId (int), devName (строка), devgroup (int), время (временная метка), температуру (int) и влажность (float). Чтобы быть конкретным, devId колеблется от 1 до 10000;devName также варьируется от 'dev'_1 до' dev_10000 ';Диапазон DevGroup составляет от 0 до 99 (каждые 100 устройств в группе). В DolphinDB я определил две схемы:

dbDir = 'dfs://devDB'
if(existsDatabase(dbDir))
   dropDatabase(dbDir)
range_schema=0..100 * 100 + 1
db = database(dbDir, RANGE, range_schema)
dev = db.createPartitionedTable(schema, `dev , `devId)

Или если я разделю так:

dbDir = 'dfs://devDB'
if(existsDatabase(dbDir))
   dropDatabase(dbDir)
range_schema=0..100 * 100 + 1
db1 = database("", VALUE, 0..99)
db2 = database("", RANGE, range_schema) 
db = database(dbDir, COMPO, [db1,db2])
db.createPartitionedTable(schema,`dev,`devGroup`devId)

Интересно, что является более правильным, или есть правило разделения?

...