Python量化数据仓库搭建3:数据落库代码封装
本系列教程为量化开发者,提供本地量化金融数据仓库的搭建教程与全套源代码。我们以恒有数(UDATA)金融数据社区为数据源,将金融基础数据落到本地数据库。教程提供全套源代码,包括历史数据下载与增量数据更新,数据更新任务部署与日常监控等操作。
在上一节讲述中,我们封装了Python操作MySQL数据库的自定义类,存为MySQLOperation.py文件;本节内容操作数据库部分,将会调用MySQLOperation中的方法,以及pandas.to_sql和pandas.read_sql的操作。
一、恒有数(UDATA)操作简介
1、获取Token
A、在恒有数官网(https://udata.hs.net)注册并登录,在订阅页面,下单免费的体验套餐;
B、在右上角,头像下拉菜单中,进入总览页面,复制Token;
C、在数据页面,查看数据接口文档,获取接口名称、请求参数、返回参数和Python代码示例;
2、安装hs_udata
pip install hs_udata
使用示例如下:
import hs_udata as hs
# 设置Token
hs.set_token(token = 'xxxxxxxxxxxxxxx') # 总览页面获取个人Token
# 以分钟线行情为例,获取000001.SZ在2021-05-01至2021-06-01期间的分钟线数据
# 接口文档见:https://udata.hs.net/datas/342/
df = hs.stock_quote_minutes(en_prod_code="000001.SZ",begin_date="20210501",end_date="20210601")
# 增加股票代码列
df['hs_code']='000001.SZ'
df.head()
其余接口使用过程与之类似;
二、数据落库示例
以股票列表(stock_list)为例,讲解建表、落库、查询等操作;全套代码见本文第三章;
1、准备工作
(1)在MySQL数据库中,创建数据库udata,创建过程见第一讲《Python量化数据仓库搭建系列1:数据库安装与操作》;
(2)在MySQL数据库中,创建数据更新记录表udata.tb_update_records,表结构如下:
建表SQL如下:
CREATE TABLE udata.tb_update_records (
table_name CHAR(40),
data_date CHAR(20),
update_type CHAR(20),
data_number INT(20),
elapsed_time INT(20),
updatetime CHAR(20)
)
(3)将Token与数据库参数写入配置文件DB_MySQL.config,文件内容如下:
[udata]
token='你的Token'
host='127.0.0.1'
port=3306
user='root'
passwd='密码'
db='udata'
(4)读取配置文件中的参数
import configparser
# 读取配置文件中,恒有数和数据库参数
configFilePath = 'DB_MySQL.config'
section = 'udata'
config = configparser.ConfigParser()
config.read(configFilePath)
# 读取 恒有数(UData) 的 token
token = eval(config.get(section=section, option='token'))
# MySQL连接参数读取
host = eval(config.get(section=section, option='host'))
port = int(config.get(section=section, option='port'))
db = eval(config.get(section=section, option='db'))
user = eval(config.get(section=section, option='user'))
passwd = eval(config.get(section=section, option