Создание базы данных PostgreSQL и подключение к ней с помощью Amazon RDS
Вход в консоль RDS
Щелкните здесь, и в новом окне браузера откроется Консоль управления AWS. При этом руководство останется открытым. После загрузки экрана нажмите RDS в разделе База данных, чтобы открыть консоль Amazon RDS.
Создание инстанса БД PostgreSQL
На этом этапе с помощью Amazon RDS будет создан инстанс БД PostgreSQL класса db.t2.micro с хранилищем на 20 ГБ и активацией автоматического резервного копирования (срок хранения копий равен одному дню). Напоминаем, что все эти операции доступны на уровне бесплатного пользования.
а) В правом верхнем углу консоли Amazon RDS выберите регион, в котором требуется создать инстанс БД.
Примечание. Облачные вычислительные ресурсы AWS расположены в высокодоступных центрах обработки данных по всему миру. Вы можете самостоятельно выбирать регион, в котором будут работать ресурсы Amazon RDS.
б) В разделе создания базы данных выберите Create database.
в) Теперь можно выбрать ядро СУБД. Для этого руководства выберите значок PostgreSQL, выберите версию ядра и выберите шаблон уровне бесплатного пользования.
г) Теперь настройте инстанс БД. В представленном ниже списке приводятся примеры параметров, которые можно использовать в данном учебном пособии.
Параметры
- Идентификатор инстанса БД: укажите имя инстанса БД. Оно должно быть уникальным в рамках аккаунта пользователя в выбранном регионе. В данном примере инстансу будет присвоено имя rds-postgresql-10minTutorial.
- Master Username (Главное имя пользователя): укажите имя пользователя для входа в инстанс БД. В данном примере будет использоваться значение masterUsername.
- Master Password (Главный пароль): в качестве главного пароля укажите комбинацию, содержащую от 8 до 41 печатного символа в кодировке ASCII (кроме символов «/», «»» и «@»).
- Подтвердите пароль: введите пароль повторно.
Спецификации инстанса:
- DB Instance Class: выберите значение по умолчанию db.t2.micro — 1 vCPU, 1 GIB RAM. Это значение соответствует памяти объемом 1 ГБ и одному виртуальному ЦП. Список поддерживаемых классов инстансов см. на странице Сведения о продукте Amazon RDS.
- Тип хранилища: выберите значение «Общего назначения» (SSD). Подробную информацию о хранении см. в разделе Хранилище для Amazon RDS.
- Выделенное хранилище: выберите значение по умолчанию 20. Для базы данных будет выделено 20 ГБ. При работе с Amazon RDS возможно масштабирование не более чем до 64 ТБ.
- Включить автомасштабирование хранилища: если рабочая нагрузка имеет циклический и непредсказуемый характер, рекомендуется включить функцию автомасштабирования хранилища, чтобы при необходимости сервис RDS мог автоматически масштабировать хранилище. При выполнении заданий этого учебного пособия мы не будем использовать этот параметр.
- Multi-AZ deployment (Развертывание в нескольких зонах доступности): обратите внимание, что развертывание в нескольких зонах доступности является платным. В случае развертывания в нескольких зонах доступности в другой зоне автоматически создается и поддерживается синхронизированная резервная реплика. Дополнительную информацию см. в разделе Развертывание с обеспечением высокой доступности.
д) Вы находитесь на странице Configure Advanced Settings, где можно указать дополнительную информацию, которую RDS использует для запуска инстанса БД PostgreSQL. В представленном ниже списке приводятся примеры параметров для инстанса БД.
Сеть и безопасность
- Virtual Private Cloud (VPC): выберите VPC по умолчанию. Дополнительную информацию о VPC см. в разделе Amazon RDS и Amazon Virtual Private Cloud (VPC).
Дополнительная настройка подключения
- Группа подсетей: выберите группу подсетей по умолчанию. Дополнительную информацию о группах подсетей см. в разделе Работа с группами подсетей БД.
- Общий доступ: выберите Да. Инстансу базы данных будет присвоен IP-адрес, что позволит подключаться к базе данных непосредственно с пользовательского устройства.
- Зона доступности: выберите значение Нет предпочтений. Для получения дополнительной информации см. раздел Регионы и зоны доступности.
- Группы безопасности VPC: выберите Создать группу безопасности VPC. Будет создана группа безопасности, поддерживающая соединение между IP-адресом используемого устройства и созданной базой данных.
- Port: сохраните значение по умолчанию «5432».
В разделе Дополнительные настройки:
Настройки базы данных
- Database name: введите имя базы данных, содержащее от 1 до 64 буквенно-цифровых символов. Если имя не указано, Amazon RDS не сможет автоматически создать базу данных на основе нового инстанса БД. Для этого учебного пособия используется myDatabase.
- Группа параметров БД: используйте значение по умолчанию. Дополнительную информацию см. в разделе Работа с группами параметров БД.
- Option group: Эта настройка недоступна на уровне бесплатного пользования. С помощью групп настроек в Amazon RDS активируются и настраиваются дополнительные возможности. Дополнительную информацию см. в разделе Работа с группами настроек.
Шифрование
Эта настройка недоступна на уровне бесплатного пользования. Дополнительную информацию см. в разделе Шифрование ресурсов Amazon RDS.Резервное копирование
- Срок хранения резервных копий: в этом поле можно выбрать количество дней, в течение которых сохраняются резервные данные. Для данного курса выберите значение 1 день.
- Окно резервного копирования: задайте значение по умолчанию – Нет предпочтений.
Performance Insights
Для выполнения заданий этого учебного пособия выберите Disable Performance Insights. Для получения дополнительной информации о Performance Insights, возможностях производительности и мониторинга базы данных, см. веб-страницу Performance Insights.Мониторинг
Enhanced Monitoring: выберите Enable Enhanced Monitoring. При активации расширенного мониторинга в режиме реального времени становятся доступны метрики для операционной системы (ОС), на которой работает инстанс БД. Дополнительную информацию см. в разделе Просмотр метрик инстанса БД.
Обслуживание
- Автоматическое промежуточное обновление версии: выберите Включить автоматическое промежуточное обновление версии, чтобы получать автоматические обновления, как только они станут доступны.
- Окно обслуживания: : выберите Нет предпочтений
Защита от удаления
Отключите параметр Включить защиту от удаления для выполнения заданий этого учебного пособия. Если этот параметр включен, базу данных невозможно удалить.Нажмите кнопку
е) Идет создание инстанса БД. Щелкните View Your DB Instances (Просмотреть инстансы БД).
Примечание. В зависимости от класса инстанса БД и присвоенного ему хранилища, новый инстанс БД может стать доступным через несколько минут.
Новый инстанс БД появится в списке инстансов БД в консоли RDS. Пока инстанс БД не будет создан и готов к использованию, он будет иметь статус creating (создается). Когда статус изменится на available (доступен), к базе данных можно будет подключиться через инстанс БД.
Можно не дожидаться доступности инстанса БД и перейти к следующему этапу.
Загрузка клиента SQL
После создания инстанса базы данных и изменения статуса на available (доступен) можно подключиться к базе данных на этом инстансе БД с помощью любого стандартного клиента SQL.
На этом этапе будет выполнена загрузка популярного клиента SQL Workbench.Примечание. SQL Workbench следует запустить на том же устройстве и в той же сети, где был создан инстанс БД. Группа безопасности, к которой относится база данных, настроена таким образом, чтобы подключение было возможным только с того устройства, с которого был создан инстанс БД. При попытке подключения из другой сети или с другого устройства будет использоваться другой IP-адрес. Базу данных также можно настроить так, чтобы разрешить доступ к ней с любого IP-адреса (подробные сведения см. здесь), однако в данном примере выбрана упрощенная конфигурация.
а) Перейдите на веб-сайт SQL Workbench и щелкните Generic package for all systems including all optional libraries.
б) Затем нажмите здесь и загрузите последнюю версию драйвера JDBC с веб-сайта PostgreSQL. Сохраните файл в папке, в которой его будет легко найти в дальнейшем. Этот файл понадобится на следующем этапе.
Подключение к базе данных PostgreSQL
На этом этапе будет выполнено подключение к созданной базе данных с помощью SQL Workbench.
а) После завершения загрузки установите SQL Workbench.
Примечание. Вы можете запустить приложение с помощью файла .exe (Windows) или скрипта оболочки (macOS, Linux), которые размещены в папке download. Подробнее см. PDF-файл, входящий в комплект загрузки.
б) Откройте программу. Откроется диалоговое окно. Укажите в нем следующие данные.
- Драйвер: PostgreSQL (org.postgresql.Driver)
Примечание. При выборе драйвера в раскрывающемся меню будет предложено изменить настройки драйвера. Выберите Yes. В следующем диалоговом окне нажмите на значок папки и выберите драйвер, загруженный на предыдущем этапе.
- URL: URL-адрес JDBC можно найти в консоли Amazon RDS (см. снимок экрана справа). Введите или вставьте адрес инстанса БД, включая порт, после значения «jdbc:postgresql://». После этого добавьте косую черту и укажите в конце URL-адреса имя инстанса базы данных. Например, URL-адрес может быть таким: jdbc:postgresql://postgresql-instance1.cg034hpkmmjt.us-east-1.rds.amazonaws.com/myDatabase.
- Username: введите имя пользователя, созданное для базы данных Amazon RDS. Для заданий этого учебного пособия будет использоваться имя masterUsername.
- Password: введите пароль, заданный при создании базы данных Amazon RDS.
Нажмите OK.
в) Подключение к базе данных выполнено. В консоли Amazon RDS выберите нужный инстанс из списка Databases и убедитесь, что для него указано значение «1 Connection» под заголовком Current activity.
Примечание. Теперь база данных готова к использованию. В ней можно создавать таблицы, вставлять данные и выполнять запросы с помощью клиента SQL Workbench.
Удаление инстанса БД
Удалить инстанс БД PostgreSQL из консоли Amazon RDS очень просто. Рекомендуется удалять все неиспользуемые инстансы, чтобы за них не взималась плата.
а) Вернитесь в консоль Amazon RDS. Выберите Databases (Базы данных), затем выберите инстанс, который необходимо удалить, и нажмите Delete (Удалить) в раскрывающемся меню Actions (Действия).
б) Вам будет предложено сделать окончательный снимок состояния и подтвердить удаление. В нашем примере не нужно делать последний снимок экрана, просто подтвердите, что вы хотите удалить инстанс и нажмите Удалить.
Примечание. Для удаления инстанса БД может потребоваться несколько минут.
Демонстрационная база данных
Представляем вам демонстрационную базу данных для СУБД PostgreSQL. В качестве предметной области выбраны авиаперевозки по России.
База данных может использоваться, например,
- для самостоятельного изучения языка запросов SQL,
- для подготовки книг, пособий и учебных курсов по языку SQL,
- для демонстрации возможностей PostgreSQL в статьях и заметках.
При разработке демонстрационной базы данных мы преследовали несколько целей:
- схема данных должна быть достаточно простой, чтобы быть понятной без особых пояснений,
- в то же время схема данных должна быть достаточно сложной, чтобы позволять строить осмысленные запросы,
- база данных должна быть наполнена данными, напоминающими реальные, с которыми будет интересно работать.
Демонстрационная база данных распространяется под лицензией PostgreSQL.
Свои замечания и пожелания направляйте нам по адресу [email protected].
Последняя версия (15.08.2017)
Файлы
- demo-small.zip (21 МБ) — данные по полетам за один месяц (размер БД примерно 300 МБ),
- demo-medium.zip (62 МБ) — данные по полетам за три месяца (размер БД примерно 700 МБ),
- demo-big.zip (232 МБ) — данные по полетам за год (размер БД примерно 2,5 ГБ).
Описание
- Установка
- Диаграмма схемы данных
- Описание схемы
- Объекты схемы
- Использование
Отличия от предыдущей версии
- Таблица
airports
заменена на одноименное представление над таблицейairports_data
, в которой поляairport_name
иcity
содержат значения как на русском, так и на английском языках. Представление показывает данные на языке, установленном в конфигурационном параметреbookings.lang
(по умолчанию — русский). - Аналогично таблица
aircrafts
заменена на одноименное представление над таблицейaircrafts_data
. Переведено полеmodel
. - Материализованное представление
routes
заменено на обычное, чтобы не требовалось обновление при изменении параметраbookings.lang
. - В представлении
airports
и таблицеairports_data
поляlongitude
иlatitude
заменены на одно полеcoordinates
типаpoint
. - При подключении к демонстрационной базе данных правильное значение параметра
search_path
устанавливается автоматически.
Версия 13.10.2016
Файлы
- demo-small-20161013.zip (21 МБ) — данные по полетам за один месяц (размер БД примерно 300 МБ),
- demo-medium-20161013.zip (62 МБ) — данные по полетам за три месяца (размер БД примерно 700 МБ),
- demo-big-20161013.zip (232 МБ) — данные по полетам за год (размер БД примерно 2,5 ГБ).
Описание
- Установка
- Диаграмма схемы данных
- Описание схемы
- Объекты схемы
- Использование
То же самое одним PDF-файлом.
PostgreSQL: О
Что такое PostgreSQL?
PostgreSQL — это мощная система объектно-реляционных баз данных с открытым исходным кодом, которая использует и расширяет язык SQL в сочетании со многими функциями, позволяющими безопасно хранить и масштабировать самые сложные рабочие нагрузки данных. Истоки PostgreSQL восходят к 1986 году в рамках проекта POSTGRES в Калифорнийском университете в Беркли и уже более 35 лет активно развиваются на основной платформе.
PostgreSQL заработал прочную репутацию благодаря своей проверенной архитектуре, надежности, целостности данных, надежному набору функций, расширяемости и приверженности сообщества открытого исходного кода, стоящего за программным обеспечением, для последовательного предоставления производительных и инновационных решений. PostgreSQL работает во всех основных операционных системах, с 2001 года совместим с ACID и имеет мощные надстройки, такие как популярный расширитель геопространственных баз данных PostGIS. Неудивительно, что PostgreSQL стал предпочтительной реляционной базой данных с открытым исходным кодом для многих людей и организаций.
Начать работу с PostgreSQL еще никогда не было так просто — выберите проект, который хотите создать, и пусть PostgreSQL безопасно и надежно сохранит ваши данные.
Зачем использовать PostgreSQL?
PostgreSQL имеет множество функций, призванных помочь разработчикам создавать приложения, администраторам защищать целостность данных и создавать отказоустойчивые среды, а также помогать вам управлять своими данными, независимо от того, насколько велик или мал набор данных. Помимо того, что PostgreSQL является бесплатным и с открытым исходным кодом, он обладает высокой расширяемостью. Например, вы можете определять свои собственные типы данных, создавать собственные функции и даже писать код на разных языках программирования без перекомпиляции базы данных!
PostgreSQL пытается соответствовать стандарту SQL, если такое соответствие не противоречит традиционным функциям или может привести к неправильным архитектурным решениям. Поддерживаются многие функции, требуемые стандартом SQL, хотя иногда с немного отличающимся синтаксисом или функциями. Со временем можно ожидать дальнейших шагов в направлении соответствия. Начиная с версии 15, выпущенной в октябре 2022 года, PostgreSQL соответствует как минимум 170 из 179 обязательных функций для соответствия SQL:2016 Core. На момент написания этой статьи ни одна реляционная база данных не соответствовала этому стандарту в полной мере.
Ниже приведен неполный список различных функций PostgreSQL, которые добавляются в каждом основном выпуске:
- Типы данных
- Примитивы: целые, числовые, строковые, логические
- Структурировано: дата/время, массив, диапазон/несколько диапазонов, UUID
- Документ: JSON/JSONB, XML, ключ-значение (Hstore)
- Геометрия: точка, линия, окружность, многоугольник
- Настройки: Составные, Пользовательские типы
- Целостность данных
- УНИКАЛЬНЫЙ, НЕ ПУСТОЙ
- Первичные ключи
- Внешние ключи
- Ограничения исключения
- Явные блокировки, рекомендательные блокировки
- Параллелизм, Производительность
- Индексирование: B-tree, Multicolumn, Expressions, Partial
- Расширенное индексирование: GiST, SP-Gist, KNN Gist, GIN, BRIN, индексы покрытия, фильтры Блума
- Сложный планировщик/оптимизатор запросов, сканирование только индекса, многостолбцовая статистика
- Транзакции, Вложенные транзакции (через точки сохранения)
- Управление параллельным доступом к нескольким версиям (MVCC)
- Распараллеливание запросов на чтение и построение индексов B-tree
- Разделение таблицы
- Все уровни изоляции транзакций, определенные в стандарте SQL, включая Serializable
- JIT-компиляция выражений
- Надежность, аварийное восстановление
- Ведение журнала упреждающей записи (WAL)
- Репликация: асинхронная, синхронная, логическая
- Восстановление на момент времени (PITR), активные резервы
- Табличные пространства
- Безопасность
- Аутентификация: GSSAPI, SSPI, LDAP, SCRAM-SHA-256, сертификат и др.
- Надежная система контроля доступа
- Безопасность на уровне столбцов и строк
- Многофакторная аутентификация с сертификатами и дополнительным методом
- Расширяемость
- Сохраненные функции и процедуры
- Процедурные языки: PL/pgSQL, Perl, Python и Tcl. Есть другие языки, доступные через расширения, например. Java, JavaScript (V8), R, Lua и Rust
- Выражения пути SQL/JSON
- Оболочки внешних данных: подключение к другим базам данных или потокам со стандартным интерфейсом SQL
- Настраиваемый интерфейс хранения для таблиц
- Многие расширения, обеспечивающие дополнительную функциональность, включая PostGIS
- Интернационализация, текстовый поиск
- Поддержка международных наборов символов, например. через сопоставления ICU
- Сопоставления без учета регистра и диакритических знаков
- Полнотекстовый поиск
Есть много других функций, которые вы можете найти в документации PostgreSQL. Кроме того, PostgreSQL обладает высокой расширяемостью: многие функции, такие как индексы, имеют определенные API, так что вы можете использовать PostgreSQL для решения своих задач.
Доказано, что PostgreSQL хорошо масштабируется как по количеству данных, которыми он может управлять, так и по количеству одновременно работающих пользователей. Существуют активные кластеры PostgreSQL в производственных средах, которые управляют многими терабайтами данных, и специализированные системы, которые управляют петабайтами.
Есть вопросы?
Первое место, куда можно обратиться с любыми вопросами о PostgreSQL, — это его всемирно известная документация, в которой подробно обсуждается, как использовать PostgreSQL.
У нас также есть множество списков рассылки , к которым вы можете подключиться и принять участие в жизни сообщества. Существует также множество событий и локальных групп пользователей, где вы можете общаться с другими пользователями PostgreSQL.
Наши пользователи сша
Здесь, в банке CAIXA, мы используем Postgresql в критически важных финансовых средах, потому что, помимо того, что он является стратегическим для нашего бизнеса и Бразилии, он обладает качеством, необходимым для поддержки наших операций.
Кларис Коппетти, вице-президент по ИТ, банк CAIXA, Бразилия
С нашим предыдущим решением нам было трудно поддерживать базы данных размером более 50 ГБ. Теперь, благодаря PostgreSQL, мы легко работаем с базами данных с более чем 400 ГБ данных и сотнями миллионов записей… Это привлекло к нам внимание на нашем рынке и сыграло основную роль в нашем постоянном росте доходов.
Джошуа Марш, Listfusion
Zalando полагается на стабильность и производительность сотен серверов баз данных PostgreSQL для непрерывного обслуживания миллионов клиентов по всей Европе.
Валентин Гогичашвили, Zalando Technologies
Новая опция загрузки данных в асинхронных уведомлениях будет использоваться в следующей версии наших программ удаленного отображения данных для arcapos.
Марк Балмер, основатель Micro systems
PostgreSQL хорошо подходит для создания и запуска приложений в облаке.
Чарльз Фэн, старший вице-президент по исследованиям и разработкам, VMware
Что такое проект базы данных без статистики?
35+ Years Development
700+ Contributors
54,000+ Commits
55+ Local User Groups
1,600,000+ Lines of C
675+ Events
Millions of Счастливые пользователи
∞ Сохраненные данные
PostgreSQL: Документация: 15: 1.3. Создание базы данных
Первый тест, позволяющий проверить, можете ли вы получить доступ к серверу базы данных, — попытаться создать базу данных. Работающий сервер PostgreSQL может управлять многими базами данных. Обычно для каждого проекта или для каждого пользователя используется отдельная база данных.
Возможно, администратор вашего сайта уже создал для вас базу данных. В этом случае вы можете пропустить этот шаг и перейти к следующему разделу.
Чтобы создать новую базу данных, в этом примере с именем mydb
, используйте следующую команду:
$ createdb mydb
Если ответ не получен, значит, этот шаг выполнен успешно, и вы можете пропустить оставшуюся часть этого раздела.
Если вы видите сообщение, похожее на:
createdb: команда не найдена
значит PostgreSQL не был установлен должным образом. Либо он вообще не был установлен, либо путь поиска вашей оболочки не включал его. Попробуйте вместо этого вызвать команду с абсолютным путем:
$ /usr/local/pgsql/bin/createdb mydb
Путь на вашем сайте может быть другим. Обратитесь к администратору сайта или ознакомьтесь с инструкциями по установке, чтобы исправить ситуацию.
Другой ответ может быть таким:
createdb: ошибка: не удалось подключиться к серверу через сокет "/tmp/.s.PGSQL.5432": нет такого файла или каталога Сервер работает локально и принимает соединения через этот сокет?
Это означает, что сервер не был запущен, либо он не прослушивается там, где createdb
ожидает связаться с ним. Опять же, проверьте инструкции по установке или обратитесь к администратору.
Другой ответ может быть таким:
createdb: ошибка: не удалось подключиться к серверу через сокет "/tmp/.s.PGSQL.5432": FATAL: роль "joe" не существует
, где указано ваше имя для входа. Это произойдет, если администратор не создал для вас учетную запись пользователя PostgreSQL. (Учетные записи пользователей PostgreSQL отличаются от учетных записей пользователей операционной системы.) Если вы являетесь администратором, см. главу 22, чтобы получить помощь в создании учетных записей. Вам нужно будет стать пользователем операционной системы, под которой был установлен PostgreSQL (обычно postgres
), чтобы создать первую учетную запись пользователя. Также может быть, что вам было назначено имя пользователя PostgreSQL, отличное от имени пользователя вашей операционной системы; в этом случае вам нужно использовать 9Переключатель 0217 -U или установите переменную среды PGUSER
, чтобы указать ваше имя пользователя PostgreSQL.
Если у вас есть учетная запись пользователя, но у нее нет прав, необходимых для создания базы данных, вы увидите следующее:
createdb: ошибка: сбой при создании базы данных: ОШИБКА: отказано в разрешении на создание базы данных
Не каждый пользователь имеет право создавать новые базы данных. Если PostgreSQL отказывается создавать для вас базы данных, администратор сайта должен предоставить вам разрешение на создание баз данных. Обратитесь к администратору сайта, если это произойдет. Если вы установили PostgreSQL самостоятельно, вам следует войти в систему для целей этого руководства под учетной записью пользователя, под которой вы запустили сервер. [1]
Вы также можете создавать базы данных с другими именами. PostgreSQL позволяет создавать любое количество баз данных на заданном сайте. Имена баз данных должны начинаться с буквы алфавита и иметь длину не более 63 байтов. Удобным выбором является создание базы данных с тем же именем, что и ваше текущее имя пользователя. Многие инструменты предполагают, что это имя базы данных используется по умолчанию, поэтому это может сэкономить вам время при наборе текста. Чтобы создать эту базу данных, просто введите:
$ createdb
Если вы больше не хотите использовать свою базу данных, вы можете удалить ее. Например, если вы являетесь владельцем (создателем) базы данных mydb
, вы можете уничтожить ее с помощью следующей команды:
$ dropdb mydb
(Для этой команды имя базы данных по умолчанию не совпадает с именем учетной записи пользователя.