ScalarDB Cluster を介してトランザクションを実行する
このページは英語版のページが機械翻訳されたものです。英語版との間に矛盾または不一致がある場合は、英語版を正としてください。
このガイドでは、ScalarDB プロパティファイルを設定し、ScalarDB Cluster を使用して1フェーズまたは2フェーズのコミットインターフェイスを介してトランザクションを実行するためのスキーマを作成する方法について説明します。
ScalarDB Cluster のライセンスキー (試用ライセンスまたは商用ライセンス) が必要です。ライセンスキーをお持ちでない場合は、お問い合わせください。
準備
このガイドでは、ScalarDB サンプルリポジトリのサンプル を使用して、データベースと ScalarDB Cluster をスタンドアロンモードでセットアップします。
スタンドアロンモードの ScalarDB Cluster は、主に開発とテストを目的としています。
ScalarDB サンプルリポジトリのクローンを作成する
ターミナル を開き、次のコマンドを実行して ScalarDB サンプルリポジトリのクローンを作成します。
git clone https://github.com/scalar-labs/scalardb-samples
次に、次のコマンドを実行して、必要なファイルが含まれているディレクトリに移動します。
cd scalardb-samples/scalardb-cluster-standalone-mode
データベースをセットアップする
データベースを選択し、指示に従って ScalarDB Cluster 用に設定します。
ScalarDB がサポートするデータベースの一覧については、データベースを参照してください。
- MySQL
- PostgreSQL
- Oracle Database
- SQL Server
- DynamoDB
- Cosmos DB for NoSQL
- Cassandra
MySQL をローカルで実行する
scalardb-samples/scalardb-cluster-standalone-mode ディレクトリの docker-compose.yaml ファイルを使用して、Docker Compose で MySQL を実行できます。
MySQL を起動するには、次のコマンドを実行します。
docker compose up -d mysql
ScalarDB Cluster を設定する
scalardb-samples/scalardb-cluster-standalone-mode ディレクトリの scalardb-cluster-node.properties ファイルには、ScalarDB Cluster のデータベース設定が含まれています。scalardb-cluster-node.properties ファイル内の MySQL のプロパティのコメントを解除して、設定が次のようになるようにしてください。
# For MySQL
scalar.db.storage=jdbc
scalar.db.contact_points=jdbc:mysql://mysql-1:3306/
scalar.db.username=root
scalar.db.password=mysql
PostgreSQL をローカルで実行する
scalardb-samples/scalardb-cluster-standalone-mode ディレクトリの docker-compose.yaml ファイルを使用して、Docker Compose で PostgreSQL を実行できます。
PostgreSQL を起動するには、次のコマンドを実行します。
docker compose up -d postgres
ScalarDB Cluster を設定する
scalardb-samples/scalardb-cluster-standalone-mode ディレクトリの scalardb-cluster-node.properties ファイルには、ScalarDB Cluster のデータベース設定が含まれています。scalardb-cluster-node.properties ファイル内の PostgreSQL のプロパティのコメントを解除して、設定が次のようになるようにしてください。
# For PostgreSQL
scalar.db.storage=jdbc
scalar.db.contact_points=jdbc:postgresql://postgres-1:5432/
scalar.db.username=postgres
scalar.db.password=postgres
Oracle Database をローカルで実行する
scalardb-samples/scalardb-cluster-standalone-mode ディレクトリの docker-compose.yaml ファイルを使用して、Docker Compose で Oracle Database を実行できます。
Oracle Database を起動するには、次のコマンドを実行します。
docker compose up -d oracle
ScalarDB Cluster を設定する
scalardb-samples/scalardb-cluster-standalone-mode ディレクトリの scalardb-cluster-node.properties ファイルには、ScalarDB Cluster のデータベース設定が含まれています。scalardb-cluster-node.properties ファイル内の Oracle データベースのプロパティのコメントを解除して、設定が次のようになるようにしてく ださい。
# 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
SQL Server をローカルで実行する
scalardb-samples/scalardb-cluster-standalone-mode ディレクトリの docker-compose.yaml ファイルを使用して、Docker Compose で SQL Server を実行できます。
SQL Server を起動するには、次のコマンドを実行します。
docker compose up -d sqlserver
ScalarDB Cluster を設定する
scalardb-samples/scalardb-cluster-standalone-mode ディレクトリの scalardb-cluster-node.properties ファイルには、ScalarDB Cluster のデータベース設定が含まれています。scalardb-cluster-node.properties ファイル内の SQL Server のプロパティのコメントを解除して、設定が次のようになるようにしてください。
# 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
Amazon DynamoDB Local を実行する
scalardb-samples/scalardb-cluster-standalone-mode ディレクトリの docker-compose.yaml ファイルを使用して、Docker Compose で Amazon DynamoDB Local を実行できます。
Amazon DynamoDB Local を起動するには、次のコマンドを実行します。
docker compose up -d dynamodb
ScalarDB Cluster を設定する
scalardb-samples/scalardb-cluster-standalone-mode ディレクトリの scalardb-cluster-node.properties ファイルには、ScalarDB Cluster のデータベース設定が含まれています。scalardb-cluster-node.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://dynamodb-1:8000
Azure Cosmos DB for NoSQL を使用するには、Azure アカウントが必要です。Azure アカウントがない場合は、Azure Cosmos DB アカウントを作成するにアクセスしてください。
Cosmos DB for NoSQL を設定する
既定の整合性レベルを構成するの公式ドキュメントに従って、既定の整合性レベル を 強力 に設定します。
ScalarDB Cluster を設定する
次の手順では、ローカル環境に JDK が適切にインストールおよび設定されており、Azure で Cosmos DB for NoSQL アカウントが適切に設定されていることを前提としています。
scalardb-samples/scalardb-cluster-standalone-mode ディレクトリの scalardb-cluster-node.properties ファイルには、ScalarDB Cluster のデータベース設定が含まれています。説明に従って、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 の値として使用できます。
Cassandra をローカルで実行する
scalardb-samples/scalardb-cluster-standalone-mode ディレクトリの docker-compose.yaml ファイルを使用して、Docker Compose で Apache Cassandra を実行できます。
Apache Cassandra を起動するには、次のコマンドを実行します。
docker compose up -d cassandra
ScalarDB Cluster を設定する
scalardb-samples/scalardb-cluster-standalone-mode ディレクトリの scalardb-cluster-node.properties ファイルには、ScalarDB Cluster のデータベース設定が含まれています。scalardb-cluster-node.properties ファイル内の Cassandra のプロパティのコメントを解除して、設定が次のようになるようにしてください。
# For Cassandra
scalar.db.storage=cassandra
scalar.db.contact_points=cassandra-1
scalar.db.username=cassandra
scalar.db.password=cassandra
ScalarDB Cluster の設定の包括的なリストについては、ScalarDB Cluster の設定 を参照してください。
スタンドアロンモードで ScalarDB Cluster を設定する
スタンドアロンモードで ScalarDB Cluster を設定するには、ライセンスキーを設定してから ScalarDB Cluster を起動する必要があります。
ライセンスキーの設定
プロパティファイルで ScalarDB Cluster のライセンスキー (試用ライセンスまたは商用ライセンス) を設定します。詳細については、製品ライセンスキーの設定方法を参照してください。
スタンドアロンモードで ScalarDB Cluster を起動
スタンドアロンモードで ScalarDB Cluster を起動するには、次のコマンドを実行します。
ScalarDB Cluster のその他の設定を変更する場合は、以下のコマンドを実行する前に scalardb-cluster-node.properties ファイルを更新してください。
docker compose up -d scalardb-cluster-node
スキーマを作成またはインポートする
ScalarDB には、実装固有のデータモデルとスキーマにマップされる独自のデータモデ ルとスキーマがあります。
- データベーススキーマを作成する必要がありますか? ScalarDB Schema Loader を参照してください。
- 既存のデータベースをインポートする必要がありますか? ScalarDB Schema Loader を使用して既存のテーブルを ScalarDB にインポートするを参照してください。
必要に応じて初期データをロードする
ScalarDB Data Loader は、ScalarDB でデータのインポートとエクスポートを行うユーティリティです。
Data Loader は現在 ScalarDB Core 上に構築されているため、バックエンドデータベースとの間でのみ直接データのインポートとエクスポートを行うことができます。そのため、ScalarDB Cluster を通じてデータのインポートとエクスポートを行うことはできません。
- データベースにデータをインポートする必要がありますか? データのインポートを参照してください。
- データベースからデータをエクスポートする必要がありますか? データのエクスポートを参照してください。
トランザクションを実行する
1フェーズまたは2フェーズのコミットインターフェースを使用してトランザクションを実行できます。トランザクションを実行する方法を選択してください。
モノリシックなアプリケーションを構築する場合は、1フェーズコミットインターフェースを使用してください。一方、マイクロサービスアプリケーションを構築する場合は、マイクロサービスにおける ScalarDB Cluster のデプロイパターンを読んで、どちらを使用するかを決定してください。
- Java
- .NET
1フェーズコミットインターフェース
1フェーズコミットインターフェイスを使用してトランザクションを実行する方法の詳細については、ScalarDB Java API ガイドを参照してください。
1フェーズコミットインターフェースを使用してトランザクションを実行するには、次のサンプルチュートリアルを参照してください。
2フェーズコミットインターフェース
2フェーズコミットインターフェイスを使用してトランザクションを実行する方法の詳細については、2フェーズコミットインターフェイスを使用したトランザクションを参照してください。
2フェーズコミットインターフェースを使用してトランザクションを実行するには、次のサンプルチュートリアルを参照してください。
詳細
ScalarDB Cluster を使用してトランザクションを実行する方法の詳細については、以下を参照してください。
1フェーズコミットインターフェース
1フェーズコミットインターフェイスを使用してトランザクションを実行する方法の詳細については、ScalarDB Cluster .NET Client SDK での分散トランザクションをはじめようを参照してください。
2フェーズコミットインターフェース
2フェーズコミットインターフェイスを使用してトランザクションを実行する方法の詳細については、ScalarDB Cluster .NET Client SDK の2フェーズコミットインターフェイスを使用した分散トランザクションをはじめようを参照してください。