Provisioning HeatWave Nodes

When you provision Oracle HeatWave in Oracle Database Service for Azure, you can choose to create the HeatWave nodes afterwards using HeatWave Autopilot to estimate the HeatWave Cluster size. You can also use this feature to resize a HeatWave Cluster.

HeatWave Autopilot feature can estimate a suitable number of HeatWave nodes based on the data in a database system. You can use this feature once the database system has been created and populated.

If you already have HeatWave nodes and have loaded data into them, all the tables that are currently loaded into the HeatWave Cluster remain loaded during and after the size change, unless you choose to remove them. You do not need to delete the old HeatWave nodes.

Follow these steps to provision HeatWave nodes for a HeatWave Cluster using HeatWave Autopilot:

  1. On the Oracle HeatWave blade, select the name of the database system from the list to see its details page.
  2. Select the HeatWave tab on the left menu bar.
    1. If you already created HeatWave nodes, their details are displayed here. Select the Edit link next to the node count to resize the HeatWave Cluster using an estimate.
    2. If you did not already create HeatWave nodes, select Create HeatWave Cluster.

    Figure 1-114 Creating nodes for a HeatWave Cluster


    Description of Figure 1-114 follows

  3. Enter a new number of HeatWave nodes - the minimum number is 1 and the maximum is 64. Or select Generate estimate to use HeatWave Autopilot to estimate a suitable number of HeatWave nodes. This feature only works when the database system has been populated with data.
  4. When you generate an estimate, a recommended node count is displayed along with a list of the schemas and tables that HeatWave Autopilot found in the database system. To refine the estimate, select all the schemas and tables that you want to analyze with Oracle HeatWave, and deselect any that you will not be analyzing. Then select Regenerate Estimate to create a new estimated node count.
  5. If you deselected any schemas and tables or selected any new ones, copy the commands displayed for Oracle HeatWave's Auto Parallel Load feature heatwave_load. After resizing the HeatWave Cluster, run this command from MySQL Shell or MySQL Client to reload the HeatWave Cluster with the correct selection of tables.
  6. Select Discard if you do not want to go ahead with the HeatWave Cluster changes.
  7. If you are satisfied with the estimate and want to go ahead, select Apply to set the recommended node count from the estimate as the new node count for the HeatWave Cluster.
  8. Select OK to create a HeatWave Cluster with the new node count. All the tables that are currently loaded into the HeatWave Cluster remain loaded during and after the size change.
  9. If you are creating a new HeatWave Cluster or loading additional tables and schemas into the HeatWave Cluster after the size change, use the heatwave_load command shown under On completion when the HeatWave Cluster is ready.
    1. On an Azure VM on the same Azure VNet as the database system, start MySQL Shell and select SQL mode by typing \sql.
    2. Run the following command to start a global session by connecting to the endpoint of the database system:
      \connect <UserName>@<DBSystemEndpointIPAddress>
      • \connect: The MySQL Shell command to establish a new connection.
      • <UserName>: The user name for the administrator account that you set up for the HeatWave Cluster.
      • <DBSystemEndpointIPAddress>: The IP address of the endpoint of the database system. You can find this on the Connect tab on the deployment's details page.
      Enter the password for the administrator account when prompted.
    3. Use the command supplied by HeatWave Autopilot to make Auto Parallel Load reload the data into the HeatWave Cluster, adding or omitting the relevant tables.
      For example, if you are working with the sample airportdb database and are leaving the weatherdata table out of the HeatWave nodes, the command would look like this:
      CALL sys.heatwave_load(JSON_ARRAY('airportdb'), JSON_OBJECT('exclude_list', JSON_ARRAY('weatherdata')));