栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 前沿技术 > 大数据 > 大数据系统

Tushare数据本地化+高性能数据库Arctic

Tushare数据本地化+高性能数据库Arctic

  Tushare数据本地化多进程版本——如何快速一次性获取全部股票数据

 

在上一篇文章我们从Tushare平台获取数据并保存为.csv文件之后,又有一个问题浮现水面:

如果我们需要读取数据,那么通过什么方式读取数据最快呢?

一个免费的次优解:

根据VNPY官方公众号给出的测试结果,他们的DolphinDB在读取方面是最快的,应用层面最多的情况就是读取数据。

 但是这个海豚数据库似乎需要付费~

于是我将目光看向了排名第二的Arctic。

关于arctic,可以直接上github看他们的官方文档。但是简单来说arctic数据库是基于MongoDB的,但是针对数据读写进行了优化!

 免费!免费!免费!

重要事情说三遍,这个库免费,而且它并不差。


安装Arctic的坑:

首先,因为arctic基于mongodb,所以你需要先安装mongodb,这玩意儿csdn上教程太多了我就不写了。

下面讲一下安装这个数据库的坑,只有一个,就是pandas的版本要降到1.1.5这种1.1开头的版本,因为在后续pandas移除了panel这个部分,所以如果你直接安装的话会报错无法从pandas中导入panel。

pip install pandas==1.1.5

数据的读取和写入:

相较于Mysql,也是tushare平台推荐的方式。我个人认为arctic要简单非常多(至少在我的经历看来)。

首先,Mysql的macos版本会出现不少不可预知的安装问题,而且因为是mac系统,国内的解决贴非常少。(但是win10可能没有这个困惑)

其次,Mysql的代码前置的乱七八糟的东西还是蛮多的说实话,比如可以看一下tushare官方是如何介绍mysql的。。。

 因为这玩意儿更像一个正儿八经的Access那样的数据库,而不是专门支持时序数据的arctic。


下面直接给出arctic的数据写入和读取代码!

import os
import pandas as pd
from arctic import Arctic


def log(text):
    print('-' * 15)
    print(text)


def write_data(lib):
    current_dir = os.getcwd()
    work_dir = os.path.join(current_dir, 'stock_finance')
    for file in os.listdir(work_dir):
        file_path = os.path.join(work_dir, file)
        df = pd.read_csv(file_path)
        file_name = file[:6]
        # 写入数据
        lib.write(file_name, df)
        log(f'已写入:{file_name}')


# 连接到本地MonGODB
store = Arctic('localhost')

# 创建一个库
store.initialize_library('STOCK_FINANCE')
print(store.list_libraries())

# 连接数据库
lib = store['STOCK_FINANCE']

# 写入数据
write_data(lib)

# 读取数据
item = lib.read('000001.SZ')
data = item.data

可以看到的是,arctic无论是写入还是读取都异常简单。

# 写入数据
lib.write(file_name, df)
# 读取数据
item = lib.read('000001.SZ')
data = item.data

更多的内容可以参考官方文档。

这些内容都只是为了接下来做因子研究做准备,接下来可能还会分享关于A股市场的因子研究。在我刚刚步入Python大坑的时候,CSDN的论坛帖子的前辈给了我很多帮助,现在我想我有一定的能力回报这个社区,这就是互联网精神吧。

有兴趣的话欢迎大家关注我的个人公众号:梧承 Book House

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/336110.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号