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.
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.
For building applications that integrate with the library, the following Java Development Kits (JDKs) are verified and supported.
- Oracle JDK: 8, 11, 17 or 21 (LTS versions)
- OpenJDK (Eclipse Temurin, Amazon Corretto, or Microsoft Build of 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
- Oracle Database
- IBM Db2
- MySQL
- PostgreSQL
- Amazon Aurora MySQL
- Amazon Aurora PostgreSQL
- MariaDB
- TiDB
- AlloyDB
- SQL Server
- SQLite
- YugabyteDB
| Version | Oracle Database 23ai | Oracle Database 21c | Oracle Database 19c |
|---|---|---|---|
| ScalarDB 3.17 | ✅ | ✅ | ✅ |
| ScalarDB 3.16 | ✅ | ✅ | ✅ |
| ScalarDB 3.15 | ✅ | ✅ | ✅ |
| ScalarDB 3.14 | ✅ | ✅ | ✅ |
| ScalarDB 3.13 | ✅ | ✅ | ✅ |
| ScalarDB 3.12 | ✅ | ✅ | ✅ |
| Version | Db2 12.1 | Db2 11.5 |
|---|---|---|
| ScalarDB 3.17 | ✅ | ✅ |
| ScalarDB 3.16 | ✅ | ✅ |
| ScalarDB 3.15 | ❌ | ❌ |
| ScalarDB 3.14 | ❌ | ❌ |
| ScalarDB 3.13 | ❌ | ❌ |
| ScalarDB 3.12 | ❌ | ❌ |
Only Linux, UNIX, and Windows versions of Db2 are supported. The z/OS version is not currently supported.
| Version | MySQL 8.4 | MySQL 8.0 |
|---|---|---|
| ScalarDB 3.17 | ✅ | ✅ |
| ScalarDB 3.16 | ✅ | ✅ |
| ScalarDB 3.15 | ✅ | ✅ |
| ScalarDB 3.14 | ✅ | ✅ |
| ScalarDB 3.13 | ✅ | ✅ |
| ScalarDB 3.12 | ✅ | ✅ |
| Version | PostgreSQL 17 | PostgreSQL 16 | PostgreSQL 15 | PostgreSQL 14 | PostgreSQL 13 |
|---|---|---|---|---|---|
| ScalarDB 3.17 | ✅ | ✅ | ✅ | ✅ | ✅ |
| ScalarDB 3.16 | ✅ | ✅ | ✅ | ✅ | ✅ |
| ScalarDB 3.15 | ✅ | ✅ | ✅ | ✅ | ✅ |
| ScalarDB 3.14 | ✅ | ✅ | ✅ | ✅ | ✅ |
| ScalarDB 3.13 | ✅ | ✅ | ✅ | ✅ | ✅ |
| ScalarDB 3.12 | ✅ | ✅ | ✅ | ✅ | ✅ |
| Version | Aurora MySQL 3 | Aurora MySQL 2 |
|---|---|---|
| ScalarDB 3.17 | ✅ | ✅ |
| ScalarDB 3.16 | ✅ | ✅ |
| ScalarDB 3.15 | ✅ | ✅ |
| ScalarDB 3.14 | ✅ | ✅ |
| ScalarDB 3.13 | ✅ | ✅ |
| ScalarDB 3.12 | ✅ | ✅ |
| Version | Aurora PostgreSQL 17 | Aurora PostgreSQL 16 | Aurora PostgreSQL 15 | Aurora PostgreSQL 14 | Aurora PostgreSQL 13 |
|---|---|---|---|---|---|
| ScalarDB 3.17 | ✅ | ✅ | ✅ | ✅ | ✅ |
| ScalarDB 3.16 | ✅ | ✅ | ✅ | ✅ | ✅ |
| ScalarDB 3.15 | ✅ | ✅ | ✅ | ✅ | ✅ |
| ScalarDB 3.14 | ✅ | ✅ | ✅ | ✅ | ✅ |
| ScalarDB 3.13 | ✅ | ✅ | ✅ | ✅ | ✅ |
| ScalarDB 3.12 | ✅ | ✅ | ✅ | ✅ | ✅ |
| Version | MariaDB 11.4 | MariaDB 10.11 |
|---|---|---|
| ScalarDB 3.17 | ✅ | ✅ |
| ScalarDB 3.16 | ✅ | ✅ |
| ScalarDB 3.15 | ✅ | ✅ |
| ScalarDB 3.14 | ✅ | ✅ |
| ScalarDB 3.13 | ✅ | ✅ |
| ScalarDB 3.12 | ✅ | ✅ |
| Version | TiDB 8.5 | TiDB 7.5 | TiDB 6.5 |
|---|---|---|---|
| ScalarDB 3.17 | ✅ | ✅ | ✅ |
| ScalarDB 3.16 | ❌ | ❌ | ❌ |
| ScalarDB 3.15 | ❌ | ❌ | ❌ |
| ScalarDB 3.14 | ❌ | ❌ | ❌ |
| ScalarDB 3.13 | ❌ | ❌ | ❌ |
| ScalarDB 3.12 | ❌ | ❌ | ❌ |
| Version | AlloyDB 16 | AlloyDB 15 |
|---|---|---|
| ScalarDB 3.17 | ✅ | ✅ |
| ScalarDB 3.16 | ❌ | ❌ |
| ScalarDB 3.15 | ❌ | ❌ |
| ScalarDB 3.14 | ❌ | ❌ |
| ScalarDB 3.13 | ❌ | ❌ |
| ScalarDB 3.12 | ❌ | ❌ |
| Version | SQL Server 2022 | SQL Server 2019 | SQL Server 2017 |
|---|---|---|---|
| ScalarDB 3.17 | ✅ | ✅ | ✅ |
| ScalarDB 3.16 | ✅ | ✅ | ✅ |
| ScalarDB 3.15 | ✅ | ✅ | ✅ |
| ScalarDB 3.14 | ✅ | ✅ | ✅ |
| ScalarDB 3.13 | ✅ | ✅ | ✅ |
| ScalarDB 3.12 | ✅ | ✅ | ✅ |
| Version | SQLite 3 |
|---|---|
| ScalarDB 3.17 | ✅ |
| ScalarDB 3.16 | ✅ |
| ScalarDB 3.15 | ✅ |
| ScalarDB 3.14 | ✅ |
| ScalarDB 3.13 | ✅ |
| ScalarDB 3.12 | ✅ |
| Version | YugabyteDB 2 |
|---|---|
| ScalarDB 3.17 | ✅ |
| ScalarDB 3.16 | ✅ |
| ScalarDB 3.15 | ✅ |
| ScalarDB 3.14 | ✅ |
| ScalarDB 3.13 | ✅ |
| ScalarDB 3.12 | ❌ |
NoSQL databases
- Amazon DynamoDB
- Apache Cassandra
- Azure Cosmos DB for NoSQL
| Version | DynamoDB |
|---|---|
| ScalarDB 3.17 | ✅ |
| ScalarDB 3.16 | ✅ |
| ScalarDB 3.15 | ✅ |
| ScalarDB 3.14 | ✅ |
| ScalarDB 3.13 | ✅ |
| ScalarDB 3.12 | ✅ |
| Version | Cassandra 5.0 | Cassandra 4.1 | Cassandra 3.11 | Cassandra 3.0 |
|---|---|---|---|---|
| ScalarDB 3.17 | ✅ | ✅ | ✅ | ✅ |
| ScalarDB 3.16 | ✅ | ✅ | ✅ | ✅ |
| ScalarDB 3.15 | ✅ | ✅ | ✅ | ✅ |
| ScalarDB 3.14 | ✅ | ✅ | ✅ | ✅ |
| ScalarDB 3.13 | ✅ | ✅ | ✅ | ✅ |
| ScalarDB 3.12 | ✅ | ✅ | ✅ | ✅ |
| Version | Cosmos DB for NoSQL |
|---|---|
| ScalarDB 3.17 | ✅ |
| ScalarDB 3.16 | ✅ |
| ScalarDB 3.15 | ✅ |
| ScalarDB 3.14 | ✅ |
| ScalarDB 3.13 | ✅ |
| ScalarDB 3.12 | ✅ |
Object Storage
Object Storage support is currently in Private Preview. For more details, please contact us or wait for this feature to become publicly available in a future version.
- Amazon S3
- Azure Blob Storage
- Google Cloud Storage
| Version | S3 |
|---|---|
| ScalarDB 3.17 | ✅ |
| ScalarDB 3.16 | ❌ |
| ScalarDB 3.15 | ❌ |
| ScalarDB 3.14 | ❌ |
| ScalarDB 3.13 | ❌ |
| ScalarDB 3.12 | ❌ |
| Version | Blob Storage |
|---|---|
| ScalarDB 3.17 | ✅ |
| ScalarDB 3.16 | ❌ |
| ScalarDB 3.15 | ❌ |
| ScalarDB 3.14 | ❌ |
| ScalarDB 3.13 | ❌ |
| ScalarDB 3.12 | ❌ |
| Version | Cloud Storage |
|---|---|
| ScalarDB 3.17 | ✅ |
| ScalarDB 3.16 | ❌ |
| ScalarDB 3.15 | ❌ |
| ScalarDB 3.14 | ❌ |
| ScalarDB 3.13 | ❌ |
| ScalarDB 3.12 | ❌ |
For details on how to configure each database, see Configurations for the Underlying Databases of ScalarDB.
Database permission requirements
ScalarDB requires specific permissions to perform its operations on the underlying databases.
Oracle Database
If you're using Oracle Database, the following privileges must be granted.
- Oracle Database 23ai
- Oracle Database 21c
- Oracle Database 19c
CREATE SESSIONCREATE USERDROP USERALTER USERCREATE ANY TABLEDROP ANY TABLECREATE ANY INDEXDROP ANY INDEXALTER ANY TABLESELECT ANY TABLEINSERT ANY TABLEUPDATE ANY TABLEDELETE ANY TABLE
CREATE SESSIONCREATE USERDROP USERALTER USERCREATE ANY TABLEDROP ANY TABLECREATE ANY INDEXDROP ANY INDEXALTER ANY TABLESELECT ANY TABLEINSERT ANY TABLEUPDATE ANY TABLEDELETE ANY TABLE
CREATE SESSIONCREATE USERDROP USERALTER USERCREATE ANY TABLEDROP ANY TABLECREATE ANY INDEXDROP ANY INDEXALTER ANY TABLESELECT ANY TABLEINSERT ANY TABLEUPDATE ANY TABLEDELETE ANY TABLE
IBM Db2
If you're using Db2, the following authorities must be granted.
- Db2 12.1
- Db2 11.5
DBADMDATAACCESS
DBADMDATAACCESS
MySQL
If you're using MySQL, the following privileges must be granted.
- MySQL 8.4
- MySQL 8.0
CREATEDROPINDEXALTERSELECTINSERTUPDATEDELETE
CREATEDROPINDEXALTERSELECTINSERTUPDATEDELETE
PostgreSQL
If you're using PostgreSQL, the following database role must be granted.
- PostgreSQL 17
- PostgreSQL 16
- PostgreSQL 15
- PostgreSQL 14
- PostgreSQL 13
SUPERUSER
SUPERUSER
SUPERUSER
SUPERUSER
SUPERUSER
MariaDB
If you're using MariaDB, the following privileges must be granted.
- MariaDB 11.4
- MariaDB 10.11
CREATEDROPINDEXALTERSELECTINSERTUPDATEDELETE
CREATEDROPINDEXALTERSELECTINSERTUPDATEDELETE
SQL Server
If you're using SQL Server, the following database roles must be granted.
- SQL Server 2022
- SQL Server 2019
- SQL Server 2017
db_ddladmindb_datareaderdb_datawriter
db_ddladmindb_datareaderdb_datawriter
db_ddladmindb_datareaderdb_datawriter
YugabyteDB
If you're using YugabyteDB, the following database role must be granted.
SUPERUSER
Amazon DynamoDB
If you're using Amazon DynamoDB, the following actions must be granted.
dynamodb:ConditionCheckItemdynamodb:PutItemdynamodb:ListTablesdynamodb:DeleteItemdynamodb:Scandynamodb:Querydynamodb:UpdateItemdynamodb:DeleteTabledynamodb:UpdateContinuousBackupsdynamodb:CreateTabledynamodb:DescribeTabledynamodb:GetItemdynamodb:DescribeContinuousBackupsdynamodb:UpdateTableapplication-autoscaling:RegisterScalableTargetapplication-autoscaling:DeleteScalingPolicyapplication-autoscaling:PutScalingPolicyapplication-autoscaling:DeregisterScalableTargetapplication-autoscaling:TagResource
Azure Cosmos DB for NoSQL
ScalarDB requires an Azure Cosmos DB key, which has full access to Azure Cosmos DB for NoSQL, for authentication.
Apache Cassandra
If you're using Apache Cassandra, the following privileges must be granted.
- Cassandra 3.11
- Cassandra 3.0
CREATEDROPALTERSELECTMODIFY
CREATEDROPALTERSELECTMODIFY
Amazon S3
If you're using Amazon S3 as Object Storage, the following actions must be granted:
s3:PutObjects3:GetObjects3:DeleteObjects3:ListBucket
Azure Blob Storage
ScalarDB requires an access key, which has full access to Azure Blob Storage, for authentication.
Google Cloud Storage
If you're using Google Cloud Storage as Object Storage, the following role must be granted:
Storage Object Admin (roles/storage.objectAdmin)
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.
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.
For building applications that integrate with the library, the following Java Development Kits (JDKs) are verified and supported:
- Oracle JDK: 8, 11, 17 or 21 (LTS versions)
- OpenJDK (Eclipse Temurin, Amazon Corretto, or Microsoft Build of OpenJDK): 8, 11, 17 or 21 (LTS versions)
The ScalarDB Cluster Embedding Java Client SDK library requires Java 17 or 21 from one of the vendors listed above.
.NET
The .NET client SDK for ScalarDB Cluster is available as a NuGet package. For more details, see Install the SDK.
For building applications that integrate with the library, the following .NET versions are verified and supported:
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.
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.
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: 1.31 - 1.34
-
Red Hat OpenShift: 4.18 - 4.20
note- ScalarDB Cluster does not support Extended Update Support (EUS) versions of Red Hat OpenShift.
- ScalarDB Cluster for Red Hat OpenShift is provided as a container image based on Red Hat Universal Base Images (UBI), which uses Red Hat Build of OpenJDK.
- If you plan to use Red Hat OpenShift, it is your responsibility to ensure you have a valid subscription. Please contact Red Hat directly for more information. Red Hat offers various subscription options for Red Hat OpenShift, and you may also need to purchase a separate subscription for Red Hat Build of OpenJDK.
Package manager
- Helm: 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.
Spark
ScalarDB Analytics uses Apache Spark for the query engine. It supports the following versions of Spark.
| ScalarDB Analytics Version | Spark Versions | Scala Versions |
|---|---|---|
| 3.17 | 3.5, 3.4 | 2.13, 2.12 |
| 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 library for running federated queries on Spark. It also provides a tool called ScalarDB Analytics CLI, which runs on the Java Virtual Machine (JVM).
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.
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
For using the library on Spark, the following JREs are verified and supported:
- Oracle JDK: 11, 17 or 21 (LTS versions)
- OpenJDK (Eclipse Temurin, Amazon Corretto, or Microsoft Build of OpenJDK): 11, 17 or 21 (LTS versions)
For running ScalarDB Analytics CLI, the following JREs are verified and supported:
- Oracle JDK: 8, 11, 17 or 21 (LTS versions)
- OpenJDK (Eclipse Temurin, Amazon Corretto, or Microsoft Build of OpenJDK): 8, 11, 17 or 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.17 | 3.17 |
| 3.16 | 3.16 |
| 3.15 | 3.15 |
| 3.14 | 3.14 |
For the supported databases and their versions, see Databases.
Relational databases
ScalarDB Analytics can run analytical queries on the following relational databases not managed by ScalarDB Core and Cluster.
- Oracle Database
- MySQL
- PostgreSQL
- SQL Server
| Version | Oracle Database 23ai | Oracle Database 21c | Oracle Database 19c |
|---|---|---|---|
| ScalarDB Analytics 3.17 | ✅ | ✅ | ✅ |
| ScalarDB Analytics 3.16 | ✅ | ❌ | ❌ |
| ScalarDB Analytics 3.15 | ✅ | ❌ | ❌ |
| ScalarDB Analytics 3.14 | ✅ | ❌ | ❌ |
| Version | MySQL 8.4 | MySQL 8.0 |
|---|---|---|
| ScalarDB Analytics 3.17 | ✅ | ✅ |
| ScalarDB Analytics 3.16 | ❌ | ✅ |
| ScalarDB Analytics 3.15 | ❌ | ✅ |
| ScalarDB Analytics 3.14 | ❌ | ✅ |
| Version | PostgreSQL 18 | PostgreSQL 17 | PostgreSQL 16 |
|---|---|---|---|
| ScalarDB Analytics 3.17 | ✅ | ✅ | ✅ |
| ScalarDB Analytics 3.16 | ❌ | ❌ | ✅ |
| ScalarDB Analytics 3.15 | ❌ | ❌ | ✅ |
| ScalarDB Analytics 3.14 | ❌ | ❌ | ✅ |
| Version | SQL Server 2022 | SQL Server 2019 | SQL Server 2017 |
|---|---|---|---|
| ScalarDB Analytics 3.17 | ✅ | ✅ | ✅ |
| ScalarDB Analytics 3.16 | ❌ | ✅ | ❌ |
| ScalarDB Analytics 3.15 | ❌ |