Поддерживаемые клиентские приложения ==================================== Пользователи могут подключаться к базе данных **ADB** с помощью различных клиентских приложений: * Ряд клиентских приложений **ADB** предоставляется с установщиком. Клиентское приложение *psql* предоставляет интерфейс командной строки; * **pgAdmin III** для **ADB** -- это расширенная версия популярного инструмента управления **pgAdmin III**. Начиная с версии *1.10.0*, **pgAdmin III** включает поддержку специфичных для **ADB** функций. Пакеты установки доступны для загрузки с сайта `pgAdmin III `_; * Используя стандартные интерфейсы приложений баз данных, такие как **ODBC** и **JDBC**, пользователи могут создавать свои собственные клиентские приложения, взаимодействующие с базой данных **ADB**. Поскольку СУБД **ADB** основана на **PostgreSQL**, она использует стандартные драйверы баз данных **PostgreSQL**. + с **ADB 5** совместимы **ODBC** и **JDBC** драйвера для PostgreSQL 8.3.0 или выше. + с **ADB 6** совместимы **ODBC** и **JDBC** драйвера для PostgreSQL 9.4.24 или выше. * Большинство сторонних клиентских инструментов, которые используют стандартные интерфейсы базы данных, такие как **ODBC** и **JDBC**, могут быть настроены для подключения к **ADB**. Клиентские приложения ADB -------------------------- База данных **ADB** поставляется с несколькими клиентскими приложениями, расположенными в *$GPHOME/bin* главной хост-системы. В таблице перечислены наиболее часто используемые клиентские приложения. .. csv-table:: Клиентские приложения :header: "Имя", "Применение" :widths: 20, 25 "createdb", "Создать новую базу данных" "createlang", "Определить новый процедурный язык" "createuser", "Определить новую роль базы данных" "dropdb", "Удалить базу данных" "droplang", "Удалить процедурный язык" "dropuser", "Удалить роль" "PSQL", "Интерактивный терминал *PostgreSQL*" "reindexdb", "Переиндексировать базу данных" "vacuumdb", "Сбор мусора и анализ базы данных" При использовании клиентских приложений следует подключиться к базе данных с помощью инстанса мастера **ADB**. Необходимо узнать имя целевой базы данных, имя хоста и номер порта мастера, а также имя пользователя базы данных для подключения. Эта информация может быть предоставлена в командной строке с использованием опций ``-d``, ``-h``, ``-p`` и ``-U`` соответственно. Если находится аргумент, не принадлежащий ни одному из параметров, он интерпретируется как имя базы данных. Все эти параметры имеют значения по умолчанию, которые используются, если опция не указана. По умолчанию, хостом является локальный хост. Номер порта -- *5432*. Имя пользователя -- это имя пользователя системы ОС, как и имя базы данных по умолчанию. Следует обратить внимание, что имена пользователей ОС и имена пользователей **ADB** необязательно должны быть одинаковы. Если значения по умолчанию неверны, можно установить переменные *PGDATABASE*, *PGHOST*, *PGPORT* и *PGUSER* на соответствующие значения или использовать файл *psql~/.pgpass* для хранения часто используемых паролей. Подключение с помощью psql ---------------------------- В зависимости от используемых значений следующие примеры показывают, как получить доступ к базе данных через *psql*: :: $ psql -d gpdatabase -h master_host -p 5432 -U gpadmin $ psql gpdatabase $ psql Если пользовательская база данных еще не создана, можно получить доступ к системе, подключившись к базе данных *template1*. Например: :command:`$ psql template1` После подключения к базе данных *psql* предоставляет приглашение с именем базы данных, к которой в настоящее время подключен *psql*, а затем строковой тип ``=>`` (или ``= #`` для суперпользователя базы данных). Например: :command:`gpdatabase =>'` В командной строке можно вводить команды **SQL** для отправки на сервер и для выполнения, при этом каждая команда должна заканчиваться на знак ``;``. Например: :command:`=> SELECT * FROM mytable;` pgAdmin III для ADB --------------------- Если предпочитается графический интерфейс, следует использовать **pgAdmin III**. Этот GUI-клиент поддерживает базы данных **PostgreSQL** со всеми стандартными функциями **pgAdmin III**, добавляя поддержку функций, специфичных для **ADB**. **pgAdmin III** поддерживает следующие особенности **ADB**: + Внешние таблицы; + Таблицы с оптимизированным соединением (*append-optimized*), включая сжатые таблицы, оптимизированные для добавления; + Разделение таблиц; + Очереди ресурсов; + Графический анализ *ANPLYIN ANALYZE*; + Параметры конфигурации сервера ADB. Пакет установки для **pgAdmin III** для базы данных **ADB** доступен для загрузки с официального сайта `pgAdmin III `_. Инструкции по установке включены в установочный пакет. Далее рассматриваются две из многих задач администрирования базы данных **ADB**, которые можно выполнять с помощью **pgAdmin III**: `Редактирование конфигурации сервера`_ и `Просмотр графического плана запроса`_. Редактирование конфигурации сервера ``````````````````````````````````` Интерфейс **pgAdmin III** предоставляет два способа обновления конфигурации сервера в *PostgreSQL.conf*: локально через меню "Файл" и удаленно на сервере через меню "Инструменты". Редактирование конфигурации сервера удаленно может быть более удобным во многих случаях, поскольку оно не требует загрузки или копирования *PostgreSQL.conf*. Действия для удаленного изменения конфигурации сервера: 1. Подключиться к серверу, конфигурацию которого необходимо отредактировать. При подключении к нескольким серверам следует убедиться, что правильный сервер выделен в объекте-браузере на левой панели. 2. Выбрать пункты меню :menuselection:`"Сервис --> Конфигурация сервера --> PostgreSQL.conf"`. При этом открывается редактор *BackendConfiguration*, отображающий список доступных и разрешенных параметров конфигурации сервера. 3. Установить параметр, который необходимо отредактировать, и дважды щелкнуть по этой записи, чтобы открыть диалоговое окно настроек конфигурации. 4. Ввести новое значение для параметра или выбрать флажок "Enabled" (по желанию) и нажать кнопку *ОК*. 5. Если параметр можно включить, перезагрузив конфигурацию сервера, щелкнуть "greenreload" или выбрать :menuselection:`"Файл --> Обновить сервер"`. Для многих параметров требуется полный перезапуск сервера. Просмотр графического плана запроса ``````````````````````````````````` Используя **pgAdmin III**, можно запустить запрос с помощью *EXPLAIN*, чтобы просмотреть детали плана запроса. Вывод содержит сведения об операциях, уникальных для обработки распределенных запросов **ADB** таких, как срезы плана и движения между сегментами. Можно просмотреть графическое изображение плана, а также текстовый вывод данных. Действия для просмотра графического плана запроса: 1. Выделив нужную базу данных в браузере объектов в левой панели, выбрать инструмент :menuselection:`"Tools --> Query"`. 2. Ввести запрос в SQL, перетащить объекты в *GraphicalQuery Builder* или открыть файл. 3. Выбрать :menuselection:`"Query --> Explain"` и проверить следующие параметры: + *Verbose* – должно быть отключено для просмотра графического изображения плана запроса; + *Analyze* -- выбрать этот параметр для запуска запроса в дополнение к просмотру плана. 4. Завершить операцию, нажав "Explain" в верхней части панели или выбрав :menuselection:`"Query --> Explain"`. План запроса отображается в области вывода в нижней части экрана. Чтобы просмотреть графический вывод необходимо перейти на вкладку "Explain". Интерфейсы приложений баз данных --------------------------------- Есть возможность разработки собственных клиентских приложений, взаимодействующих с **ADB**. **PostgreSQL** предоставляет ряд драйверов баз данных для наиболее часто используемых **API**, которые также могут использоваться с **ADB**. Эти драйверы не упакованы базовым дистрибутивом **ADB**. Каждый драйвер является независимым проектом разработки **PostgreSQL** и должен быть загружен, установлен и настроен для подключения к **ADB**. Доступные драйверы представлены в таблице. .. csv-table:: Интерфейсы базы данных :header: "API", "Драйвер PostgreSQL", "Ссылка для скачивания" :widths: 20, 25, 30 "ODBC", "pgodbc", "https://odbc.postgresql.org/" "JDBC", "pgjdbc", "https://jdbc.postgresql.org/" "Perl DBI", "pgperl", "http://gborg.PostgreSQL.org/project/pgperl" "Python DBI", "pygresql", "http://www.pygresql.org" Общие инструкции по доступу к **ADB** с помощью **API**: 1. Загрузить платформу и соответствующий **API** из источника. Например, можно получить Java-комплект разработчика (**JDK**) и **API JDBC** от **Sun**. 2. Записать клиентское приложение в соответствии со спецификациями **API**. При программировании приложения необходимо следить за тем, чтобы не был включен какой-либо неподдерживаемый синтаксис **SQL**. 3. Загрузить соответствующий драйвер **PostgreSQL** и настроить подключение к мастер-инстансу базы данных **ADB**. **ADB** предоставляет пакет клиентских инструментов, содержащий поддерживаемые драйверы. Инструменты сторонних клиентов ------------------------------- В большинстве сторонних средств **ETL** и бизнес-аналитики **BI** используются стандартные интерфейсы баз данных, такие как **ODBC** и **JDBC**. Их можно настроить для подключения к **ADB**, которая работает со следующими инструментами: + Business Objects; + Microstrategy; + Informatica Power Center; + Microsoft SQL Server Integration Services (SSIS) and Reporting Services (SSRS); + Ascential Datastage; + SAS; + Cognos. Квалифицированные специалисты **Arenadata** могут помочь пользователям в настройке выбранного стороннего инструмента для его использования с базой данных.