[Документация Yandex Cloud](../index.md) > [Yandex MPP Analytics for PostgreSQL](index.md) > Начало работы

# Как начать работать с Yandex MPP Analytics for PostgreSQL

Чтобы начать работу с сервисом:

1. [Создайте кластер](#create-cluster).
1. [Получите его идентификатор](#get-cluster-id).
1. [Подключитесь к кластеру](#connect).
1. [Создайте базу данных](#create-db).
1. [Выполните несколько запросов](#query-db).

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

* Графическая IDE [DBeaver](https://dbeaver.io/).
* Консольный клиент `psql`.

Некоторые другие инструменты для работы с Yandex MPP Analytics for PostgreSQL описаны в разделе [Предварительная настройка для подключения к кластеру Yandex MPP Analytics for PostgreSQL](operations/connect/index.md).


## Перед началом работы {#before-you-begin}

1. Перейдите в [консоль управления](https://kz.console.yandex.cloud), затем войдите в Yandex Cloud или зарегистрируйтесь, если вы еще не зарегистрированы.
1. Если у вас еще нет каталога, создайте его:

    1. В [консоли управления](https://kz.console.yandex.cloud) на панели сверху нажмите ![image](../_assets/console-icons/layout-side-content-left.svg) или ![image](../_assets/console-icons/chevron-down.svg) и выберите нужное [облако](../resource-manager/concepts/resources-hierarchy.md#cloud).
    1. Справа от названия облака нажмите ![image](../_assets/console-icons/ellipsis.svg).
    1. Выберите ![image](../_assets/console-icons/plus.svg) **Создать каталог**.
    
       ![create-folder1](../_assets/resource-manager/create-folder-1.png)
    
    1. Введите имя [каталога](../resource-manager/concepts/resources-hierarchy.md#folder). Требования к имени:
    
        * длина — от 3 до 63 символов;
        * может содержать строчные буквы латинского алфавита, цифры и дефисы;
        * первый символ — буква, последний — не дефис.
    
    1. (Опционально) Введите описание каталога.
    1. Выберите опцию **Создать сеть по умолчанию**. Будет создана [сеть](../vpc/concepts/network.md#network) с подсетями в каждой зоне доступности. Также в этой сети будет создана [группа безопасности по умолчанию](../vpc/concepts/security-groups.md#default-security-group), внутри которой весь сетевой трафик разрешен.
    1. Нажмите кнопку **Создать**.
    
       ![create-folder2](../_assets/resource-manager/create-folder-2.png)

1. [Назначьте](../iam/operations/roles/grant.md) вашему аккаунту в Yandex Cloud роли:

    * [managed-greenplum.editor](security/index.md#managed-greenplum-editor) или выше — чтобы создать кластер;
    * [vpc.user](../vpc/security/index.md#vpc-user) — чтобы работать с [сетью](../vpc/concepts/network.md#network) кластера;
    * [mdb.viewer](../iam/roles-reference.md#mdb-viewer) — чтобы просматривать кластеры управляемых баз данных (MDB) на дашборде в [консоли управления](https://kz.console.yandex.cloud).

    {% note info %}
    
    Если вы не можете управлять ролями, обратитесь к администратору вашего облака или организации.
    
    {% endnote %}


## Создайте кластер {#create-cluster}

Создайте кластер Yandex MPP Analytics for PostgreSQL с публичным доступом. К такому кластеру можно [подключиться](operations/connect/index.md) как с виртуальной машины Yandex Compute Cloud, так и через интернет.

Чтобы создать кластер:

1. В консоли управления выберите каталог, в котором нужно создать кластер БД.
1. Перейдите в сервис **Yandex MPP Analytics for&nbsp;PostgreSQL**.
1. Нажмите кнопку **Создать кластер**.


1. Укажите следующие параметры кластера:

    * **Базовые параметры** → **Имя кластера** — имя кластера. Оно должно быть уникальным в рамках каталога.

    * **Сетевые настройки**:

        * **Сеть** — укажите [сеть](../vpc/concepts/network.md), в которой нужно разместить [хосты кластера](concepts/index.md).
        * **Группы безопасности** — укажите [группы безопасности](../vpc/concepts/security-groups.md) для сетевого трафика кластера.

            [Настройте эти группы безопасности](operations/connect/index.md#configuring-security-groups) так, чтобы можно было подключаться к кластеру через интернет.

        * **Зона доступности** — укажите зону доступности для хостов кластера.

        * **Подсеть** — укажите подсеть для хостов кластера.

        * **Публичный доступ** — включите опцию.

    * **Пользователь**:

        * **Имя пользователя** — имя пользователя-администратора. Имя может содержать латинские буквы, цифры, дефис и подчеркивание, но не может начинаться с дефиса. Длина от 1 до 32 символов.

            {% note info %}
            
            Имена `admin`, `gpadmin`, [mdb_admin](concepts/cluster-users.md#mdb_admin), `mdb_replication`, `monitor`, `none`, `postgres`, `public`, `repl` зарезервированы для собственных нужд Yandex MPP Analytics for PostgreSQL. Создавать пользователей с этими именами нельзя.
            
            {% endnote %}

        * **Пароль** — пароль пользователя-администратора. Длина от 8 до 128 символов.

        Пользователь-администратор — это специальный пользователь, который необходим для управления кластером и не может быть удален. Подробнее читайте в разделе [Пользователи и роли в Yandex MPP Analytics for PostgreSQL](concepts/cluster-users.md).

    * **Master** и **Segment** — конфигурация [хостов-мастеров и хостов-сегментов](concepts/index.md) в кластере Yandex MPP Analytics for PostgreSQL.

        Измените настройки на этих вкладках, если конфигурация по умолчанию вам не подходит. Дополнительную информацию вы найдете в разделе [Расчет конфигурации кластера](concepts/calculate-specs.md).

1. Нажмите кнопку **Создать кластер**.


1. Дождитесь, когда кластер будет готов к работе: его статус на панели Yandex MPP Analytics for PostgreSQL сменится на **Running**, а состояние — на **Alive**. Это может занять некоторое время.

Подробнее о создании кластера читайте в разделе [Создание кластера Yandex MPP Analytics for PostgreSQL](operations/cluster-create.md).

## Получите идентификатор кластера {#get-cluster-id}

Получите идентификатор кластера, который потребуется при [подключении](#connect):

1. В [консоли управления](https://kz.console.yandex.cloud) перейдите на страницу каталога.
1. Перейдите в сервис **Yandex MPP Analytics for&nbsp;PostgreSQL**.
1. Нажмите на имя нужного кластера и выберите вкладку ![image](../_assets/console-icons/flag.svg) **Обзор**.
1. Скопируйте идентификатор кластера из блока **Общая информация**.

## Подключитесь к кластеру {#connect}

После [создания кластера](#create-cluster) подключитесь к нему:

{% list tabs group=mgp-quickstart %}

- DBeaver {#gui}

    1. [Установите DBeaver](https://dbeaver.com/docs/dbeaver/Installation/) на хост, с которого будет выполняться подключение.

        {% note info %}

        Работа с кластером проверялась в DBeaver Community 24.2.3.

        {% endnote %}

    1. Запустите DBeaver.
    1. Выберите в меню **База данных** пункт **Новое соединение**.
    1. Выберите из списка БД **Greenplum®**.
    1. Нажмите кнопку **Next**.
    1. Укажите основные параметры соединения на вкладке **Главное**:

        * В блоке **Server**:
            * **Connect by** — `Host`.
            * **Хост** — [особый FQDN первичного мастера](operations/connect/fqdn.md#fqdn-master): `c-<идентификатор_кластера>.rw.mdb.yandexcloud.kz`.

                Идентификатор кластера [был получен ранее](#get-cluster-id).

            * **База данных** — `postgres`.
            * **Порт** — `6432`.
            * **Показать все базы данных** — включите опцию.

        * В блоке **Аутентификация**:
            * **Аутентификация** — `Database Native`.
            * **Пользователь** — имя пользователя-администратора, указанное при [создании кластера](#create-cluster).
            * **Пароль** — пароль пользователя-администратора.

                Если нужно, выключите опцию **Сохранить пароль** — эта опция включена по умолчанию.

    1. Нажмите кнопку **Тест соединения**.

        Если DBeaver предложит скачать файлы драйвера, то нажмите кнопку **Скачать**. Эти файлы могут отсутствовать, если ранее вы никогда не использовали DBeaver для подключения к Yandex MPP Analytics for PostgreSQL.

        Введите пароль пользователя, если DBeaver его запросит, и нажмите кнопку **OK**.
        
        DBeaver подключится к базе данных `postgres` в кластере Yandex MPP Analytics for PostgreSQL.

        При успешном подключении будет выведена информация о сервере Yandex MPP Analytics for PostgreSQL и о драйвере, который использовался для подключения. Нажмите кнопку **OK**.

        {% note warning %}

        При подключении будет использоваться шифрованное подключение (с SSL), но без проверки подлинности хостов кластера. Это [поведение по умолчанию для всех клиентов](https://www.postgresql.org/docs/current/libpq-ssl.html#LIBPQ-SSL-SSLMODE-STATEMENTS), которые используют библиотеку `libpq`.

        В промышленной эксплуатации [подключайтесь к кластеру через SSL с проверкой подлинности хоста](operations/connect/clients.md#connection-ide).

        {% endnote %}

    1. (Опционально) На вкладке **Главное** нажмите кнопку **Описание соединения (название, тип, ...)** и укажите название и описание соединения.

        По умолчанию название соединения совпадает с указанным именем базы данных (`postgres`). Выберите другое название, чтобы избежать путаницы: с помощью этого соединения можно работать и с другими базами данных, а не только с `postgres`.

    1. Нажмите кнопку **Finish**.

        Созданное соединение появится на панели слева во вкладке **Базы данных**.

    1. Раскройте созданное соединение на панели слева во вкладке **Базы данных**.

        Введите пароль пользователя, если DBeaver его запросит, и нажмите кнопку **OK**.
        
        DBeaver подключится к базе данных `postgres` в кластере Yandex MPP Analytics for PostgreSQL.

    1. Выполните тестовый запрос:

        1. Раскройте папку **Базы данных**, затем раскройте контекстное меню базы данных `postgres` и выберите пункт **Редактор SQL** → **Open SQL console**.

            Откроется консоль, в которой можно выполнять SQL-запросы к базе `postgres`.

        1. Вставьте запрос в консоль:

            ```sql
            SELECT version();
            ```

        1. Выполните запрос, нажав кнопку **Выполнить SQL скрипт** у левого края консоли.
           
           Либо выберите в меню **Редактор SQL** пункт **Выполнить SQL скрипт**.

- psql {#cli}

    1. [Установите](https://www.postgresql.org/download/) клиент `psql` на хост, с которого будет выполняться подключение.

        Например, чтобы установить `psql` на [виртуальную машину Linux](../compute/operations/vm-create/create-linux-vm.md) в Yandex Cloud c Ubuntu 24.04:

        
        1. Подключитесь к виртуальной машине по [OS Login](../compute/operations/vm-connect/os-login.md) или [SSH](../compute/operations/vm-connect/ssh.md).


        1. Установите необходимые зависимости и клиент PostgreSQL:

            ```bash
            sudo apt update && sudo apt install postgresql-client --yes
            ```

    1. Подключитесь к базе данных `postgres` в кластере Yandex MPP Analytics for PostgreSQL. Используйте [особый FQDN первичного мастера](operations/connect/fqdn.md#fqdn-master):

        ```bash
        psql "host=c-<идентификатор_кластера>.rw.mdb.yandexcloud.kz \
          port=6432 \
          dbname=postgres \
          user=<имя_пользователя>"
        ```

        Идентификатор кластера [был получен ранее](#get-cluster-id).

        После выполнения команды введите пароль пользователя для завершения процедуры подключения.

        {% note warning %}

        При подключении будет использоваться шифрованное подключение (с SSL), но без проверки подлинности хостов кластера. Это [поведение по умолчанию для всех клиентов](https://www.postgresql.org/docs/current/libpq-ssl.html#LIBPQ-SSL-SSLMODE-STATEMENTS), которые используют библиотеку `libpq`.

        В промышленной эксплуатации [подключайтесь к кластеру через SSL с проверкой подлинности хоста](operations/connect/clients.md#bash).

        {% endnote %}

    1. Выполните тестовый запрос:

        ```sql
        SELECT version();
        ```

{% endlist %}

При успешном подключении к кластеру и выполнении тестового запроса будет выведена версия СУБД.

## Создайте базу данных {#create-db}

В [созданном ранее](#create-cluster) кластере Yandex MPP Analytics for PostgreSQL есть только одна база данных — служебная база данных `postgres`. Эта база не предназначена для хранения пользовательских данных: например, в такой базе нельзя создавать схемы данных (schemas).

После [подключения к кластеру](#connect) Yandex MPP Analytics for PostgreSQL создайте базу `sample_db` для хранения пользовательских данных:

{% list tabs group=mgp-quickstart %}

- DBeaver {#gui}

    1. Раскройте [созданное ранее соединение](#connect) на панели слева во вкладке **Базы данных**.

        Введите пароль пользователя, если DBeaver его запросит, и нажмите кнопку **OK**.
        
        DBeaver подключится к базе данных `postgres` в кластере Yandex MPP Analytics for PostgreSQL.

    1. Создайте базу данных:

        1. Раскройте папку **Базы данных**, затем раскройте контекстное меню базы данных `postgres` и выберите пункт **Редактор SQL** → **Open SQL console**.

            Откроется консоль, в которой можно выполнять SQL-запросы к базе `postgres`.

        1. Вставьте запрос в консоль:

            ```sql
            CREATE DATABASE sample_db;
            ```

        1. Выполните запрос, нажав кнопку **Выполнить SQL скрипт** у левого края консоли.
           
           Либо выберите в меню **Редактор SQL** пункт **Выполнить SQL скрипт**.

    1. Обновите список баз данных, чтобы в нем появилась созданная база.

        Для этого раскройте контекстное меню папки **Базы данных** и выберите пункт **Refresh**.

        {% note tip %}

        Если база `sample_db` не появилась в списке, то проверьте, что для соединения [была включена опция](#connect) **Показать все базы данных**.

        {% endnote %}

- psql {#cli}

    1. Выполните запрос:

        ```sql
        CREATE DATABASE sample_db;
        ```

    1. Выведите список баз данных в кластере Yandex MPP Analytics for PostgreSQL и убедитесь, что в нем присутствует база `sample_db`:

        ```sql
        \list
        ```

{% endlist %}

## Выполните несколько запросов к базе данных {#query-db}

Чтобы подтвердить, что база данных [была создана](#create-db) корректно, выполните несколько запросов к ней:

{% list tabs group=mgp-quickstart %}

- DBeaver {#gui}

    1. Раскройте [созданное ранее соединение](#connect) на панели слева во вкладке **Базы данных**.

        Введите пароль пользователя, если DBeaver его запросит, и нажмите кнопку **OK**.
        
        DBeaver подключится к базе данных `postgres` в кластере Yandex MPP Analytics for PostgreSQL.

    1. Раскройте папку **Базы данных**, затем раскройте контекстное меню базы данных `sample_db` и выберите пункт **Редактор SQL** → **Open SQL console**.

        Откроется консоль, в которой можно выполнять SQL-запросы к базе `sample_db`.

    1. Создайте таблицу и наполните ее данными:

        1. Вставьте запросы в консоль:

            ```sql
            CREATE TABLE sample_table (a int)
                DISTRIBUTED BY (a);
            
            INSERT INTO sample_table
                SELECT * FROM GENERATE_SERIES(1, 10000);
            ```

        1. Выполните запрос, нажав кнопку **Выполнить SQL скрипт** у левого края консоли.
           
           Либо выберите в меню **Редактор SQL** пункт **Выполнить SQL скрипт**.

        Таблица будет создана, а затем наполнена числами от 1 до 10000.

        Запросы `CREATE TABLE` и `INSERT INTO` не возвращают никаких результатов. DBeaver отобразит статистику по выполненным запросам, которая имеет вид:

        ```sql
        Queries         2
        Updated Rows    10000
        Execute time    ...
        Fetch time      ...
        Total time      ...
        Start time      ...
        Finish time     ...
        ```

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

        ```sql
        SELECT sum(a) FROM sample_table;
        ```
        
        Ожидаемый результат:
        
        ```sql
        sum     |
        --------+
        50005000|
        ```

    1. Получите информацию о том, как 10000 строк таблицы распределены по сегментам Yandex MPP Analytics for PostgreSQL. Для этого очистите консоль, вставьте запрос и выполните его:

        ```sql
        SELECT gp_segment_id, count(*)
            FROM sample_table
            GROUP BY gp_segment_id;
        ```
        
        Результат будет зависеть от того, сколько сегментов есть в кластере. Распределение строк по сегментам также может отличаться.
        
        Пример результата для кластера с двумя сегментами:
        
        ```sql
        gp_segment_id|count|
        -------------+-----+
                    0| 5013|
                    1| 4987|
        ```

    1. Завершите сеанс работы с соединением. Для этого раскройте контекстное меню соединения и выберите пункт **Отсоединиться**.

- psql {#cli}

    1. Убедитесь, что вы подключены к базе данных `sample_db`:

        ```sql
        SELECT current_database();
        ```

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

        ```sql
        \connect sample_db;
        ```

    1. Создайте таблицу и наполните ее данными:

        ```sql
        CREATE TABLE sample_table (a int)
            DISTRIBUTED BY (a);
        
        INSERT INTO sample_table
            SELECT * FROM GENERATE_SERIES(1, 10000);
        ```

        Таблица будет создана, а затем наполнена числами от 1 до 10000.

        Запросы `CREATE TABLE` и `INSERT INTO` не возвращают никаких результатов.

    1. Получите сумму всех чисел в таблице:

        ```sql
        SELECT sum(a) FROM sample_table;
        ```
        
        Ожидаемый результат:
        
        ```sql
        sum     |
        --------+
        50005000|
        ```

    1. Получите информацию о том, как 10000 строк таблицы распределены по сегментам Yandex MPP Analytics for PostgreSQL:

        ```sql
        SELECT gp_segment_id, count(*)
            FROM sample_table
            GROUP BY gp_segment_id;
        ```
        
        Результат будет зависеть от того, сколько сегментов есть в кластере. Распределение строк по сегментам также может отличаться.
        
        Пример результата для кластера с двумя сегментами:
        
        ```sql
        gp_segment_id|count|
        -------------+-----+
                    0| 5013|
                    1| 4987|
        ```

    1. Завершите сеанс работы с `psql`:

        ```sql
        \quit
        ```

{% endlist %}

## Что дальше {#whats-next}

* Изучите [концепции сервиса](concepts/index.md).
* Узнайте подробнее о [создании кластера](operations/cluster-create.md) и [подключении к кластеру](operations/connect/index.md).

_Greenplum® и Greenplum Database® являются зарегистрированными товарными знаками или товарными знаками Broadcom Inc в США и/или других странах._