EVE Online Third Party Development
第一部分:price_history表
# 建表语句 CREATE TABLE IF NOT EXISTS `price_history` (
`regionID` INT NOT NULL,
`typeID` INT NOT NULL,
`date` DATE NOT NULL,
`lowPrice` DOUBLE NOT NULL,
`highPrice` DOUBLE NOT NULL,
`avgPrice` DOUBLE NOT NULL,
`volume` INT NOT NULL,
`orders` INT NOT NULL
COMMENT 'regionID,typeID,date,lowPrice,highPrice,avgPrice,volume,orders',
INDEX `regionID`(`regionID`),
INDEX `typeID`(`typeID`),
INDEX `date`(`date`),
INDEX `lowPrice`(`lowPrice`),
INDEX `highPrice`(`highPrice`),
INDEX `avgPrice`(`avgPrice`),
INDEX `volume`(`volume`),
INDEX `orders`(`orders`)
)
ENGINE = InnoDB
DEFAULT CHARSET = UTF8MB4;
考虑到price字段使用FLOAT/DOUBLE类型会有精度问题(FLOAT 4个字节,有效数字6位;DOUBLE 8个字节,有效数字16位。)
# 优化以后的建表语句,关于DECIMAL请参见 https://dev.mysql.com/doc/refman/5.7/en/precision-math-decimal-characteristics.html CREATE TABLE IF NOT EXISTS `price_history` (
`regionID` INT NOT NULL,
`typeID` INT NOT NULL,
`date` DATE NOT NULL,
`lowPrice` DECIMAL(17, 4) NOT NULL,
`highPrice` DECIMAL(17, 4) NOT NULL,
`avgPrice` DECIMAL(17, 4) NOT NULL
COMMENT 'The max(highPrice) is 700,000,000,000',
`volume` INT NOT NULL,
`orders` INT NOT NULL
COMMENT 'regionID,typeID,date,lowPrice,highPrice,avgPrice,volume,orders',
INDEX `regionID`(`regionID`),
INDEX `typeID`(`typeID`),
INDEX `date`(`date`),
INDEX `lowPrice`(`lowPrice`),
INDEX `highPrice`(`highPrice`),
INDEX `avgPrice`(`avgPrice`),
INDEX `volume`(`volume`),
INDEX `orders`(`orders`)
)
ENGINE = InnoDB
DEFAULT CHARSET = UTF8MB4;
接下来进行数据的导入,表空间占用累计为70223M。
# 数据导入
LOAD DATA LOCAL INFILE '/root/priceHistory.txt' INTO TABLE price_history FIELDS TERMINATED BY ',' LINES TERMINATED BY '\n'; MySQL [eveonline_price]> LOAD DATA LOCAL INFILE '/root/priceHistory.txt' INTO TABLE price_history FIELDS TERMINATED BY ',' LINES TERMINATED BY '\n';
Query OK, 269257439 rows affected, 14686 warnings (5 hours 25 min 41.31 sec)
Records: 269257439 Deleted: 0 Skipped: 0 Warnings: 14686
第二部分:typeid表
首先,从网上下载比较新的typeID文件,然后进行适当的处理:首先去掉第一和第二行,然后将空格分割的文件进行处理,以逗号进行分割。
# 下载下来的文件保存为download.txt,处理后文件保存为typeID.txt
with open('typeID.txt', mode='w', encoding="UTF-8") as out: for line in open('download.txt', mode='r', encoding="UTF-8"): line = re.sub(r'\s+', ' ', line).split()
key= line[0]
name = ' '.join(line[1:]) out.write(key + ',' + name + "\n")
建立typeid表
# MySQL数据库字段支持大小写,但是底层一律转换成小写(typeID和typeid是同一字段) CREATE TABLE IF NOT EXISTS `typeid` (
`typeID` MEDIUMINT PRIMARY KEY,
`typeName` VARCHAR(90) NOT NULL,
INDEX `typeName`(`typeName`)
)
ENGINE = InnoDB
DEFAULT CHARACTER SET = UTF8MB4;
经过对文件的读取判断,typeName字段最长为78个字符,这里留90字符作为保留量。接下来进行数据的导入,
LOAD DATA LOCAL INFILE '/root/typeID.txt' INTO TABLE typeid FIELDS TERMINATED BY ',' LINES TERMINATED BY '\n';
Importing market data into Excel,如何将市场数据导入Excel
USING ESI WITH GOOGLE SHEETS,将ESI和Google Sheets配合使用
Marketplace,CCP官方论坛交易市场
EVE Online Intelligence Data,Tools and data you need to succeed in EVE Online
EVE Trade,暂时不知道做什么用
EVE Online price history download link,大小
Development Blog,开发者日志
MySQL部分知识:
EVE Online Third Party Development的更多相关文章
- Beginners Guide To Web Development
Web Development Front End Development Back End Development
- iOS---The maximum number of apps for free development profiles has been reached.
真机调试免费App ID出现的问题The maximum number of apps for free development profiles has been reached.免费应用程序调试最 ...
- [转] Agile Software Development 敏捷软件开发
原文作者:kkun 原文地址:http://www.cnblogs.com/kkun/archive/2011/07/06/agile_software_development.html 敏捷是什么 ...
- 《3D Math Primer for Graphics and Game Development》读书笔记2
<3D Math Primer for Graphics and Game Development>读书笔记2 上一篇得到了"矩阵等价于变换后的基向量"这一结论. 本篇 ...
- 《3D Math Primer for Graphics and Game Development》读书笔记1
<3D Math Primer for Graphics and Game Development>读书笔记1 本文是<3D Math Primer for Graphics and ...
- 软件开发流程 Software development process
软件开发流程(Software development process)即软件设计思路和方法的一般过程,包括设计软件的功能和实现的算法和方法.软件的总体结构设计和模块设计.编程和调试.程序联调和测试以 ...
- 翻译:常见问题——ABAP Development Tools for Eclipse
ABAP Development Tools for Eclipse(简称ADT)是一个基于Eclipse的全新ABAP IDE,这篇文档试图回答有关ADT的最重要的常见问题.这只是一个开始,如果你对 ...
- React Native 红屏之Could not connect to development server.
React Native 是目前最火的开发框架,其他不说了,上Bug. 按照 React Native iOS环境搭建 高级版 在mac上 搭建 React Native 环境,运行 项目 若出 ...
- Microsoft Client Development MVP 2013 - 2014
周末一直沉浸在醉意中,为婚礼忙忙碌碌了一个月,终于完成了人生一大喜事. 清晨仍旧有一些宿醉得感觉, 看到来自微软的邮件,获得Microsoft Client Development MVP 2013 ...
随机推荐
- 工具-CocoaPods安装和使用及卸载
CocoaPods是iOS最常用的第三方类库管理工具,绝大部分有名的开源类库都支持CocoaPods. 我们在使用gem更新的时候,经常会为速度抓狂,其实gem默认的源是https://rubygem ...
- Windows 8.1 GetVersionEx返回6.2.9200 的问题!
http://msdn.microsoft.com/en-us/library/windows/desktop/dn302074.aspx http://tunps.com/getversionex- ...
- php数组方法
查找.筛选与搜索数组元素是数组操作的一些常见功能.下面来介绍一下几个相关的函数. in_array()函数 in_array()函数在一个数组汇总搜索一个特定值,如果找到这个值返回true,否则返回f ...
- 使用秘钥ssh登录远程服务器
一.使用公钥远程登录ssh服务器方式 1.1 在客户端使用ssh-keygen 生成密匙 steven:~ admin$ ssh-keygen //客户端生成秘钥 Generating public ...
- Solidity字符串类型
字符串可以通过""或者''来表示字符串的值,Solidity中的string字符串不像C语言一样以\0结束,比如abcd这个字符串的长度就为我们所看见的字母的个数,它的长度为4. ...
- Java 容器源码分析之HashMap多线程并发问题分析
并发问题的症状 多线程put后可能导致get死循环 从前我们的Java代码因为一些原因使用了HashMap这个东西,但是当时的程序是单线程的,一切都没有问题.后来,我们的程序性能有问题,所以需要变成多 ...
- CentOS MPlayer
.准备软件 mplayer官网:http://www.mplayerhq.hu/design7/news.html RPM Fusion网址:http://rpmfusion.org/ EPEL网址: ...
- Python面试题目--汇总
原文链接-https://github.com/taizilongxu/interview_python Python语言特性 1 Python的函数参数传递 2 Python中的元类(metacla ...
- Redhat6.8安装Oracle11g下遇到两个问题记录
问题一: 刚刚安装完毕Oracle之后,尝试sqlplus登陆报错,TNS:net service name is incorrectly specified 参考文章:关于环境变量ORACLE_SI ...
- 在FireFox浏览器上,用stopImmediatePropagation阻止冒泡鼠标滚动事件
楔子 是不是在火狐用stopPropagation不太满意 很久没有笑过又不知为何 既然不快乐又不喜欢这里 不如一路向西用stopImmediatePropagation(其实我对浏览器的兼容性看不顺 ...