Yandex Cloud
Search
Contact UsGet started
  • Pricing
  • Customer Stories
  • Documentation
  • Blog
  • All Services
  • System Status
    • Featured
    • Infrastructure & Network
    • Data Platform
    • Containers
    • Developer tools
    • Serverless
    • Security
    • Monitoring & Resources
    • AI for business
    • Business tools
  • All Solutions
    • By industry
    • By use case
    • Economics and Pricing
    • Security
    • Technical Support
    • Start testing with double trial credits
    • Cloud credits to scale your IT product
    • Gateway to Russia
    • Cloud for Startups
    • Center for Technologies and Society
    • Yandex Cloud Partner program
  • Pricing
  • Customer Stories
  • Documentation
  • Blog
© 2025 Direct Cursus Technology L.L.C.
Yandex MPP Analytics for PostgreSQL
  • Getting started
    • All guides
      • Information about existing clusters
      • Creating a cluster
      • Expanding a cluster
      • Editing the cluster configuration
      • Updating cluster settings
      • Stopping and starting a cluster
      • Managing backups
      • Deleting a cluster
    • Connecting to an external file server (gpfdist)
    • Auxiliary utilities
  • Access management
  • Pricing policy
  • Terraform reference
  • Monitoring metrics
  • Audit Trails events
  • Public materials
  • Release notes

In this article:

  • Changing the host class
  • Changing the disk type and increasing the storage size
  • Expanding a cluster
  • Changing the cluster's availability zone
  1. Step-by-step guides
  2. Clusters
  3. Editing the cluster configuration

Updating a Greenplum® cluster's configuration

Written by
Yandex Cloud
Updated at November 26, 2025
  • Changing the host class
  • Changing the disk type and increasing the storage size
  • Expanding a cluster
  • Changing the cluster's availability zone

After creating a cluster, you can:

  • Change the host class.
  • Change the disk type and increase the storage size.
  • Expand the cluster by adding segment hosts or increasing the number of segments per hosts.
  • Change the cluster's availability zone.

Changing the host classChanging the host class

You can change the host class for both master and segment hosts. Switching the host class will change the cluster's primary master host.

Warning

When changing the host class:

  • Cluster hosts will not be available.
  • User sessions will be terminated.
  • Using a special FQDN does not guarantee a stable database connection.

When changing the class of segment hosts, make sure the new amount of memory in segment hosts is sufficient to maintain the number of connections specified in the Max connections setting.

We recommend changing the host class only when your cluster has no active workload.

Make sure your cloud has enough quotas to change the host class. Open the cloud's Quotas page and check the Number of vCPUs and Amount of virtual memory lines of the Managed Databases section to make sure there is available quota for vCPU and virtual memory, respectively.

Management console
CLI
Terraform
REST API
gRPC API
  1. Navigate to the folder dashboard and select Yandex MPP Analytics for PostgreSQL.
  2. Select the cluster and click Edit in the top panel.
  3. Under Host class, select the relevant class for Greenplum® master hosts or segment hosts.
  4. Click Save changes.

If you do not have the Yandex Cloud CLI installed yet, install and initialize it.

By default, the CLI uses the folder specified when creating the profile. To change the default folder, use the yc config set folder-id <folder_ID> command. You can also set a different folder for any specific command using the --folder-name or --folder-id parameter.

To change the host class for a cluster:

  1. View the description of the CLI command for updating a cluster:

    yc managed-greenplum cluster update --help
    
  2. Request a list of available classes (the ZONE IDS column lists the availability zones where you can select the appropriate class):

    • For master hosts:

      yc managed-greenplum resource-preset list master
      
    • For segment hosts:

      yc managed-greenplum resource-preset list segment
      
    +-------------+--------------------------------+--------------------------------+-------+----------+--------------------+---------------------+
    |     ID      |            ZONE IDS            |           DISK TYPES           | CORES |  MEMORY  | HOST COUNT DIVIDER | MAX SEGMENT IN HOST |
    +-------------+--------------------------------+--------------------------------+-------+----------+--------------------+---------------------+
    | i2.2xlarge  | ru-central1-a, ru-central1-b   | local-ssd,                     |    16 | 128.0 GB |                  1 |                   0 |
    |             |                                | network-ssd-nonreplicated      |       |          |                    |                     |
    | ...                                                                                                                                         |
    +-------------+--------------------------------+--------------------------------+-------+----------+--------------------+---------------------+
    
  3. Specify the relevant classes in the cluster update command:

    yc managed-greenplum cluster update <cluster_name_or_ID> \
        --master-config resource-id=<master_host_class_ID> \
        --segment-config resource-id=<segment_host_class_ID>
    

    Yandex MPP Analytics for PostgreSQL will run the update host class command for the cluster.

  1. Open the current Terraform configuration file that defines your infrastructure.

    For more information about creating this file, see Creating clusters.

    For a complete list of configuration fields you can edit for a Yandex MPP Analytics for PostgreSQL cluster, see the Terraform provider guide.

  2. In the Yandex MPP Analytics for PostgreSQL cluster description, edit the value of the resource_preset_id attribute under master_subcluster.resources or segment_subcluster.resources:

    resource "yandex_mdb_greenplum_cluster" "<cluster_name>" {
      ...
      master_subcluster {
        resources {
          resource_preset_id = "<host_class>"
          ...
        }
      }
      segment_subcluster {
        resources {
          resource_preset_id = "<host_class>"
          ...
        }
      }
    }
    
  3. Make sure the settings are correct.

    1. In the command line, navigate to the directory that contains the current Terraform configuration files defining the infrastructure.

    2. Run this command:

      terraform validate
      

      Terraform will show any errors found in your configuration files.

  4. Confirm updating the resources.

    1. Run this command to view the planned changes:

      terraform plan
      

      If you described the configuration correctly, the terminal will display a list of the resources to update and their parameters. This is a verification step that does not apply changes to your resources.

    2. If everything looks correct, apply the changes:

      1. Run this command:

        terraform apply
        
      2. Confirm updating the resources.

      3. Wait for the operation to complete.

    Warning

    The Terraform provider limits the amount of time for all Yandex MPP Analytics for PostgreSQL cluster operations to complete to 120 minutes.

    Operations exceeding the set timeout are interrupted.

    How do I change these limits?

    Add the timeouts block to the cluster description, for example:

    resource "yandex_mdb_greenplum_cluster" "<cluster name>" {
      ...
      timeouts {
        create = "1h30m" # 1 hour 30 minutes
        update = "2h"    # 2 hours
        delete = "30m"   # 30 minutes
      }
    }
    
  1. Get an IAM token for API authentication and save it as an environment variable:

    export IAM_TOKEN="<IAM_token>"
    
  2. Call the Cluster.Update method, e.g., via the following cURL request:

    Warning

    The API method will assign default values to all the parameters of the object you are modifying unless you explicitly provide them in your request. To avoid this, list the settings you want to change in the updateMask parameter as a single comma-separated string.

    curl \
        --request PATCH \
        --header "Authorization: Bearer $IAM_TOKEN" \
        --header "Content-Type: application/json" \
        --url 'https://mdb.api.cloud.yandex.net/managed-greenplum/v1/clusters/<cluster_ID>' \
        --data '{
                  "updateMask": "masterConfig.resources.resourcePresetId,segmentConfig.resources.resourcePresetId",
                  "masterConfig": {
                    "resources": {
                      "resourcePresetId": "<host_class>"
                    }
                  },
                  "segmentConfig": {
                    "resources": {
                      "resourcePresetId": "<host_class>"
                    }
                  }
                }'
    

    Where:

    • updateMask: List of settings to update as a single string, separated by commas.

    • masterConfig.resources.resourcePresetId and segmentConfig.resources.resourcePresetId: New host class for master and segment hosts.

    You can request the cluster ID with the list of clusters in the folder.

  3. Check the server response to make sure your request was successful.

  1. Get an IAM token for API authentication and save it as an environment variable:

    export IAM_TOKEN="<IAM_token>"
    
  2. Clone the cloudapi repository:

    cd ~/ && git clone --depth=1 https://github.com/yandex-cloud/cloudapi
    

    Below, we assume the repository contents are stored in the ~/cloudapi/ directory.

  3. Use the ClusterService.Update call and send the following request, e.g., via gRPCurl:

    Warning

    The API method will assign default values to all the parameters of the object you are modifying unless you explicitly provide them in your request. To avoid this, list the settings you want to change in the update_mask parameter as an array of paths[] strings.

    Format for listing settings
    "update_mask": {
        "paths": [
            "<setting_1>",
            "<setting_2>",
            ...
            "<setting_N>"
        ]
    }
    
    grpcurl \
        -format json \
        -import-path ~/cloudapi/ \
        -import-path ~/cloudapi/third_party/googleapis/ \
        -proto ~/cloudapi/yandex/cloud/mdb/greenplum/v1/cluster_service.proto \
        -rpc-header "Authorization: Bearer $IAM_TOKEN" \
        -d '{
              "cluster_id": "<cluster_ID>",
              "update_mask": {
                "paths": [ 
                  "master_config.resources.resource_preset_id",
                  "segment_config.resources.resource_preset_id"
                ]
              },
              "master_config": {
                "resources": {
                  "resource_preset_id": "<host_class>"
                }
              },
              "segment_config": {
                "resources": {
                  "resource_preset_id": "<host_class>"
                }
              }
            }' \
        mdb.api.cloud.yandex.net:443 \
        yandex.cloud.mdb.greenplum.v1.ClusterService.Update
    

    Where:

    • update_mask: List of settings to update as an array of paths[] strings.

    • master_config.resources.resource_preset_id and segment_config.resources.resource_preset_id: New host class for master and segment hosts.

    You can request the cluster ID with the list of clusters in the folder.

  4. Check the server response to make sure your request was successful.

Changing the disk type and increasing the storage sizeChanging the disk type and increasing the storage size

Make sure the cloud has enough quota to increase the storage size. Open the cloud's Quotas page and check the HDD storage capacity and SSD storage capacity lines under Managed Databases to make sure there is available quota for storage space.

Warning

When changing disk type and increasing storage size:

  • Cluster hosts will not be available.
  • User sessions will be terminated.
  • Using a special FQDN does not guarantee a stable database connection.
Management console
CLI
Terraform
REST API
gRPC API
  1. In the management console, select the folder with the cluster you need.

  2. Select Yandex MPP Analytics for PostgreSQL.

  3. Select the cluster in question.

  4. At the top of the page, click Edit.

  5. Under Storage:

    • Select the disk type.
    • Specify the required disk size.
  6. Click Save.

If you do not have the Yandex Cloud CLI installed yet, install and initialize it.

By default, the CLI uses the folder specified when creating the profile. To change the default folder, use the yc config set folder-id <folder_ID> command. You can also set a different folder for any specific command using the --folder-name or --folder-id parameter.

To increase your cluster storage size:

  1. View the description of the CLI command for updating a cluster:

    yc managed-greenplum cluster update --help
    
  2. Specify the required storage size for master or segment hosts in the cluster update command (at least as large as disk_size in the cluster properties):

    yc managed-mysql cluster update <cluster_name_or_ID> \
       --master-config disk-size <storage_size_in_GB> \
       --segment-config disk-size <storage_size_in_GB>
    
  1. Open the current Terraform configuration file that defines your infrastructure.

    For more information about creating this file, see Creating clusters.

    For a complete list of configuration fields you can edit for a Yandex MPP Analytics for PostgreSQL cluster, see the Terraform provider guide.

  2. In the Yandex MPP Analytics for PostgreSQL cluster description, edit the values of the disk_type_id and disk_size attributes under master_subcluster.resources or segment_subcluster.resources:

    resource "yandex_mdb_greenplum_cluster" "<cluster_name>" {
      ...
      master_subcluster {
        resources {
          disk_type_id = "<disk_type>"
          disk_size    = <storage_size_in_GB>
          ...
        }
      }
      segment_subcluster {
        resources {
          disk_type_id = "<disk_type>"
          disk_size    = <storage_size_in_GB>
          ...
        }
      }
    }
    
  3. Make sure the settings are correct.

    1. In the command line, navigate to the directory that contains the current Terraform configuration files defining the infrastructure.

    2. Run this command:

      terraform validate
      

      Terraform will show any errors found in your configuration files.

  4. Confirm updating the resources.

    1. Run this command to view the planned changes:

      terraform plan
      

      If you described the configuration correctly, the terminal will display a list of the resources to update and their parameters. This is a verification step that does not apply changes to your resources.

    2. If everything looks correct, apply the changes:

      1. Run this command:

        terraform apply
        
      2. Confirm updating the resources.

      3. Wait for the operation to complete.

    Warning

    The Terraform provider limits the amount of time for all Yandex MPP Analytics for PostgreSQL cluster operations to complete to 120 minutes.

    Operations exceeding the set timeout are interrupted.

    How do I change these limits?

    Add the timeouts block to the cluster description, for example:

    resource "yandex_mdb_greenplum_cluster" "<cluster name>" {
      ...
      timeouts {
        create = "1h30m" # 1 hour 30 minutes
        update = "2h"    # 2 hours
        delete = "30m"   # 30 minutes
      }
    }
    
  1. Get an IAM token for API authentication and save it as an environment variable:

    export IAM_TOKEN="<IAM_token>"
    
  2. Call the Cluster.Update method, e.g., via the following cURL request:

    Warning

    The API method will assign default values to all the parameters of the object you are modifying unless you explicitly provide them in your request. To avoid this, list the settings you want to change in the updateMask parameter as a single comma-separated string.

    curl \
        --request PATCH \
        --header "Authorization: Bearer $IAM_TOKEN" \
        --header "Content-Type: application/json" \
        --url 'https://mdb.api.cloud.yandex.net/managed-greenplum/v1/clusters/<cluster_ID>' \
        --data '{
                  "updateMask": "masterConfig.resources.diskTypeId,masterConfig.resources.diskSize,segmentConfig.resources.diskTypeId,segmentConfig.resources.diskSize",
                  "masterConfig": {
                    "resources": {
                      "diskTypeId": "<disk_type>",
                      "diskSize": "<storage_size_in_bytes>"
                    }
                  },
                  "segmentConfig": {
                    "resources": {
                      "diskTypeId": "<disk_type>",
                      "diskSize": "<storage_size_in_bytes>"
                    }
                  }
                }'
    

    Where:

    • updateMask: List of settings to update as a single string, separated by commas.

    • masterConfig.resources, segmentConfig.resources: Storage properties for master hosts and segment hosts:

      • diskTypeId: Disk type.
      • diskSize: New storage size, in bytes.

    You can request the cluster ID with the list of clusters in the folder.

  3. Check the server response to make sure your request was successful.

  1. Get an IAM token for API authentication and save it as an environment variable:

    export IAM_TOKEN="<IAM_token>"
    
  2. Clone the cloudapi repository:

    cd ~/ && git clone --depth=1 https://github.com/yandex-cloud/cloudapi
    

    Below, we assume the repository contents are stored in the ~/cloudapi/ directory.

  3. Use the ClusterService.Update call and send the following request, e.g., via gRPCurl:

    Warning

    The API method will assign default values to all the parameters of the object you are modifying unless you explicitly provide them in your request. To avoid this, list the settings you want to change in the update_mask parameter as an array of paths[] strings.

    Format for listing settings
    "update_mask": {
        "paths": [
            "<setting_1>",
            "<setting_2>",
            ...
            "<setting_N>"
        ]
    }
    
    grpcurl \
        -format json \
        -import-path ~/cloudapi/ \
        -import-path ~/cloudapi/third_party/googleapis/ \
        -proto ~/cloudapi/yandex/cloud/mdb/greenplum/v1/cluster_service.proto \
        -rpc-header "Authorization: Bearer $IAM_TOKEN" \
        -d '{
              "cluster_id": "<cluster_ID>",
              "update_mask": {
                "paths": [ 
                  "master_config.resources.disk_type_id",
                  "master_config.resources.disk_size",
                  "segment_config.resources.disk_type_id",
                  "segment_config.resources.disk_size"
                ]
              },
              "master_config": {
                "resources": {
                  "disk_type_id": "<disk_type>",
                  "disk_size": "<storage_size_in_bytes>"
                }
              },
              "segment_config": {
                "resources": {
                  "disk_type_id": "<disk_type>",
                  "disk_size": "<storage_size_in_bytes>"
                }
              }
            }' \
        mdb.api.cloud.yandex.net:443 \
        yandex.cloud.mdb.greenplum.v1.ClusterService.Update
    

    Where:

    • update_mask: List of settings to update as an array of paths[] strings.

    • master_config.resources, segment_config.resources: Storage properties for master hosts and segment hosts:

      • disk_type_id: Disk type.
      • disk_size: New storage size, in bytes.

    You can request the cluster ID with the list of clusters in the folder.

  4. View the server response to make sure your request was successful.

Expanding a clusterExpanding a cluster

You can add segment hosts to a Yandex MPP Analytics for PostgreSQL cluster by expanding it. You need to add at least two hosts. You can also increase the number of segments per host when expanding a cluster.

Changing the cluster's availability zoneChanging the cluster's availability zone

All hosts of a Yandex MPP Analytics for PostgreSQL cluster are located in the same Yandex Cloud availability zone. You cannot migrate a cluster to a different availability zone. If you need to change the availability zone, restore the cluster from a backup. When restoring from a backup, specify a new availability zone in the new cluster's settings.

For clusters with hosts residing in the ru-central1-d availability zone, local SSD storage is not available if using Intel Cascade Lake.

Greenplum® and Greenplum Database® are registered trademarks or trademarks of Broadcom Inc. in the United States and/or other countries.

Was the article helpful?

Previous
Expanding a cluster
Next
Updating cluster settings
© 2025 Direct Cursus Technology L.L.C.