5 将mysql的数据导入到dolphindb内存表中,如果数据量巨大,是否可以内存溢出?

将mysql的数据导入到dolphindb内存表中,如果数据量巨大,是否可以内存溢出?应该如何避免?

请先 登录 后评论

1 个回答

Xinhai Tang

将mysql的数据导入到dolphindb内存表中,如果导入的数据大于该节点的maxMemSize的值,就会报内存溢出的情况,任务失败。

解决方案1:

DolphinDB的MySQL插件通过mysql::load(connection, table_or_query, [schema], [startRow], [rowNum])将数据加载到DolphinDB内存表时,可以指定一次加载的起始行和结束行,可以通过批量加载的方式分批加载到DolphinDB,然后分批写入DolphinDB的dfs表。

解决方案2:

DolphinDB的MySQL插件通过mysql::loadEx(connection, dbHandle,tableName,partitionColumns,table_or_query,[schema],[startRow],[rowNum],[transform])将MySQL中的数据直接写入DolphinDB的dfs表,且自动会拆分数据源进行分批加载,即使MySQL的数据源大于节点的MaxMemSize,加载的过程中也是部分数据分批次加载到DolphinDB写入dfs表,不会出现内存溢出的情况。

存入DolphinDB的dfs表后,就可以通过mr函数对数据做一些计算。

参考教程:

DolphinDB MySQL Plugin




请先 登录 后评论