第一部分: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的更多相关文章

  1. Beginners Guide To Web Development

    Web Development Front End Development Back End Development

  2. 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.免费应用程序调试最 ...

  3. [转] Agile Software Development 敏捷软件开发

    原文作者:kkun 原文地址:http://www.cnblogs.com/kkun/archive/2011/07/06/agile_software_development.html 敏捷是什么 ...

  4. 《3D Math Primer for Graphics and Game Development》读书笔记2

    <3D Math Primer for Graphics and Game Development>读书笔记2 上一篇得到了"矩阵等价于变换后的基向量"这一结论. 本篇 ...

  5. 《3D Math Primer for Graphics and Game Development》读书笔记1

    <3D Math Primer for Graphics and Game Development>读书笔记1 本文是<3D Math Primer for Graphics and ...

  6. 软件开发流程 Software development process

    软件开发流程(Software development process)即软件设计思路和方法的一般过程,包括设计软件的功能和实现的算法和方法.软件的总体结构设计和模块设计.编程和调试.程序联调和测试以 ...

  7. 翻译:常见问题——ABAP Development Tools for Eclipse

    ABAP Development Tools for Eclipse(简称ADT)是一个基于Eclipse的全新ABAP IDE,这篇文档试图回答有关ADT的最重要的常见问题.这只是一个开始,如果你对 ...

  8. React Native 红屏之Could not connect to development server.

    React Native 是目前最火的开发框架,其他不说了,上Bug. 按照  React Native iOS环境搭建 高级版 在mac上  搭建 React Native  环境,运行 项目 若出 ...

  9. Microsoft Client Development MVP 2013 - 2014

    周末一直沉浸在醉意中,为婚礼忙忙碌碌了一个月,终于完成了人生一大喜事. 清晨仍旧有一些宿醉得感觉, 看到来自微软的邮件,获得Microsoft Client Development MVP 2013 ...

随机推荐

  1. GO入门——3. 控制语句

    1 if 条件表达式没有括号 支持一个初始化表达式(可以是并行方式) 左大括号必须和条件语句或else在同一行 支持单行模式 初始化语句中的变量为block级别,同时隐藏外部同名变量 a := 1 i ...

  2. 【转载】表单中 Readonly 和 Disabled 的区别

    今天写代码,遇到表单提交的问题,某个字段在不同的情况下,要传递不同的值进行赋值,试过一些方法都有些问题,后来请教前端同学,使用 disabled 这个属性终于搞定了问题,查到一篇讲解 readonly ...

  3. 【区块链Go语言实现】Part 2:工作量证明机制POW

    0x00 介绍 在上一篇文章中,我们建立了一个非常简单的数据结构,它是区块链数据库的本质.并且,我们实现了以类似链条关系的方式向其中添加区块的功能:每个区块都会链接到前一区块.然而,我们实现的区块链有 ...

  4. java设计模式--Builder模式

    一.Builder模式 二.使用例子 三.Spring中的Builder模式 Builder模式,构建者.构造者模式,在<图解设计模式>中归为 生成实例 一栏,该模式用于组装具有复杂结构的 ...

  5. LR监测windows资源一般监测哪几个项?

    计数器        指标 1.        平均事务响应时间 Average Transation Response Time        优秀:<2s 良好:2-5s 及格:6-10s ...

  6. 浅谈.net jenkins svn下自动化集成环境安装 搭建 配置

    本人做.net研发已有3年多了,之前一直偏向于技术研究,自己学了很多技术,现在突然发现学了那么多技术有什么用呢?真正用到的并不多. 现在?算是一只小鸟吧,自嘲下.....毕竟我是90后,很多领导对于9 ...

  7. git remote: HTTP Basic: Access denied 错误解决办法

    问题描述: git push 报 HTTP Basic: Access denied 错误 原因:本地git配置的用户名.密码与gitlabs上注册的用户名.密码不一致. 解决方案: 1. 如果账号密 ...

  8. maven国内aliyun镜像

    打开maven安装目录下conf文件夹的settings.xml文件 配置本地仓库 <localRepository>D:/maven/repository</localReposi ...

  9. mongodb oplog与数据同步

    1. 复制集(Replica sets)模式时,其会使用下面的local数据库local.system.replset 用于复制集配置对象存储 (通过shell下的rs.conf()或直接查询)loc ...

  10. python学习之老男孩python全栈第九期_day003作业

    1. 有变量name = "aleX leNb" 完成如下操作:(1) 移除 name 变量对应的值两边的空格,并输出处理结果name = ' aleX leNb 'print(n ...