Upgrade to Pro — share decks privately, control downloads, hide ads and more …

5. ScalarDB Cluster Deployment - Schema Loader

5. ScalarDB Cluster Deployment - Schema Loader

本資料では、ScalarDB Toolsの一つである「Schema Loader」を使用して、ScalarDB Clusterにテーブルを作成する方法について解説しています。

JSON形式のスキーマ定義ファイルを用意し、コマンドラインから実行することで、バックエンドのデータベースにテーブルを展開する手順を、具体的な実行例とともに紹介します。

【対象バージョン】
ScalarDB Cluster 3.15.1

【主な内容】
・ScalarDB Schema Loaderの概要
・実行に必要な主要パラメータ(設定ファイル、スキーマファイルなど)
・実行ファイルのダウンロード先と適切なファイルの選び方
・ScalarDB Clusterへの接続設定ファイル(scalardb.properties)の記述例と注意点
・スキーマ定義ファイル(JSON)の構成と記述例
・具体的なコマンド実行例
・Schema Loaderの各種実行オプション(テーブルの変更、削除、インポートなど)

Avatar for Scalar, Inc.

Scalar, Inc. PRO

May 14, 2026

More Decks by Scalar, Inc.

Other Decks in Technology

Transcript

  1. 3 変更履歴 Version Date Name Supported products and versions Description

    1.0 2025-02-25 Satoshi Hikida ScalarDB Cluster 3.15.1 First draft 1.1 2025-05-16 Yuji Ochiai ScalarDB Cluster 3.15.1 Re-edited
  2. ScalarDB Schema Loader 5 スキーマ定義ファイル(JSON) Databases MySQL PostgreSQL { "ns_PostgreSQL.point_history":

    { "transaction": true, "partition-key": [ "user_id" ], "clustering-key": [ "issued_datetime DESC" ], { "ns_mysql.point_pending": { "transaction": true, "partition-key": [ "user_id" ], "clustering-key": [ "valid_from ASC" ], "columns": { "user_id": "TEXT", "valid_from": "BIGINT", "valid_to": "BIGINT", "points": "INT" } } } { "ns_mysql.point_active": { "transaction": true, "partition-key": [ "user_id" ], "clustering-key": [ "valid_to ASC" ], "columns": { "user_id": "TEXT", "valid_to": "BIGINT", "points": "INT", "remained_points": "INT" } } } { "ns_mysql.point_summary": { "transaction": true, "partition-key": [ "user_id" ], "columns": { "user_id": "TEXT", "available_points": "INT", "points_expiring_soon": "BIGINT", "points_to_be_earned": "BIGINT", "points_time_limited": "INT", "updated_date": "BIGINT" ScalarDB Tools Schema Loader
  3. #Command Usage java -jar scalardb-cluster-schema-loader-<VERSION>.jar --config <PATH_TO_SCALARDB_PROPERTIES_FILE> -f <PATH_TO_SCHEMA_FILE> [--coordinator]

    6 ScalarDB Schema Loaderの主要パラメータ ScalarDB Tools Schema Loader本体 ScalarDB Clusterへの接続設定ファイル スキーマ定義ファイル(JSON)
  4. #Command Usage java -jar scalardb-cluster-schema-loader-<VERSION>.jar --config <PATH_TO_SCALARDB_PROPERTIES_FILE> -f <PATH_TO_SCHEMA_FILE> [--coordinator]

    7 ScalarDB Schema Loader ScalarDB Tools Schema Loader本体 https://github.com/scalar-labs/scalardb/releases X ScalarDB Core環境⽤ ScalarDB Cluster環境⽤ ダウンロード先: https://github.com/scalar-labs/scalardb/releases ScalarDB Cluster環境⽤としてscalardb-cluster-schema-loader-<version>-all.jarを利⽤
  5. #Command Usage java -jar scalardb-cluster-schema-loader-<VERSION>.jar --config <PATH_TO_SCALARDB_PROPERTIES_FILE> -f <PATH_TO_SCHEMA_FILE> [--coordinator]

    scalardb.properties (設定例、名称は任意です。) 注意:別ツールSQL CLIと設定が似ている 8 ScalarDB Clusterへの接続設定ファイル ScalarDB Tools scalar.db.transaction_manager=cluster scalar.db.contact_points=indirect:<IP ADDRESS/HOSTNAME> Cluster Schema Loader scalar.db.sql.connection_mode=cluster scalar.db.sql.cluster_mode.contact_points=indirect:<IP ADDRESS/HOSTNAME> 設定オプションの詳細はこちら https://scalardb.scalar-labs.com/docs/latest/scalardb-cluster/devel oper-guide-for-scalardb-cluster-with-java-api#client-configurations
  6. スキーマ定義ファイル(JSON) { "ns_mysql.employee": { "transaction": true, "partition-key": [ "employee_id" ],

    "clustering-key": [ "dept_id ASC" ], "columns": { "employee_id": "INT", "dept_id": "INT", "first_name": "TEXT", "last_name": "TEXT" } } } 9 ScalarDB Schema Loader Namespace ns_mysql Table Name employee transaction TRUE ID Column Name Data Type Partition Key Clustering Key Secondary Index CK Order 1 employee_id INT TRUE FALSE FALSE 2 dept_id INT FALSE TRUE FALSE ASC 3 first_name TEXT FALSE FALSE FALSE 4 last_name TEXT FALSE FALSE FALSE 5 FALSE FALSE FALSE 6 FALSE FALSE FALSE 7 FALSE FALSE FALSE
  7. #Command Usage java -jar scalardb-cluster-schema-loader-<VERSION>.jar --config <PATH_TO_SCALARDB_PROPERTIES_FILE> -f <PATH_TO_SCHEMA_FILE> [--coordinator]

    #Example java -jar scalardb-cluster-schema-loader-3.15.1.jar --config scalardb.properties -f schema.json --coordinator ※ ScalarDB Cluster 3.15.1環境の例です。 10 ScalarDB Schema Loaderの実⾏例 ScalarDB Tools 詳細はこちら(説明に利⽤されているSchema loaderはScalarDB Core環境⽤) https://scalardb.scalar-labs.com/docs/latest/schema-loader/
  8. 11 ScalarDB Schema Loaderのオプション ScalarDB Tools Usage: java -jar scalardb-schema-loader-<VERSION>.jar

    [-D] [--coordinator ] [--no-backup] [--no-scaling] -c=<configPath> [-f=<schemaFile>][--ru=<ru>] Create/Delete schemas in the storage defined in the config file -A, --alter テーブルの変更: 既存のテーブルに新しい列を追加し、セカンダリ インデックスを作成/削除します。提供されたテーブル スキーマと既存のスキーマを⽐較して、追 加する必要がある列と作成または削除する必要があるインデックスを決定します。 -c, --config=<configPath> ScalarDB設定ファイルへのパス --coordinator コーディネーターテーブルの作成/削除/修復 -D, --delete-all テーブルを削除 -f, --schema-file=<schemaFile> スキーマ json ファイルへのパス -I, --import テーブルのインポート: 既存の⾮ ScalarDB テーブルを ScalarDB にインポートします。 --no-backup 継続的なバックアップを無効にする (DynamoDB でサポート) --no-scaling ⾃動スケーリングを無効にする (DynamoDB、Cosmos DB でサポート) --repair-all テーブルの修復: 既存のテーブルのテーブルメタデータを修復します。Cosmos DB を使⽤する場合は、各テーブルに添付されているストアド プロシージャも修復し ます。 --ru=<ru> ベースリソースUnit (DynamoDB、Cosmos DB でサポート) PostgreSQL固有オプションは省略しています。全てのオプションについては下記をご覧ください。 https://scalardb.scalar-labs.com/docs/latest/schema-loader#run-schema-loader