Python 核心技术与实战
景霄
Facebook 资深工程师
114324 人已学习
新⼈⾸单¥59
登录后,你可以任选4讲全文学习
课程目录
已完结/共 47 讲
开篇词 (1讲)
Python 核心技术与实战
15
15
1.0x
00:00/00:00
登录|注册

38 | MySQL:日志和数据存储系统

样例代码
安装方式
样例代码
安装方式
在线分析
离线分析
存储效率和分析效率
日志收集系统
模块需求
数据分析
数据库存储
peewee
mysqlclient
SQL操作
索引
数据库术语
关系型数据库特征
数据库系统的应用
数据量增加的挑战
简单数据存储
用途
重要性
思考题
总结
日志分析
分布式日志系统
量化数据分析系统
Python连接MySQL
快速理解MySQL
数据存储
日志系统
MySQL:日志和数据存储系统

该思维导图由 AI 生成,仅供参考

你好,我是景霄。今天这节课,我们来聊聊日志和存储系统。
在互联网公司中,日志系统是一个非常重要的技术底层。在每一次重要的交互行为中,关键信息都会被记录下来存档,以供日后线下分析,或者线上实时分析。这些数据,甚至可以说是硅谷互联网大公司的命脉所在。
有了它们,你才能建立机器学习模型来预测用户的行为,从而可以精确描绘用户画像,然后针对性地使用推荐系统、分类器,将用户进一步留下,并精准推送广告来盈利。
在量化交易中,日志同样有着非常重要的作用。一如前面所讲,我们重要的数据有:行情数据、策略信号、执行情况、仓位信息等等非常多的信息。
对于简单的、小规模的数据,例如 orderbook 信息,我们完全可以把数据存在 txt、csv 文件中,这样做简单高效。不过,缺点是,随着数据量上升,一个文件将会变得非常大,检索起来也不容易。这时,一个很直观的方式出现了,我们可以把每天的数据存在一个文件中,这样就暂时缓解了尴尬。
但是,随着数据量的上升,或者是你的算法逐渐来到高频交易领域时,简单地把数据存在文件上,已经不足以满足新的需求,更无法应对分布式量化交易系统的需求。于是,一个显而易见的想法就是,我们可以把日志存在数据库系统中。
确认放弃笔记?
放弃后所记笔记将不保留。
新功能上线,你的历史笔记已初始化为私密笔记,是否一键批量公开?
批量公开的笔记不会为你同步至部落
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
  • 深入了解
  • 翻译
    • 英语
    • 中文简体
    • 中文繁体
    • 法语
    • 德语
    • 日语
    • 韩语
    • 俄语
    • 西班牙语
    • 阿拉伯语
  • 解释
  • 总结

本文介绍了MySQL在日志和存储系统中的应用,以及使用Python操作MySQL的方式。文章首先介绍了MySQL在互联网公司和量化交易中的重要性,以及将日志存储在数据库系统中的必要性。随后详细介绍了Python操作MySQL数据库的方式,包括使用mysqlclient和peewee两种方式。mysqlclient是流行的Python连接MySQL的驱动,而peewee是基于Python的ORM框架,能够让SQL语言瞬间变成强类型语言,提高可读性和减少bug概率。接着,文章讨论了分布式日志系统的重要性和运行模块之间的对应关系,以及日志分析的离线和在线应用。最后,强调了数据处理对于数据科学家和量化从业者的重要性,并提出了思考题,引发读者思考。整体而言,本文从工程的角度介绍了量化系统中的存储系统,强调了数据库和数据在互联网行业和量化交易中的重要性,以及搭建一套负载合理、数据可靠的数据系统的必要性。

仅可试看部分内容,如需阅读全部内容,请付费购买文章所属专栏
《Python 核心技术与实战》
新⼈⾸单¥59
立即购买
登录 后留言

全部留言(14)

  • 最新
  • 精选
  • 建强
    思考题: 对于高频调用数据,可以考虑在系统启动时把数据从数据库中一次性加载到内存中,并以某种数据结构如DataFrame之类的存贮结构化数据,或以键-值对形式存贮数据,这样就可以避免每次调用时都去访问数据库,可以极大提高访问效率。 另外,也可以考虑把数据放到内存数据库中,如Redis中,以键-值对形式存贮高频数据,这样就可以快速访问高频数据。

    作者回复: 👍

    2020-03-14
    10
  • SCAR
    思考题:想到2点,其他想不到 1.以空间换时间,缓存大法。 2.以提前量换时间,例如回测系统中对ohlcv中的计算可以提前做好,放入内存,这部分时间在高频时就省下来了。
    2019-08-05
    18
  • Jingxiao
    评论说的很好,一般先用索引进行优化,如果性能还是不够,需要极致的读取延迟,可以考虑内存数据库,redis 是一个很好的例子。
    2019-08-19
    10
  • catshitfive
    这个Price类看不太明白,老师能细讲下吗(里面还包含了一个内部类Meta)
    2019-08-06
    1
    6
  • magician
    高频查询数据使用nosql数据库比如redis做缓存
    2019-08-05
    3
  • 许童童
    这一节是理论,下一节应该就是实操了。
    2019-08-05
    1
    2
  • 恰饭哒
    ELK在Python生态中怎么样啊
    2020-07-03
    1
  • 自由民
    回测中重复计算的数据先缓存到数据库里,避免重复计算。
    2019-11-04
    1
  • 小侠龙旋风
    sql调优相关内容:经常进行检索的字段上创建索引,索引可提高select效率但同时也降低了insert和update的效率,一个表最多可有6个索引,避免在索引列上做计算,用varchar变长代替char定长,使用临时表暂存中间结果等。
    2019-09-10
    1
  • Geek_cf3aed
    我使用的是华为p40 无法使用文本中提供代码的 复制 功能
    2021-07-14
收起评论
显示
设置
留言
14
收藏
沉浸
阅读
分享
手机端
快捷键
回顶部