Раздел 1: Установка программного обеспечения базы данных PosrgreSQL и импорт базы ключевых слов

После того, как вы скачали базу ключевых слов английского языка, вам нужно установить сервер баз данных локально и научиться делать выборки. Для этого мы предлагаем пошаговую инструкцию.

ВАЖНО: Если у вас нет опыта работы с БД или этот опыт минимален, то мы настоятельно рекомендуем начать с минимальной базы для отработки процесса.

На скриншотах в инструкции показана работа с минимальной базой, соответственно и время указано для минимальной базы, но работа с расширенной и максимальной базой займет больше времени.

Скачивание и установка сервера баз данных PostgreSQL

скачать базу PostgreSQL с сайта разработчика скачать базу PostgreSQL для Windows x64 с сайта разработчика

ВАЖНО: Мы рекомендуем устанавливать сервер баз данных и делать выборки в 64-битной системе с минимум 6 Гб оперативной памяти при работе с минимальной и расширенной базами. В случае максимальной базы рекомендуемый объем оперативной памяти - от 32 Гб, также желателен быстрый диск. На компьютере с 32-битной системой процесс импорта данных, их индексации и собственно выборки будет проходить очень и очень долго, поэтому лучше отказаться от этой идеи.

Если вы не знаете разрядность своей ОС, то ее можно посмотреть в свойствах компьютера (правая кнопка мыши на пункте «Компьютер», выбрать в меню «Свойства»):

свойства системы Windows

2. Устанавливаем скачанную БД PostgreSQL. Во время установки практически все по умолчанию …

Установка PostgreSQL

… за исключением нескольких моментов.

При выборе папки для хранения данных – если у вас на системном диске мало места или он не самый быстрый из ваших дисков, то рекомендуем выбрать другой, на котором много свободного места и у которого показатели скорости чтения/записи выше. Например, мы выбрали диск D:

Установка PostgreSQL

Примечание: для того, чтобы процедура импорта и индексации базы ключевых слов прошла успешно, вам нужно, чтобы свободного места на диске было примерно в три раза больше, чем размер базы. Например, текстовая база из 457 млн.слов занимает 11,2 Гб, тогда на диске, где расположена папка под хранение проектов, должно быть как минимум 33 Гб. Эта цифра ориентировочна и для других баз будет отличаться.

Дальше вводим пароль, который нужно запомнить, он понадобится в дальнейшем тоже:

Установка PostgreSQL

Порт, региональные настройки оставляем по умолчанию.

На последнем шаге установки появляется экран:

Установка PostgreSQL

Для нашей задачи дополнительные инструменты не нужны, поэтому убираем галочку на этом экране.

Сервер баз данных PostgreeSQL установлен, переходим к его настройке.

Настройка сервера баз данных PostgreSQL

1. Оптимизируем конфигурацию для ускорения работы сервера. В структуре папок, куда вы настроили хранение данных при установке PostgreSQL, находим файл postgresql.conf (в нашем случае, путь к этому файлу d:\PostgreSQL\9.5\data\postgresql.conf). Открываем Блокнот (Notepad), в Блокноте выбираем и открываем postgresql.conf (для этого в окне диалога «Открыть» выбираем для отображения все форматы файлов), в файле конфигурации находим пункты # work_mem и # maintenance_work_mem, меняем значения на:

work_mem = 256MB
maintenance_work_mem = 2020MB

Конфигурация системы для оптимальной работы PostgreSQL

Примечание: Обратите внимание на то, что в файле конфигурации мы убираем комментирование (#) для исправляемых пунктов, иначе новые настройки не применятся. Далее нужно сохранить измененный файл postgresql.conf.

После установки сервер БД стартовал автоматически. Для того, чтобы изменения в конфигурации вступили в силу, его нужно перезапустить, но проще просто перезагрузить компьютер – в таком случае измененные настройки конфигурации наверняка вступят в силу.

Правильное выполнение этого шага очень важно, поскольку эти настройки влияют на скорость индексации (а также на скорость выборки). Если вы его пропустите, то процедура индексации потребует намного больше времени.

Создание базы данных

Открываем программу для управления базами данных PosgreSQL - PGAdmin.

1. Для подключения к серверу дважды кликнем на иконке сервера:

Подключение к серверу PostgreSQL

Введите пароль, который вы использовали на этапе установки. Установите галочку «Сохранить пароль» для удобства дальнейшей работы:

Подключение к серверу PostgreSQL

После подключения красный крестик в иконке названия сервера исчезнет и появится дерево структуры базы, которая создана по умолчанию.

2. Создаем базу для хранения английских ключевых слов. Для этого на пункте «Базы данных» в меню по правой кнопке мыши выбираем пункт «Новая база данных».

Создание новой базы в PostgreSQL

Затем в открывшемся окне создания базы вписываем название MyDB, нажимаем OK:

Создание новой базы в PostgreSQL

Этого достаточно для создания базы.

Создание таблицы, импорт данных в таблицу и их индексация

Теперь, когда база MyDB создана, создадим таблицу eng_data_table в этой базе и импортируем в нее английские ключевые слова из текстового файла, который мы скачали.

Затем проиндексируем данные для того, чтобы поиск по таблице производился быстрее.

Эти подготовительные процедуры, хотя и занимают много времени, являются разовыми. После выполнения вам не придется их заново повторять, пока вы работаете с одной и той же базой данных.

1. Становимся на названии базы и нажимаем кнопку SQL в верхней панели инструментов:

Создание новой таблицы в PostgreSQL

Появляется окно редактора запросов SQL. Для создания таблицы копируем и вставляем такую команду:

CREATE TABLE "eng_data_table" (
"keyword" VARCHAR NOT NULL
) WITH (fillfactor = 100, oids = false);

Нажимаем зеленую кнопку выполнения запроса в верхней панели:

Создание новой таблицы в PostgreSQL

Примечание: Если вы экспериментируете, то для удаления ранее созданной таблицы нужно применить команду:

drop table if exists "eng_data_table";

2. Импортируем данные из файла базы английских ключевых слов, который мы скачали с сайта и распаковали на локальный диск e:\downloads\EnglishKeywords.txt, в созданную таблицу eng_data_table.

Для этого в SQL редактор вставим такой запрос:

copy "eng_data_table" from 'e:\downloads\EnglishKeywords.txt';

и нажмем зеленую кнопку выполнения запроса в верхней панели:

Создание новой таблицы в PostgreSQL

Импорт выполняется в среднем 20-40 минут.

После выполнения команды copy архив и распакованный файл базы можно удалить, если у вас мало свободного места на диске.

Примечание: Если вы импортируете расширенную базу, обратите внимание на то, что название файла расширенной базы отличается от названия минимальной базы. В этом случае в синтаксисе команды копирования базы EnglishKeywords.txt нужно поменять на EnglishKeywordsExtended.txt. Соответственно при работе с максимальной базой нужно указать название EnglishKeywordsMax.txt

Дополнительно: База английских ключевых слов прошла фильтрацию от мусора и слов, состоящих из букв, не встречающихся в английском алфавите. Но на этом этапе из базы можно дополнительно отфильтровать фразы, которые по некоторым признакам являются неанглийскими. Если вы планируете осуществить такую чистку, то лучше это сделать до оптимизации и индексации таблицы. Подробнее о фильтрациии неанглийских слов.

3. Запускаем операцию оптимизации таблицы подобным образом:

vacuum "eng_data_table";

Оптимизация таблицы в PostgreSQL

Оптимизация выполняется в среднем 15-30 минут.

Примечание: Запросы выполняем по одному, предварительно стирая уже выполненные предыдущие запросы. О том, выполнен запрос или нет, вы можете узнать из сообщения в Панели вывода внизу (оно появляется, когда запрос выполнен), а время выполнения вы можете узнать в строке состояния внизу окна.

4. Индексируем таблицу для быстрого поиска в базе. Синтаксис запроса для индексации нашей таблицы такой:

CREATE INDEX "eng_data_table_idx" ON "eng_data_table" USING gin ((to_tsvector('english'::regconfig, ("keyword")::text)));

Оптимизация таблицы в PostgreSQL

Примечание: Этот шаг самый длительный, займет 3-5 часов в зависимости от мощности вашего ПК. Для ускорения индексации лучше закрыть программы, потребляющие много ОЗУ и активно работающие с диском. Тем не менее, если вы продолжаете пользоваться вашим ПК, то в это время ваш компьютер может притормаживать, это нормально.

Если процесс индексации затягивается (например, для индексации английской базы в 500 млн. строк нужно 2-3 часа), то скорее всего вы 1) не поменяли/не сохранили настройки конфигурации либо 2) поменяли конфиг, но не перезагрузили компьютер.

5. Обновляем статистику таблицы (позволит эффективно использовать только что созданный индекс):

vacuum analyze "eng_data_table";

Оптимизация таблицы в PostgreSQL

Оптимизация займет 5-10 минут.

Подготовительный этап создания и оптимизации базы ключевых слов завершен, его больше не нужно будет повторять. Теперь можно перейти к выполнению запросов для получения выборок из базы.


Раздел 2. Получение и экспорт выборок из базы английских ключевых слов (начало)

Раздел 3. Получение и экспорт выборок из базы английских ключевых слов (продолжение)

Раздел 4. Работа с другими базами слов

Скачать базу английских ключевых слов

© 2014 - 2017 Букварикс