:doc:`finspace <../../finspace>` / Client / update_kx_cluster_databases

***************************
update_kx_cluster_databases
***************************



.. py:method:: finspace.Client.update_kx_cluster_databases(**kwargs)

  

  Updates the databases mounted on a kdb cluster, which includes the ``changesetId`` and all the dbPaths to be cached. This API does not allow you to change a database name or add a database if you created a cluster without one.

   

  Using this API you can point a cluster to a different changeset and modify a list of partitions being cached.

  

  See also: `AWS API Documentation <https://docs.aws.amazon.com/goto/WebAPI/finspace-2021-03-12/UpdateKxClusterDatabases>`_  


  **Request Syntax**
  ::

    response = client.update_kx_cluster_databases(
        environmentId='string',
        clusterName='string',
        clientToken='string',
        databases=[
            {
                'databaseName': 'string',
                'cacheConfigurations': [
                    {
                        'cacheType': 'string',
                        'dbPaths': [
                            'string',
                        ],
                        'dataviewName': 'string'
                    },
                ],
                'changesetId': 'string',
                'dataviewName': 'string',
                'dataviewConfiguration': {
                    'dataviewName': 'string',
                    'dataviewVersionId': 'string',
                    'changesetId': 'string',
                    'segmentConfigurations': [
                        {
                            'dbPaths': [
                                'string',
                            ],
                            'volumeName': 'string',
                            'onDemand': True|False
                        },
                    ]
                }
            },
        ],
        deploymentConfiguration={
            'deploymentStrategy': 'NO_RESTART'|'ROLLING'
        }
    )
    
  :type environmentId: string
  :param environmentId: **[REQUIRED]** 

    The unique identifier of a kdb environment.

    

  
  :type clusterName: string
  :param clusterName: **[REQUIRED]** 

    A unique name for the cluster that you want to modify.

    

  
  :type clientToken: string
  :param clientToken: 

    A token that ensures idempotency. This token expires in 10 minutes.

    This field is autopopulated if not provided.

  
  :type databases: list
  :param databases: **[REQUIRED]** 

    The structure of databases mounted on the cluster.

    

  
    - *(dict) --* 

      The configuration of data that is available for querying from this database.

      

    
      - **databaseName** *(string) --* **[REQUIRED]** 

        The name of the kdb database. When this parameter is specified in the structure, S3 with the whole database is included by default.

        

      
      - **cacheConfigurations** *(list) --* 

        Configuration details for the disk cache used to increase performance reading from a kdb database mounted to the cluster.

        

      
        - *(dict) --* 

          The structure of database cache configuration that is used for mapping database paths to cache types in clusters.

          

        
          - **cacheType** *(string) --* **[REQUIRED]** 

            The type of disk cache. This parameter is used to map the database path to cache storage. The valid values are:

             

            
            * CACHE_1000 – This type provides at least 1000 MB/s disk access throughput.
            

            

          
          - **dbPaths** *(list) --* **[REQUIRED]** 

            Specifies the portions of database that will be loaded into the cache for access.

            

          
            - *(string) --* 

            
        
          - **dataviewName** *(string) --* 

            The name of the dataview to be used for caching historical data on disk.

            

          
        
    
      - **changesetId** *(string) --* 

        A unique identifier of the changeset that is associated with the cluster.

        

      
      - **dataviewName** *(string) --* 

        The name of the dataview to be used for caching historical data on disk.

        

      
      - **dataviewConfiguration** *(dict) --* 

        The configuration of the dataview to be used with specified cluster.

        

      
        - **dataviewName** *(string) --* 

          The unique identifier of the dataview.

          

        
        - **dataviewVersionId** *(string) --* 

          The version of the dataview corresponding to a given changeset.

          

        
        - **changesetId** *(string) --* 

          A unique identifier for the changeset.

          

        
        - **segmentConfigurations** *(list) --* 

          The db path and volume configuration for the segmented database.

          

        
          - *(dict) --* 

            The configuration that contains the database path of the data that you want to place on each selected volume. Each segment must have a unique database path for each volume. If you do not explicitly specify any database path for a volume, they are accessible from the cluster through the default S3/object store segment.

            

          
            - **dbPaths** *(list) --* **[REQUIRED]** 

              The database path of the data that you want to place on each selected volume for the segment. Each segment must have a unique database path for each volume.

              

            
              - *(string) --* 

              
          
            - **volumeName** *(string) --* **[REQUIRED]** 

              The name of the volume where you want to add data.

              

            
            - **onDemand** *(boolean) --* 

              Enables on-demand caching on the selected database path when a particular file or a column of the database is accessed. When on demand caching is **True**, dataviews perform minimal loading of files on the filesystem as needed. When it is set to **False**, everything is cached. The default value is **False**.

              

            
          
      
      
    

  :type deploymentConfiguration: dict
  :param deploymentConfiguration: 

    The configuration that allows you to choose how you want to update the databases on a cluster.

    

  
    - **deploymentStrategy** *(string) --* **[REQUIRED]** 

      The type of deployment that you want on a cluster.

       

      
      * ROLLING – This options updates the cluster by stopping the exiting q process and starting a new q process with updated configuration.
       
      * NO_RESTART – This option updates the cluster without stopping the running q process. It is only available for ``HDB`` type cluster. This option is quicker as it reduces the turn around time to update configuration on a cluster. With this deployment mode, you cannot update the ``initializationScript`` and ``commandLineArguments`` parameters.
      

      

    
  
  
  :rtype: dict
  :returns: 
    
    **Response Syntax**

    
    ::

      {}
      
    **Response Structure**

    

    - *(dict) --* 
  
  **Exceptions**
  
  *   :py:class:`finspace.Client.exceptions.InternalServerException`

  
  *   :py:class:`finspace.Client.exceptions.ThrottlingException`

  
  *   :py:class:`finspace.Client.exceptions.AccessDeniedException`

  
  *   :py:class:`finspace.Client.exceptions.LimitExceededException`

  
  *   :py:class:`finspace.Client.exceptions.ValidationException`

  
  *   :py:class:`finspace.Client.exceptions.ConflictException`

  
  *   :py:class:`finspace.Client.exceptions.ResourceNotFoundException`

  