第一部分: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. 独立部署GlusterFS+Heketi实现Kubernetes共享存储

    目录 环境 glusterfs配置 安装 测试 heketi配置 部署 简介 修改heketi配置文件 配置ssh密钥 启动heketi 生产案例 heketi添加glusterfs 添加cluste ...

  2. 工具-infer,静态代码检测

    1.工具介绍 Infer 是一个静态程序分析工具,可以对 Java.C 和 Objective-C 程序进行分析,此工具是用 OCaml写成的.https://github.com/facebook/ ...

  3. JavaScript -- Window-Interval

    -----031-Window-Interval.html----- <!DOCTYPE html> <html> <head> <meta http-equ ...

  4. 安装flutter和dart总结

    1 manjaro从软件仓库安装就行,但是也可以下载安装包.然后添加到Path目录 我是安装dart从软件仓库, flutter下载压缩包添加到path 1.1 需要将android sdk , ex ...

  5. Web Components实践开发Tab组件

    本文是对web components的一次实践,最终目的是做出一个tab组件,本文涉及Custom Elements(自定义元素).HTML Imports(HTML导入).HTML Template ...

  6. j2ee高级开发技术课程第八周

    介绍一. hashCode()方法和equal()方法的作用其实一样,在Java里都是用来对比两个对象是否相等一致,那么equal()既然已经能实现对比的功能了,为什么还要hashCode()呢? 因 ...

  7. LeetCode 169. Majority Element解题方法

    题目: Given an array of size n, find the majority element. The majority element is the element that ap ...

  8. Spring配置文件引入xml文件: <import resource=" " />标签使用总结

    引入其他模块XML 在Spring的配置文件,有时候为了分模块的更加清晰的进行相关实体类的配置. 比如现在有一个job-timer.xml的配置 <?xml version="1.0& ...

  9. GCD之定时器dispatch_source_t(转载暂时未完全理解)

    #import "ViewController.h" @interface ViewController (){ IBOutlet UIButton *l_timeButton; ...

  10. MVC应用程序显示上传的图片(续)

    上一篇<MVC应用程序显示上传的图片>http://www.cnblogs.com/insus/p/3597543.html 最后有提及没有实现用户点击图片,显示原图的功能.此篇Insus ...