データハブサービスへのデプロイ

データハブサービス

自分で環境を構築する代わりに、データハブプロジェクトをクラウドにデプロイできます。データハブサービス(DHS)は、事前設定されたMarkLogicクラスタを提供するクラウドベースのソリューションです。ここでフローを実行し、ハーモナイズされたデータを提供できます。

MarkLogicデータハブを使用して、プロジェクトをローカル(開発環境)で開発およびテストし、それをDHSクラスタ(本番環境)に導入します。

ヒント: 複数のサービスで同じデータハブプロジェクトファイルを流用できます。例えば、あるDHSプロジェクトをテスト環境として、また別のDHSプロジェクトを本番環境としてセットアップできます。

DHS環境では、データベース、アプリケーションサーバー、およびセキュリティロールが自動的に設定されます。管理者はユーザーアカウントを作成できます。

データハブプロジェクトとDHSプロジェクトでは、以下の設定が若干異なる可能性があります。

  • ロール – DHSのロールは、DHS環境のプロビジョニングの一環として自動的に作成されます。
    データハブDHS
    data-hub-admin
    endpointDeveloper
    endpointUser
    flow-developerflowDeveloper
    flow-operatorflowOperator

    参照:データハブサービスインスタンスのセキュリティロール

  • データベース名 — データハブ環境内でデータベース名を変更している場合、これらは違っています。
  • Gradle設定 — gradle.propertiesファイルには、DHS専用の設定が含まれています。例えばmlIsHostLoadBalancerおよびmlIsProvisionedEnvironmenttrueに設定され、データハブがDHS内で適切に動くようになっています。

アプリケーションサーバー用のポートおよびロードバランサーの設定は、データハブプロジェクトとDHSプロジェクトで同じです。詳細は、クラウドサービスドキュメント内のエンドポイントとポート番号を参照してください。

エンドポイントがプライベートの場合は、MarkLogic VPCにアクセスできる踏み台ホストが仮想プライベートクラウド(VPC)内に必要です。エンドポイントが公開されている場合は、任意のマシンを使用できます。

重要: データハブのQuickStartツールは、DHSでは使用できません。

データハブサービス(DHS)の詳細については、「データハブサービス」および「DHSのドキュメント」を参照してください。

始める前に

  • ローカルでセットアップおよびテストされたデータハブプロジェクト
  • プロビジョニングされたMarkLogicデータハブサービス環境
    重要: データハブ v5.0を使用するには、お使いのDHS環境をアップグレードする必要があります。必ずサポートへのコンタクトサポートにお問い合わせください。
    • プライベートエンドポイントの場合のみ:仮想プライベートクラウド(VPC)内の踏み台ホスト
    • DHS管理者からの情報:
      • DHSホスト名(通常はキュレーションエンドポイント)
      • テスト用のRESTキュレーションエンドポイントURL(ポート番号を含む)
      • 次の各ロールに関連付けられているユーザーアカウントのユーザー名とパスワード(詳細は、「DHSインスタンスのユーザーアカウントを作成する」を参照してください)
        • endpointDeveloper
        • endpointUser
        • flowDeveloper
        • flowOperator

手順

  1. データハブのプロジェクトディレクトリ全体を、エンドポイントにアクセスするマシンにコピーし、そのマシンで以下の手順を実行します。
    重要: エンドポイントがプライベートの場合、このマシンは踏み台ホストでなければなりません。
  2. コマンドラインウィンドウを開き、データハブプロジェクトのルートディレクトリに移動します。
  3. gradle-dhs.propertiesファイルを設定します。
    1. データハブサービスインスタンスからGradleの構成ファイルをダウンロードします(プロジェクトのルートに置きます)。
      注: デフォルトでは、ダウンロードされたファイルの名前はgradle-dhs.propertiesとなっています。別のファイル名を使用したい場合は、以下のようにします。
      • ファイル名の形式をgradle-{env}.propertiesにする必要があります。ここで、{env}は環境を表す任意の文字列です。例えば、開発環境の設定をgradle-dev.propertiesに保存できます。
      • 以下のGradleコマンドの手順においては、-PenvironmentNameパラーメータの{env}部分を適宜更新することを忘れないでください。
    2. 構成ファイルで示されているようにユーザー名とパスワードを設定します。
  4. モジュールおよび他のリソース(インデックスを含む)をデプロイします。

    ユーザーアカウントに割り当てられたロールに基づき、適切なhubDeployタスクを使ってさまざまなアセットをデプロイできます。

    ロール: 以下のGradleタスクを使用する デプロイするもの
    data-hub-developer
    ./gradlew hubDeployAsDeveloper -PenvironmentName=dhs -igradlew.bat hubDeployAsDeveloper -PenvironmentName=dhs -i
    • ユーザーモジュールおよびアーティファクト(エンティティ、フロー、マッピング、ステップ定義)
    • アラートの設定、ルール、アクション。
    • ステージング、ファイナル、ジョブデータベースのインデックス
    • スケジュール化されたタスク
    • スキーマ
    • 時間に関する軸およびコレクション
    • トリガー
    • 保護パスおよびクエリロールセット
    data-hub-security-admin
    ./gradlew hubDeployAsSecurityAdmin -PenvironmentName=dhs -igradlew.bat hubDeployAsSecurityAdmin -PenvironmentName=dhs -i
    • カスタムのロールおよび権限の定義です。以下の制約があります。
      • カスタムロールは、他のどのようなロールからも継承できません。
      • カスタムロールが継承できるのは、これを作成しているユーザーに与えられている権限に限られます。
      • カスタムのexecute権限は、http://datahub.marklogic.com/custom/で始まるアクションに割り当てる必要があります。
    data-hub-developerおよびdata-hub-security-adminの両方
    ./gradlew hubDeploy -PenvironmentName=dhs -igradlew.bat hubDeploy -PenvironmentName=dhs -i
    • 上記すべて

    詳細は、ユーザーとロールを参照してください。

  5. 読み込みステップを含む新しいフローを実行します。

    次のいずれかを使用できます。

  6. マッピングステップまたはマスタリングステップのいずれか、あるいは両方を含むフローを実行します
    ./gradlew hubRunFlow -PflowName=your-flow-name -PentityName=your-entity-name -PenvironmentName=dhs -igradlew.bat hubRunFlow -PflowName=your-flow-name -PentityName=your-entity-name -PenvironmentName=dhs -i
    重要: Gradleパラメータの値に空白が含まれている場合は、その値を二重引用符で囲む必要があります。値に空白が含まれていない場合は、値を引用符で囲んではいけません。
  7. ドキュメントがデータベース内にあることを確認します。
    1. 以下のURLでは、OPERATIONS-REST-ENDPOINT-URLおよびCURATION-REST-ENDPOINT-URL部分を、DHS管理者から教えてもらった適切なエンドポイントURLで置き換えてください。
      ファイナルデータベースhttp://OPERATIONS-REST-ENDPOINT-URL:8011/v1/search
      ステージングデータベースhttp://CURATION-REST-ENDPOINT-URL:8010/v1/search

      例:http://internal-mlaas-xxx-xxx-xxx.us-west-2.elb.amazonaws.com:8011/v1/search

      ヒント: 検索結果を絞り込んで、返される項目を減らしてください。詳細は、「MarkLogic REST API検索」を参照してください。
    2. Webブラウザで、いずれかのURLに移動します。
    この結果は、データベース内のすべてのドキュメントのXML形式のリストです。このリスト内の項目として、ドキュメントのURI、パス、その他のメタデータ、コンテンツのプレビューが含まれます。

次のタスク

プロジェクトの初回アップロード後にフローを更新する場合、ロールに適したhubDeploy* Gradleタスクを再度実行してからこのフローを実行することで、フローを再デプロイできます。