【发布时间】:2019-03-23 06:19:26
【问题描述】:
首先我要说的是,我已经用尽了我自己能想到的所有各种选择,并研究了所有可见的死胡同。
我有一个典型的 mysql 论坛数据库,其中包含一个包含大约 880,000 行的 post 表。 post 表包含一个 IP 地址列,我的最终目标是根据每个帖子的地理位置创建一个世界的气泡图。如果我能每月将它们分开,并创建一个过去 8 年在全球发布频率的动画,那就更好了。
因为这是一个个人项目,IP 地理位置的准确性并不重要,所以我不得不排除可以将 IP 批量转换为地理位置的付费 API。我在 stackoverflow 上发现了各种问题,这些问题链接到一个带有 IP 地理位置数据库的网站:https://dev.maxmind.com/geoip/geoip2/geolite2/
我最初的计划是将这个数据库加载到我的论坛服务器上,并利用我在 mysql 方面的经验创建一个新表,其中只有:postid、日期(作为 unix 时间戳)、纬度、经度、城市、国家。然后将此表导出到 R 并生成我可能想要的所有地图和图表。但是,地理位置数据库在两个表中超过 300 万行,而我的死论坛是在一个不允许加载数据的简单共享托管计划上。我尝试了这些问题中的所有解决方案,但没有成功: How to import CSV file to MySQL table access denied for load data infile in MySQL LOAD DATA INFILE within PHPmyadmin PHPMyAdmin saying: The used command is not allowed with this MySQL version
所以我的下一个想法是将我的帖子表中的相关列导出到 .csv 或 .xml,然后将它们上传到我在 iacademy3.oracle.com 的帐户。但是,我在 oracle 方面没有经验,我知道的唯一方法是 Data Workshop 中的 Data Load/Unload UI。 177MB XML 文件上传失败,出现以下错误:
ORA-31011: XML parsing failed ORA-19202: Error occurred in XML processing LPX-00222: error received from SAX callback function
Error loading XML.
Return to application.
34MB .csv 文件两次尝试上传失败,出现此错误:
Failure of Web Server bridge:
No backend server available for connection: timed out after 10 seconds or idempotent set to OFF or method not idempotent.
现在我没有主意了。在逐个帖子的基础上,查看帖子 IP,将其与地理位置数据库进行比较,并获得纬度和经度是一个简单的查询。但是在处理数百万行时,我不知道如何得到最终结果。
任何关于新方法的建议或帮助我的死胡同将不胜感激。
【问题讨论】:
-
或许您可以在自己的 PC 上安装 MySQL 并在那里加载数据。
-
您为什么不直接使用
rgeolocate软件包,它可以使用 MaxMind 免费数据库并在一两秒内(字面意思)对这些 IP 进行地理编码,然后将您的纬度/经度对或其他任何东西还给您你还需要吗?我的意思是谷歌搜索“r geolocate ip addresses”将我在#1 和#2 共同创作的包加上我参与过的其他包(需要API 调用)放在较低的位置。 FWIWrgeolocate::maxmind()也将在几秒钟内完成数百万个 IP。 -
谢谢。根据我最熟悉的工具,我想我的视野很狭隘。