名前空間を管理する
このページは英語版のページが機械翻訳されたものです。英語版との間に矛盾または不一致がある場合は、英語版を正としてください。
名前空間機能は現在パブリックプレビューです。この機能と関連ドキュメントは変更される可能性があります。
この ドキュメントでは、名前空間を使用して ScalarDL 内のアセットを整理し分離する方法について説明します。
概要
名前空間を使用すると、Ledger 内でリソースを論理的にグループ化し、分離できます。各名前空間には、独自のセットが含まれます:
- アセット: 台帳に格納される不変で改ざん検知可能なデータ
- 資格情報: 認証に使用される証明書またはシークレット
- コントラクト: 台帳内のアセットを管理するビジネスロジック
- ファンクション: 外部データベース内の可変レコードを管理するため、コントラクトと連携するビジネスロジック
デフォルトでは、すべてのリソースは default という名前空間に格納されます。マルチテナント、データライフサイクル管理、またはコスト最適化などのさまざまなユースケースに対してリソースを分離するため、追加の名前空間を作成できます。
名前空間には2つのアクセスモデルがあります:
- クロス名前空間アクセスモデル: 単一のアプリケーションが複数の名前空間にまたがるアセットにアクセスします。
- 制限アクセスモデル: 複数の独立したアプリケーションがそれぞれ独自の名前空間内のアセットに排他的にアクセスします。
クロス名前空間アクセスモデ ル
クロス名前空間アクセスモデルは、以下のようなユースケースに適しています:
- 効率的なデータライフサイクル管理: データを期間別 (例: 1年) で名前空間に分け、法的に必要な保存期間 (例: 10年) が過ぎた後、名前空間単位でデータを一括削除する。
- ストレージ階層によるコスト最適化: 異なる性能特性とコストを持つ複数のストレージシステム上で名前空間を準備し、アクセス頻度と重要性に基づいて異なる名前空間にデータを格納する。
名前空間をまたがるデータアクセスを実行するには、名前空間対応インターフェースを使用してコントラクトを実装し、それらのコントラクトを default 名前空間に登録します。default 名前空間に登録されたコントラクトはグローバルアクセススコープを持ち、任意の名前空間内のアセットを取得、配置、スキャンできます。
名前空間対応コントラクトの開発の詳細については、名前空間でアセットを管理するを参照してください。
制限アクセスモデル
制限アクセスモデルは、以下のようなユースケースに適しています:
- SaaSアプリケーション: 共有 ScalarDL クラスター上で同じアプリケーションを実行する複数の顧客をホストしながら、各顧客のデータとコントラクトを完全に分離する。
- インフラストラクチャ統合: 異なる部門やビジネスユニットからの複数の独立したアプリケーションを単一のクラスター上で実行し、各アプリケーションのデータとコントラクト間でのセキュアな分離を維持しながらインフラストラクチャコストを削減する。
ScalarDL は、各名前空間を他の名前空間からアクセスできないように制限し、独立に管理できるようにすることで、これらのシナリオをサポートします。アクセスが制限された名前空間を設定するには、まず名前空間を作成し、次に各名前空間を使用するテナントクライアントの証明書またはシークレットを登録します。次に、登録されたクライアントを通じてアプリケーション用のコントラクトとファンクションを登録します。名前空間に登録されたクライアントのみが、その名前空間内でコントラクトとファンクションを登録して実行したり、アセットを検証したりできます。
default 名前空間に登録されたコントラクトとは異なり、アクセスが制限された名前空間に登録されたコントラクトはローカルアクセススコープのみを持ち、他の名前空間内のアセットにアクセスできません。
名前空間を制限付きで設定およびアクセスする方法の詳細については、名前空間に制限付きでアクセスするを参照してください。