---
type: Concept
title: Requirements
description: This page outlines the requirements for using each ScalarDB component, including the programming languages and their versions, supported databases and their versions, and the necessary configurations.
resource: https://scalardb.scalar-labs.com/docs/3.16/requirements/
tags:
- scalardb
- v3.16
- phase:design
- section:about-scalardb
- edition:community
- edition:enterprise-standard
- edition:enterprise-premium
status: stable
product: scalardb
product_title: ScalarDB
version: '3.16'
patch_version: 3.16.6
doc_id: requirements
lifecycle_phase: design
breadcrumb:
- About ScalarDB
editions:
- Community
- Enterprise Standard
- Enterprise Premium
generated:
  by: process:okf-build/1.0.0
  at: '2026-08-04T23:50:54Z'
sources:
- id: docs-scalardb
  resource: https://github.com/scalar-labs/docs-scalardb/blob/6126dfe2f56389351d88b134752618641f9771dd/versioned_docs/version-3.16/requirements.mdx
  title: ScalarDB documentation source (MDX)
  author: process:scalar-labs/docs-scalardb
  last_modified: '2026-08-04T15:05:02Z'
---

# Requirements

This page outlines the requirements for using each ScalarDB component, including the programming languages and their versions, supported databases and their versions, and the necessary configurations.

## Core

ScalarDB Core is a key component of ScalarDB, providing a database manager with an abstraction layer that abstracts underlying databases. For more information, see [ScalarDB Design](./design.md).

### Languages and runtimes

ScalarDB Core provides a Java client SDK for interacting with ScalarDB. It also includes tools, such as Schema Loader and Data Loader, which run on the Java Virtual Machine (JVM).

#### Java

The ScalarDB Core library is available on the Maven Central Repository. You can add the library as a build dependency to your application by using Gradle or Maven. For more details, see [Add ScalarDB to Your Build](./add-scalardb-to-your-build.md).

For building applications that integrate with the library, the following Java Development Kits (JDKs) are verified and supported.

- **[Oracle JDK](https://www.oracle.com/java/):** 8, 11, 17, or 21 (LTS versions)
- **OpenJDK distribution ([Eclipse Temurin](https://adoptium.net/temurin/), [Amazon Corretto](https://aws.amazon.com/corretto/), or [Microsoft Build of OpenJDK](https://learn.microsoft.com/en-us/java/openjdk/)):** 8, 11, 17, or 21 (LTS versions)

Java Runtime Environments (JREs) of these JDKs are also supported for running the tools.

### Databases

ScalarDB runs on top of the following databases and their versions.

#### Relational databases

**IBM Db2**

|      Version      | Db2 12.1 | Db2 11.5 |
| :---------------- | :------- | :------- |
| **ScalarDB 3.16** | ✅        | ✅        |
| **ScalarDB 3.15** | ❌        | ❌        |
| **ScalarDB 3.14** | ❌        | ❌        |

:::note

Only Linux, UNIX, and Windows versions of Db2 are supported. The z/OS version is not currently supported.

:::

**MariaDB**

|      Version      | MariaDB 11.4 | MariaDB 10.11 |
| :---------------- | :----------- | :------------ |
| **ScalarDB 3.16** | ✅            | ✅             |
| **ScalarDB 3.15** | ✅            | ✅             |
| **ScalarDB 3.14** | ✅            | ✅             |

**MySQL**

|      Version      | MySQL 8.4 | MySQL 8.0 |
| :---------------- | :-------- | :-------- |
| **ScalarDB 3.16** | ✅         | ✅         |
| **ScalarDB 3.15** | ✅         | ✅         |
| **ScalarDB 3.14** | ✅         | ✅         |

**Oracle Database**

|      Version      | Oracle Database 23ai | Oracle Database 21c | Oracle Database 19c |
| :---------------- | :------------------- | :------------------ | :------------------ |
| **ScalarDB 3.16** | ✅                    | ✅                   | ✅                   |
| **ScalarDB 3.15** | ✅                    | ✅                   | ✅                   |
| **ScalarDB 3.14** | ✅                    | ✅                   | ✅                   |

**PostgreSQL**

|      Version      | PostgreSQL 17 | PostgreSQL 16 | PostgreSQL 15 | PostgreSQL 14 | PostgreSQL 13 |
| :---------------- | :------------ | :------------ | :------------ | :------------ | ------------- |
| **ScalarDB 3.16** | ✅             | ✅             | ✅             | ✅             | ✅             |
| **ScalarDB 3.15** | ✅             | ✅             | ✅             | ✅             | ✅             |
| **ScalarDB 3.14** | ✅             | ✅             | ✅             | ✅             | ✅             |

**SQL Server**

|      Version      | SQL Server 2022 | SQL Server 2019 | SQL Server 2017 |
| :---------------- | :-------------- | :-------------- | :-------------- |
| **ScalarDB 3.16** | ✅               | ✅               | ✅               |
| **ScalarDB 3.15** | ✅               | ✅               | ✅               |
| **ScalarDB 3.14** | ✅               | ✅               | ✅               |

**SQLite**

|      Version      | SQLite 3 |
| :---------------- | :------- |
| **ScalarDB 3.16** | ✅        |
| **ScalarDB 3.15** | ✅        |
| **ScalarDB 3.14** | ✅        |

#### NewSQL databases

**Amazon Aurora MySQL**

|      Version      | Aurora MySQL 3 | Aurora MySQL 2 |
| :---------------- | :------------- | :------------- |
| **ScalarDB 3.16** | ✅              | ✅              |
| **ScalarDB 3.15** | ✅              | ✅              |
| **ScalarDB 3.14** | ✅              | ✅              |

**Amazon Aurora PostgreSQL**

| Version           | Aurora PostgreSQL 17 | Aurora PostgreSQL 16 | Aurora PostgreSQL 15 | Aurora PostgreSQL 14 | Aurora PostgreSQL 13 |
|:------------------|:---------------------|:---------------------|:---------------------|:---------------------|:---------------------|
| **ScalarDB 3.16** | ✅                    | ✅                    | ✅                    | ✅                    | ✅                    |
| **ScalarDB 3.15** | ✅                    | ✅                    | ✅                    | ✅                    | ✅                    |
| **ScalarDB 3.14** | ✅                    | ✅                    | ✅                    | ✅                    | ✅                    |

**YugabyteDB**

|      Version      | YugabyteDB 2 |
| :---------------- | :----------- |
| **ScalarDB 3.16** | ✅            |
| **ScalarDB 3.15** | ✅            |
| **ScalarDB 3.14** | ✅            |

#### NoSQL databases

**Amazon DynamoDB**

|      Version      | DynamoDB |
| :---------------- | :------- |
| **ScalarDB 3.16** | ✅        |
| **ScalarDB 3.15** | ✅        |
| **ScalarDB 3.14** | ✅        |

**Apache Cassandra**

|      Version      | Cassandra 5.0 | Cassandra 4.1 | Cassandra 3.11 | Cassandra 3.0 |
| :---------------- |:--------------|:--------------| :------------- | :------------ |
| **ScalarDB 3.16** | ✅             | ✅             | ✅              | ✅             |
| **ScalarDB 3.15** | ✅             | ✅             | ✅              | ✅             |
| **ScalarDB 3.14** | ✅             | ✅             | ✅              | ✅             |

**Azure Cosmos DB for NoSQL**

|      Version      | Cosmos DB for NoSQL |
| :---------------- | :------------------ |
| **ScalarDB 3.16** | ✅                   |
| **ScalarDB 3.15** | ✅                   |
| **ScalarDB 3.14** | ✅                   |

:::note

For details on how to configure each database, see [Configurations for the Underlying Databases of ScalarDB](./database-configurations.md).

:::

### Database permission requirements

ScalarDB requires specific permissions to perform its operations on the underlying databases.

:::note

ScalarDB assumes that the same underlying database user account is used for all administrative and CRUD operations.

:::

#### Relational databases

This section describes the permission requirements for relational databases.

**IBM Db2**

If you're using Db2, the following authority must be granted.

**Db2 12.1**

- `DBADM`

**Db2 11.5**

- `DBADM`

**MariaDB**

If you're using MariaDB, the following privileges must be granted.

**MariaDB 11.4**

- `CREATE`
- `DROP`
- `INDEX`
- `ALTER`
- `SELECT`
- `INSERT`
- `UPDATE`
- `DELETE`

**MariaDB 10.11**

- `CREATE`
- `DROP`
- `INDEX`
- `ALTER`
- `SELECT`
- `INSERT`
- `UPDATE`
- `DELETE`

**MySQL**

If you're using MySQL, the following privileges must be granted.

**MySQL 8.4**

- `CREATE`
- `DROP`
- `INDEX`
- `ALTER`
- `SELECT`
- `INSERT`
- `UPDATE`
- `DELETE`

**MySQL 8.0**

- `CREATE`
- `DROP`
- `INDEX`
- `ALTER`
- `SELECT`
- `INSERT`
- `UPDATE`
- `DELETE`

**Oracle Database**

If you're using Oracle Database, the following privileges must be granted.

**Oracle Database 23ai**

- `CREATE SESSION`
- `CREATE USER`
- `DROP USER`
- `ALTER USER`
- `CREATE ANY TABLE`
- `DROP ANY TABLE`
- `CREATE ANY INDEX`
- `DROP ANY INDEX`
- `ALTER ANY TABLE`
- `SELECT ANY TABLE`
- `INSERT ANY TABLE`
- `UPDATE ANY TABLE`
- `DELETE ANY TABLE`

**Oracle Database 21c**

- `CREATE SESSION`
- `CREATE USER`
- `DROP USER`
- `ALTER USER`
- `CREATE ANY TABLE`
- `DROP ANY TABLE`
- `CREATE ANY INDEX`
- `DROP ANY INDEX`
- `ALTER ANY TABLE`
- `SELECT ANY TABLE`
- `INSERT ANY TABLE`
- `UPDATE ANY TABLE`
- `DELETE ANY TABLE`

**Oracle Database 19c**

- `CREATE SESSION`
- `CREATE USER`
- `DROP USER`
- `ALTER USER`
- `CREATE ANY TABLE`
- `DROP ANY TABLE`
- `CREATE ANY INDEX`
- `DROP ANY INDEX`
- `ALTER ANY TABLE`
- `SELECT ANY TABLE`
- `INSERT ANY TABLE`
- `UPDATE ANY TABLE`
- `DELETE ANY TABLE`

**PostgreSQL**

If you're using PostgreSQL, the following database privilege must be granted.

**PostgreSQL 17**

- `CREATE`

**PostgreSQL 16**

- `CREATE`

**PostgreSQL 15**

- `CREATE`

**PostgreSQL 14**

- `CREATE`

**PostgreSQL 13**

- `CREATE`

**SQL Server**

If you're using SQL Server, the following database permissions must be granted.

**SQL Server 2022**

- `CREATE SCHEMA`
- `CREATE TABLE`

**SQL Server 2019**

- `CREATE SCHEMA`
- `CREATE TABLE`

**SQL Server 2017**

- `CREATE SCHEMA`
- `CREATE TABLE`

#### NewSQL databases

This section describes the permission requirements for NewSQL databases.

**YugabyteDB**

If you're using YugabyteDB, the following database privilege must be granted.

- `CREATE`

#### NoSQL databases

This section describes the permission requirements for NoSQL databases.

**Amazon DynamoDB**

If you're using Amazon DynamoDB, the following actions must be granted.

- `dynamodb:ConditionCheckItem`
- `dynamodb:PutItem`
- `dynamodb:ListTables`
- `dynamodb:DeleteItem`
- `dynamodb:Scan`
- `dynamodb:Query`
- `dynamodb:UpdateItem`
- `dynamodb:DeleteTable`
- `dynamodb:UpdateContinuousBackups`
- `dynamodb:CreateTable`
- `dynamodb:DescribeTable`
- `dynamodb:GetItem`
- `dynamodb:DescribeContinuousBackups`
- `dynamodb:UpdateTable`
- `application-autoscaling:RegisterScalableTarget`
- `application-autoscaling:DeleteScalingPolicy`
- `application-autoscaling:PutScalingPolicy`
- `application-autoscaling:DeregisterScalableTarget`
- `application-autoscaling:TagResource`

**Apache Cassandra**

If you're using Apache Cassandra, the following privileges must be granted.

**Cassandra 5.0**

- `CREATE`
- `DROP`
- `ALTER`
- `SELECT`
- `MODIFY`

**Cassandra 4.1**

- `CREATE`
- `DROP`
- `ALTER`
- `SELECT`
- `MODIFY`

**Cassandra 3.11**

- `CREATE`
- `DROP`
- `ALTER`
- `SELECT`
- `MODIFY`

**Cassandra 3.0**

- `CREATE`
- `DROP`
- `ALTER`
- `SELECT`
- `MODIFY`

**Azure Cosmos DB for NoSQL**

ScalarDB requires an Azure Cosmos DB key, which has full access to Azure Cosmos DB for NoSQL, for authentication.

## Cluster

ScalarDB Cluster is a component that provides a clustering solution for the Core component to work as a clustered server. For more information, see [ScalarDB Design](./design.md).

### Languages and runtimes

ScalarDB Cluster provides Java and .NET client SDKs that wrap gRPC-generated clients for ease of use.

#### Java

The Java client SDK for ScalarDB Cluster is available on the Maven Central Repository. You can add the library as a build dependency to your application by using Gradle or Maven. For more details, see [Add ScalarDB Cluster Java Client SDK to your build](./scalardb-cluster/developer-guide-for-scalardb-cluster-with-java-api.md#add-scalardb-cluster-java-client-sdk-to-your-build).

For building applications that integrate with the library, the following Java Development Kits (JDKs) are verified and supported:

- **[Oracle JDK](https://www.oracle.com/java/):** 8, 11, 17, or 21 (LTS versions)
- **OpenJDK distribution ([Eclipse Temurin](https://adoptium.net/temurin/), [Amazon Corretto](https://aws.amazon.com/corretto/), or [Microsoft Build of OpenJDK](https://learn.microsoft.com/en-us/java/openjdk/)):** 8, 11, 17, or 21 (LTS versions)

#### .NET

The .NET client SDK for ScalarDB Cluster is available as a NuGet package. For more details, see [Install the SDK](./scalardb-cluster-dotnet-client-sdk/getting-started-with-distributed-transactions.md#install-the-sdk).

For building applications that integrate with the library, the following .NET versions are verified and supported:

- [.NET 8.0](https://dotnet.microsoft.com/en-us/download/dotnet/8.0)
- [.NET 6.0](https://dotnet.microsoft.com/en-us/download/dotnet/6.0)

#### Other languages

Since ScalarDB Cluster uses gRPC, you can also create your own client in your preferred language by using the generated clients from the proto file. If you need the proto file, please [contact support](https://www.scalar-labs.com/support).

### Databases

Since ScalarDB Cluster uses Core to interact with databases, the requirements for databases are the same as those for Core. For more information, see [Databases](#databases).

### Required ports

ScalarDB Cluster requires the following ports to be accessible. These default port numbers can be configured as needed:

- 60053 (Administrative API / Transactional API / SQL API / pause operation)
- 8080 (GraphQL)
- 9080 (metrics)

### Kubernetes

ScalarDB Cluster is provided as a cluster consisting of one or more Pods on the Kubernetes platform in production environments. ScalarDB Cluster supports the following platforms and tools.

#### Platform

- **[Kubernetes](https://kubernetes.io/):** 1.32 - 1.35
  - **[Amazon Elastic Kubernetes Service (EKS)](https://aws.amazon.com/eks/)**
  - **[Azure Kubernetes Service (AKS)](https://azure.microsoft.com/en-us/products/kubernetes-service)**
- **[Red Hat OpenShift](https://www.redhat.com/en/technologies/cloud-computing/openshift):** TBD

#### Package manager

- **[Helm](https://helm.sh/):** 3.5+

## Analytics

ScalarDB Analytics is a component that provides scalable analytical processing for the data managed by the Core component or managed by applications that don't use ScalarDB. For more information, see [ScalarDB Design](./design.md).

### Spark

ScalarDB Analytics uses [Apache Spark](https://spark.apache.org/) for the query engine. It supports the following versions of Spark.

| ScalarDB Analytics Version | Spark Versions | Scala Versions |
| :------------------------- | :------------- | :------------- |
| 3.16                       | 3.5, 3.4       | 2.13, 2.12     |
| 3.15                       | 3.5, 3.4       | 2.13, 2.12     |
| 3.14                       | 3.5, 3.4       | 2.13, 2.12     |

### Languages and runtimes

ScalarDB Analytics provides a Java library for running federated queries on Spark. It also provides a tool called ScalarDB Analytics CLI, which runs on the Java Virtual Machine (JVM).

:::note

Since Spark and Scala may be incompatible among different minor versions, the library offers different artifacts for various Spark and Scala versions, named in the format `scalardb-analytics-spark-all-<SPARK_VERSION>_<SCALA_VERSION>`. Make sure that you select the artifact matching the Spark and Scala versions you're using. For example, if you're using Spark 3.5 with Scala 2.13, you must specify `scalardb-analytics-spark-all-3.5_2.13`.

:::

#### Java

The library is available on the Maven Central Repository. You need to specify the library when setting up Spark. For more details, see [Set up ScalarDB Analytics in the Spark configuration](./scalardb-analytics/run-analytical-queries.md#set-up-scalardb-analytics-in-the-spark-configuration).

:::note

The ScalarDB Analytics library is built with JDK 11 to be able to be integrated with various Spark environments.

:::

For running ScalarDB Analytics CLI, the following JREs are verified and supported:

- **[Oracle JDK](https://www.oracle.com/java/):** 21 (LTS versions)
- **OpenJDK distribution ([Eclipse Temurin](https://adoptium.net/temurin/), [Amazon Corretto](https://aws.amazon.com/corretto/), or [Microsoft Build of OpenJDK](https://learn.microsoft.com/en-us/java/openjdk/)):** 21 (LTS versions)

### Databases

ScalarDB Analytics runs on top of the following databases and their versions.

#### ScalarDB

ScalarDB Analytics can run analytical queries on the databases managed by ScalarDB Core and Cluster. It uses the ScalarDB Core library of the same version to interact with these databases, as shown below.

| ScalarDB Analytics version | ScalarDB Core version |
| :------------------------- | :-------------------- |
| 3.16                       | 3.16                  |
| 3.15                       | 3.15                  |
| 3.14                       | 3.14                  |

For the supported databases and their versions, see [Databases](#databases).

#### Relational databases

ScalarDB Analytics can run analytical queries on the following relational databases **not** managed by ScalarDB Core and Cluster.

**Oracle Database**

|           Version           | Oracle Database 23ai |
| :-------------------------- | :------------------- |
| **ScalarDB Analytics 3.16** | ✅                    |
| **ScalarDB Analytics 3.15** | ✅                    |
| **ScalarDB Analytics 3.14** | ✅                    |

**MySQL**

|           Version           | MySQL 8.0 |
| :-------------------------- | :-------- |
| **ScalarDB Analytics 3.16** | ✅         |
| **ScalarDB Analytics 3.15** | ✅         |
| **ScalarDB Analytics 3.14** | ✅         |

**PostgreSQL**

|           Version           | PostgreSQL 16 |
| :-------------------------- | :------------ |
| **ScalarDB Analytics 3.16** | ✅             |
| **ScalarDB Analytics 3.15** | ✅             |
| **ScalarDB Analytics 3.14** | ✅             |

**SQL Server**

|           Version           | SQL Server 2019 |
| :-------------------------- | :-------------- |
| **ScalarDB Analytics 3.16** | ✅               |
| **ScalarDB Analytics 3.15** | ✅               |
| **ScalarDB Analytics 3.14** | ✅               |

#### NoSQL databases

ScalarDB Analytics can run analytical queries on the following NoSQL databases **not** managed by ScalarDB Core and Cluster.

**Amazon DynamoDB**

|           Version           | DynamoDB |
| :-------------------------- | :------- |
| **ScalarDB Analytics 3.16** | ✅        |
| **ScalarDB Analytics 3.15** | ✅        |
| **ScalarDB Analytics 3.14** | ✅        |

#### Analytical platforms

ScalarDB Analytics can run analytical queries on the following analytical platforms **not** managed by ScalarDB Core and Cluster.

**Databricks**

|           Version           | Databricks |
| :-------------------------- | :--------- |
| **ScalarDB Analytics 3.16** | ✅         |
| **ScalarDB Analytics 3.15** | ❌         |
| **ScalarDB Analytics 3.14** | ❌         |

**Snowflake**

|           Version           | Snowflake |
| :-------------------------- | :-------- |
| **ScalarDB Analytics 3.16** | ✅        |
| **ScalarDB Analytics 3.15** | ❌        |
| **ScalarDB Analytics 3.14** | ❌        |

### Database permission requirements

ScalarDB Analytics requires read permissions to perform its operations on the underlying databases.

For databases managed under ScalarDB Core and Cluster, the databases are already configured according to [Database permission requirements](#database-permission-requirements), so no additional configuration is required.

For databases **not** managed under ScalarDB Core and Cluster, make sure you register your data sources with users who have read permission on the data sources. For instructions on registering your data sources, see [Create your catalog](./scalardb-analytics/create-scalardb-analytics-catalog.md#create-your-catalog).

The ScalarDB Analytics server also requires permissions to manage catalog information in its database. Create a user with permission according to [Database permission requirements](#database-permission-requirements) and set the user to the ScalarDB Analytics server configuration.

### Required ports

ScalarDB Analytics requires the following ports to be accessible. These default port numbers can be configured as needed:

- 11051 (catalog service)
- 11052 (metering service)
- The port number that Apache Spark uses depends on how you deploy the Spark cluster. For details on which ports you need to make accessible, please refer to your Spark service provider's documentation.

### Kubernetes

The server component of ScalarDB Analytics (ScalarDB Analytics server) is provided as a Pod on the Kubernetes platform in production environments. ScalarDB Analytics supports the following platforms and tools.

#### Platform

- **[Kubernetes](https://kubernetes.io/):** 1.32 - 1.35
  - **[Amazon Elastic Kubernetes Service (EKS)](https://aws.amazon.com/eks/)**
  - **[Azure Kubernetes Service (AKS)](https://azure.microsoft.com/en-us/products/kubernetes-service)**
- **[Red Hat OpenShift](https://www.redhat.com/en/technologies/cloud-computing/openshift):** TBD

#### Package manager

- **[Helm](https://helm.sh/):** 3.5+
