Кто-нибудь может импортировать данные geonames.org в мою базу данных? Тот, который я пытаюсь импортировать, http://download.geonames.org/export/dump/DO.zip, а мой DB - это MySQL db.
Импорт данных из базы данных geonames.org в MySQL DB
Ответ 1
Я нашел следующее, посмотрев файл readme, включенный в 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`;
Ответ 2
Недавно я создал оболочку script, которая загружает последние данные с сайта geonames и импортирует их в базу данных MySQL. Он основан на знаниях на Форуме GeoNames и значительно меня спас.
Он находится в первой версии, но полностью функциональен. Может быть, это может помочь.
Вы можете получить к нему доступ в http://codigofuerte.github.com/GeoNames-MySQL-DataImport/
Ответ 3
Для каждого в будущем: На форуме geonames.org в 2008 году это "импорт всех дампов geonames в MySQL", http://forum.geonames.org/gforum/posts/list/732.page
Также google this: import dump в [postgresql OR SQL server OR MySQL] site: 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;
будьте осторожны с набором символов, потому что, если мы используем CSV LOAD DATA, готовый импортер старого phpmyadmin 2012 года, мы можем потерять utf-символы, даже если для сортировки столбцов было установлено значение utf8_general_ci
В настоящее время существует 4 основных типа данных: континенты, страны (countryInfo.txt), подразделения (admin1), города или местоположения (геономии)
admin1, 2, 3, 4 dump файлы - это разные уровни внутренних подразделений стран, таких как admin 1, которые являются штатами США или провинций других стран. Администратор 2 более подробно и является внутренним делением штата или провинции. и т.д. для 3 и 4
В файлах дампов стран перечислены не только города, но и все локализации в этой стране, включая центр магазина. Также есть огромный файл, так как "allCountries.txt" будет более 1 ГБ после извлечения из zip файла. Если нам нужны только города, мы должны выбрать один из файлов дампа: cities1000.txt, cities5000.txt, cities15000.txt, которые представляют собой численность населения перечисленных городов. Мы храним города в geonames datatable (вы можете назвать это географическими местоположениями или географическими городами).
Перед импортом файлов dump *.txt сделайте несколько исследований синтаксиса LOAD DATA в документации MySQL.
Текстовый файл read me (также в нижнем колонтитуле страницы дампа) содержит достаточно описания, например:
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) мы должны знать о размере 64 КБ каждой строки в MySQL 5.0 или новее: Является ли VARCHAR (20000) действительным в MySQL?