在使用hdf5::loadHDF5Ex将HDF5文件中的数据集转换为DolphinDB数据库的分布式表时,使用查询函数:
dataFilePath="/home/user/data/example.hdf5"
hdf5::lsTable(dataFilePath)
看到这一份HDF5文件下包含了许多个表,如图所示:
有没有函数可以一次性将这些表转换为DolphinDB数据库的分布式表?
使用HDF5插件将HDF5文件导入DolphinDB数据库的分布式表的函数是:
hdf5::loadHDF5Ex(dbHandle,tableName,[partitionColumns],fileName,datasetName,[schema],[startRow],[rowNum],[tranform])
参数
loadHDF5Ex
函数的一个参数。函数使用
将HDF5文件中的数据集转换为DolphinDB数据库的分布式表,然后将表的元数据加载到内存中。读取的行数为HDF5文件中定义的行数,而不是读取结果中的DolphinDB表的行数。
将某一个HDF文件中的前600个表批量写入DolphinDB数据库的分布式表的示例代码如下:
dfsPath = "dfs://hdf5_example2"
if(existsDatabase(dfsPath)){
dropDatabase(dfsPath)
}
db = database(dfsPath,HASH, [SYMBOL,10])
dataFilePath = "/home/user/data/comm-ticks.hdf5"
t = hdf5::lsTable(dataFilePath)
for(i in 0:600){
datasetName = t[i,0]
hdf5::loadHDF5Ex(db, "hdf5_exmaple", "instrument", dataFilePath,datasetName)
dfsTable=loadTable(dfsPath,"hdf5_exmaple")
}