有沒有人如何將geonames.org數據導入到我的數據庫中?我試圖導入的那個是http://download.geonames.org/export/dump/DO.zip,而我的DB是一個MySQL數據庫。從geonames.org數據庫導入數據到MySQL DB
回答
我發現通過查找包含在你的一節鏈接到zip文件的自述文件下面的「主要‘GeoName’表具有以下字段:」
首先在創建數據庫和表你的MySQL實例。字段的類型在我剛引用上述標題的部分的每一行中給出。
CREATE DATABASE DO_test;
CREATE TABLE `DO_test`.`DO_table` (
`geonameid` INT,
`name` varchar(200),
`asciiname` varchar(200),
`alternatenames` varchar(5000),
`latitude` DECIMAL(10,7),
`longitude` DECIMAL(10,7),
`feature class` char(1),
`feature code` varchar(10),
`country code` char(2),
`cc2` char(60),
`admin1 code` varchar(20),
`admin2 code` varchar(80),
`admin3 code` varchar(20),
`admin4 code` varchar(20),
`population` bigint,
`elevation` INT,
`gtopo30` INT,
`timezone` varchar(100),
`modification date` date
)
CHARACTER SET utf8;
創建表後,您可以從文件導入數據。該字段由製表符,行分隔符爲換行符:
LOAD DATA INFILE '/path/to/your/file/DO.txt' INTO TABLE `DO_test`.`DO_table`;
糟糕,你需要做一些與經緯度不同的事情。我正在解決這個問題。我認爲他們應該是「POINT」而不是DECIMAL。 – wilbbe01 2011-03-13 02:58:07
出於某種原因,我得到: 錯誤代碼:29 未找到文件'/home/blueprint/DO.txt'(Errcode:13) 我很確定文件在那裏。 – 2011-03-13 02:59:28
@LuisDUrraca:你在MAC嗎?錯誤代碼13意味着MySQL無法看到該文件。我有一個mac,我把我的DO.txt文件放在Mac的mysql目錄下。比找出MySQL爲什麼看不到爲每個人完整閱讀的文件要容易得多。在我的機器上,這是在/ usr/local/mysql中。 – wilbbe01 2011-03-13 03:10:31
我已經在最近,從下載網站GEONAMES的最新數據,並將它們導入到MySQL數據庫的shell腳本。它基於GeoNames論壇的知識,爲我節省了很多時間。
它是在它的第一個版本,但功能齊全。也許它可以幫助。
您可以在http://codigofuerte.github.com/GeoNames-MySQL-DataImport/
訪問它對於每一個在未來: 在geonames.org論壇在2008年,這是「進口所有GEONAMES轉儲到MySQL」 http://forum.geonames.org/gforum/posts/list/732.page
也是谷歌這樣的:進口轉儲到[PostgreSQL的或SQL Server或MySQL]現場:forum.geonames.org
爲了找到更多的答案甚至從2006年全年
編輯提供簡介:
在geoname官方讀我:http://download.geonames.org/export/dump/。我們將找到關於轉儲文件和它們的內容的很好的描述。
轉儲文件將直接導入到MySQL數據表。例如:
SET character_set_database=utf8;
LOAD DATA INFILE '/home/data/countryInfo.txt' INTO TABLE _geo_countries IGNORE 51 LINES(ISO2,ISO3,ISO_Numeric,FIPSCode,AsciiName,Capital,Area_SqKm,Population,ContinentCode,TLD,CurrencyCode,CurrencyName,PhoneCodes,PostalCodeFormats,PostalCodeRegex,Languages,GeonameID,Neighbours,EquivalentFIPSCodes);
SET character_set_database=default;
小心的字符集,因爲如果我們用2012年的舊的phpmyadmin的CSV LOAD DATA準備進口商即使列的排序規則設置爲utf8_general_ci我們可能會失去UTF字符
目前有4個主要數據表:大洲,國家(countryInfo.txt),部門(管理),城市或地區(GEONAMES)
ADMIN1,2,3,4個轉儲文件是不同水平的國家的內部分裂如美國或其他國家的省份的管理員1。 admin 2更詳細,是國家或省的內部分支。依此類推3和4
列出的國家轉儲文件不僅包含城市,還包含該國的所有地區,甚至包括商店中心。還有一個巨大的文件,因爲從zip文件中提取「allCountries.txt」將超過1GB。如果我們只需要城市,我們應該選擇一個轉儲文件:cities1000.txt,cities5000.txt,cities15000.txt,其中數字表示所列城市的最小人口數。我們將城市存儲在geonames數據表中(您可以稱之爲地理位置或地理城市)。
在導入* .txt轉儲文件之前,需要對MySQL文檔中的LOAD DATA語法進行一些研究。
自述文本文件(也轉儲頁面的頁腳)爲例子足以說明:
The main 'geoname' table has the following fields :
---------------------------------------------------
geonameid : integer id of record in geonames database
name : name of geographical point (utf8) varchar(200)
asciiname : name of geographical point in plain ascii characters, varchar(200)
alternatenames : alternatenames, comma separated varchar(5000)
latitude : latitude in decimal degrees (wgs84)
longitude : longitude in decimal degrees (wgs84)
feature class : see http://www.geonames.org/export/codes.html, char(1)
feature code : see http://www.geonames.org/export/codes.html, varchar(10)
country code : ISO-3166 2-letter country code, 2 characters
cc2 : alternate country codes, comma separated, ISO-3166 2-letter country code, 60 characters
admin1 code : fipscode (subject to change to iso code), see exceptions below, see file admin1Codes.txt for display names of this code; varchar(20)
admin2 code : code for the second administrative division, a county in the US, see file admin2Codes.txt; varchar(80)
admin3 code : code for third level administrative division, varchar(20)
admin4 code : code for fourth level administrative division, varchar(20)
population : bigint (8 byte int)
elevation : in meters, integer
dem : digital elevation model, srtm3 or gtopo30, average elevation of 3''x3'' (ca 90mx90m) or 30''x30'' (ca 900mx900m) area in meters, integer. srtm processed by cgiar/ciat.
timezone : the timezone id (see file timeZone.txt) varchar(40)
modification date : date of last modification in yyyy-MM-dd format
也即將VARCHAR(5000),我們應該知道每行的MySQL的64KB的大小5.0或更高版本: Is a VARCHAR(20000) valid in MySQL?
- 1. 從一個MySQL db導入數據到另一個MySQL db?
- 2. 將數據從Access導入/導出到遠程MySQL數據庫
- 3. 導入數據到mysql數據庫
- 4. 從Excel導入數據到MySQL數據庫
- 5. 從gridview導入數據到數據庫
- 6. 導入mysql數據庫
- 7. 將csv數據從第2行導入到mysql數據庫中
- 8. 從mysql數據庫導入數據到現有的html5表中
- 9. 如何導入從文本文件數據到MySQL數據庫
- 10. 無法從excel文件數據導入到mysql數據庫
- 11. 如何將數據從mysql數據庫導入到datagridview
- 12. 從xcel表導入數據到asp.net中的mysql數據庫
- 13. 使用java從JSON文件導入數據到MySQL數據庫
- 14. 將.db文件導入到MySql數據庫中
- 15. 無法將一個項目導入到MySQL數據庫db
- 16. 從mysql導入數據到solr?
- 17. 導入MySQL數據庫
- 18. 導入MySQL數據庫
- 19. 將.xlsx數據導入到mysql數據庫
- 20. CSV數據導入MYSQL DB使用RUBY
- 21. 從數據庫導入xslt
- 22. 從java代碼導入mysql數據庫
- 23. mySQL將數據庫導入到我的數據庫
- 24. 從數據庫導出數據到HTML?
- 25. WordPress:將MySQL數據庫導入到MariaDB
- 26. 如何導入數據庫到vagrant mysql?
- 27. 導入CSV大到mysql數據庫
- 28. 導入XML飼料到MySQL數據庫
- 29. 導入txt文件到MySQL數據庫
- 30. 將MySQL導入到現有數據庫
您是否嘗試導入zip?如果不是什麼文件結構? – bensiu 2011-03-13 02:10:54