我正在尝试将维基百科访问日志(http://dumps.wikimedia.org/other/pagecounts-raw/)导入 mysql 以供内部使用。
目标:绘制一天/网址图
维基百科文件名包含日期和时间,并具有以下结构:
语言 url 访问 size_of_answer
我当前的数据库结构:
表格网址: url_id;url_string;语言 一切的索引 餐桌访问: 访问id;url_id;day_stamp;visits_count 一切的索引 表温度: 访问id;url_id;url_string;语言;visits_count;day_stamp
MySQL引擎:InnoDB
当前方法:
- 我过滤原始日志只让我感兴趣。过滤后的文件包含 ca 250k 行,并具有“临时”表的结构。
- 使用 LOAD DATA INFILE 将此文件导入“temp”。
- 在“temp”中为现有 url 设置 url_id(更新...在 url_strings 上使用 url 加入 temp)。
- 将 url 从“temp”插入到“urls”,其中 temp.url_id=0
- 为现有的 url 再次设置“temp”中的 url_id(更新...在 url_strings 上使用 url 加入 temp)。
- 为现有访问行设置“临时”中的访问 ID(更新...加入临时访问 url_id)。
- 插入来自“temp”的访问,其中visits_id=0
- 从“temp”更新访问,其中 visit_id!=0
所有这些最多需要 5 分钟才能导入。
这里有更快的方法吗?另一个步骤,另一个数据库?