Конференция Arenadata
Новое время — новый Greenplum
Мы приглашаем вас принять участие в конференции, посвященной будущему Open-Source Greenplum 19 сентября в 18:00:00 UTC +3. Встреча будет проходить в гибридном формате — и офлайн, и онлайн. Онлайн-трансляция будет доступна для всех желающих.
Внезапное закрытие Greenplum его владельцем — компанией Broadcom - стало неприятным сюрпризом для всех, кто использует или планирует начать использовать решения на базе этой технологии. Многие ожидают выхода стабильной версии Greenplum 7 и надеются на её дальнейшее активное развитие.
Arenadata не могла допустить, чтобы разрабатываемый годами Open-Source проект Greenplum прекратил своё существование, поэтому 19 сентября мы представим наш ответ на данное решение Broadcom, а участники сообщества получат исчерпывающие разъяснения на все вопросы о дальнейшей судьбе этой технологии.

На конференции вас ждёт обсуждение следующих тем:

  • План возрождения Greenplum;
  • Дорожная карта;
  • Экспертное обсуждение и консультации.
Осталось до события

Базы данных

Обзор

База данных — это контейнер самого верхнего уровня для организации хранения объектов SQL (объектов базы данных). Полная иерархия следующая: кластер → база данных → схема → таблица и другие объекты (функции, представления, операторы).

Логический уровень организации данных в кластере ADPG
Логический уровень организации данных в кластере ADPG
Логический уровень организации данных в кластере ADPG
Логический уровень организации данных в кластере ADPG

Кластер ADPG содержит несколько баз данных. В рамках одного соединения можно подключиться только к одной базе данных. Однако вы можете установить несколько подключений к одной или разным базам данных.

Базы данных физически разделены. По умолчанию ADPG размещает файлы базы данных по следующему пути: /pg_data1/adpg14. ADPG создает каталог adpg14 по пути, указанному в параметре Data directory (смотрите Конфигурационные параметры). Значение по умолчанию для этого параметра — /pg_data1.

После установки кластер ADPG содержит три базы данных, описанные в таблице ниже.

Предустановленные базы данных
Название Описание

postgres

База данных для начального подключения. Она создаётся копированием template1, и при необходимости её можно удалить и создать заново

template0

Шаблон базы данных. template0 не принимает подключения и не должен изменяться. Вы можете использовать этот шаблон в команде CREATE DATABASE, чтобы создать исходную базу данных без изменений, внесенных в template1

template1

Шаблон базы данных. Этот шаблон содержит те же данные, что и template0, но вы можете его изменить. По умолчанию он будет использоваться в качестве шаблона для каждой новой базы данных, создающейся с помощью команды CREATE DATABASE. Вы можете добавить в этот шаблон объекты, которые должны быть во всех новых базах данных (например, таблицы), или установить процедурные языки

Просмотр существующих баз данных

Можно использовать метакоманду psql \l или опцию командной строки -l, чтобы просмотреть существующие базы данных:

$ psql

\l
$ psql -l

Результат:

   Name    |  Owner   | Encoding |   Collate   |    Ctype    |   Access privileges
-----------+----------+----------+-------------+-------------+-----------------------
 postgres  | postgres | UTF8     | en_US.UTF-8 | en_US.UTF-8 |
 template0 | postgres | UTF8     | en_US.UTF-8 | en_US.UTF-8 | =c/postgres          +
           |          |          |             |             | postgres=CTc/postgres
 template1 | postgres | UTF8     | en_US.UTF-8 | en_US.UTF-8 | =c/postgres          +
           |          |          |             |             | postgres=CTc/postgres

Также можно выбрать данные из каталога pg_database:

SELECT oid, datname, datistemplate, datallowconn FROM pg_database;

Результат:

  oid  |  datname  | datistemplate | datallowconn
-------+-----------+---------------+--------------
 14486 | postgres  | f             | t
     1 | template1 | t             | t
 14485 | template0 | t             | f

В столбце datallowconn вы можете увидеть, что подключения к template0 не разрешены.

Следующая команда выводит базу данных, к которой вы подключились:

SELECT current_database();

Чтобы определить размер базы данных, используйте функции pg_size_pretty и pg_database_size:

SELECT pg_size_pretty(pg_database_size('postgres'));

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

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

Выполните команду CREATE DATABASE, чтобы создать базу данных. Следующая команда создает базу данных book_store:

CREATE DATABASE book_store;

Текущая роль автоматически становится владельцем новой базы данных. Также можно указать другого владельца. Код ниже делает role1 владельцем созданной базы данных book_store:

CREATE DATABASE book_store OWNER role1;

Вы также можете указать шаблон для новой базы данных. Следующий код создает базу данных book_store, копируя template0:

CREATE DATABASE book_store TEMPLATE template0;

Удаление базы данных

Только владелец базы данных или суперпользователь может удалить базу данных. Это действие удаляет все объекты, содержащиеся в базе данных. Удаление базы данных является необратимой операцией.

Используйте команду DROP DATABASE, чтобы удалить базу данных:

DROP DATABASE book_store;

Команду DROP DATABASE невозможно выполнить, пока есть хотя бы одно подключение к указанной базе данных. Однако можно подключиться к любой другой базе, включая template1. База данных template1 может быть единственным вариантом подключения, если нужно удалить последнюю пользовательскую базу данных кластера.

Нашли ошибку? Выделите текст и нажмите Ctrl+Enter чтобы сообщить о ней