Service Type Selections with the SkySQL DBaaS API

Overview

This reference page details how to select service types with the SkySQL DBaaS API for SkySQL.

SkySQL offers databases for Transactions (OLTP and general purpose) and Analytics (OLAP, ad hoc queries and large data) workloads.

Available Service Types

Service Type

Description

analytical

Database services for analytical workloads (OLAP, ad hoc queries and large data)

transactional

Database services for transactional workloads (OLTP and general purpose)

REST Client

A REST client can use the SkySQL DBaaS API to query service type selections and choose a service type for a new service.

Query Options with REST Client

A REST client can query the SkySQL DBaaS API for the service type selections.

To see the available service types, use curl to call the /provisioning/v1/service-types API endpoint:

$ curl -sS --location \
   --header "Authorization: Bearer ${SKYSQL_API_KEY}" \
   'https://api.mariadb.com/provisioning/v1/service-types' \
   | jq .
[
  {
    "id": "605de6a4-f247-4bb8-9ca7-20b01895a08c",
    "name": "transactional",
    "display_name": "Transactions processing",
    "description": "Deploy a cloud database for transaction processing with persistent storage, replication, read load balancing and read/write splitting all configured out of the box and ready to go.",
    "short_description": "MariaDB Platform for Transactions",
    "order": 100
  },
  {
    "id": "4cf4419d-968a-4b10-8529-b4c5a90b9636",
    "name": "analytical",
    "display_name": "Interactive analytics",
    "description": "<p>Deploy a cloud data warehouse for ad hoc, interactive analytics on billions of rows with data stored in a columnar format on low-cost object storage and massively parallel processing architecture.</p>",
    "short_description": "MariaDB Platform for Analytics",
    "order": 200
  }
]

For the service type that you would like to select, extract the name attribute from the output and provide that value to the /provisioning/v1/services API endpoint as the service_type attribute.

Select Option with REST Client

A service type is selected during service launch. When using a REST client, select a service type by calling the /provisioning/v1/services API endpoint with the service_type attribute set.

For example, prepare a request body containing the desired service options in a file called request-service.json:

$ cat > request-service.json <<EOF
{
  "service_type": "transactional",
  "topology": "es-single",
  "provider": "gcp",
  "region": "us-central1",
  "architecture": "amd64",
  "size": "sky-2x8",
  "storage": 100,
  "nodes": 1,
  "version": "10.6.11-6-1",
  "name": "skysql-nr-quickstart",
  "ssl_enabled": true
}
EOF

Then use curl to call the /provisioning/v1/services API endpoint to create (launch) a new database service and save the response to the response-service.json file:

$ curl -sS --location --request POST \
   --header "Authorization: Bearer ${SKYSQL_API_KEY}" \
   --header "Accept: application/json" \
   --header "Content-type: application/json" \
   --data '@request-service.json' \
   https://api.mariadb.com/provisioning/v1/services \
   | tee response-service.json | jq .

Upon success, the command will return JSON with details about the new service.

Terraform

Terraform can use the SkySQL Terraform provider to choose a service type for a new service.

When using Terraform, select a service type using the service_type attribute for the skysql_service resource:

# Create a service
resource "skysql_service" "default" {
  service_type        = "transactional"
  topology            = "es-single"
  cloud_provider      = "gcp"
  region              = "us-central1"
  architecture        = "amd64"
  size                = "sky-2x8"
  storage             = 100
  nodes               = 1
  version             = "10.6.11-6-1"
  name                = "skysql-nr-quickstart"
  ssl_enabled         = true
  deletion_protection = true
  wait_for_creation   = true
  wait_for_deletion   = true
  wait_for_update     = true
  is_active           = true
}