Главная страница Новости кинофильмов Игровые новости Новости спорта Новости технологий

Установка и использование MADlib с PostgreSQL на OSX

Новости

Мы рассмотрим основы установки и использования PostgreSQL и MADlib в OSX и Ubuntu. Инструкции для других сред должны быть аналогичными. PostgreSQL — это база данных с открытым исходным кодом, обладающая корпоративными функциональными возможностями, которых часто не хватает в MySQL. MADlib — это библиотека с открытым исходным кодом, которая расширяет возможности баз данных PostgreSQL или Greenplum функциональными возможностями для масштабируемой аналитики в базе данных.

PostgreSQL: установка

Во-первых, нам нужно установить PostgreSQL. В OSX мы будем использовать Homebrew вместо самостоятельной компиляции исходного кода. В Ubuntu это сделает apt-get. Обратите внимание, что на вашем компьютере должен присутствовать Homebrew. На момент написания этой статьи текущая предлагаемая версия — 9.0.1. Следующие команды позволят установить и настроить новую установку PostgreSQL. Кроме того, она будет зарегистрирована как служба запуска.

OSX:

готовим обновление, готовим установку postgres initdb /usr/local/var/postgres mkdir -p ~/Библиотека/LaunchAgents cp /usr/local/Cellar/postgresql/9.1.3/homebrew.mxcl.postgresql.plist ~/Библиотека/LaunchAgents/launchctl load -w ~/Library/LaunchAgents/homebrew.mxcl.postgresql.plist

В случае, если у вас возникли проблемы в OSX lion со следующим сообщением:

ФАТАЛЬНО: не удалось создать сегмент разделяемой памяти: Не удается выделить память ПОДРОБНЕЕ: Системный вызов завершился ошибкой shmget(ключ=1, размер=1646592, 03600).

Вам следует отредактировать “/etc/sysctl.conf” или создать его, если он не существует, и написать:

kern.sysv.shmall=65536 kern.sysv.shmmax=16777216

Распаковать:

apt-получить обновление apt-начать установку postgres

Убедитесь, что ваша команда postgres соответствует вашей новой установке PostgreSQL, а не установленной по умолчанию. При выполнении которого postgres должен вывести “/usr/local/bin/postgres”. Если вместо этого вы видите “/usr/bin/postgres”, вам нужно изменить свой путь и поместить “/usr/local/bin” перед “/usr/bin”. Для этого вы можете отредактировать свой файл ”/.bashrc”, ”/.profile” или “/etc/paths”. Вот пример:

echo «ПУТЬ экспорта=/usr/local/bin:$PATH» >> ~/.bashr. ~/.укажите, какой postgres

Ваш сервер PostgreSQL уже должен быть запущен. В будущем, если вы захотите запустить/остановить сервер:

# Запустить pg_ctl -D /usr/local/var/postgres -l /usr/local/var/postgres/server.log start # Остановить pg_ctl -D /usr/local/var/postgres stop -s -m fast

PostgreSQL: запущен

Обратите внимание, что формула Homebrew настраивает систему на локальную “доверительную” аутентификацию. Аутентификация выполняется в отношении текущего пользователя Unix, вошедшего в систему. Homebrew не создает пользователя “postgres”, и сервер запускается с использованием той же учетной записи пользователя, под которой вы запускали Homebrew.

Вы можете протестировать подключение к вашему новому серверу PostgreSQL, выполнив запуск с помощью psql. Например, командой psql -d postgres -c «l» откройте соединение с базой данных “postgres” (используя ваше текущее имя пользователя) и выполните команду l для получения списка баз данных.

Теперь давайте порадуем pgadmin, установив функции инструментария, отсутствующие по умолчанию.

psql -d postgres -c «СОЗДАТЬ РАСШИРЕНИЕ «adminpack»;» # Список установленных расширений psql -d postgres -c «выбрать * из pg_extension» # Список доступных расширений psql -d postgres -c «выбрать * из pg_available_extensions»

Это в значительной степени относится к PostgreSQL, теперь давайте перейдем к установке библиотеки MADlib.

MADlib: установка

Мы начинаем с загрузки пакета MADlib и запуска программы установки.

После установки MADlib необходимо зарегистрировать в базе данных PostgreSQL. Мы начинаем с создания базы данных “mad”, а затем регистрируем ее:

psql -d postgres -c «СОЗДАТЬ БАЗУ ДАННЫХ mad» /usr/local/madlib/bin/madpack -p postgres -c $USER@$HOST/mad install

MADlib: тестирование

MADlib поставляется с полным набором тестов, которые вы также можете использовать в качестве справочного материала или просто как источник вдохновения. Скрипт присутствует в файле “/usr/local/madlib/ports/postgres/modules//test/.sql”. Чтобы запустить набор тестов:

/usr/local/madlib/bin/madpack -p postgres -c $USER@$HOST/mad install-check

Пример быстрого квантиля

Мы протестируем квантильную функцию. Для простоты определения квантиль — это деление общей суммы на равные подгруппы.

В качестве примера, квантиль “.5” серии ‘.25,.45,.5,.55,.75’ равен “.5”. Если мы вычтем “.1” из каждого элемента и используем один и тот же квантиль, то квантиль “.5” из серии “.15,.35,.4,.4,.45,.65” будет равен «.4». Мы можем интерпретировать результат, сказав, что серия делится на две части с коэффициентом “.4”. Наконец, используя последнюю серию, квантиль “.75” равен “.425”, что означает, что одна четвертая часть значений находится после “.415”.

Мы будем использовать квантильный тест MADlib в качестве источника вдохновения. Он находится по адресу “/usr/local/madlib/ports/postgres/modules/quantile/test/quantile.sql_in”.

В нашей упрощенной версии:

  • Создадим новую таблицу
  • Вставим несколько случайных значений
  • Вычислим квантиль “.5”
  • Удалим таблицу
  • СОЗДАТЬ ТАБЛИЦУ TestQuantile (значение С ПЛАВАЮЩЕЙ ТОЧКОЙ ); ВСТАВИТЬ В TestQuantile SELECT random()*100 ИЗ generate_series(1,1000); ВЫБРАТЬ MADLIB.quantile(‘TestQuantile’, ‘val’, 0,5); УДАЛИТЬ ТАБЛИЦУ TestQuantile;

    Поскольку наша функция random()*100 сгенерирует единообразное представление в диапазоне от 0 до 100 мы ожидаем результат, относительно близкий к 50.


    Другие новости: