ScalarDB Cluster の設定
このページは英語版のページが機械翻訳されたものです。英語版との間に矛盾または不一致がある場合は、英語版を正としてください。
このドキュメントでは、ScalarDB Cluster の設定について説明します。ScalarDB Cluster は複数のクラスターノードで構成されており、各クラスターノードを設定する必要があります。設定はプロパティファイルで指定する必要があります。
クラスター設定
このセクションでは、ScalarDB Cluster の設定について説明します。
一般的な設定
ScalarDB Cluster では、次の一般的な設定が利用可能です。
トランザクション管理設定
transaction_manager
- フィールド:
scalar.db.transaction_manager - 説明: ScalarDB のトランザクションマネージャー。Consensus Commit を使用するには
consensus-commitを指定し、非トランザクションストレージ操作を実行する にはsingle-crud-operationを指定します。single-crud-operationを使用する場合、scalar.db.consensus_commitプレフィックスの下の設定は無視されることに注意してください。 - デフォルト値:
consensus-commit
isolation_level
- フィールド:
scalar.db.consensus_commit.isolation_level - 説明: Consensus Commit に使用される分離レベル。
SNAPSHOT、SERIALIZABLEまたはREAD_COMMITTEDのいずれかを指定できます。 - デフォルト値:
SNAPSHOT
coordinator.namespace
- フィールド:
scalar.db.consensus_commit.coordinator.namespace - 説明: Consensus Commit に使用される Coordinator テーブルの名前空間名。
- デフォルト値:
coordinator
ノード設定
cluster.membership.type
- フィールド:
scalar.db.cluster.membership.type - 説明: メンバーシップの種類。現在、
KUBERNETESのみ指定できます。 - デフォルト値:
KUBERNETES
cluster.membership.kubernetes.endpoint.namespace_name
- フィールド:
scalar.db.cluster.membership.kubernetes.endpoint.namespace_name - 説明: この設定は、
KUBERNETESメンバーシップタイプ用です。endpoint resource の名前空間名。 - デフォルト値:
default
cluster.membership.kubernetes.endpoint.name
- フィールド:
scalar.db.cluster.membership.kubernetes.endpoint.name - 説明: この設定は、
KUBERNETESメンバーシップタイプ用です。メンバーシップ情報を取得するための endpoint resource の名前。 - デフォルト値: empty
cluster.node.decommissioning_duration_secs
- フィールド:
scalar.db.cluster.node.decommissioning_duration_secs - 説明: ScalarDB Cluster ノード終了時に実際に廃止されるまでの期間 (秒単位)。
- デフォルト値:
30
cluster.node.grpc.max_inbound_message_size
- フィールド:
scalar.db.cluster.node.grpc.max_inbound_message_size - 説明: 受信可能な最大メッセージサイズ。
- デフォルト値: gRPCのデフォルト値
cluster.node.grpc.max_inbound_metadata_size
- フィールド:
scalar.db.cluster.node.grpc.max_inbound_metadata_size - 説明: 受信できるメタデータの最大サイズ。
- デフォルト値: gRPCのデフォルト値
cluster.node.port
- フィールド:
scalar.db.cluster.node.port - 説明: ScalarDB Cluster ノードのポート番号。
- デフォルト値:
60053
cluster.node.prometheus_exporter_port
- フィールド:
scalar.db.cluster.node.prometheus_exporter_port - 説明: Prometheus エクスポーターのポート番号。
- デフォルト値:
9080
cluster.grpc.deadline_duration_millis
- フィールド:
scalar.db.cluster.grpc.deadline_duration_millis - 説明: gRPC の期限期間 (ミリ秒単位)。
- デフォルト値:
60000(60秒)
cluster.node.standalone_mode.enabled
- フィールド:
scalar.db.cluster.node.standalone_mode.enabled - 説明: スタンドアロンモードが有効かどうか。スタンドアロンモードが有効になっている場合、メンバーシップ設定 (
scalar.db.cluster.membership.*) は無視されることに注意してください。 - デフォルト値:
false
transaction.enabled
- フィールド:
scalar.db.transaction.enabled - 説明: トランザクション機能が有効かどうか。たとえば、埋め込み機能のみを使用する場合は、このプロパティを
falseに設定できます。 - デフォルト値:
true
cluster.node.scanner_management.expiration_time_millis
- フィールド:
scalar.db.cluster.node.scanner_management.expiration_time_millis - 説明: ScalarDB Cluster ノードは進行中のスキャナーを管理しています。このプロセスは、リソースリークを防ぐために、長時間アイドル状態のスキャナーを期限切れにします。この設定では、このスキャナー管理機能の有効期限をミリ秒単位で指定します。
- デフォルト値:
60000(60秒)
cluster.node.grpc.max_connection_age_millis
- フィールド:
scalar.db.cluster.node.grpc.max_connection_age_millis - 説明: チャネルが存在できる最大時間。古いコネクションをプロアクティブに閉じて更新し、サーバー間の不均衡を防ぐのに役立ちます。
- デフォルト値:
Integer.MAX_VALUE(無制限)
cluster.node.grpc.max_connection_age_grace_millis
- フィールド:
scalar.db.cluster.node.grpc.max_connection_age_grace_millis - 説明: チャネルが最大期間に到達した後の猶予期間。コネクションが閉じられる前に、進行中の RPC が完了するための猶予期間を提供します。
- デフォルト値:
Integer.MAX_VALUE(無制限)
パフォーマンス関連の設定
Consensus Commit トランザクションマネージャーでは、次のパフォーマンス関連の設定が利用できます。
parallel_executor_count
- フィールド:
scalar.db.consensus_commit.parallel_executor_count - 説明: 並列実行のためのエグゼキュータ (スレッド) の数。この数値は、ScalarDB Cluster ノード内または ScalarDB Core プロセス内のトランザクション全体のスレッド数の合計を示します。
- デフォルト値:
128
parallel_preparation.enabled
- フィールド:
scalar.db.consensus_commit.parallel_preparation.enabled - 説明: 準備フェーズが並行して実行されるかどうか。
- デフォルト値:
true
parallel_validation.enabled
- フィールド:
scalar.db.consensus_commit.parallel_validation.enabled - 説明: 検証フェーズ (
EXTRA_READ内) が並列で実行されるかどうか。 - デフォルト値:
scalar.db.consensus_commit.parallel_commit.enabledの値
parallel_commit.enabled
- フィールド:
scalar.db.consensus_commit.parallel_commit.enabled - 説明: コミットフェーズが並列で実行されるかどうか。
- デフォルト値:
true
parallel_rollback.enabled
- フィールド:
scalar.db.consensus_commit.parallel_rollback.enabled - 説明: ロールバックフェーズが並列で実行されるかどうか。
- デフォルト値:
scalar.db.consensus_commit.parallel_commit.enabledの値
async_commit.enabled
- フィールド:
scalar.db.consensus_commit.async_commit.enabled - 説明: コミットフェーズが非同期で実行されるかどうか。
- デフォルト値:
false
async_rollback.enabled
- フィールド:
scalar.db.consensus_commit.async_rollback.enabled - 説明: ロールバックフェーズが非同期に実行されるかどうか。
- デフォルト値:
scalar.db.consensus_commit.async_commit.enabledの値
parallel_implicit_pre_read.enabled
- フィールド:
scalar.db.consensus_commit.parallel_implicit_pre_read.enabled - 説明: 暗黙的な事前読み取りが並列で実行されるかどうか。
- デフォルト値:
true
one_phase_commit.enabled
- フィールド:
scalar.db.consensus_commit.one_phase_commit.enabled - 説明: 1フェーズコミット最適化が有効かどうか。
- デフォルト値:
false
coordinator.write_omission_on_read_only.enabled
- フィールド:
scalar.db.consensus_commit.coordinator.write_omission_on_read_only.enabled - 説明: 読み取り専用トランザクションに対して Coordinator テーブルへの書き込み省略最適化を有効にするかどうか。この最適化は、データを変更しない読み取り専用トランザクションに有効であり、Coordinator テーブルへの不要な書き込みを回避します。
- デフォルト値:
true
coordinator.group_commit.enabled
- フィールド:
scalar.db.consensus_commit.coordinator.group_commit.enabled - 説明: トランザクション状態のコミットがバッチモードで実行されるかどうか。この機能は、2フェーズコミットインターフェースでは使用できません。
- デフォルト値:
false
coordinator.group_commit.slot_capacity
- フィールド:
scalar.db.consensus_commit.coordinator.group_commit.slot_capacity - 説明: グループコミット機能のグループ内のスロットの最大数。値が大きいとグループコミットの効率は向上しますが、待ち時間が増加し、トランザクションの競合が発生する可能性も高くなります。1
- デフォルト値:
20
coordinator.group_commit.group_size_fix_timeout_millis
- フィールド:
scalar.db.consensus_commit.coordinator.group_commit.group_size_fix_timeout_millis - 説明: グループ内のスロットのサイズを固定するためのタイムアウト。値が大きいとグループコミットの効率が向上しますが、待ち時間が増加し、トランザクションの競合が発生する可能性も高くなります。1
- デフォルト値:
40
coordinator.group_commit.delayed_slot_move_timeout_millis
- フィールド:
scalar.db.consensus_commit.coordinator.group_commit.delayed_slot_move_timeout_millis - 説明: 遅延スロットをグループから別の分離グループに移動して、元のグループが遅延トランザクションの影響を受けないようにするためのタイムアウト。値が大きいとグループコミットの効率が向上しますが、待ち時間が増加し、トランザクションの競合が発生する可能性も高くなります。1
- デフォルト値:
1200
coordinator.group_commit.old_group_abort_timeout_millis
- フィールド:
scalar.db.consensus_commit.coordinator.group_commit.old_group_abort_timeout_millis - 説明: 進行中の古いグループをアボートするためのタイムアウト。値が小さいと、積極的なアボートによってリソースの消費量が減りますが、長時間実行されるトランザクションで不要なアボートが発生する可能性も高くなります。
- デフォルト値:
60000
coordinator.group_commit.timeout_check_interval_millis
- フィールド:
scalar.db.consensus_commit.coordinator.group_commit.timeout_check_interval_millis - 説明: グループコミット関連のタイムアウトをチェックする間隔。
- デフォルト値:
20
coordinator.group_commit.metrics_monitor_log_enabled
- フィールド:
scalar.db.consensus_commit.coordinator.group_commit.metrics_monitor_log_enabled - 説明: グループコミットのメトリックが定期的にログに記録されるかどうか。
- デフォルト値:
false
ストレージ関連の設定
ScalarDB には、複数のストレージ実装をサポートするストレージ (データベース) 抽象化レイヤーがあります。scalar.db.storage プロパティを使用してストレージ実装を指定できます。
複数のストレージの使用の詳細については、マルチストレージ設定を参照してください。
データベースを選択して、各ストレージで使用可能な設定を確認します。
- JDBC databases
- DynamoDB
- Cosmos DB for NoSQL
- Cassandra
- S3
- Blob Storage
- Cloud Storage
JDBC データベースでは次の設定を使用できます。
storage
- フィールド:
scalar.db.storage - 説明:
jdbcを指定する必要があります。 - デフォルト値: empty
contact_points
- フィールド:
scalar.db.contact_points - 説明: JDBC 接続 URL。
- デフォルト値: empty
username
- フィールド:
scalar.db.username - 説明: データベースにアクセスするためのユーザー名。
- デフォルト値: empty
password
- フィールド:
scalar.db.password - 説明: データベースにアクセスするためのパスワード。
- デフォルト値: empty
jdbc.connection_pool.min_idle
- フィールド:
scalar.db.jdbc.connection_pool.min_idle - 説明: コネクションプール内のアイドルコネクションの最小数。
- デフォルト値:
20
jdbc.connection_pool.max_idle
- フィールド:
scalar.db.jdbc.connection_pool.max_idle - 説明: コネクションプール内でアイドル状態のままにできるコネクションの最大数。
- デフォルト値:
50
jdbc.connection_pool.max_total
- フィールド:
scalar.db.jdbc.connection_pool.max_total - 説明: コネクションプールで同時にアクティブにできるアイドルコネクションと利用中コネクションの最大合計数。制限がない場合は負の値を使用します。
- デフォルト値:
200
jdbc.prepared_statements_pool.enabled
- フィールド:
scalar.db.jdbc.prepared_statements_pool.enabled - 説明: このプロパティを
trueに設定す ると、準備されたステートメントのプールが有効になります。 - デフォルト値:
false
jdbc.prepared_statements_pool.max_open
- フィールド:
scalar.db.jdbc.prepared_statements_pool.max_open - 説明: ステートメントプールから同時に割り当てることができるオープンステートメントの最大数。制限がない場合は負の値を使用します。
- デフォルト値:
-1
jdbc.isolation_level
- フィールド:
scalar.db.jdbc.isolation_level - 説明: JDBC の分離レベル。
READ_COMMITTED、REPEATABLE_READ、またはSERIALIZABLEを指定できます。 - デフォルト値: 基盤データベース固有
jdbc.table_metadata.connection_pool.min_idle
- フィールド:
scalar.db.jdbc.table_metadata.connection_pool.min_idle - 説明: テーブルメタデータのコネクションプール内のアイドルコネクションの最小数。
- デフォルト値:
5
jdbc.table_metadata.connection_pool.max_idle
- フィールド:
scalar.db.jdbc.table_metadata.connection_pool.max_idle - 説明: テーブルメタデータのコネクションプール内でアイドル状態のままにできるコネクションの最大数。
- デフォルト値:
10
jdbc.table_metadata.connection_pool.max_total
- フィールド:
scalar.db.jdbc.table_metadata.connection_pool.max_total - 説明: テーブルメタデータのコネクションプールで同時にアクティブにできるアイドルコネクションと利用中コネクションの最大合計数。制限がない場合は負の値を使用します。
- デフォルト値:
25
jdbc.admin.connection_pool.min_idle
- フィールド:
scalar.db.jdbc.admin.connection_pool.min_idle - 説明: 管理者のコネクションプール内のアイドルコネクションの最小数。
- デフォルト値:
5
jdbc.admin.connection_pool.max_idle
- フィールド:
scalar.db.jdbc.admin.connection_pool.max_idle - 説明: 管理者のコネクションプール内でアイドル状態のままにできるコネクションの最大数。
- デフォルト値:
10
jdbc.admin.connection_pool.max_total
- フィールド:
scalar.db.jdbc.admin.connection_pool.max_total - 説明: 管理者のコネクションプールで同時にアクティブにできるアイドルコネクションと利用中コネクションの最大合計数。制限がない場合は負の値を使用します。
- デフォルト値:
25
jdbc.db2.variable_key_column_size
- フィールド:
scalar.db.jdbc.db2.variable_key_column_size - 説明: IBM Db2 で主キーまたはセカンダリキーとして使用される場合の
TEXT列とBLOB列の列サイズ。最小 64 バイト。 - デフォルト値:
128
jdbc.db2.time_column.default_date_component
- フィールド:
scalar.db.jdbc.db2.time_column.default_date_component - 説明: IBM Db2 で
TIMEデータを格納するために使用される日付コンポーネントの値。ScalarDB のTIME型データを格納するために IBM Db2 のTIMESTAMP型が使用されるため (小数秒の精度を提供するため)、ScalarDB は比較と並べ替えを容易にするために、同じ日付コンポーネント値を持つTIMEデータを保存します。 - デフォルト値:
1970-01-01
SQLite3
SQLite3 を JDBC データベースとして使用している場合は、scalar.db.contact_points を次のように設定する必要があります。
scalar.db.contact_points=jdbc:sqlite:<SQLITE_DB_FILE_PATH>?busy_timeout=10000&journal_mode=WAL
他の JDBC データベースとは異なり、SQLite3 doesn't fully support concurrent access。SQLITE_BUSY によって内部的に頻繁に発生するエラーを回避するには、busy_timeout パラメータを設定してください。また、journal_mode=WAL を設定して先行書き込みログ (WAL) を有効にすると、読み取りと書き込みを同時に実行でき、ロックの競合が軽減されます。SQLite3 は WAL モードでも書き込みをシリアライズするため、busy_timeout パラメータも引き続き設定しておいてください。
YugabyteDB
YugabyteDB を JDBC データベースとして使用している場合は、次のように scalar.db.contact_points で複数のエンドポイントを指定できます。
scalar.db.contact_points=jdbc:yugabytedb://127.0.0.1:5433\\,127.0.0.2:5433\\,127.0.0.3:5433/?load-balance=true
複数のエンドポイントはエスケープされたコンマで区切る必要があります。
YugabyteDB のスマートドライバーと負荷分散の詳細については、YugabyteDB smart drivers for YSQL を参照してください。
AlloyDB
Google Cloud 上の AlloyDB を JDBC データベースとして使用し、Java コネクタで接続したい場合は、次のように scalar.db.contact_points で追加のプロパティを追加する必要があります:
scalar.db.contact_points=jdbc:postgresql:///<DATABASE_NAME>?socketFactory=com.google.cloud.alloydb.SocketFactory&alloydbInstanceName=<INSTANCE_NAME>&alloydbIpType=PUBLIC
DynamoDB では次の設定が利用可能です。
storage
- フィールド:
scalar.db.storage - 説明:
dynamoを指定する必要があります。 - デフォルト値: empty
contact_points
- フィールド:
scalar.db.contact_points - 説明: ScalarDB が通信する AWS リージョン (例:
us-east-1)。 - デフォルト値: empty
username
- フィールド:
scalar.db.username - 説明: AWS とやり取りするユーザーを識別するために使用される AWS アクセスキー。
- デフォルト値: empty
password
- フィールド:
scalar.db.password - 説明: AWS と対話するユーザーを認証するために使用される AWS シークレットアクセスキー。
- デフォルト値: empty
dynamo.endpoint_override
- フィールド:
scalar.db.dynamo.endpoint_override - 説明: ScalarDB が通信する Amazon DynamoDB エンドポイント。これは主に、AWS サービスではなくローカルインスタンスでのテストに使用されます。
- デフォルト値: empty
dynamo.namespace.prefix
- フィールド:
scalar.db.dynamo.namespace.prefix - 説明: ユーザー名前空間とメタデータ名前空間名のプレフィックス。AWS では単一の AWS リージョン内で一意のテーブル名を持つ必要があるため、単一の AWS リージョン内で複数の ScalarDB 環境 (開発、本番など) を使用する場合に便利です。
- デフォルト値: empty
CosmosDB for NoSQL では次の設定が利用可能です。
storage
- フィールド:
scalar.db.storage - 説明:
cosmosを指定する必要があります。 - デフォルト値: empty
contact_points
- フィールド:
scalar.db.contact_points - 説明: ScalarDB が通信する NoSQL エンドポイント用の Azure Cosmos DB。
- デフォルト値: empty
password
- フィールド:
scalar.db.password - 説明: Azure Cosmos DB for NoSQL にアクセスするための認証を実行するために使用されるマスターキーまたは読み取り専用キーのいずれか。
- デフォルト値: empty
cosmos.consistency_level
- フィールド:
scalar.db.cosmos.consistency_level - 説明: Cosmos DB 操作に使用される一貫性レベル。
STRONGまたはBOUNDED_STALENESSを指定できます。 - デフォルト値:
STRONG
Cassandra では次の設定が利用可能です。
storage
- フィールド:
scalar.db.storage - 説明:
cassandraを指定する必要があります。 - デフォルト値: empty
contact_points
- フィールド:
scalar.db.contact_points - 説明: カンマで区切られた連絡先。
- デフォルト値: empty
contact_port
- フィールド:
scalar.db.contact_port - 説明: すべての連絡先ポイントのポート番号。
- デフォルト値: empty
username
- フィールド:
scalar.db.username - 説明: データベースにアクセスするためのユーザー名。
- デフォルト値: empty
password
- フィールド:
scalar.db.password - 説明: データベースにアクセスするためのパスワード。
- デフォルト値: empty
S3 では次の設定が利用可能です。
storage
- フィールド:
scalar.db.storage - 説明:
s3を指定する必要があります。
contact_points
- フィールド:
scalar.db.contact_points - 説明: '/' で区切られたリージョンと S3 バケット名 (例:
us-east-1/my-bucket)。 - デフォルト値: empty
username
- フィールド:
scalar.db.username - 説明: AWS アクセスキー。
- デフォルト値: empty
password
- フィールド:
scalar.db.password - 説明: AWS シークレットアクセスキー。
- デフォルト値: empty
s3.multipart_upload_part_size_bytes
- フィールド:
scalar.db.s3.multipart_upload_part_size_bytes - 説明: マルチパートアップロードのパートサイズ (バイト単位)。
- デフォルト値: AWS SDK の
minimumPartSizeInBytesのデフォルト値
s3.multipart_upload_max_concurrency
- フィールド:
scalar.db.s3.multipart_upload_max_concurrency - 説明: マルチパートアップロードで許可される最大同時リクエスト数。
- デフォルト値: AWS SDK の
maxConcurrencyのデフォルト値
s3.multipart_upload_threshold_size_bytes
- フィールド:
scalar.db.s3.multipart_upload_threshold_size_bytes - 説明: マルチパートアップロードを有効にするためのしきい値サイズ (バイト単位)。オブジェクトサイズがこの値以上の場合、マルチパートアップロードが使用されます。
- デフォルト値: AWS SDK の
thresholdInBytesのデフォルト値
s3.request_timeout_secs
- フィールド:
scalar.db.s3.request_timeout_secs - 説明: S3 操作のリクエストタイムアウト (秒単位)。AWS SDK の
apiCallTimeoutに設定されます。 - デフォルト値: empty (タイムアウトなし)
Blob Storage では次の設定が利用可能です。
storage
- フィールド:
scalar.db.storage - 説明:
blob-storageを指定する必要があります。
contact_points
- フィールド:
scalar.db.contact_points - 説明: コンテナ名を含む Blob Storage エンドポイント URL (例:
https://<ACCOUNT_NAME>.blob.core.windows.net/my-container)。 - デフォルト値: empty
username
- フィールド:
scalar.db.username - 説明: Azure Storage アカウント名。
- デフォルト値: empty
password
- フィールド:
scalar.db.password - 説明: Azure Storage アカウントキー。
- デフォルト値: empty
blob_storage.parallel_upload_block_size_bytes
- フィールド:
scalar.db.blob_storage.parallel_upload_block_size_bytes - 説明: 並列アップロードのブロックサイズ (バイト単位)。
- デフォルト値: Azure SDK の
setBlockSizeLongのデフォルト値
blob_storage.parallel_upload_max_concurrency
- フィールド:
scalar.db.blob_storage.parallel_upload_max_concurrency - 説明: 並列アップロードで許可される最大同時リクエスト数。
- デフォルト値: Azure SDK の
setMaxConcurrencyのデフォルト値
blob_storage.parallel_upload_threshold_size_bytes
- フィールド:
scalar.db.blob_storage.parallel_upload_threshold_size_bytes - 説明: 並列アップロードを有効にするためのしきい値サイズ (バイト単位)。オブジェクトサイズがこの値より大きい場合、並列アップロードが使用されます。
- デフォルト値: Azure SDK の
setMaxSingleUploadSizeLongのデフォルト値
blob_storage.request_timeout_secs
- フィールド:
scalar.db.blob_storage.request_timeout_secs - 説明: Blob Storage 操作のリクエストタイムアウト (秒単位)。
- デフォルト値: empty (タイムアウトなし)
Cloud Storage では次の設定が利用可能です。
storage
- フィールド:
scalar.db.storage - 説明:
cloud-storageを指定する必要があります。
contact_points
- フィールド:
scalar.db.contact_points - 説明: Cloud Storage バケット名。
- デフォルト値: empty
username
- フィールド:
scalar.db.username - 説明: Google Cloud プロジェクト ID。
- デフォルト値: empty
password
- フィールド:
scalar.db.password - 説明: Google Cloud サービスアカウントキーファイルの完全な内容を単一行 JSON として指定します。
- デフォルト値: empty
cloud_storage.upload_chunk_size_bytes
- フィールド:
scalar.db.cloud_storage.upload_chunk_size_bytes - 説明: アップロードのチャンクサイズ (バイト単位)。
- デフォルト値: Google Cloud SDK の
setChunkSizeのデフォルト値
マルチストレージ設定
ScalarDB は複数のストレージ実装の同時使用をサポートしています。複数のストレージの使用の詳細については、マルチストレージトランザクションを参照してください。
storage
- フィールド:
scalar.db.storage - 説明:
multi-storageを指定する必要があります。
multi_storage.storages
- フィールド:
scalar.db.multi_storage.storages - 説明: カンマ区切りのストレージ名 (例:
cassandra,mysql)。これらのストレージ名は、名前空間をストレージにマップするためにscalar.db.multi_storage.namespace_mappingプロパティで使用されます。 - デフォルト値: empty
multi_storage.default_storage
- フィールド:
scalar.db.multi_storage.default_storage - 説明: デフォルトのストレージ名。このストレージは、
scalar.db.multi_storage.namespace_mappingプロパティでマッピングが定義されていない名前空間に使用されます。 - デフォルト値: empty
multi_storage.namespace_mapping
- フィールド:
scalar.db.multi_storage.namespace_mapping - 説明: 名前空間からストレージへのマッピング (例:
user:my_cassandra,coordinator:my_mysql)。 - デフォルト値: empty
ストレージ名 (<STORAGE_NAME_FOR_NAMESPACE>) は、定義する必要がある任意の値です。マルチストレージ設定全体で一貫している限り、好きな名前を使用できます。
multi_storage.storages.<STORAGE_NAME_FOR_NAMESPACE>.<PROPERTY_NAME>
特定のストレージを設定するには、scalar.db.multi_storage.storages.<STORAGE_NAME_FOR_NAMESPACE>.<PROPERTY_NAME> を使用します。ここで、<STORAGE_NAME_FOR_NAMESPACE> は scalar.db.multi_storage.storages プロパティ で指定されたストレージ名の1つであり、<PROPERTY_NAME> は特定のストレージのプロパティ名です。
例えば、名前空間マッピングを scalar.db.multi_storage.namespace_mapping=user:my_cassandra,coordinator:my_mysql として定義した場合、my_cassandra と my_mysql がそれぞれ user と coordinator 名前空間のストレージ名になります:
scalar.db.multi_storage.storages.my_cassandra.contact_pointsを使用して Cassandra のコンタクトポイントを指定できます。scalar.db.multi_storage.storages.my_mysql.jdbc.connection_pool.max_idleを使用して MySQL のコネクションプール設定の最大アイドル時間を指定できます。
各ストレージで使用可能なプロパティの詳細については、ストレージ関連の設定を参照してください。
パーティション間スキャン設定
以下で説明するようにパーティション間スキャンオプションを有効にすると、Scan 操作でパーティション全体のすべてのレコードを取得できます。さらに、cross_partition_scan.filtering と cross_partition_scan.ordering をそれぞれ有効にすることで、パーティション間 Scan 操作で任意の条件と順序を指定できま す。現在、順序付けオプション付きのパーティション間スキャンは、JDBC データベースでのみ使用できます。フィルタリングと順序付けを有効にするには、scalar.db.cross_partition_scan.enabled を true に設定する必要があります。
パーティション間スキャンの使用方法の詳細については、スキャン操作を参照してください。
非 JDBC データベースの場合、トランザクションはより低い分離レベル (つまり、SNAPSHOT) で実行される可能性があるため、SERIALIAZABLE 分離レベルでパーティション間スキャンを有効にすることはお勧めしません。非 JDBC データベースを使用する場合は、トランザクションの一貫性が重要でない場合にのみ、自己責任でパーティション間スキャンを使用してください。
cross_partition_scan.enabled
- フィールド:
scalar.db.cross_partition_scan.enabled - 説明: パーティション間スキャンを有効にします。
- デフォルト値:
true
cross_partition_scan.filtering.enabled
- フィールド:
scalar.db.cross_partition_scan.filtering.enabled - 説明: パーティション間スキャンでフィルタリングを有効にします。
- デフォルト値:
false
cross_partition_scan.ordering.enabled
- フィールド:
scalar.db.cross_partition_scan.ordering.enabled - 説明: パーティション間スキャンで順序付けを有効にします。
- デフォルト値:
false
スキャンフェッチサイズ
ストレージのスキャン操作でフェッチサイズを次のプロパティで設定できます 。
scan_fetch_size
- フィールド:
scalar.db.scan_fetch_size - 説明: ストレージのスキャン操作時に一度に取得するレコード数を指定します。値を大きくすると、大きな結果セットの場合にストレージへのアクセスの往復回数が減りパフォーマンスが向上しますが、メモリ使用量も増加します。値を小さくするとメモリ使用量は減りますが、レイテンシが増加する場合があります。
- デフォルト値:
10
ScalarDB Cluster GraphQL の設定
ScalarDB Cluster GraphQL の設定は以下の通りです。
graphql.enabled
- フィールド:
scalar.db.graphql.enabled - 説明: ScalarDB Cluster GraphQL が有効かどうか。
- デフォルト値:
false
graphql.port
- フィールド:
scalar.db.graphql.port - 説明: GraphQL サーバーのポート番号。
- デフォルト値:
8080
graphql.path
- フィールド:
scalar.db.graphql.path - 説明: GraphQL エンドポイントの URL のパスコンポーネント。
- デフォルト値:
/graphql
graphql.namespaces
- フィールド:
scalar.db.graphql.namespaces - 説明: GraphQL サーバーがスキーマを生成するテーブルの名前空間のコンマ区切りリスト。指定しない場合、GraphQL サーバーは、すべての ScalarDB 管理名前空間内のすべてのテーブルのスキーマを生成します。
- デフォルト値: empty
graphql.graphiql
- フィールド:
scalar.db.graphql.graphiql - 説明: GraphQL サーバーが GraphiQL IDE を提供するかどうか。
- デフォルト値:
true
graphql.schema_checking_interval_millis
- フィールド:
scalar.db.graphql.schema_checking_interval_millis - 説明: ScalarDB スキーマに変更が検出された場合に GraphQL サーバーが GraphQL スキーマを再構築する間隔 (ミリ秒単位)。
- デフォルト値:
30000(30秒)
サーバーの実行中に ScalarDB スキーマを作成または変更する
GraphQL スキーマはサーバーの起動時に静的に構築されるため、ScalarDB スキーマが変更された場合 (たとえば、テーブルが追加、変更、または削除された場合)、対応する GraphQL スキーマは再構築されない限り変更を反映しません。これに対処するために、GraphQL サーバーは、定期的なチェックとオンデマンドチェックの2つのメカニズムを提供します。
定期的なチェックを実行する
サーバーは、ScalarDB スキーマに変更が発生したかどうかを定期的にチェックし、必要に応じて対応する GraphQL スキーマを再構築します。デフォルトでは、チェックは30秒ごとに行われますが、間隔は scalar.db.graphql.schema_checking_interval_millis プロパティを使用して設定できます。
定期的なチェックを実行する必要がない場合は、プロパティ値を -1 に設定して無効にすることができます。
オンデマンドチェックを実行する
また、HTTP API の /update-graphql-schema エンドポイントに POST リクエストを実行して、サーバーに ScalarDB スキーマの変更をチェックし、必要に応じて対応する GraphQL スキーマを再構築するように要求することもできます。
たとえば、HTTP API が localhost:8080 で実行されていて、scalar.db.graphql.path プロパティが /graphql に設定されている場合、次のコマンドを実行してこのエンドポイントを呼び出すことができます。
curl -X POST http://localhost:8080/graphql/update-graphql-schema
SQL 関連の設定
ScalarDB Cluster SQL の設定は以下の通りです。
sql.enabled
- フィールド:
scalar.db.sql.enabled - 説明: ScalarDB Cluster SQL が有効かどうか。
- デフォルト値:
false
sql.statement_cache.enabled
- フィールド:
scalar.db.sql.statement_cache.enabled - 説明: ステートメントキャッシュを有効にします。
- デフォルト値:
false
sql.statement_cache.size
- フィールド:
scalar.db.sql.statement_cache.size - 説明: キャッシュされたステートメントの最大数。
- デフォルト値:
100
sql.default_transaction_mode
- フィールド:
scalar.db.sql.default_transaction_mode - 説明: デフォルトのトランザクションモード。
TRANSACTIONまたはTWO_PHASE_COMMIT_TRANSACTIONを設定できます。 - デフォルト値:
TRANSACTION
sql.default_namespace_name
- フィールド:
scalar.db.sql.default_namespace_name - 説明: デフォルトの名前空間名。SQL ステートメントで名前空間名を指定しない場合は、この値が使用されます。
- デフォルト値: empty
認証と認可の設定
ScalarDB Cluster の認証と認可の設定は以下の通りです。
auth.enabled
- フィールド:
scalar.db.cluster.auth.enabled - 説明: 認証と認可が有効になっているかどうか。
- デフォルト値:
false
認証と認可を有効にする場合は、システム名前空間(デフォルトでは scalardb)に対して scalar.db.cross_partition_scan.enabled を true に設定する必要があります。これは、ABAC 機能が内部的にクロスパーティションスキャンを実行するためです。
auth.cache_expiration_time_millis
- フィールド:
scalar.db.cluster.auth.cache_expiration_time_millis - 説明: 認証と認可情報のキャッシュ有効期限時間 (ミリ秒単位)。各クラスターノードはこの情報を個別にキャッシュするため、権限の取り消しやユーザーの削除などによって認証と認可情報を更新した場合、変更がすべてのクラスターノードに反映されるまで、このキャッシュ有効期限に達するまで待つ必要がある場合があります。
- デフォルト値:
60000(1分)
auth.auth_token_expiration_time_minutes
- フィールド:
scalar.db.cluster.auth.auth_token_expiration_time_minutes - 説明: 認証と認可トークンの有効期限時間 (分単位)。
- デフォルト値:
1440(1日)
auth.auth_token_gc_thread_interval_minutes
- フィールド:
scalar.db.cluster.auth.auth_token_gc_thread_interval_minutes - 説明: 認証と認可トークンのガベージコレクション (GC) スレッドの間隔 (分単位)。
- デフォルト値:
360(6時間)
auth.pepper
- フィールド:
scalar.db.cluster.auth.pepper - 説明: ハッシュ化の前にパスワードに追加される秘密値。指定されていない場合、パスワードはペッパーなしでハッシュ化されます。
- デフォルト値: empty
保存時データ暗号化設定
ScalarDB Cluster で保存時のデータを暗号化するための設定は以下の通りです。
保存時のデータ暗号化の詳細については、保存データの暗号化を参照してください。
cluster.encryption.enabled
- フィールド:
scalar.db.cluster.encryption.enabled - 説明: ScalarDB が保存時のデータを暗号化するかどうか。
- デフォルト値:
false
cluster.encryption.type
- フィールド:
scalar.db.cluster.encryption.type - 説明: 暗号化実装タイプ。
vault(HashiCorp Vault 暗号化用)またはself(自己暗号化用)のいずれかを指定できます。 - デフォルト値: empty
cluster.encryption.delete_data_encryption_key_on_drop_table.enabled
- フィールド:
scalar.db.cluster.encryption.delete_data_encryption_key_on_drop_table.enabled - 説明: テーブルを削除する際にデータ暗号化キー (DEK) を削除するかどうか。
- デフォルト値:
false
HashiCorp Vault 暗号化設定
HashiCorp Vault 暗号化(scalar.db.cluster.encryption.type=vault)を使用する場合の設定は以下の通りです。
cluster.encryption.vault.key_type
- フィールド:
scalar.db.cluster.encryption.vault.key_type - 説明: キーの種類。現在、
aes128-gcm96、aes256-gcm96、chacha20-poly1305がサポートされています。キーの種類の詳細については、Key types を参照してください。 - デフォルト値:
aes128-gcm96
cluster.encryption.vault.associated_data_required
- フィールド:
scalar.db.cluster.encryption.vault.associated_data_required - 説明: AEAD 暗号化で関連データが必要かどうか。
- デフォルト値:
false
cluster.encryption.vault.address
- フィールド:
scalar.db.cluster.encryption.vault.address - 説明: HashiCorp Vault サーバーのアドレス。
- デフォルト値: empty
cluster.encryption.vault.token
- フィールド:
scalar.db.cluster.encryption.vault.token - 説明: HashiCorp Vault で認証するためのトークン。
- デフォルト値: empty
cluster.encryption.vault.namespace
- フィールド:
scalar.db.cluster.encryption.vault.namespace - 説明: HashiCorp Vault の名前空間。この設定はオプションです。
- デフォルト値: empty
cluster.encryption.vault.transit_secrets_engine_path
- フィールド:
scalar.db.cluster.encryption.vault.transit_secrets_engine_path - 説明: transit シークレットエンジンのパス。
- デフォルト値:
transit
cluster.encryption.vault.column_batch_size
- フィールド:
scalar.db.cluster.encryption.vault.column_batch_size - 説明: HashiCorp Vault サーバーへの単一リクエストに含まれる列数。
- デフォルト値:
64
自己暗号化設定
自己暗号化(scalar.db.cluster.encryption.type=self)を使用する場合の設定は以下の通りです。
cluster.encryption.self.key_type
- フィールド:
scalar.db.cluster.encryption.self.key_type - 説明: キーの種類。現在、
AES128_GCM、AES256_GCM、AES128_EAX、AES256_EAX、AES128_CTR_HMAC_SHA256、AES256_CTR_HMAC_SHA256、CHACHA20_POLY1305、XCHACHA20_POLY1305がサポートされています。キーの種類の詳細については、キータイプを選択するを参照してください。 - デフォルト値:
AES128_GCM
cluster.encryption.self.associated_data_required
- フィールド:
scalar.db.cluster.encryption.self.associated_data_required - 説明: AEAD 暗号化で関連データが必要かどうか。
- デフォルト値:
false
cluster.encryption.self.kubernetes.secret.namespace_name
- フィールド:
scalar.db.cluster.encryption.self.kubernetes.secret.namespace_name - 説明: Kubernetes Secrets の名前空間名。
- デフォルト値:
default
cluster.encryption.self.data_encryption_key_cache_expiration_time
- フィールド:
scalar.db.cluster.encryption.self.data_encryption_key_cache_expiration_time - 説明: DEK キャッシュの有効期限時間(ミリ秒単位)。
- デフォルト値:
60000(60秒)
ワイヤ暗号化設定
ScalarDB Cluster でワイヤ通信を暗号化するための設定は以下の通りです。
ワイヤ通信の暗号化の詳細については、ワイヤ通信の暗号化を参照してください。
cluster.tls.enabled
- フィールド:
scalar.db.cluster.tls.enabled - 説明: ワイヤ暗号化 (TLS) が有効になっているかどうか。
- デフォルト値:
false
cluster.tls.ca_root_cert_pem
- フィールド:
scalar.db.cluster.tls.ca_root_cert_pem - 説明: TLS 通信用のカスタム CA ルート証明書 (PEM データ)。
- デフォルト値: empty
cluster.tls.ca_root_cert_path
- フィールド:
scalar.db.cluster.tls.ca_root_cert_path - 説明: TLS 通信用のカスタム CA ルート証明書 (ファイルパス)。
- デフォルト値: empty
cluster.tls.override_authority
- フィールド:
scalar.db.cluster.tls.override_authority - 説明: TLS 通信用のカスタムオーソリティ。実際に接続されるホストは変更されません。これはテスト用に意図されていますが、DNS オーバーライドの代替手段として、テスト以外でも安全に使用できます。たとえば、
scalar.db.cluster.node.tls.cert_chain_pathに設定した証明書チェーンファイルで提示されるホスト名を指定できます。 - デフォルト値: empty
cluster.node.tls.cert_chain_path
- フィールド:
scalar.db.cluster.node.tls.cert_chain_path - 説明: TLS 通信に使用される証明書チェーンファイル。
- デフォルト値: empty
cluster.node.tls.private_key_path
- フィールド:
scalar.db.cluster.node.tls.private_key_path - 説明: TLS 通信に使用される秘密鍵ファイル。
- デフォルト値: empty
埋め込み関連の設定
次の埋め込み関連の設定が ScalarDB Cluster で利用可能です。
embedding.enabled
- フィールド:
scalar.db.embedding.enabled - 説明: 埋め込み機能が有効かどうか。
- デフォルト値:
false
embedding.stores
- フィールド:
scalar.db.embedding.stores - 説明: 使用するコンマ区切りの埋め込みストア名リスト。
- デフォルト値: empty
embedding.models
- フィールド:
scalar.db.embedding.models - 説明: 使用するコンマ区切りの埋め込みモデル名リスト。
- デフォルト値: empty
埋め込みストアの設定
scalar.db.embedding.stores に指定された各埋め込みストア名について、scalar.db.embedding.stores.<STORE_NAME>. をプレフィックスとして使用して埋め込みストアを設定できます。
- In-memory
- OpenSearch
- Azure Cosmos DB for NoSQL
- Azure AI Search
- pgvector
インメモリ埋め込みストアは基本的なインメモリ実装です。この埋め込みストアは、迅速なプロトタイピングやシンプルなユースケースに役立ちます。
type
- フィールド:
scalar.db.embedding.stores.<STORE_NAME>.type - 説明:
in-memoryに設定する必要があります。 - デフォルト値: N/A
OpenSearch 埋め込みストアはバックエンドとして OpenSearch を使用します。
type
- フィールド:
scalar.db.embedding.stores.<STORE_NAME>.type - 説明:
opensearchに設定する必要があります。 - デフォルト値: N/A
server_url
- フィールド:
scalar.db.embedding.stores.<STORE_NAME>.opensearch.server_url - 説明: OpenSearch サーバー URL。
- デフォルト値: empty
index_name
- フィールド:
scalar.db.embedding.stores.<STORE_NAME>.opensearch.index_name - 説明: OpenSearch インデックス名。
- デフォルト値: empty
api_key (オプション)
- フィールド:
scalar.db.embedding.stores.<STORE_NAME>.opensearch.api_key - 説明: 認証用の OpenSearch API キー。
- デフォルト値: empty
user_name (オプション)
- フィールド:
scalar.db.embedding.stores.<STORE_NAME>.opensearch.user_name - 説明: 認証用の OpenSearch ユーザー名。
- デフォルト値: empty
password (オプション)
- フィールド:
scalar.db.embedding.stores.<STORE_NAME>.opensearch.password - 説明: 認証用の OpenSearch パスワード。
- デフォルト値: empty
service_name (AWS のみ)
- フィールド:
scalar.db.embedding.stores.<STORE_NAME>.opensearch.service_name - 説明: AWS 署名サービス名。
es(Amazon OpenSearch) またはaoss(Amazon OpenSearch Serverless) のいずれか。 - デフォルト値: empty
region (AWS のみ)
- フィールド:
scalar.db.embedding.stores.<STORE_NAME>.opensearch.region - 説明: リクエストに署名する AWS リージョン。
- デフォルト値: empty
access_key_id (AWS のみ)
- フィールド:
scalar.db.embedding.stores.<STORE_NAME>.opensearch.access_key_id - 説明: AWS アクセスキー ID。
- デフォルト値: empty
secret_access_key (AWS のみ)
- フィールド:
scalar.db.embedding.stores.<STORE_NAME>.opensearch.secret_access_key - 説明: AWS シークレットアクセスキー。
- デフォルト値: empty
Azure Cosmos DB for NoSQL 埋め込みストアはバックエンドとして Azure Cosmos DB を使用します。
type
- フィールド:
scalar.db.embedding.stores.<STORE_NAME>.type - 説明:
azure-cosmos-nosqlに設定する必要があります。 - デフォルト値: N/A
endpoint
- フィールド:
scalar.db.embedding.stores.<STORE_NAME>.azure-cosmos-nosql.endpoint - 説明: Azure Cosmos DB エンドポイント URL。
- デフォルト値: empty
key
- フィールド:
scalar.db.embedding.stores.<STORE_NAME>.azure-cosmos-nosql.key - 説明: 認証用のマスターキーまたは読み取り専用キー。
- デフォルト値: empty
database_name
- フィールド:
scalar.db.embedding.stores.<STORE_NAME>.azure-cosmos-nosql.database_name - 説明: Azure Cosmos DB データベース名。
- デフォルト値: empty
container_name
- フィールド:
scalar.db.embedding.stores.<STORE_NAME>.azure-cosmos-nosql.container_name - 説明: Azure Cosmos DB コンテナー名。
- デフォルト値: empty
dimensions
- フィールド:
scalar.db.embedding.stores.<STORE_NAME>.azure-cosmos-nosql.dimensions - 説明: 埋め込みの次元。
- デフォルト値: 1536
Azure AI Search 埋め込みストアはバックエンドとして Azure AI Search を使用します。
type
- フィールド:
scalar.db.embedding.stores.<STORE_NAME>.type - 説明:
azure-ai-searchに設定する必要があります。 - デフォルト値: N/A
endpoint
- フィールド:
scalar.db.embedding.stores.<STORE_NAME>.azure-ai-search.endpoint - 説明: Azure AI Search エンドポイント URL。
- デフォルト値: empty
api_key
- フィールド:
scalar.db.embedding.stores.<STORE_NAME>.azure-ai-search.api_key - 説明: Azure AI Search API キー。
- デフォルト値: empty
index_name
- フィールド:
scalar.db.embedding.stores.<STORE_NAME>.azure-ai-search.index_name - 説明: 使用するインデックスの名前。インデックスが提供されな い場合、デフォルトのインデックス名が使用されます。
- デフォルト値: empty
dimensions
- フィールド:
scalar.db.embedding.stores.<STORE_NAME>.azure-ai-search.dimensions - 説明: 埋め込みの次元。
- デフォルト値: 1536
pgvector 埋め込みストアは、ベクトル類似検索用の Postgres 拡張機能である pgvector をバックエンドとして使用します。
type
- フィールド:
scalar.db.embedding.stores.<STORE_NAME>.type - 説明:
pgvectorに設定する必要があります。 - デフォルト値: N/A
host
- フィールド:
scalar.db.embedding.stores.<STORE_NAME>.pgvector.host - 説明: データベースホスト。
- デフォルト値: empty
port
- フィールド:
scalar.db.embedding.stores.<STORE_NAME>.pgvector.port - 説明: データベースポート。
- デフォルト値: 5432
user
- フィールド:
scalar.db.embedding.stores.<STORE_NAME>.pgvector.user - 説明: データベースユーザー。
- デフォルト値: empty
password
- フィールド:
scalar.db.embedding.stores.<STORE_NAME>.pgvector.password - 説明: データベースパスワード。
- デフォルト値: empty
database
- フィールド:
scalar.db.embedding.stores.<STORE_NAME>.pgvector.database - 説明: データベース名。
- デフォルト値: empty
table
- フィールド:
scalar.db.embedding.stores.<STORE_NAME>.pgvector.table - 説明: テーブル名。
- デフォルト値: empty
dimensions
- フィールド:
scalar.db.embedding.stores.<STORE_NAME>.pgvector.dimensions - 説明: 埋め込みの次元。
- デフォルト値: 1536
埋め込みモデルの設定
scalar.db.embedding.models に指定された各埋め込みモデル名について、scalar.db.embedding.models.<MODEL_NAME>. をプレフィックスとして使用して埋め込みモデルを設定できます。
- In-process
- Amazon Bedrock
- Azure OpenAI
- Google Vertex AI
- OpenAI
In-process 埋め込みモデルは、ONNX ランタイムによって提供されるローカル埋め込みモデルで、ScalarDB Cluster プロセス内で実行されます。この埋め込みモデルは、迅速なプロトタイピングやシンプルなユースケースに役立ちます。
type
- フィールド:
scalar.db.embedding.models.<MODEL_NAME>.type - 説明:
in-processに設定する必要があります。 - デフォルト値: N/A
Amazon Bedrock 埋め込みモデルはバックエンドとして Amazon Bedrock を使用します。
type
- フィールド:
scalar.db.embedding.models.<MODEL_NAME>.type - 説明:
bedrock-titanに設定する必要があります。 - デフォルト値: N/A
region
- フィールド:
scalar.db.embedding.models.<MODEL_NAME>.bedrock-titan.region - 説明: リクエストに署名する AWS リージョン。
- デフォルト値: empty
access_key_id
- フィールド:
scalar.db.embedding.models.<MODEL_NAME>.bedrock-titan.access_key_id - 説明: AWS アクセスキー ID。
- デフォルト値: empty
secret_access_key
- フィールド:
scalar.db.embedding.models.<MODEL_NAME>.bedrock-titan.secret_access_key - 説明: AWS シークレットアクセスキー。
- デフォルト値: empty
model
- フィールド:
scalar.db.embedding.models.<MODEL_NAME>.bedrock-titan.model - 説明: モデル名。
amazon.titan-embed-text-v1またはamazon.titan-embed-text-v2:0。 - デフォルト値: empty
dimensions
- フィールド:
scalar.db.embedding.models.<MODEL_NAME>.bedrock-titan.dimensions - 説明: 埋め込みの次元。
- デフォルト値: empty
Azure OpenAI 埋め込みモデルはバックエンドとして Azure OpenAI を使用します。
type
- フィールド:
scalar.db.embedding.models.<MODEL_NAME>.type - 説明:
azure-open-aiに設定する必要があります。 - デフォルト値: N/A
endpoint
- フィールド:
scalar.db.embedding.models.<MODEL_NAME>.azure-open-ai.endpoint - 説明: Azure OpenAI エンドポイント URL。
- デフォルト値: empty
api_key
- フィールド:
scalar.db.embedding.models.<MODEL_NAME>.azure-open-ai.api_key - 説明: Azure OpenAI API キー。
- デフォルト値: empty
deployment_name
- フィールド:
scalar.db.embedding.models.<MODEL_NAME>.azure-open-ai.deployment_name - 説明: Azure OpenAI のデプロイメント名。
- デフォルト値: empty
dimensions
- フィールド:
scalar.db.embedding.models.<MODEL_NAME>.azure-open-ai.dimensions - 説明: 埋め込みの次元。
- デフォルト値: empty
Google Vertex AI 埋め込みモデルはバックエンドとして Google Vertex AI を使用します。
type
- フィールド:
scalar.db.embedding.models.<MODEL_NAME>.type - 説明:
vertex-aiに設定する必要があります。 - デフォルト値: N/A
project
- フィールド:
scalar.db.embedding.models.<MODEL_NAME>.vertex-ai.project - 説明: Google Cloud プロジェクト ID。
- デフォルト値: empty
location
- フィールド:
scalar.db.embedding.models.<MODEL_NAME>.vertex-ai.location - 説明: Google Cloud ロケーション。
- デフォルト値: empty
endpoint
- フィールド:
scalar.db.embedding.models.<MODEL_NAME>.vertex-ai.endpoint - 説明: エンドポイント URL。
- デフォルト値: empty
publisher
- フィールド:
scalar.db.embedding.models.<MODEL_NAME>.vertex-ai.publisher - 説明: パブリッシャー名。
- デフォルト値: empty
model_name
- フィールド:
scalar.db.embedding.models.<MODEL_NAME>.vertex-ai.model_name - 説明: モデル名。
- デフォルト値: empty
output_dimensionality
- フィールド:
scalar.db.embedding.models.<MODEL_NAME>.vertex-ai.output_dimensionality - 説明: 埋め込みの出力次元。
- デフォルト値: empty
OpenAI 埋め込みモデルはバックエンドとして OpenAI を使用します。
type
- フィールド:
scalar.db.embedding.models.<MODEL_NAME>.type - 説明:
open-aiに設定する必要があります。 - デフォルト値: N/A
api_key
- フィールド:
scalar.db.embedding.models.<MODEL_NAME>.open-ai.api_key - 説明: OpenAI API キー。
- デフォルト値: empty
model_name
- フィールド:
scalar.db.embedding.models.<MODEL_NAME>.open-ai.model_name - 説明: モデル名。
- デ フォルト値: empty
base_url (オプション)
- フィールド:
scalar.db.embedding.models.<MODEL_NAME>.open-ai.base_url - 説明: API のベース URL。
- デフォルト値: empty
organization_id (オプション)
- フィールド:
scalar.db.embedding.models.<MODEL_NAME>.open-ai.organization_id - 説明: OpenAI 組織 ID。
- デフォルト値: empty
dimensions (オプション)
- フィールド:
scalar.db.embedding.models.<MODEL_NAME>.open-ai.dimensions - 説明: 埋め込みの次元。
- デフォルト値: empty
user (オプション)
- フィールド:
scalar.db.embedding.models.<MODEL_NAME>.open-ai.user - 説明: ユーザー識別子。
- デフォルト値: empty
ABAC 設定
属性ベースアクセス制御 (ABAC) の設定は以下の通りです。
単一 CRUD 操作トランザクションマネージャーは ABAC をサポートしていません。
abac.enabled
- フィールド:
scalar.db.cluster.abac.enabled - 説明: ABAC 機能が有効になっているかどうか。
- デフォルト値:
false
ABAC機能を有効にする場合は、以下を行う必要があります:
- 認証と認可を有効にします。詳細については、ユーザーの認証と認可を参照してください。
- システム名前空間 (デフォルトでは
scalardb) に対してscalar.db.cross_partition_scan.enabledをtrueに設定します。これは、ABAC 機能が内部的にクロスパーティションスキャンを実行するためです。
abac.cache_expiration_time_millis
- フィールド:
scalar.db.cluster.abac.cache_expiration_time_millis - 説明: ABAC メタデータキャッシュのキャッシュ有効期限時間 (ミリ秒)。ABAC メタデータ (ポリシー設定など) を更新した場合、変更が適用されるまで、この有効期限時間に達するまで待つ必要がある場合があります。このプロパティを低い数値に設定すると、バックエンドデータベースへのアクセス数が増加し、パフォーマンスが低下する可能性があります。
- デフォルト値:
60000(1分)
リモートレプリケーション設定
ScalarDB Cluster のリモートレプリケーションに利用できる設定は以下の通りです。リモートレプリケーションは、高可用性とワークロード分散のために、リモートサイトへのデータレプリケーションを有効にします。
リモートレプリケーションの使用に関する詳細については、高可用性のためのデータレプリケーションを参照してください。
ベースレプリケーション設定
以下の設定は、ScalarDB Cluster における全体的なリモートレプリケーション設定に適用されます。
partition_count
- フィールド:
scalar.db.replication.partition_count - 説明:
transaction_groupsテーブルのパーティション数。レプリケーションデータベース内のテーブルは、パフォーマンスとスケーラビリティのためにパーティション化され、書き込み操作はパーティション間に均等に分散されます。このフィールドは、プライマリサイトとバックアップサイト間で同一である必要があります。 - デフォルト値:
256
パーティション数の変更には、両サイトで ScalarDB Cluster を再起動する必要があります。
repl_db.namespace
- フィールド:
scalar.db.replication.repl_db.namespace - 説明: レプリケーションテーブルの名前空間名。このフィールドは、プライマリサイトとバックアップサイト間で同一である必要があります。
- デフォルト値:
replication
record_table_suffix
- フィールド:
scalar.db.replication.record_table_suffix - 説明: レプリケーションレコードメタデータテーブルの接尾辞。
- デフォルト値:
__records
LogWriter 設定 (プライマリサイト)
LogWriter 設定は、トランザクションコミット中にレプリケーションデータベースで書き込み操作がどのようにキャプチャおよび保存されるかを制御します。
log_writer.enabled
- フィールド:
scalar.db.replication.log_writer.enabled - 説明: LogWriter 機能が有効かどうか。
- デフォルト値:
false
log_writer.compression_type
- フィールド:
scalar.db.replication.log_writer.compression_type - 説明: レプリケーションデータベースに保存される書き込み操作の圧縮タイプ。利用可能な値:
NONE、GZIP。 - デフォルト値:
GZIP
log_writer.group_commit.retention.time_millis
- フィールド:
scalar.db.replication.log_writer.group_commit.retention.time_millis - 説明: レプリケーションデータベースのトランザクショングループをコミットするまでの最大待機時間。
- デフォルト値:
100(100ミリ秒)
log_writer.group_commit.retention.values
- フィールド:
scalar.db.replication.log_writer.group_commit.retention.values - 説明: レプリケーションデータベース用にまとめてバッチ処理するトランザクションの最大数。
- デフォルト値:
32
log_writer.group_commit.timeout_check_interval_millis
- フィールド:
scalar.db.replication.log_writer.group_commit.timeout_check_interval_millis - 説明: レプリケーションデータベースのグループコミットタイムアウトをチェックする間隔。
- デフォルト値:
20(20ミリ秒)
log_writer.group_commit.max_thread_pool_size
- フィールド:
scalar.db.replication.log_writer.group_commit.max_thread_pool_size - 説明: レプリケーションデータベースのグループコミット処理の最大スレッドプールサイズ。
- デフォルト値:
4096
LogApplier 設定 (バックアップサイト)
LogApplier 設定は、レプリケーションデータがどのように処理され、バックアップサイトテーブルに適用されるかを制御します。
log_applier.enabled
- フィールド:
scalar.db.replication.log_applier.enabled - 説明: LogApplier 機能が有効かどうか。
- デフォルト値:
false
log_applier.transaction.expiration_millis
- フィールド:
scalar.db.replication.log_applier.transaction.expiration_millis - 説明: プライマリサイトからレプリケーションデータベースにレプリケートされたトランザクションの有効期限時間 (ミリ秒)。
- デフォルト値:
30000(30秒)
log_applier.transaction_group_scanner.threads
- フィールド:
scalar.db.replication.log_applier.transaction_group_scanner.threads - 説明: レプリケーションデータベース内のトランザクショングループ用のスキャナースレッド数。
- デフォルト値:
16
log_applier.transaction_group_scanner.fetch_size
- フィールド:
scalar.db.replication.log_applier.transaction_group_scanner.fetch_size - 説明: レプリケーションデータベースから各スキャン操作で取得するトランザクショングループレコードの数。
- デフォルト値:
32
log_applier.transaction_group_scanner.wait_millis
- フィールド:
scalar.db.replication.log_applier.transaction_group_scanner.wait_millis - 説明: レプリケーションデータベース内のトランザクショングループのスキャン間の待機時間 (ミリ秒)。この値を増やすとスキャン頻度は減少しますが、レプリケーション遅延が増加する可能性があります。
- デフォルト値:
1000(1秒)
log_applier.transaction_group_scanner.dedup.expiration_millis
- フィールド:
scalar.db.replication.log_applier.transaction_group_scanner.dedup.expiration_millis - 説明: トランザクショングループ重複排除キャッシュの有効期限時間。LogApplier は、レプリケーションデータベースから同じトランザクショングループを再処理することを避けるためにこのキャッシュを使用します。
- デフォルト値:
10000(10秒)
log_applier.transaction_handler.threads
- フィールド:
scalar.db.replication.log_applier.transaction_handler.threads - 説明: LogApplier トランザクション処理のスレッド数。この値を増やすとレプリケーションパフォーマンスが向上する可能性がありますが、リソース消費量も増加します。
- デフォルト値:
128
log_applier.max_record_version
- フィールド:
scalar.db.replication.log_applier.max_record_version - 説明: 整数オーバーフローを防ぐための最大レコードバージョン (開発用)。
- デフォルト値:
Integer.MAX_VALUE - 1000(Integer.MAX_VALUEは 2,147,483,647)
log_applier.write_operation.expiration_millis
- フィールド:
scalar.db.replication.log_applier.write_operation.expiration_millis - 説明: レプリケーションレコードメタデータテーブル に保存される書き込み操作メタデータの有効期限時間 (ミリ秒)。この時間が経過すると、期限切れのメタデータはガベージコレクションの対象となります。
- デフォルト値:
86400000(1日)
log_applier.replication_status_service.threads
- フィールド:
scalar.db.replication.log_applier.replication_status_service.threads - 説明: レプリケーションステータスサービスのスレッド数。
- デフォルト値:
16
log_applier.coordinator_state_cache.expiration_millis
- フィールド:
scalar.db.replication.log_applier.coordinator_state_cache.expiration_millis - 説明: コーディネーターステートキャッシュの有効期限時間 (ミリ秒)。LogApplier は、Coordinator データベースへのルックアップを減らすために Coordinator データベースからトランザクション状態をキャッシュします。値を小さくすると、Coordinator データベースに対するチェックが より頻繁になります。
- デフォルト値:
30000(30秒)
log_applier.coordinator_state_cache.size
- フィールド:
scalar.db.replication.log_applier.coordinator_state_cache.size - 説明: コーディネーターステートキャッシュ内のエントリの最大数。このキャッシュは、Coordinator データベースへのルックアップを最適化するためにトランザクション状態を保存します。
- デフォルト値:
1000
その他の ScalarDB Cluster 設定
ScalarDB Cluster で使用できる追加の設定は以下の通りです。
metadata.cache_expiration_time_secs
- フィールド:
scalar.db.metadata.cache_expiration_time_secs - 説明: ScalarDB には、データベースへのリクエスト数を減らすた めのメタデータキャッシュがあります。この設定では、キャッシュの有効期限を秒単位で指定します。
-1を指定した場合は、キャッシュは期限切れになりません。 - デフォルト値:
60
active_transaction_management.expiration_time_millis
- フィールド:
scalar.db.active_transaction_management.expiration_time_millis - 説明: ScalarDB は進行中のトランザクションを管理しており、トランザクション ID を使用して再開できます。このプロセスは、リソースリークを防ぐために、長時間アイドル状態のトランザクションを期限切れにします。この設定は、このトランザクション管理機能の有効期限をミリ秒単位で指定します。
- デフォルト値:
60000(60秒)
consensus_commit.include_metadata.enabled
- フィールド:
scalar.db.consensus_commit.include_metadata.enabled - 説明: Consensus Commit を使用している場合に、
trueに設定すると、GetおよびScan操作の結果にトランザクションメタデータが含まれます。特定のテーブルのトランザクションメタデータ列の詳細を表示するには、DistributedTransactionAdmin.getTableMetadata()メソッドを使用します。このメソッドは、トランザクションメタデータ列が追加されたテーブルメタデータを返します。この設定を使用すると、トランザクション関連の問題を調査するのに役立ちます。 - デフォルト値:
false
consensus_commit.index.eventually_consistent_read.enabled
- フィールド:
scalar.db.consensus_commit.index.eventually_consistent_read.enabled - 説明: Consensus Commit を使用している場合に、
trueに設定すると、before-image インデックスチェックがスキップされ、インデックスベース読み取りは、インデックス列が同時に更新されているレコードを見逃す可能性があります。 - デフォルト値:
false
これは後方互換性オプションであり、新しいワークロードには推奨されません。詳細については、インデックスベース読み取りの正確性を参照してください。
default_namespace_name
- フィールド:
scalar.db.default_namespace_name - 説明: 指定された名前空間名は、名前空間を指定していない操作によって使用されます。
- デフォルト値: empty
Java Client SDK 設定
このセクションでは、ScalarDB Cluster Java Client SDK の設定について説明します。
プリミティブインターフェースの設定
以下は、プリミティブインターフェース使用時の Java Client SDK の一般的な設定です。
transaction_manager
- フィールド:
scalar.db.transaction_manager - 説明:
clusterを指定する必要があります。 - デフォルト値: empty
contact_points
- フィールド:
scalar.db.contact_points - 説明: クラスターの接続先。
indirectクライアントモードを使用する場合は、indirect:<LOAD_BALANCER_IP_ADDRESS>形式を使用して、クラスターノードの前にあるロードバランサーの IP アドレスを指定します。direct-kubernetesクライアントモードを使用する場合は、direct-kubernetes:<NAMESPACE_NAME>/<ENDPOINT_NAME>またはdirect-kubernetes:<ENDPOINT_NAME>形式を使用して、メンバーシップ情報を取得するための名前空間名 (オプション) と endpoint resource の名前を指定します。名前空間名を指定しない場合、Java Client SDK はdefault名前空間を使用します。 - デフォルト値: empty
たとえば、indirect クライアントモードを使用し、ロードバランサーの IP アドレスが 192.168.10.1 の場合、次のように Java Client SDK を設定できます。
scalar.db.transaction_manager=cluster
scalar.db.contact_points=indirect:192.168.10.1
または、direct-kubernetes クライアントモードを使用し、エンドポイントの名前空間が ns、エンドポイント名が scalardb-cluster の場合、次のように Java Client SDK を設定できます。
scalar.db.transaction_manager=cluster
scalar.db.contact_points=direct-kubernetes:ns/scalardb-cluster
contact_port
- フィールド:
scalar.db.contact_port - 説明: 接続先のポート番号。
- デフォルト値:
60053
cluster.grpc.deadline_duration_millis
- フィールド:
scalar.db.cluster.grpc.deadline_duration_millis - 説明: gRPC の期限期間 (ミリ秒単位)。
- デフォルト値:
60000(60秒)
cluster.grpc.max_inbound_message_size
- フィールド:
scalar.db.cluster.grpc.max_inbound_message_size - 説明: 単一の gRPC フレームに許可される最大メッセージサイズ。
- デフォルト値: gRPC のデフォルト値
cluster.grpc.max_inbound_metadata_size
- フィールド:
scalar.db.cluster.grpc.max_inbound_metadata_size - 説明: 受信できるメタデータの最大サイズ。
- デフォルト値: gRPC のデフォルト値
cluster.hop_limit
- フィールド:
scalar.db.cluster.hop_limit - 説明: クラスターノード間のリクエスト転送を制限するためのホップ上限。
- デフォルト値:
3
cluster.client.scan_fetch_size
- フィールド:
scalar.db.cluster.client.scan_fetch_size - 説明: クラスターからデータを取得するために
Scannerで使用されるフェッチサイズ。これは、Scannerがクラスターから一度に取得するレコード数です。値を大きくすると、クラスターへの往復回数が減ってパフォーマンスが向上しますが、メモリ使用量も増加する可能性があります。 - デフォルト値:
10
cluster.client.piggyback_begin.enabled
- フィールド:
scalar.db.cluster.client.piggyback_begin.enabled - 説明: ピギーバック begin 機能が有効かどうか。最初の CRUD 操作までトランザクション begin を遅延させ、最初の操作と begin をピギーバックして、専用の begin RPC 呼び出しを削除します。
- デフォルト値:
false
cluster.client.write_buffering.enabled
- フィールド:
scalar.db.cluster.client.write_buffering.enabled - 説明: 書き込みバッファリング機能が有効かどうか。非条件書き込み操作 (挿入、アップサート、無条件 put/update/delete) をバッファリングし、バッチで実行することでRPC呼び出し数を減らします。
- デフォルト値:
false
piggyback_beginが有効な場合、実際の begin 操作が実行されるまでgetId()操作で例外が発生します。piggyback_beginまたはwrite_bufferingが有効な場合、resume()およびjoin()操作で常に例外が発生します。
認証と認可の設定
以下は、プリミティブインターフェース使用時の Java Client SDK の認証と認可の設定です。
プリミティブインターフェース使用時の Java Client SDK を使用するアプリケーションやツール(クラスター用 Schema Loader や ScalarDB ベンチマークツールなど) を実行する場合、特にクラスターで認証と認可が有効になっている場合は、クライアント側の database.properties ファイルに次の設定を行う必要があります。
auth.enabled
- フィールド:
scalar.db.cluster.auth.enabled - 説明: 認証と認可が有効になっているかどうか。
- デフォルト値:
false
username
- フィールド:
scalar.db.username - 説明: ScalarDB Cluster にアクセスするためのユーザー名。
- デフォルト値: empty
password
- フィールド:
scalar.db.password - 説明: ScalarDB Cluster にアクセスするためのパスワード。
- デフォルト値: empty
ワイヤ暗号化の設定
以下の設定は Java Client SDK のワイヤ暗号化に利用できます。
ワイヤ通信の暗号化の詳細については、ワイヤ通信の暗号化を参照してください。
cluster.tls.enabled
- フィールド:
scalar.db.cluster.tls.enabled - 説明: Java Client SDK でワイヤ暗号化 (TLS) が有効になっているかどうか。
- デフォルト値:
false
cluster.tls.ca_root_cert_pem
- フィールド:
scalar.db.cluster.tls.ca_root_cert_pem - 説明: TLS 通信用のカスタム CA ルート証明書 (PEM データ)。
- デフォルト値: empty
cluster.tls.ca_root_cert_path
- フィールド:
scalar.db.cluster.tls.ca_root_cert_path - 説明: TLS 通信用のカスタム CA ルート証明書 (ファイルパス)。
- デフォルト値: empty
cluster.tls.override_authority
- フィールド:
scalar.db.cluster.tls.override_authority - 説明: TLS 通信用のカスタムオーソリティ。実際に接続されるホストは変更されません。これはテスト用に意図されていますが、DNS オーバーライドの代替手段として、テスト以外でも安全に使用できます。たとえば、
scalar.db.cluster.node.tls.cert_chain_pathに設定した証明書チェーンファイルで提示されるホスト名を指定でき ます。これは、クラスターの TLS 証明書のパスです。 - デフォルト値: empty
SQL インターフェースの設定
以下は、SQL インターフェース使用時の Java Client SDK の設定です。
sql.connection_mode
- フィールド:
scalar.db.sql.connection_mode - 説明:
clusterを指定する必要があります。 - デフォルト値: empty
sql.cluster_mode.contact_points
- フィールド:
scalar.db.sql.cluster_mode.contact_points - 説明: クラスターの接続先。
indirectクライアントモードを使用する場合は、indirect:<LOAD_BALANCER_IP_ADDRESS>形式を使用して、クラスターノードの前にあるロードバランサーの IP アドレスを指定します。direct-kubernetesクライアントモードを使用する場合は、direct-kubernetes:<NAMESPACE_NAME>/<ENDPOINT_NAME>またはdirect-kubernetes:<ENDPOINT_NAME>形式を使用して、メンバーシップ情報を取得するための名前空間名 (オプション) と endpoint resource の名前を指定します。名前空間名を指定しない場合、 Java Client SDK はdefault名前空間を使用します。 - デフォルト値: empty
たとえば、indirect クライアントモードを使用し、ロードバランサーの IP アドレスが 192.168.10.1 の場合、次のように Java Client SDK を設定できます。
scalar.db.sql.connection_mode=cluster
scalar.db.sql.cluster_mode.contact_points=indirect:192.168.10.1
または、direct-kubernetes クライアントモードを使用し、エンドポイントの名前空間が ns、エンドポイント名が scalardb-cluster の場合、次のように Java Client SDK を設定できます。
scalar.db.sql.connection_mode=cluster
scalar.db.sql.cluster_mode.contact_points=direct-kubernetes:ns/scalardb-cluster
ScalarDB JDBC の設定方法の詳細については、JDBC 接続 URL を参照してください。
Spring Data JDBC for ScalarDB の設定方法の詳細については、設定を参照してください。
sql.cluster_mode.contact_port
- フィールド:
scalar.db.sql.cluster_mode.contact_port - 説明: 接続先のポート番号。
- デフォルト値:
60053
sql.default_transaction_mode
- フィールド:
scalar.db.sql.default_transaction_mode - 説明: デフォルトのトランザクションモード。
TRANSACTIONまたはTWO_PHASE_COMMIT_TRANSACTIONを設定できます。 - デフォルト値:
TRANSACTION
sql.default_namespace_name
- フィールド:
scalar.db.sql.default_namespace_name - 説明: デフォルトの名前空間名。SQL ステートメントで名前空間名を指定しない場合は、この値が使用されます。
- デフォルト値: empty
cluster.grpc.deadline_duration_millis
- フィールド:
scalar.db.cluster.grpc.deadline_duration_millis - 説明: gRPC の期限期間 (ミリ秒単位)。
- デフォルト値:
60000(60秒)
cluster.grpc.max_inbound_message_size
- フィールド:
scalar.db.cluster.grpc.max_inbound_message_size - 説明: 単一の gRPC フレームに許可される最大メッセージサイズ。
- デフォルト値: gRPC のデフォルト値
cluster.grpc.max_inbound_metadata_size
- フィールド:
scalar.db.cluster.grpc.max_inbound_metadata_size - 説明: 受信できるメタデータの最大サイズ。
- デフォルト値: gRPC のデフォルト値
認証と認可の設定
以下は、SQL インターフェース使用時の Java Client SDK の認証と認可の設定です。
auth.enabled
- フィールド:
scalar.db.cluster.auth.enabled - 説明: 認証と認可が有効になっているかどうか。
- デフォルト値:
false
auth.username
- フィールド:
scalar.db.sql.cluster_mode.username - 説明: ScalarDB Cluster にアクセスするためのユーザー名。
- デフォルト値: empty
auth.password
- フィールド:
scalar.db.sql.cluster_mode.password - 説明: ScalarDB Cluster にアクセスするためのパスワード。
- デフォルト値: empty
埋め込みの設定
次に、埋め込みクライアント SDK (scalardb-cluster-embedding-java-client-sdk) の設定を示します。
embedding.client.contact_points
- フィールド:
scalar.db.embedding.client.contact_points - 説明: クラスターのコンタクトポイント。
indirectクライアントモードを使用する場合は、indirect:<ロードバランサーの IP アドレス>の形式でクラスターノードの前にあるロードバランサーの IP アドレスを指定します。direct-kubernetesクライアントモードを使用する場合は、direct-kubernetes:<名前空間名>/<エンドポイント名>またはdirect-kubernetes:<エンドポイント名>の形式で、メンバーシップ情報を取得するための endpoint resource の名前空間名 (省略可能) と名前を指定します。名前空間名を指定しな い場合、埋め込みクライアント SDK はdefault名前空間を使用します。 - デフォルト値: empty
embedding.client.contact_port
- フィールド:
scalar.db.embedding.client.contact_port - 説明: コンタクトポイントのポート番号。
- デフォルト値:
60053
embedding.client.store
- フィールド:
scalar.db.embedding.client.store - 説明: サーバー上の
scalar.db.embedding.storesで定義された、使用する埋め込みストアの名前。 - デフォルト値: empty
embedding.client.model
- フィールド:
scalar.db.embedding.client.model - 説明: サーバー上の
scalar.db.embedding.modelsで定義された、使用する埋め込みモデルの名前。 - デフォルト値: empty
設定例 - アプリ、ScalarDB Cluster、データベース
この設定例では、アプリ (gRPC を利用する ScalarDB ライブラリ) が ScalarDB Cluster を通じて基盤となるストレージまたはデータベース (この場合は Cassandra) に接続しています。ScalarDB Cluster は、ScalarDB Enterprise エディションでのみ利用可能なコンポーネントです。
この設定は、ScalarDB Cluster が Scalar Admin インターフェースを実装しているため、本番環境での使用に適しています。このインターフェースにより、ScalarDB Cluster を一時停止することで、ScalarDB のトランザクション的に一貫性のあるバックアップを作成できます。
アプリを ScalarDB Cluster を通じて基盤となるデータベースに接続する設定例を以下に示します。
# トランザクションマネージャーの実装。
scalar.db.transaction_manager=cluster
# クラスターの接続先。
scalar.db.contact_points=indirect:<SCALARDB_CLUSTER_CONTACT_POINT>
Java Client SDK 設定の詳細については、ScalarDB Cluster の Java Client SDK 設定を参照してください。