用mysql插件迁移mysql的datetime到dolphindb后损失了毫秒,如2023.12.12 09:12:01 500变成了2023.12.12 09:12:01,有什么解决方法吗

数据量上亿,

脚本如下

db=database("dfs://test6", VALUE, `ag2306`fu2305`fu2309)

def replaceTable(mutable t){
    return t.replaceColumn!(`datetime,nanotimestamp(t[`datetime]))
}

t=mysql::loadEx(conn, db, "tb",`symbol, "SELECT * FROM dbtickdata LIMIT 100",,,,replaceTable)   


用100条数据做测试,发现datatime那一列的数据类型依然是datetime,没有变成nanotimestamp类型。问题出在哪里

请先 登录 后评论

最佳答案 2023-04-29 12:45

问题原因是现在mysql插件会把mysql的datetime类型解析成dolphindb的datetime类型,所以在传入mysql::loadEx的transform参数的表也是dolphindb的datetime类型的,这时已经丢失秒以后的数据了。可以先mysql::extractSchema获取到schema,然后把datetime这一列的schema更新为nanotimestamp,然后再传入mysql::loadEx中。

请先 登录 后评论

其它 0 个回答

  • 2 关注
  • 1 收藏,675 浏览
  • 提出于 2023-04-28 05:31

相似问题