Run Non-Transactional Storage Operations Through the SQL Interface
This guide explains how to run non-transactional storage operations through the SQL interface for ScalarDB Cluster.
You need to have a license key (trial license or commercial license) for ScalarDB Cluster. If you don't have a license key, please contact us.
Preparation
For the purpose of this guide, you will set up a database and ScalarDB Cluster in standalone mode by using a sample in the ScalarDB samples repository.
ScalarDB Cluster in standalone mode is primarily for development and testing purposes.
Clone the ScalarDB samples repository
Open Terminal, then clone the ScalarDB samples repository by running the following command:
git clone https://github.com/scalar-labs/scalardb-samples
Then, go to the directory that contains the necessary files by running the following command:
cd scalardb-samples/scalardb-cluster-standalone-mode
Set up a database
Select your database, and follow the instructions to configure it for ScalarDB Cluster.
For a list of databases that ScalarDB supports, see Databases.
- MySQL
- PostgreSQL
- Oracle Database
- SQL Server
- DynamoDB
- Cosmos DB for NoSQL
- Cassandra
Run MySQL locally
You can run MySQL in Docker Compose by using the docker-compose.yaml
file in the scalardb-samples/scalardb-cluster-standalone-mode
directory.
To start MySQL, run the following command:
docker compose up -d mysql
Configure ScalarDB Cluster
The scalardb-cluster-node.properties file in the scalardb-samples/scalardb-cluster-standalone-mode
directory contains database configurations for ScalarDB Cluster. Please uncomment the properties for MySQL in the scalardb-cluster-node.properties file so that the configuration looks as follows:
# For MySQL
scalar.db.storage=jdbc
scalar.db.contact_points=jdbc:mysql://mysql-1:3306/
scalar.db.username=root
scalar.db.password=mysql
Run PostgreSQL locally
You can run PostgreSQL in Docker Compose by using the docker-compose.yaml
file in the scalardb-samples/scalardb-cluster-standalone-mode
directory.
To start PostgreSQL, run the following command:
docker compose up -d postgres
Configure ScalarDB Cluster
The scalardb-cluster-node.properties file in the scalardb-samples/scalardb-cluster-standalone-mode
directory contains database configurations for ScalarDB Cluster. Please uncomment the properties for PostgreSQL in the scalardb-cluster-node.properties file so that the configuration looks as follows:
# For PostgreSQL
scalar.db.storage=jdbc
scalar.db.contact_points=jdbc:postgresql://postgres-1:5432/
scalar.db.username=postgres
scalar.db.password=postgres
Run Oracle Database locally
You can run Oracle Database in Docker Compose by using the docker-compose.yaml
file in the scalardb-samples/scalardb-cluster-standalone-mode
directory.
To start Oracle Database, run the following command:
docker compose up -d oracle
Configure ScalarDB Cluster
The scalardb-cluster-node.properties file in the scalardb-samples/scalardb-cluster-standalone-mode
directory contains database configurations for ScalarDB Cluster. Please uncomment the properties for Oracle Database in the scalardb-cluster-node.properties file so that the configuration looks as follows:
# For Oracle
scalar.db.storage=jdbc
scalar.db.contact_points=jdbc:oracle:thin:@//oracle-1:1521/FREEPDB1
scalar.db.username=SYSTEM
scalar.db.password=Oracle
Run SQL Server locally
You can run SQL Server in Docker Compose by using the docker-compose.yaml
file in the scalardb-samples/scalardb-cluster-standalone-mode
directory.
To start SQL Server, run the following command:
docker compose up -d sqlserver
Configure ScalarDB Cluster
The scalardb-cluster-node.properties file in the scalardb-samples/scalardb-cluster-standalone-mode
directory contains database configurations for ScalarDB Cluster. Please uncomment the properties for SQL Server in the scalardb-cluster-node.properties file so that the configuration looks as follows:
# For SQL Server
scalar.db.storage=jdbc
scalar.db.contact_points=jdbc:sqlserver://sqlserver-1:1433;encrypt=true;trustServerCertificate=true
scalar.db.username=sa
scalar.db.password=SqlServer22
Run Amazon DynamoDB Local
You can run Amazon DynamoDB Local in Docker Compose by using the docker-compose.yaml
file in the scalardb-samples/scalardb-cluster-standalone-mode
directory.
To start Amazon DynamoDB Local, run the following command:
docker compose up -d dynamodb
Configure ScalarDB Cluster
The scalardb-cluster-node.properties file in the scalardb-samples/scalardb-cluster-standalone-mode
directory contains database configurations for ScalarDB Cluster. Please uncomment the properties for Amazon DynamoDB Local in the scalardb-cluster-node.properties file so that the configuration looks as follows:
# For DynamoDB Local
scalar.db.storage=dynamo
scalar.db.contact_points=sample
scalar.db.username=sample
scalar.db.password=sample
scalar.db.dynamo.endpoint_override=http://dynamodb-1:8000
To use Azure Cosmos DB for NoSQL, you must have an Azure account. If you don't have an Azure account, visit Create an Azure Cosmos DB account.
Configure Cosmos DB for NoSQL
Set the default consistency level to Strong according to the official document at Configure the default consistency level.
Configure ScalarDB Cluster
The following instructions assume that you have properly installed and configured the JDK in your local environment and properly configured your Cosmos DB for NoSQL account in Azure.
The scalardb-cluster-node.properties file in the scalardb-samples/scalardb-cluster-standalone-mode
directory contains database configurations for ScalarDB Cluster. Be sure to change the values for scalar.db.contact_points
and scalar.db.password
as described.
# For Cosmos DB
scalar.db.storage=cosmos
scalar.db.contact_points=<COSMOS_DB_FOR_NOSQL_URI>
scalar.db.password=<COSMOS_DB_FOR_NOSQL_KEY>
You can use the primary key or the secondary key in your Azure Cosmos DB account as the value for scalar.db.password
.
Run Cassandra locally
You can run Apache Cassandra in Docker Compose by using the docker-compose.yaml
file in the scalardb-samples/scalardb-cluster-standalone-mode
directory.
To start Apache Cassandra, run the following command:
docker compose up -d cassandra
Configure ScalarDB Cluster
The scalardb-cluster-node.properties file in the scalardb-samples/scalardb-cluster-standalone-mode
directory contains database configurations for ScalarDB Cluster. Please uncomment the properties for Cassandra in the scalardb-cluster-node.properties file so that the configuration looks as follows:
# For Cassandra
scalar.db.storage=cassandra
scalar.db.contact_points=cassandra-1
scalar.db.username=cassandra
scalar.db.password=cassandra
For a comprehensive list of configurations for ScalarDB, see ScalarDB Configurations.
Set up ScalarDB Cluster in standalone mode
To set up ScalarDB Cluster in standalone mode, you'll need to configure ScalarDB Cluster to run non-transactional storage operations, set a license key, and then start ScalarDB Cluster.
Configure ScalarDB Cluster to run non-transactional storage operations
To run non-transactional storage operations, you need to configure the scalar.db.transaction_manager
property to single-crud-operation
in the configuration file scalardb-cluster-node.properties
:
scalar.db.transaction_manager=single-crud-operation
Set the license key
Set the license key (trial license or commercial license) for the ScalarDB Clusters in the properties file. For details, see How to Configure a Product License Key.
Start ScalarDB Cluster in standalone mode
To start ScalarDB Cluster in standalone mode, run the following command:
If you want to change other configurations for ScalarDB Cluster, update the scalardb-cluster-node.properties
file before running the command below.
docker compose up -d scalardb-cluster-node
Create or import a schema
ScalarDB has its own data model and schema that maps to the implementation-specific data model and schema.
- Need to create a database schema? See SQL CLI.
- Need to import an existing database? See Importing Existing Tables to ScalarDB by Using ScalarDB Schema Loader.
Also, for a list of supported DDLs, see ScalarDB SQL Grammar.
Create your application
- JDBC
- Java
Configure your JDBC application
This section describes how to add the ScalarDB JDBC driver to your project and how to configure it to run non-transactional storage operations by using Java.
Add the ScalarDB JDBC driver to your project
You can add the ScalarDB JDBC driver as a build dependency to your application by using Gradle or Maven.
Select your build tool, and follow the instructions to add the build dependency for the ScalarDB JDBC driver to your application.
- Gradle
- Maven
To add the build dependency for the ScalarDB JDBC driver by using Gradle, add the following to build.gradle
in your application:
dependencies {
implementation 'com.scalar-labs:scalardb-sql-jdbc:3.12.4'
implementation 'com.scalar-labs:scalardb-cluster-java-client-sdk:3.12.4'
}
To add the build dependency for the ScalarDB SQL API by using Maven, add the following to pom.xml
in your application:
<dependencies>
<dependency>
<groupId>com.scalar-labs</groupId>
<artifactId>scalardb-sql-jdbc</artifactId>
<version>3.12.4</version>
</dependency>
<dependency>
<groupId>com.scalar-labs</groupId>
<artifactId>scalardb-cluster-java-client-sdk</artifactId>
<version>3.12.4</version>
</dependency>
</dependencies>
Configure the ScalarDB Cluster Java SDK for the SQL interface
For details about configuring the ScalarDB Cluster Java SDK for the SQL interface, see ScalarDB Cluster SQL client configurations.
Use the JDBC API
For details about the JDBC API, see ScalarDB JDBC Guide.
The following limitations apply to non-transactional storage operations:
- Beginning a transaction is not supported.
- Executing multiple mutations in a single SQL statement is not supported.
- The isolation level is always
READ_COMMITTED
.
Learn more
Configure your Java application
This section describes how to add the ScalarDB SQL API to your project and how to configure it to run non-transactional storage operations by using Java.
Add ScalarDB SQL API to your project
You can add the ScalarDB SQL API as a build dependency to your application by using Gradle or Maven.
Select your build tool, and follow the instructions to add the build dependency for the ScalarDB SQL API to your application.
- Gradle
- Maven
To add the build dependency for the ScalarDB SQL API by using Gradle, add the following to build.gradle
in your application:
dependencies {
implementation 'com.scalar-labs:scalardb-sql:3.12.4'
implementation 'com.scalar-labs:scalardb-cluster-java-client-sdk:3.12.4'
}
To add the build dependency for the ScalarDB SQL API by using Maven, add the following to pom.xml
in your application:
<dependencies>
<dependency>
<groupId>com.scalar-labs</groupId>
<artifactId>scalardb-sql</artifactId>
<version>3.12.4</version>
</dependency>
<dependency>
<groupId>com.scalar-labs</groupId>
<artifactId>scalardb-cluster-java-client-sdk</artifactId>
<version>3.12.4</version>
</dependency>
</dependencies>
Configure the ScalarDB Cluster Java SDK for the SQL interface
For details about configuring the ScalarDB Cluster Java SDK for the SQL interface, see ScalarDB Cluster SQL client configurations.
Use the Java API
For details about the SQL API, see ScalarDB SQL API Guide.
The following limitations apply to non-transactional storage operations:
- Beginning a transaction is not supported.
- Executing multiple mutations in a single SQL statement is not supported.
- The isolation level is always
READ_COMMITTED
.