ScalarDB Core ライブラリを介してトランザクションを実行する
このページは英語版のページが機械翻訳されたものです。英語版との間に矛盾または不一致がある場合は、英語版を正としてください。
このガイドでは、ScalarDB Core ライブラリを使用して、ScalarDB プロパティファイルを設定し、1フェーズまたは2フェーズのコミットインターフェイスを介してトランザクションを実行するためのスキーマを作成する方法について説明します。
準備
このガイドでは、ScalarDB サンプルリポジトリのサンプルを使用して、データベースと ScalarDB をセットアップします。
ScalarDB サンプルリポジトリのクローンを作成する
Terminal を開き、次のコマンドを実行して ScalarDB サンプルリポジトリのクローンを作成します。
git clone https://github.com/scalar-labs/scalardb-samples
次に、次のコマンドを実行して、必要なファイルが含まれているディレクトリに移動します。
cd scalardb-samples/scalardb-sample
データベースをセットアップする
以下の手順に従って、ScalarDB 用にデータベースを設定してください。
ScalarDB がサポートするデータベースの一覧については、データベースを参照してください。
- リレーショナルデータベース
- NewSQL データベース
- NoSQL データベース
リレーショナルデータベースを選択します。
- Db2
- MariaDB
- MySQL
- Oracle Database
- PostgreSQL
- SQL Server
- SQLite
Db2 をローカルで実行する
scalardb-samples/scalardb-sample ディレクトリの docker-compose.yml ファイルを使用して、Docker Compose で IBM Db2 を実行できます。
IBM Db2 を起動するには、次のコマンドを実行します。
docker compose up -d db2
ScalarDB を設定する
scalardb-samples/scalardb-sample ディレクトリの database.properties ファイルには、データベース設定が含まれています。database.properties ファイル内の Db2 のプロパティのコメントを解除して、設定が次のようになるようにしてください。
# For Db2
scalar.db.storage=jdbc
scalar.db.contact_points=jdbc:db2://localhost:50000/sample
scalar.db.username=db2inst1
scalar.db.password=db2inst1
MariaDB をローカルで実行する
scalardb-samples/scalardb-sample ディレクトリの docker-compose.yml ファイルを使用して、Docker Compose で MariaDB を実行できます。
MariaDB を起動するには、次のコマンドを実行します。
docker compose up -d mariadb
ScalarDB を設定する
scalardb-samples/scalardb-sample ディレクトリの database.properties ファイルには、データベース設定が含まれています。database.properties ファイル内の MariaDB のプロパティのコメントを解除して、設定が次のようになるようにしてください。
# For MariaDB
scalar.db.storage=jdbc
scalar.db.contact_points=jdbc:mariadb://localhost:3306
scalar.db.username=root
scalar.db.password=mariadb
MySQL をローカルで実行する
scalardb-samples/scalardb-sample ディレクトリの docker-compose.yml ファイルを使用して、Docker Compose で MySQL を実行できます。
MySQL を起動するには、次のコマンドを実行します。
docker compose up -d mysql
ScalarDB を設定する
scalardb-samples/scalardb-sample ディレクトリの database.properties ファイルには、データベース設定が含まれています。database.properties ファイル内の MySQL のプロパティのコメントを解除して、設定が次のようになるようにしてください。
# For MySQL
scalar.db.storage=jdbc
scalar.db.contact_points=jdbc:mysql://localhost:3306/
scalar.db.username=root
scalar.db.password=mysql
Oracle Database をローカルで実行する
scalardb-samples/scalardb-sample ディレクトリの docker-compose.yml ファイルを使用して、Docker Compose で Oracle Database を実行できます。
Oracle Database を起動するには、次のコマンドを実行します。
docker compose up -d oracle
ScalarDB を設定する
scalardb-samples/scalardb-sample ディレクトリの database.properties ファイルには、データベース設定が含まれています。database.properties ファイル内の Oracle データベースのプロパティのコメントを解除して、設定が次のようになるようにしてください。
# For Oracle
scalar.db.storage=jdbc
scalar.db.contact_points=jdbc:oracle:thin:@//localhost:1521/FREEPDB1
scalar.db.username=SYSTEM
scalar.db.password=Oracle
PostgreSQL をローカルで実行する
scalardb-samples/scalardb-sample ディレクトリの docker-compose.yml ファイルを使用して、Docker Compose で PostgreSQL を実行できます。
PostgreSQL を起動するには、次のコマンドを実行します。
docker compose up -d postgres
ScalarDB を設定する
scalardb-samples/scalardb-sample ディレクトリの database.properties ファイルには、データベース設定が含まれています。database.properties ファイル内の PostgreSQL のプロパティのコメントを解除して、設定が次のようになるようにしてください。
# For PostgreSQL
scalar.db.storage=jdbc
scalar.db.contact_points=jdbc:postgresql://localhost:5432/
scalar.db.username=postgres
scalar.db.password=postgres
SQL Server をローカルで実行する
scalardb-samples/scalardb-sample ディレクトリの docker-compose.yml ファイルを使用して、Docker Compose で SQL Server を実行できます。
SQL Server を起動するには、次のコマンドを実行します。
docker compose up -d sqlserver
ScalarDB を設定する
scalardb-samples/scalardb-sample ディレクトリの database.properties ファイルには、データベース設定が含まれています。database.properties ファイル内の SQL Server のプロパティのコメントを解除して、設定が次のようになるようにしてください。
# For SQL Server
scalar.db.storage=jdbc
scalar.db.contact_points=jdbc:sqlserver://localhost:1433;encrypt=true;trustServerCertificate=true
scalar.db.username=sa
scalar.db.password=SqlServer22
ScalarDB を設定する
SQLite はファイルベースの組み込みデータベースであるため、別途サーバーを起動する必要はありません。ScalarDB は最初の使用時にデータベースファイルを自動的に作成します。scalardb-samples/scalardb-sample ディレクトリの database.properties ファイルには、データベース設定が含まれています。database.properties ファイル内の SQLite のプロパティのコメントを解除して、設定が次のようになるようにしてください。# For Sqlite
scalar.db.storage=jdbc
scalar.db.contact_points=jdbc:sqlite:scalardb-sample.sqlite3?busy_timeout=10000
scalar.db.username=
scalar.db.password=
NewSQL データベースを選択します。
- AlloyDB
- Spanner
- TiDB
- YugabyteDB
AlloyDB をローカルで実行する
scalardb-samples/scalardb-sample ディレクトリの docker-compose.yml ファイルを使用して、Docker Compose で AlloyDB Omni を実行できます。
AlloyDB Omni を起動するには、次のコマンドを実行します。
docker compose up -d alloydb
ScalarDB を設定する
scalardb-samples/scalardb-sample ディレクトリの database.properties ファイルには、データベース設定が含まれています。database.properties ファイル内の AlloyDB のプロパティのコメントを解除して、設定が次のようになるようにしてください。
# For AlloyDB
scalar.db.storage=jdbc
scalar.db.contact_points=jdbc:postgresql://localhost:5432/
scalar.db.username=postgres
scalar.db.password=postgres
Spanner をローカルで実行する
scalardb-samples/scalardb-sample ディレクトリの docker-compose.yml ファイルを使用して、Docker Compose で Spanner Omni を実行できます。
Spanner Omni を起動するには、次のコマンドを実行します。
docker compose up -d spanner spanner-init
ScalarDB を設定する
scalardb-samples/scalardb-sample ディレクトリの database.properties ファイルには、データベース設定が含まれています。database.properties ファイル内の Spanner のプロパティのコメントを解除して、設定が次のようになるようにしてください。
# For Spanner
scalar.db.storage=jdbc
scalar.db.contact_points=jdbc:cloudspanner://localhost:15000/databases/test-db;isExperimentalHost=true;usePlainText=true
scalar.db.username=
scalar.db.password=
TiDB をローカルで実行する
TiUP ツールを使用して TiDB をローカルで実行できます。インストール手順については、TiUP のインストールを参照してください。
TiDB を起動するには、次のコマンドを実行します。
tiup playground v8.5 --without-monitor
ScalarDB を設定する
scalardb-samples/scalardb-sample ディレクトリの database.properties ファイルには、データベース設定が含まれています。database.properties ファイル内の TiDB のプロパティのコメントを解除して、設定が次のようになるようにしてください。
# For TiDB
scalar.db.storage=jdbc
scalar.db.contact_points=jdbc:mysql://localhost:4000/
scalar.db.username=root
scalar.db.password=
YugabyteDB をローカルで実行する
scalardb-samples/scalardb-sample ディレクトリの docker-compose.yml ファイルを使用して、Docker Compose で YugabyteDB を実行できます。
YugabyteDB を起動するには、次のコマンドを実行します。
docker compose up -d yugabyte
ScalarDB を設定する
scalardb-samples/scalardb-sample ディレクトリの database.properties ファイルには、データベース設定が含まれています。database.properties ファイル内の YugabyteDB のプロパティのコメントを解除して、設定が次のようになるようにしてください。
# For Yugabyte
scalar.db.storage=jdbc
scalar.db.contact_points=jdbc:yugabytedb://localhost:5433/postgres
scalar.db.username=yugabyte
scalar.db.password=yugabyte
NoSQL データベースを選択します。
- Cassandra
- Cosmos DB for NoSQL
- DynamoDB
Cassandra をローカルで実行する
scalardb-samples/scalardb-sample ディレクトリの docker-compose.yml ファイルを使用して、Docker Compose で Apache Cassandra を実行できます。
Apache Cassandra を起動するには、次のコマンドを実行します。
docker compose up -d cassandra
ScalarDB を設定する
scalardb-samples/scalardb-sample ディレクトリの database.properties ファイルには、データベース設定が含まれています。database.properties ファイル内の Cassandra のプロパティのコメントを解除して、設定が次のようになるようにしてください。
# For Cassandra
scalar.db.storage=cassandra
scalar.db.contact_points=localhost
scalar.db.username=cassandra
scalar.db.password=cassandra
Azure Cosmos DB for NoSQL を使用するには、Azure アカウントが必要です。Azure アカウントをお持ちでない場合は、Azure Cosmos DB アカウントの作成をご覧ください。
Cosmos DB for NoSQL を設定する
公式ドキュメントのデフォルトの一貫性レベルの設定に従って、デフォルトの一貫性レベルを Strong に設定します。
ScalarDB を設定する
scalardb-samples/scalardb-sample ディレクトリの database.properties ファイルには、データベース設定が含まれています。以下の説明に従って scalar.db.contact_points と scalar.db.password の値を変更してください。
# For Cosmos DB
scalar.db.storage=cosmos
scalar.db.contact_points=<COSMOS_DB_FOR_NOSQL_URI>
scalar.db.password=<COSMOS_DB_FOR_NOSQL_KEY>
Azure Cosmos DB アカウントのプライマリキーまたはセカンダリキーを scalar.db.password の値として使用できます。
Amazon DynamoDB Local を実行する
scalardb-samples/scalardb-sample ディレクトリの docker-compose.yml ファイルを使用して、Docker Compose で Amazon DynamoDB Local を実行できます。
Amazon DynamoDB Local を起動するには、次のコマンドを実行します。
docker compose up -d dynamodb
ScalarDB を設定する
scalardb-samples/scalardb-sample ディレクトリの database.properties ファイルには、データベース設定が含まれています。database.properties ファイル内の Amazon DynamoDB Local のプロパティのコメントを解除して、設定が次のようになるようにしてください。
# 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://localhost:8000
ScalarDB の設定の包括的なリストについては、ScalarDB Core の 設定を参照してください。
スキーマを作成またはインポートする
ScalarDB には、実装固有のデータモデルとスキーマにマップされる独自のデータモデルとスキーマがあります。
- データベーススキーマを作成する必要がありますか? ScalarDB Schema Loader を参照してください。
- 既存のデータベースをインポートする必要がありますか? ScalarDB Schema Loader を使用して既存のテーブルを ScalarDB にインポートするを参照してください。
必要に応じて初期データをロードする
ScalarDB Data Loader は、ScalarDB でデータのインポートとエクスポートを行うユーティリティです。
- データベースにデータをインポートする必要がありますか? データのインポートを参照してください。
- データベースからデータをエクスポートする必要がありますか? データのエクスポートを参照してください。
Javaを使用してトランザクションを実行する
- 1フェーズコミットインターフェイスを使用してトランザクションを実行しますか? ScalarDB Java API ガイドを参照してください。
- 2フェーズコミットインターフェイスを使用してトランザクションを実行しますか? 2フェーズコミットインターフェースを使用したトランザクションを参照してください。