2 Oracle Spatial Studioの管理

Oracle Spatial Studioの管理には、管理ユーザー以外のユーザーが空間データを使用する前に実行する必要のある特定のアクションがあります。Spatial Studioの管理ユーザーである場合は、次のことを行う必要があります。

  • Oracle Technical Resources (以前はOracle Technology Networkと呼ばれていました)からOracle Spatial Studioアプリケーションをダウンロードしてインストールします。
  • Spatial Studioスキーマ(つまり、Spatial Studioのメタデータを保持するスキーマ)用のデータベース・スキーマをセットアップします。

    Spatial Studioスキーマは、Spatial Studioのメタデータを追加する既存のデータベース・スキーマ、またはSpatial Studioのみに使用される新たに作成されたスキーマのいずれかです。

  • 新しくインストールしたSpatial Studioアプリケーションを構成します。

    インストールおよび構成アクションが完了したら、ユーザーはデータベースに接続し、Spatial Studioを起動してその機能を使用できます。

ノート:

Spatial Studioアプリケーションは、次のいずれかの形式でダウンロードできます。
  • クイック・スタート: デスクトップ上でSpatial Studio Webアプリケーションを起動するために必要なものが含まれるzipファイルにパッケージ化された、すぐに実行できるスタンドアロン・アプリケーション。(ただし、このキットにはJavaキットがバンドルされていないため、JDK 8 64-bit、update 181以降をデスクトップにインストールする必要があります。)

    クイック・スタートは、個人および開発での使用に適しています。

  • WLSに最適化されたEAR (エンタープライズ・アプリケーション・アーカイブ)ファイル:この.earファイルは、組織のWLSまたはミドルウェア管理者によって管理されている既存のWebLogic Serverドメインにデプロイできます。

    これは、複数のエンド・ユーザーが同じSpatial Studio Webアプリケーションにアクセスする場合に推奨されるインストールおよびデプロイの方法です。

特定のユーザーまたはデータベース・ユーザーは、管理ユーザーと非管理ユーザーの両方になるか、管理ユーザーまたは非管理ユーザーのいずれかのみになることができます。

2.1 Spatial Studioの前提条件と推奨事項

この項では、Spatial Studioを使用するために適用される前提条件および推奨事項について説明します。

Spatial Studioを使用してアクションを実行するためにユーザーが接続するデータベースに、Oracle Spatialをインストールする必要があります。(Oracle Locatorをインストールするだけでは不十分です。)

次の追加要件および推奨事項が適用されます。
  • Javaバージョン: Java 8 (64-bit、update 181以降)またはJDK 11 (64-bit)。
  • Oracle Database 19c以上これはSpatial Studioメタデータ・スキーマにも、Spatial Studioユーザーによって使用されるすべてのデータベース接続にも適用されます。

    ノート:

    Oracle Spatial Studioリリースは、サポートされているOracle Databaseバージョンとの下位互換性があります。
  • Oracle WebLogic Server 12.2.1.3 以上
  • Spatial Studioのメタデータ・スキーマのセットアップに記載されている権限はすべて、Spatial Studioを操作する各データベース・ユーザーに必要です。
  • Spatial Studioで作業する各データベース・ユーザーのデフォルト表領域の割当て制限。ALTER USER文の形式: ALTER USER [username] QUOTA [quota value] ON [default tablespace name];

    たとえば、デフォルト表領域usersを持つtest_userという名前のユーザーの場合は、次のようになります。

    ALTER USER test_user QUOTA unlimited ON users;
  • Spatial Studioリポジトリ・スキーマのデフォルト表領域では、圧縮を使用しないでください。

2.2 Spatial Studioのダウンロードおよびインストール

各ユーザーがSpatial Studioを使用して空間データに対して技術的に興味深い作業を実行する前に、Spatial Studioをダウンロードしてインストールする必要があります。

https://www.oracle.com/database/technologies/spatial-studio/get-started.htmlにアクセスし、Spatial Studioのダウンロードおよびインストールの詳細を確認してください。

2.2.1 Spatial Studioクイック・スタートのインストールおよび構成

クイック・スタートは、使用を開始するための簡単な方法であり、個人および開発での使用に適しています。

クイック・スタートは、Spatial Studioの使用を開始するために必要なものがすべて含まれる1つのzipにパッケージ化されています。ただし、Java (64-bit、update 181以降)および独自のデータベース・スキーマは除きます。

クイック・スタートをインストールする前に、次の前提条件を満たしていることを確認してください:

  • システムにJavaがインストールされていて、JAVA_HOME環境変数がJava SE Development Kitの完全なJDKインストールを指している必要があります。クイック・スタートのインストールには、Java 8 (64-bit、update 181以降)またはJDK 11 (64-bit)が必要です。
  • システムのポート8080および4040が、他の(Web)アプリケーションで使用されていない。ポート8080http://プロトコルで使用し、ポート4040https://プロトコル用です。異なるポートを使用するようにSpatial Studioに指定できますが、8080および4040がデフォルトです。

    デフォルトでは、httpsを使用するアクセスのみがSpatial Studioで許可されます。

次のステップを実行すれば、Spatial Studioクイック・スタートをインストールして構成できます:

  1. クイック・スタートzipアーカイブOracleSpatialStudio_qs.zipをダウンロードします。
  2. OracleSpatialStudio_qs.zipファイルを解凍(抽出)します。
    そうすると、Oracle_Spatial_Studioディレクトリが作成されます。
  3. コマンド・ウィンドウ(Windows)またはターミナル(LinuxまたはMac)からOracle_Spatial_Studioディレクトリに移動します。
    このディレクトリには、複数の.batファイルまたは.shファイルが格納されています。
  4. start.shまたはstart.batを実行して、Spatial Studioアプリケーションを起動します。
    LinuxまたはMacでは、まずchmod u+x *.shコマンドを実行して、.shファイルを実行可能にする必要がある場合があります。
  5. https://localhost:4040/spatialstudioというURLを使用して、ブラウザでSpatial Studio Webアプリケーションを起動します。

    デフォルトの管理ユーザーのログイン資格証明(admin/welcome1)を使用してログインできます。ただし、すぐにパスワードを変更することをお薦めします。adminユーザーの(暗号化された)パスワードを変更する方法については、クイック・スタートのREADMEファイルを参照してください。

    また、次の点にも注意してください。
    • デフォルト・ポートは4040です。ただし、Oracle_Spatial_Studioディレクトリのconf/server.jsonファイルを編集すればポートを変更できます。このファイルを変更した後は、アプリケーションを再起動する必要があります。(HTTPポートの値をデフォルトの8080から変更した場合も同様です。)
    • クイック・スタートには、次の事前定義済Webユーザー・ログイン・アカウントが用意されています:
      • admin: 管理者ユーザー・アカウント
      • daustinおよびbruce: 2つの通常ユーザー・アカウント

      これらの事前定義済ユーザーとそのログイン・パスワードは、conf/jetty-realm.properties構成ファイルに定義されています。パスワードはすべて暗号化形式で格納されています。アプリケーションを初めて起動する前に、デフォルトの管理者ユーザーadminのパスワードを変更することをお薦めします。adminユーザーとその他の通常のSpatial Studioユーザーの(暗号化された)パスワードを変更する方法については、クイック・スタートのREADMEファイルを参照してください。

      また、Spatial Studioメタデータ・スキーマへのログイン、データベース・スキーマへのユーザー作成の接続など、その他すべてのパスワードは常に高度に暗号化されています。

    • READMEファイルには、Webアプリケーションの起動および停止に関する情報も含まれています。アプリケーションを停止する場合は、2番目のターミナルまたはコマンド・ウィンドウを開いて、同じOracle_Spatial_Studioフォルダに移動し、stop.batまたはstop.shスクリプトを実行する方法をお薦めします。

2.2.2 WebLogic ServerドメインへのSpatial Studioのインストール

Spatial Studioは、WebLogic Serverドメインにデプロイできます。複数のエンド・ユーザーが同じSpatial Studioアプリケーションにアクセスする場合は、この方式をお薦めします。

ノート:

複数のエンド・ユーザーのWebLogic ServerでSpatial Studioをホストするには、WebLogic Serverのライセンスが必要です。

Spatial StudioをWebLogic Serverにデプロイするための全般的な方法は、他のJava EE EARアプリケーションをデプロイする方法と同じです。最も簡単な方法は、WebLogic Serverの管理コンソールを使用して次のステップを実行することです。すべてのステップまたはほとんどのステップで、WLSインストール・アプリケーション・ウィザードで提供されるデフォルト値を受け入れることができます。

  1. Oracle Technical ResourcesまたはeDeliveryからStudio EARアーカイブをダウンロードし、ローカル・システムに保存します。
  2. 対象となるWLSドメインの管理コンソールにログインします。
  3. 左側の「デプロイ」リンクをクリックします。
  4. 次の図に示すように、「デプロイメント」セクションの下の「インストール」ボタンをクリックします(ご使用のWLSのインスタンスでは、正確な内容が異なる場合があります)。

    図2-1 Spatial Studioのデプロイ時のWLS管理コンソール

    図2-1の説明が続きます
    「図2-1 Spatial Studioのデプロイ時のWLS管理コンソール」の説明
  5. 次のページで、前にダウンロードしたSpatial Studio EARファイルを選択し、(ライブラリとしてではなく)アプリケーションとしてインストールします。
  6. 残りのステップをクリックして進めます(適切なターゲット・サーバーの選択を含む)。内容を正確に理解している場合を除き、すべての場合にデフォルトのオプションを受け入れる必要があります。最後に、「保存」をクリックしてデプロイメントを完了します。
  7. WLSが本番モードで実行されている場合は、デプロイメントをアクティブにするために、変更をアクティブにする必要があることがあります。
  8. 新しくデプロイしたSpatial Studioアプリケーションがアクティブとしてマークされていることを確認します。マークされていない場合は、WLS管理コンソールから明示的に起動する必要があることがあります。
  9. 管理対象サーバーのURLを/spatialstudioコンテキスト・ルートとともに使用して、Studioアプリケーションにアクセスします。たとえば、http://mycompany.com:7002/spatialstudioです
2.2.2.1 Spatial Studio管理ユーザーによる一般的なWLS管理の防止

Spatial Studio管理ユーザーがWebLogic Serverの他の一般的な管理操作を実行できないようにする場合は、このトピックの手順に従います。

Spatial Studioアプリケーションは、デフォルトで、WebLogicのすべての管理対象管理ユーザー(WebLogicの管理者グループのユーザー)に対してSpatial Studioアプリケーションへのログインを許可し、Spatial Studioアプリケーション内で管理ロールを保持しているとみなします。

ただし、一部のシナリオでは、Spatial Studioアプリケーションのみを管理するユーザーにWebLogic Serverの管理アカウント情報を組織が提供しないことにする場合があります。そのような場合、WLSシステム管理者は、デフォルトのWLSセキュリティ・レルムにID値がSGTech_SystemAdminの新しいWLSグループを作成できます。次に、新しいユーザーを作成するか、既存の非WLS管理ユーザーをこのグループに割り当てます。それ以降、このユーザーは、ログインするたびにSpatial Studioの管理ロールを保持しているとみなされますが、一般的なWLSサーバーの管理を行うことはできません。

すべてのWLS管理対象ユーザーは、デフォルトでSpatial Studioにログインできますが、接続、データセット、プロジェクトなどの独自のSpatial Studioオブジェクトへのアクセスのみに制限されます。Spatial Studioの管理ユーザーには、すべてのユーザーが作成したすべてのSpatial Studioオブジェクトへの完全なアクセス権があります。

2.2.3 Oracle Cloud MarketplaceからのSpatial Studioのインストール

Oracle Cloud MarketplaceからOracle CloudにSpatial Studioをプロビジョニングできます。

Cloud MarketplaceからのSpatial Studioのデプロイの詳細は、Cloud MarketplaceからのSpatial Studioのデプロイを参照してください。

2.3 Spatial Studioのアップグレード

既存のOracle Spatial Studioデプロイメントを22.xバージョンにアップグレードできます。

次の各項では、既存のホストでのSpatial Studioのアップグレード(インプレース・アップグレード)または新しいホストへのデプロイ(アウトオブプレース・アップグレード)時のステップについて説明します。

2.3.1 Spatial Studioのアップグレードの前提条件タスク

Spatial Studioのアップグレードを準備するには、次の前提条件ステップを実行します:
  1. 実行中のすべてのSpatial Studioインスタンスを停止します。
  2. 次のアーティファクトのバックアップを取得します:
    • リポジトリ・データベース・スキーマ
    • 作業ディレクトリ(通常は~/.sgtech)
    • 通常は作業ディレクトリにあるsgtech_config.json構成ファイル
  3. 必要なバージョンのSpatial Studioをダウンロードし、アップグレードするホストにアップロードします

2.3.2 インプレース・アップグレード

Spatial Studioのインプレース・アップグレードの場合は、次のステップを実行します:
  1. Spatial Studio 19.x以前から22.xのいずれかのバージョンにアップグレードする場合は、事前にキャッシュされたすべてのタイルを削除します。それ以外の場合は、このステップはスキップします。

    事前にキャッシュされたすべてのタイルを削除するには、アプリケーションの作業ディレクトリからcacheサブフォルダを削除します。たとえば:

    rm -R ~/.sgtech/cache
  2. Spatial Studioアプリケーションを再デプロイします。
    • クイック・スタートの場合: 古いクイック・スタート・フォルダの名前を変更します。新しくダウンロードしたZIPファイルを解凍し、start.sh (Linux)またはstart.cmd (Windows)を実行します。
    • EARデプロイメントの場合: アプリケーション・サーバーの手順に従って、古いデプロイメント・バージョンを削除します。次に、新しいバージョンをデプロイし、アプリケーションを起動します。
  3. Spatial Studio 20.x以前からアップグレードする場合は、すべてのデータセットの統計をリフレッシュします。それ以外の場合は、このステップはスキップします。
    データセットの統計をリフレッシュするには、「データセット」ページに移動し、各データセットの処理メニューから「統計の更新」を選択します。

2.3.3 アウトオブプレース・アップグレード

Spatial Studioのアウトオブプレース・アップグレードの場合は、次のステップを実行します:
  1. 新しいホストに作業ディレクトリを作成します。
    mkdir ~/.sgtech
  2. sgtech_config.json構成ファイルを古いホストの作業ディレクトリから新しいホストにコピーします。
    cp old/sgtech_config.json ~/.sgtech

    構成ファイル内のmaster_seedエントリが失われると、すべての接続パスワードが破損します。これが発生した場合は、アップグレードを続行し、アップグレード済のSpatial Studioインスタンスにログインして、各接続を編集し、パスワードを再入力してから再接続します。

  3. Spatial Studioアプリケーションをデプロイします。
    • クイック・スタートの場合: 新しくダウンロードしたZIPファイルを解凍して、start.sh (Linux)またはstart.cmd (Windows)を実行するだけです。
    • EARデプロイメントの場合: アプリケーション・サーバーの手順に従って、新しいバージョンをデプロイし、アプリケーションを起動します。

    アプリケーションの起動時に、リポジトリ・データベース・スキーマが自動的にアップグレードされます。

  4. Spatial Studio 20.x以前からアップグレードする場合は、すべてのデータセットの統計をリフレッシュします。それ以外の場合は、このステップはスキップします。
    データセットの統計をリフレッシュするには、「データセット」ページに移動し、各データセットの処理メニューから「統計の更新」を選択します。

2.4 Spatial Studioのメタデータ・スキーマのセットアップ

Spatial Studioスキーマ用のデータベース・スキーマをセットアップする必要があります。このスキーマには、Spatial Studioアプリケーションで使用されるメタデータが保持されます。

Spatial Studioスキーマは、Spatial Studioのメタデータを追加する既存のデータベース・スキーマ、またはSpatial Studioのみに使用される新たに作成されたスキーマのいずれかです。推奨される方法は、Spatial Studioのみで使用される新しいデータベース・ユーザーを作成することです。Spatial Studioスキーマのデータベース・ユーザーは、次の権限を保持している必要があります。

  • CONNECT
  • CREATE PROCEDURE
  • CREATE SEQUENCE
  • CREATE SESSION
  • CREATE SYNONYM
  • CREATE TABLE
  • CREATE TRIGGER
  • CREATE TYPE
  • CREATE VIEW

ノート:

CREATE TRIGGER権限は、GeoRasterデータをスキーマに格納して表示する場合にのみ必要です。

たとえば、DBA権限を持つユーザーとして接続する場合は次のようにします。

SQL> create user SPATIAL_STUDIO identified by <password>;
SQL> grant connect, create procedure, create sequence, create session, create synonym, create table, create trigger, create type, create view to SPATIAL_STUDIO; 

Spatial Studioアプリケーションを初めて実行すると、現在のユーザーのオペレーティング・システム・ホーム・フォルダの下の.sgtechという名前のフォルダに構成ファイルが生成されます。構成ファイルは、sgtech_config.jsonという名前です。これはSpatial Studioアプリケーションが接続の詳細を取得してメタデータ・スキーマに格納する場所です。

メタデータ・スキーマへの接続が確立されると、Spatial Studioアプリケーションは、必要な表およびその他のデータベース・オブジェクトがすでに存在するかどうか、およびそれらのバージョンが最新のSpatial Studioアプリケーション・ソフトウェアを使用した最新の状態であるかどうかを自動的にチェックします。これらの表が見つからない場合、または表を移行する必要がある場合は、Spatial Studioアプリケーションが必要なSQLスクリプトを実行してそれらを作成または移行します。ユーザーが介入する必要はありません。

Spatial Studioスキーマには、次の表およびビューが含まれています。

  • SGTECH_OBJECT: Spatial Studioのすべてのドメイン・オブジェクトを格納します。
  • SGTECH_SYS_TYPE: Spatial Studioの既知のタイプのドメイン・オブジェクトをすべて定義します。
  • SGTECH_SYS_JSON_SCHEMA: JSONデータ・スキーマを格納します。
  • SGTECH_TASK_QUEUE: Spatial Studioの長時間実行されるジョブを格納します。
  • SGTECH_TASK_BROKER: Spatial Studioのジョブ・ブローカを格納します。

ノート:

Spatial Studioの表やビュー、またはその中のデータを追加、削除、編集しないでください。これらはSpatial Studioによって自動的に保守されるため、Oracle Supportから指示されないかぎり、ユーザーは変更しないでください。

Spatial Studioの複数のインスタンスを実行する際のメタデータ・スキーマの管理

Spatial Studioでは、複数のアプリケーション・インスタンスにそれぞれ固有のsgtech_config.jsonファイルがあり、同じメタデータ・スキーマが使用されている場合に、それらのインスタンスを実行できないようになっています。別のインスタンスを実行する必要がある場合は、最初のインスタンスにリンクされているsgtech_config.json構成ファイルを、新しいインスタンスを起動するシステムにコピーすることをお薦めします。

そうしないと、別のシステムで実行されているインスタンスから同じメタデータ・スキーマに接続しようとしたときに、Spatial Studioで次のような警告が出されて失敗します。

選択したリポジトリはすでにSpatial Studioの別のインスタンスに登録されています。詳細は、システムのログを参照してください。

2.5 Spatial Studioのデータベース・ユーザーの接続要件

この項では、データベース・ユーザーがSpatial Studioを操作するための接続要件について説明します。

個々のユーザーは、Spatial Studioを実行する権限を与えられているデータベース・ユーザーとして接続する必要があります。Spatial Studio管理者は、データベース・ユーザーに対してアクセスを有効にできます。

Spatial Studioへのアクセス専用の新しいデータベース・ユーザーを作成するか、既存のデータベース・ユーザーを変更してSpatial Studioへのアクセスを有効にするか、これらの方法を組み合せて使用できます。

すべてのデータベース・ユーザーに最小限の権限セットが必要です。また、Spatial Studioを使用する各データベース・ユーザーには、デフォルト表領域に対する割当て制限が必要です。権限および割当て制限の要件については、Spatial Studioの前提条件と推奨事項を参照してください。

2.6 sgtech_config.jsonファイルを使用した構成の変更

この項では、sgtech_config.jsonファイルの重要なプロパティの構成について説明します。

デフォルトでは、Spatial Studioはほとんどの重要な構成情報を保存するためにsgtech_config.jsonという名前のJSONファイルを(まだ存在していない場合)作成して使用します。

通常、このファイルはオペレーティング・システム・ユーザーのホーム・ディレクトリの.sgtechという名前のサブフォルダにあります。アプリケーションEARをWebLogicドメインにデプロイしたか、クイック・スタートのみを使用している場合は、これが当てはまります。

ノート:

sgtech_config.jsonファイルを保護し、定期的にバックアップがあることを確認する必要があります。このファイルが失われた場合、Spatial Studioがデータ接続のデータベース・スキーマ・パスワードなどの機密情報の暗号化に使用したマスター・キーが失われます。つまり、次回Spatial Studioを起動すると、そのような情報を復号化できなくなり、どのデータ接続も使用できなくなり、その中のデータセットもすべて使用できなくなります。そのようなシナリオの詳細は、失われたマスター・キーのリカバリを参照してください。

次の各トピックでは、システム管理者が気を付ける必要がある構成ファイルの重要なプロパティについて説明します:

2.6.1 HTTPS-ONLYアクセスの許可

sgtech_config.json構成ファイルの最上位レベルのプロパティの1つは、https_onlyです。この値がtrue (デフォルト)に設定されている場合、Oracle Spatial Studioはすべての受信リクエストをアクティブにモニターし、SSLを使用して行われたリクエストのみを許可します。通常のhttp://リクエストは拒否されます。

このため、http://localhost:8080/spatialstudioなどのhttp:// URLを使用してSpatial Studioアプリケーションにアクセスしようとする場合に、https_onlyの値にtrueが設定されていると、ログインできません。実際、ブラウザからアクセスできるページ・リソースがないため、ログイン・ページ自体が表示されません。同様に、HTTPSを使用してアクセスしないかぎり、すべてのRESTfulリクエストはブロックされます。

使用している環境(WebLogic Serverなど)でhttpアクセスのみがサポートされる場合は、https_onlyの値をfalseに変更し、Spatial Studioアプリケーション、またはSpatial StudioがデプロイされているJavaEEコンテナを必ず再起動します。

2.6.2 Spatial Studioメタデータ・スキーマへの接続

Spatial Studioは、SGTECH_OBJECTなどの一連のメタデータ表にアクセスできる必要があります。これらの表は全体として、Spatial Studioアプリケーションのリポジトリとみなされます。これらの表をホストするデータベース・スキーマは、Spatial Studioのメタデータ・スキーマまたはリポジトリ・スキーマとみなされます。

sgtech_config.jsonファイルのmetadata_schemaセクションに接続の詳細が含まれている場合、Spatial Studioは起動時の最初のステップとしてこのメタデータ・スキーマへの接続を確立できる必要があります。

緊急時には、このセクションを手動で編集して、接続詳細を変更または修正することもできます。ただし、構文エラーによってSpatial Studioが動作を停止したり、再起動に失敗する可能性があるため、このファイルを編集するときは常に注意してください。

sgtech_config.jsonファイル(のmetadata_schemaセクション)にリポジトリ・スキーマ接続の詳細を手動で入力する場合は、CONTAINERまたはSPATAL_STUDIOのどちらで物理JDBC接続を管理するかを最初に指定する必要があります。

"metadata_schema" : {
    "connection_manager": "CONTAINER"
}

または

"metadata_schema" : {
    "connection_manager": "SPATIAL_STUDIO"
}

connection_managerCONTAINERを設定すると、Spatial Studioのリポジトリ・スキーマへのJDBC接続は、Jetty (クイック・スタートの場合)またはWebLogic Serverにすでに作成したJava EEデータ・ソースを使用して管理されることになります。たとえば、WLSドメインにjdbc/studioMetadataというデータ・ソースがあり、Studioでこのデータ・ソースを使用してターゲット・スキーマに接続する場合、sgtech_config.jsonの関連セクションは次のようになります。

"metadata_schema" {
"connection_manager" : "CONTAINER",
"container_managed":{
        "jndi_datasource_name" : "jdbc/studioMetadata"
}
}

ノート:

Spatial Studioリリース19.2以降では、Spatial Studioアプリケーションにコンテナ管理の接続の詳細を入力できないため、サポートされている唯一の方法はsgtech_config.jsonファイルを手動で編集することです。

ただし、Spatial Studioでそのメタデータ・スキーマへの物理接続を管理する場合は、connection_managerSPATIAL_STUDIOを設定し、JDBC接続の詳細の完全なセットを指定します。この詳細は、スキーマがOracle Autonomousデータベース(接続を確立するにはデータベースWalletが必要となります)に存在するか、通常のオンプレミスのデータベースに存在するかによって異なります。sgtech_config.jsonファイル内のインライン・コメントで詳細を確認できますが、Spatial Studioに管理ユーザーとしてログオンし、リポジトリ・スキーマの接続の詳細を対話形式で指定することをお薦めします。そのような詳細は、Spatial Studioが接続を検証した後に、sgtech_config.jsonに自動的に保存されます。

2.6.3 メタデータ・オブジェクトのキャッシュ

実行時に、ユーザーが接続、データセットおよびプロジェクトを作成すると、Spatial Studioは、データセットの定義やそのすべての列の定義、すべてのビジュアライゼーションの完全なレイアウトを含むプロジェクトの定義などの大量のメタデータ(Spatial Studioのドメイン・オブジェクトとも呼ばれます)を作成、変更および格納します。

すべてのメタデータ・オブジェクトは、メタデータ表SGTECH_OBJECTに永続的に格納されますが、データベースに頻繁にアクセスする必要がある場合(プロジェクトを開くとき、データセットのプロパティを表示するときなど)は、パフォーマンスが低下する可能性があります。これが発生する場合は、そのようなメタデータ・オブジェクトの頻繁にアクセスされるコピーをメモリーにキャッシュすることが解決策となります。

sgtech_config.jsonファイルのcacheセクションでは、メタデータ・オブジェクトのそのようなインメモリー・キャッシュを有効にするかどうかを指定できます。キャッシュが有効になっている場合は、そのようなオブジェクトをキャッシュできる数とキャッシュする期間をさらに指定できます。一般的なルールとしては、max_size (キャッシュされるメタデータ・オブジェクトの最大数)は1000未満にしますが、Spatial Studioに割り当てるメモリー量が非常に多い場合を除き、10000を超えないようにしてください。

2.6.4 Spatial Studioでの追加構成ファイルのインポート

Spatial Studio 22.1では、様々な構成ファイルをメインのsgtech_config.json構成ファイルにインポートできます。

複数の構成ファイルを処理するためのワークフローを次に示します。

図2-2 複数の構成ファイルを処理するワークフロー

図2-2の説明が続きます
「図2-2 複数の構成ファイルを処理するワークフロー」の説明
  1. 起動時に、Spatial Studioはプライマリ構成ファイルsgtech_config.jsonをロードします。

    sgtech_config.jsonで定義されている設定はすべて、基本設定として使用されます。

  2. sgtech_config.jsonファイルにimportsディレクティブが含まれている場合は、インポート・ファイルが宣言された順序(上から下)でロードされます。

    ロードされたインポート・ファイルごとに、設定が読み込まれ、基本設定に追加されます。

  3. 基本設定がすべて読み込まれると、機密項目が暗号化され、対応するファイルに保存されます。
  4. Spatial Studioは、システムの残りのロードを再開します。

sgtech_config.jsonへのimportsの追加

次のように、sgtech_config.jsonファイルを編集し、新しいトップレベルのimportsディレクティブを追加できます。

"imports" : {
   "<import_name>" : {
      "module" : "<import_file_path>",
      "description" : "<import_description>"
   }
}

前述のコードで:

  • <import_name>: 一意である必要があるインポート・ファイルの名前。これは主に、importsファイルのロード時にエラーをレポートするためにSpatial Studioで使用されます。
  • <import_file_path>: importsファイルのファイル・パスは、メイン構成ファイル(~/.sgtech/sgtech_config.json)の格納先ディレクトリに対して相対的である必要があります。
  • <import_description>: インポートの目的を記述します。

    descriptionは、importsプロパティのオプションのパラメータです。

たとえば、sgtech_config.dbsettings.jsonファイルで、次のコードに示すようにmetadata_schemaの詳細を構成します。ファイル・パスは~/.sgtech/extras/sgtech_config.dbsettings.jsonとなります。
{
  "metadata_schema" : {
    "connection_manager" : "CONTAINER",
    "container_managed" : {
      ...
    },
  }
}

また、sgtech_config.jobs.jsonでファイル・パス~/.sgtech/extras/sgtech_config.jobs.jsonの後に、jobsの詳細を別に構成します。

{
  "jobs" : {
    "init_threads_count" : 45
  }
}

これで、次のように、前述の2つの構成ファイルをメインのsgtech_config.jsonファイル(~/.sgtech/sgtech_config.json)のimportsディレクティブに含めることができるようになります。

{
  "version" : "22.1.0",
  "work_dir" : "",
  "https_only" : true,
  "master_seed" : "<somerandommasterseed>",
  "logging" : {
    "level" : "INFO"
  },
  "imports" : {
    "jobs" : {
      "module" : "extras/sgtech_config.jobs.json"
    },
    "db" : {
      "module" : "extras/sgtech_config.dbsettings.json",
      "description" : "Database settings optimized for clustering"
    }
  }
}

インポート・ファイルの要件

複数のインポート・ファイルを処理する場合は、次の要件に準拠することが重要です。

  • importsのファイルは、プライマリsgtech_config.jsonファイルと同じディレクトリまたはそのサブディレクトリ内にある必要があります。
  • importsファイルに含まれる設定は、プライマリsgtech_config.json構成ファイルなど、他の構成ファイルですでに宣言されている設定との競合を回避する必要があります。
  • importsファイルには機密データを含めることができるため、ファイルの所有者のみが読取りまたは書込み(あるいはその両方)のアクセス権を持っている必要があります。
  • versionwork_dirmaster_seedおよびimportsは、プライマリ構成ファイルsgtech_config.jsonに制限されている設定です。

2.6.5 Spatial Studioのリポジトリ・スキーマ・パスワードが変更されている場合

Spatial Studioのリポジトリ・スキーマ・パスワードが変更されている場合は、次のようにsgtech_config.json構成ファイルを更新する必要があります:

  1. このファイルのバックアップ・コピーを作成します。たとえば、~/.sgtech/sgtech_config.json~/.sgtech/sgtech_config.json_backupにコピーします。
  2. Spatial Studioの計算ノードで、ファイル~/.sgtech/sgtech_config.jsonを編集します。
  3. metadata_schemaセクションで、database_passwordを必要な値に更新します。
  4. ファイルを保存してSpatial Studioデプロイメントを再起動します。クイック・スタート・キットを使用している場合に再起動するには、クイック・スタートのREADMEファイルを参照してください。WebLogic Serverデプロイメントの場合は、WebLogic Serverコンソールを使用して再起動します。
  5. Spatial Studioアプリケーションを開きます。ログインできる必要があります。

必要に応じて編集できる他の(リポジトリ以外の)接続も含め、作成したすべてのアーティファクトが残ります。

2.7 失われたマスター・キーのリカバリ

誤ってsgtech_config.jsonファイルを削除または置換すると、マスター・キーが失われ、Spatial Studioアプリケーションでエラーがスローされます。

sgtech_config.jsonファイルには、データベース・パスワードなどの暗号化されたアイテムの復号化を可能にするマスター・キー値を含むmaster seedプロパティが含まれています。そのため、安全な場所にsgtech_config.jsonファイルをバックアップすることをお薦めします。

ただし、sgtech_config.jsonファイルが失われた場合、次のステップを実行すれば、失われたマスター・キーをリカバリできます:

  1. アプリケーションのインストール・ディレクトリから次のコマンドを実行して、Spatial Studioインスタンスを停止します:
    ./stop.sh

    Cloud Marketplaceからアプリケーションをインストールした場合は、次のコマンドを使用します:

    sudo systemctl stop spatialstudio
  2. SQLクライアント(データベース・アクション、SQL Plus、SQL Developerなど)を使用して、Spatial Studioリポジトリで次のコマンドを実行します:
    DELETE
        "SGTECH_OBJECT"
    WHERE
        "TENANTID" = 'GLOBAL'
        AND "ID" IN ('id__sgtech.safe_text.magicword', 'id__sgtech.key_pair.rsa');
        
    COMMIT;
  3. アプリケーションのインストール・ディレクトリから次のコマンドを実行して、Spatial Studioを起動します:
    ./start.sh

    Cloud Marketplaceからアプリケーションをインストールした場合は、次のコマンドを使用します:

    sudo systemctl start spatialstudio
  4. adminユーザーでSpatial Studioにログインします。
  5. 「接続」ページに移動します。
  6. 各接続を右クリックし、「編集」を選択して、各接続のパスワードを再入力します。
  7. 「アクセス・トークン」ダイアログを開き、アクティブな各トークンを削除します。
  8. 「管理」ページに移動します。
  9. オプションで、個別のAPIキーを使用してカスタム・ベースマップを作成していた場合は、必要なカスタム・ベースマップを編集してAPIキーを再入力します。
    「設定」「ベースマップ」をクリックして、カスタム・ベースマップを表示および編集します。
  10. オプションで、別のAPIキーを使用してCesiumベースマップを作成していた場合は、必要なCesiumベースマップを編集してAPIキーを再入力します。
    「設定」「Cesiumベースマップ」をクリックして、Cesiumベースマップを表示および編集します。

2.8 Spatial Studioでのアイデンティティ・プロバイダとしてのIDCSの有効化

Oracle Spatial Studioリリース22.1.0以降、独自のOracle CloudテナンシのIDCSアイデンティティ・ドメインですでに管理されているユーザーを使用して、Spatial Studioインスタンスにログインできます。

Spatial Studioのアイデンティティ・プロバイダとしてIDCSを設定するワークフローは、次の3つのステップで構成されます。

  1. IDCSでグループとしてSpatial Studioロールを追加。
  2. IDCSでアプリケーションを作成。
  3. Spatial Studioの構成ファイルにIDCS設定をコピー。

開始する前に、「Spatial StudioでIDCSを設定するための前提条件」を参照して、すべての前提条件を満たしていることを確認してください。

2.8.1 Spatial StudioでIDCSを設定するための前提条件

IDCSSpatial Studioと統合するには、次の詳細を取得する必要があります。

IDCSインスタンスの詳細の取得

IDCSインスタンスの詳細を取得するには、IDCS URLのいずれかを調べます。たとえば、IDCSにユーザーとして追加されたときに電子メールで受け取るIDCSログインURLを調べることができます。たとえば、次のIDCSクラウド・アカウントのログインURLの例を考えてみます。

https://idcs-54656e616e742d4578616d706c652121.identity.oraclecloud.com/ui/v1/signin

次のように、前述のURLからIDCSインスタンスの詳細を導出できるようになります。
  • IDCSテナント: idcs-54656e616e742d4578616d706c652121
  • IDCSホスト: identity.oraclecloud.com
2.8.1.1 IDCSコンソールURLの確認

OCIテナンシにはデフォルトのIDCSインスタンスが含まれており、OCIコンソールを使用してIDCSコンソールURLを取得できます。

次のステップを実行して、IDCSコンソールにアクセスするためのURLを特定します。
  1. Oracle Cloud資格証明を使用してOCIコンソールにサインインします。
  2. ナビゲーション・メニューを開き、「アイデンティティとセキュリティ」を選択します。
  3. 「アイデンティティ」「フェデレーション」をクリックします。
    次のように、「フェデレーション」ページが開きます。

    図2-3 「フェデレーション」ページのデフォルトのIDCSインスタンス

    図2-3の説明が続きます
    「図2-3 「フェデレーション」ページのデフォルトのIDCSインスタンス」の説明
  4. 前述の図で強調表示されているデフォルトのIDCSインスタンスをクリックします。
    「アイデンティティ・プロバイダの詳細」ページが開きます。
  5. 次のように、「Oracle Identity Cloud Service Console」フィールドのIDCSコンソールURLを書き留めます。

    図2-4 IDCSコンソールURL

    図2-4の説明が続きます
    「図2-4 IDCSコンソールURL」の説明

2.8.2 IDCSでのグループとしてのSpatial Studioロールの追加

Spatial Studioでサポートされているシステム管理者ロールをIDCSでグループとして追加する必要があります。

Spatial Studioのシステム管理者ロールは、SGTech_SystemAdminで識別されます。これは、管理者がシステム全体にフル・アクセスできることを意味します。

このロールをIDCSグループとして追加する必要があります。ただし、次が適用されます。

  • このグループに割り当てられたユーザーは、設定されているSpatial Studioインスタンスでの管理者権限を持ちます。
  • このグループに属していないユーザーは、IDCSアプリケーションに追加されると、Spatial Studioインスタンスへの通常のアクセス権を持ちます。
前提条件として、IDCSコンソールURLを取得する必要があります。詳細は、「IDCSコンソールURLの確認」を参照してください。

次のステップを実行して、IDCSでグループを作成します。

  1. ブラウザでIDCSコンソールURLを使用して、IDCSログイン・ページを開きます。
  2. 次のように、ADMINユーザー資格証明を入力してサインインします。
  3. 次のように、左上のナビゲーション・メニューを開き、「グループ」を選択して「追加」をクリックし、新しいグループを作成します。

    図2-6 IDCSグループの追加

    図2-6の説明が続きます
    「図2-6 IDCSグループの追加」の説明
    「グループの追加」ダイアログが開き、「ステップ1: グループ詳細」ページが表示されます。
  4. 「名前」SGTech_SystemAdminと入力します。
    ロール名は、大文字/小文字が区別されることに注意してください。
  5. 必要に応じて、「説明」を入力します。
  6. 次のように、「次」をクリックします。

    図2-7 ステップ1: グループ詳細

    図2-7の説明が続く
    「図2-7 ステップ1: グループ詳細」の説明
    「ステップ2: グループへのユーザーの割当て(オプション)」ページが開き、既存のすべてのユーザーがリスト表示されます。
  7. 必要なユーザーを選択し、「終了」をクリックします。
    たとえば、次の図は、グループ・ロールSGTech_SystemAdminへのspatialstudio_userの割当てを示しています。

    図2-8 ステップ2: グループへのユーザーの割当て(オプション)

    図2-8の説明が続きます
    「図2-8 ステップ2: グループへのユーザーの割当て(オプション)」の説明
  8. 新しく追加したグループが「グループ」ページにリスト表示されていることを確認します。

    図2-9 グループのリスト

    図2-9の説明が続きます
    「図2-9 グループのリスト」の説明

2.8.3 IDCSでアプリケーションを作成

この項では、IDCSSpatial Studioアプリケーションを追加するステップについて説明します。

  1. ADMINユーザー資格証明を使用してIDCSにサインインします。
  2. 次のように、左上のナビゲーション・メニューを開き、「アプリケーション」を選択して「追加」をクリックし、新しいアプリケーションを追加します。

    図2-10 アプリケーションの追加

    図2-10の説明が続きます
    「図2-10 アプリケーションの追加」の説明
    「アプリケーションの追加」ダイアログが開きます。
  3. 「機密アプリケーション」を選択します。

    図2-11 「アプリケーションの追加」ダイアログ

    図2-11の説明が続きます
    「図2-11 「アプリケーションの追加」ダイアログ」の説明
    「機密アプリケーションの追加」ウィザードが開き、「詳細」ページが表示されます。
  4. アプリケーションの名前を入力します。
  5. 必要に応じて、説明を追加し、「次」をクリックします。

    図2-12 「機密アプリケーションの追加: 詳細」ページ

    図2-12の説明が続きます
    「図2-12 「機密アプリケーションの追加: 詳細」ページ」の説明
    「クライアント」ページが開きます。
  6. 「このアプリケーションをクライアントとして今すぐ構成します」をクリックして、新しいアプリケーションの認可情報を構成します。
    「認可」セクションで、次を実行します。
    1. 「許可される権限付与タイプ」「クライアント資格証明」および「認可コード」を有効にします。
    2. 「リダイレクトURL」<spatial_studio_url>/idcscallbackと入力します。
    3. 「ログアウト後のリダイレクトURL」<spatial_studio_url>と入力します。
    4. 必要に応じて、「セキュリティ」「信頼できるクライアント」を有効にしてカスタム証明書をインポートできます。

    図2-13 クライアントの詳細の構成

    図2-13の説明が続きます
    「図2-13 クライアントの詳細の構成」の説明
    「トークン発行ポリシー」セクションで、次を実行します。
    1. 「Identity Cloud Service管理APIへのクライアント・アクセス権を付与します」「追加」をクリックして、アプリケーションがIDCS APIにアクセスできるようにします。

      「アプリケーション・ロールの追加」ウィンドウが開き、アプリケーション・ロールがリスト表示されます。

    2. 次のように、「自分」および「認証クライアント」を選択して「追加」をクリックし、これらのアプリケーション・ロールをアプリケーションに割り当てます。

      図2-14 トークン発行ポリシーの構成

      図2-14の説明が続きます
      「図2-14 トークン発行ポリシーの構成」の説明
    3. ページの右上の「次」をクリックして続行します。
  7. 「次」ボタンをクリックして「リソース」および「Web層ポリシー」をスキップし、「認可」ページにナビゲートします。
  8. 「権限付与を認可として実施」オプションを有効にします。
  9. 「終了」をクリックします。
    アプリケーションが追加され、「アプリケーションが追加されました」ダイアログ・ボックスが開きます。

    図2-16 確認のダイアログ

    図2-16の説明が続きます
    「図2-16 確認のダイアログ」の説明
  10. 後で構成を完了するために使用する「クライアントID」および「クライアント・シークレット」を書き留めます。

    ヒント:

    アプリケーションのクライアント資格証明は、アプリケーションがアクティブ化されると、「一般情報」セクションの「構成」タブから取得することもできます。
  11. 「閉じる」をクリックします。

    新しいアプリケーションの「詳細」ページが表示されます。

  12. 「アクティブ化」をクリックして、ユーザーにアプリケーションへのアクセス権を付与し、次のプロンプトで操作を確認します。

    図2-17 アプリケーションのアクティブ化の確認

    図2-17の説明が続きます
    「図2-17 アプリケーションのアクティブ化の確認」の説明
  13. 「グループ」タブをクリックして「割当て」をクリックし、次のように「IDCSでのグループとしてのSpatial Studioロールの追加」で作成したグループを追加します。

    図2-18 アプリケーションへのグループの割当て

    図2-18の説明が続きます
    「図2-18 アプリケーションへのグループの割当て」の説明
  14. 必要に応じて、「ユーザー」タブまたは他のグループを使用して、管理者以外のユーザーを追加します。

    図2-19 管理者以外のユーザーの割当て

    図2-19の説明が続きます
    「図2-19 管理者以外のユーザーの割当て」の説明

2.8.4 Spatial Studioの構成ファイルへのIDCS設定のコピー

Spatial StudioIDCSと統合するには、IDCS設定をsgtech_config.json構成ファイルに追加する必要があります。

構成ファイルは~/.sgtech/sgtech_config.jsonパスにあります。IDCS設定は、sgtech_config.jsonファイルに直接追加できます。ただし、ベスト・プラクティスは、IDCS設定を別の構成ファイルにして、このファイルをメインの構成ファイルにインポートします。
次のステップを実行して、IDCS設定用の構成ファイルを作成し、この構成をsgtech_config.jsonにインポートします。
  1. ~/.sgtechディレクトリに新しい空のJSON構成ファイルを作成します。
    たとえば:

    ~/.sgtech/sgtech_config.idcs.json

  2. 作成したファイルを任意のファイル・エディタで編集し、次のようにIDCS設定情報を追加します。
    {
      "idcs" : {
        "Host" : "identity.oraclecloud.com",
        "ClientTenant" : "<tenant_id>",
        "ClientId" : "<client_id>",
        "ClientSecret" : "<client_secret>",
        "redirectURL" : "https://localhost:4040/spatialstudio/idcscallback",
        "postLogoutRedirectURL" : "https://localhost:4040/spatialstudio/"
      }
    }

    前述のファイルでは、次のとおりです。

    • Host: IDCSホスト。
    • Client Tenant: IDCSテナント。
    • ClientId: IDCSアプリケーションの作成時に生成されます。
    • ClientSecret: IDCSアプリケーションの作成時に生成されます。
    • redirectURL: IDCSアプリケーションの作成時に使用されるリダイレクトURLと同じです。
    • postLogoutRedirectURL: IDCSアプリケーションの作成時に使用されるログアウト後のリダイレクトURLと同じです。
  3. sgtech_config.idcs.jsonファイルを保存します。
  4. メインのsgtech_config.jsonファイルを編集し、次のようにインポート構成を追加します。
    {
      "version" : "22.3.0",
      "work_dir" : "",
      ...
      "jobs" : {
        "init_threads_count" : 15
      },
      "imports" : {
        "idcsclient" : {
          "module" : "sgtech_config.idcs.json"
        }
      }
  5. sgtech_config.jsonファイルを保存します。

2.8.5 IDCSログインのテスト

すべての設定ステップが完了したら、IDCSログインをテストして検証できます。

  1. IDCSからログアウトしたことを確認します。
  2. すべてのSpatial Studioインスタンスが停止していることを確認します。
    Spatial Studioインスタンスを停止するには、Linuxの場合はstop.shを、Windowsの場合はstop.cmdを実行します。
  3. start.sh (Linux)またはstart.cmd (Windows)を実行して、Spatial Studioを実行します。
  4. Spatial Studioが稼働したら、ブラウザでメインURLを開きます。たとえば:
    https://localhost:4040/spatialstudio/
    Spatial Studioの標準ログイン画面ではなく、図2-5に示すIDCSログイン画面が開きます。
  5. 資格証明を入力し、「サイン・イン」をクリックします。
    Spatial Studioインスタンスに自動的にリダイレクトされます。次のように、アバター・アイコンをクリックして、ログイン・ユーザーを確認できます。

    図2-20 「プロファイル」メニュー

    図2-20の説明が続きます
    「図2-20 「プロファイル」メニュー」の説明
  6. 「プロファイル」メニューの「サイン・アウト」をクリックして、Spatial Studioからログアウトします。
    これにより、IDCSで実行されている他のアプリケーションからもログアウトします。