Подтвердить что ты не робот

Импорт данных из базы данных geonames.org в MySQL DB

Кто-нибудь может импортировать данные geonames.org в мою базу данных? Тот, который я пытаюсь импортировать, http://download.geonames.org/export/dump/DO.zip, а мой DB - это MySQL db.

4b9b3361

Ответ 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?