如何有效地使用MySQL的股票/时间序列相关的数据?

o2g1uqev  于 2023-01-08  发布在  Mysql
关注(0)|答案(1)|浏览(112)

我用Python和MySQL通过API摄取数据,生成信号,执行命令,目前是功能耦合的,就是一个脚本取数据,存储到MySQL,生成信号,执行命令,紧耦合并不是所有的逻辑都在一个文件里,不同的任务有不同的函数。2如果脚本出错,所有的程序都会停止。3 DB表的生成方式是基于运行过滤机制后可用的工具。Python代码创建了一个相同模式的不同表,但基于仪器名称具有不同的表名。
现在我愿意把各部分分开:
1.数据摄取(必备)
1.信号生成
1.订单执行
1.报告
我主要关注前三个。我关心的是,如果不同的进程运行,作用于相同的表,它会产生任何锁定或什么?我如何顺利地处理它?或者,MySQL是否足够好,或者我转移到其他一些数据库,如Postgres或其他?我们已经在使用数字海洋示例,MySQL当前安装在同一示例上。

sdnqo3pr

sdnqo3pr1#

如果你打算大规模地获取/查询时间序列,传统的RDBMS会在某个点上出现问题,它们是为读比写更频繁的用例而设计的,并为此进行了优化。
有一系列的数据库是专门为处理时间序列数据而设计的,这些时间序列数据库可以高吞吐量地接收数据,同时在顶部运行查询,它们通常给予生命周期功能,以便您在数据不断增长时决定如何处理。
many options available,既有开源的也有专有的,在这些数据库中,我建议你尝试一下QuestDB,原因如下:

  • 它是开放源代码的,并获得Apache2.0许可,因此您可以在任何地方使用它
  • 它是一个单一的二进制文件(或Docker容器)来操作
  • 使用SQL查询数据(带有时间序列扩展)
  • 您可以使用SQL插入数据,但如果使用并发客户端,则会遇到锁定。不过,您也可以使用ILP协议接收数据,该协议专为接收速度而设计。由于存在official clients in 7 languages,因此您不必处理底层细节
  • 它的速度快得惊人,我已经看到在一个示例上每秒有超过200万次插入,一些用户报告说持续的工作负载超过每秒10万个事件
  • 它是well supported on Digital Ocean
  • 在金融/贸易/加密行业中有大量的公共参考(以及许多不是参考的用户

相关问题