データハブサービスへの導入

データハブサービス

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

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

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

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

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

データハブプロジェクトとDHSプロジェクトには、次のデフォルト設定が含まれます。

  • アプリケーションサーバー用のポートとロードバランサー
    アプリケーションサーバーポートDHSロードバランサー
    ステージング8010キュレーション
    ファイナル8011操作
    ジョブ8013分析
    重要:ポート8004を使用して、データハブフレームワークのコアのみをデプロイします。FINALデータベースにカスタムプラグイン(REST拡張機能、検索オプションなど)を導入するには、ポート8011を使用します。
  • ロール – DHSのロールは、DHS環境のプロビジョニングの一環として自動的に作成されます。
    データハブDHS
    data-hub-admin
    endpointDeveloper
    endpointUser
    flow-developerflowDeveloper
    flow-operatorflowOperator
  • データベース名(データハブ環境でカスタマイズされている場合)
  • mlIsHostLoadBalancermlIsProvisionedEnvironmentなど、gradle.propertiesファイルの一部のDHSのみの設定をtrueにすると、データハブがDHSで正しく動作できるようになります
エンドポイントがプライベートの場合は、MarkLogic VPCにアクセスできる仮想プライベートクラウド(VPC)内に踏み台ホストが必要です。踏み台ホストは以下の安全な中継を行います。
  • 外部環境からMarkLogicへのリクエスト
  • MarkLogicからリクエスト元への結果

エンドポイントが公開されている場合は、MarkLogic VPCのピアとして設定されている任意のマシンを使用できます。

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

開始する前に

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

手順

  1. データハブのプロジェクトディレクトリ全体を、エンドポイントにアクセスするマシンにコピーし、そのマシンで以下の手順を実行します。
    重要:エンドポイントがプライベートの場合、このマシンは踏み台ホストでなければなりません。
  2. コマンドラインウィンドウを開き、データハブのプロジェクトルートディレクトリに移動します。
  3. プロジェクトルートで、新しいgradle-DHS.propertiesファイルを作成します。
    注:プロパティファイルに別の名前を使用する場合は、
    • ファイル名の形式をgradle-{env}.propertiesにする必要があります。ここで、{env}は、環境を表す任意の文字列です。例えば、開発環境の設定をgradle-dev.propertiesに保存できます。
    • 以下の手順のGradleコマンドでは、-PenvironmentNameパラメータの値を{env}に忘れずに更新してください。
    1. 次のコードを新しいファイルにコピーします。
      mlDHFVersion=YOUR_DHF_VERSION mlHost=YOUR_DHS_HOSTNAME mlIsHostLoadBalancer=true mlUsername=YOUR_FLOW_OPERATOR_USER mlPassword=YOUR_FLOW_OPERATOR_PASSWORD mlManageUsername=YOUR_FLOW_DEVELOPER_USER mlManagePassword=YOUR_FLOW_DEVELOPER_PASSWORD mlStagingAppserverName=data-hub-STAGING mlStagingPort=8010 mlStagingDbName=data-hub-STAGING mlStagingForestsPerHost=1 mlFinalAppserverName=data-hub-FINAL mlFinalPort=8011 mlFinalDbName=data-hub-FINAL mlFinalForestsPerHost=1 mlJobAppserverName=data-hub-JOBS mlJobPort=8013 mlJobDbName=data-hub-JOBS mlJobForestsPerHost=1 mlModulesDbName=data-hub-MODULES mlStagingTriggersDbName=data-hub-staging-TRIGGERS mlStagingSchemasDbName=data-hub-staging-SCHEMAS mlFinalTriggersDbName=data-hub-final-TRIGGERS mlFinalSchemasDbName=data-hub-final-SCHEMAS mlModulePermissions=flowDeveloper,read,flowDeveloper,execute,flowDeveloper,insert,flowOperator,read,flowOperator,execute,flowOperator,insert mlIsProvisionedEnvironment=true
    2. 値を置き換えます。
      キー置き換える値
      mlDHFVersion本番環境で使用するDHFバージョン
      mlHostDHSホストの名前
      ヒント:ホスト名は、DHS最終エンドポイントのドメイン名(エンドポイントURLからhttp://:とポート番号を除いたもの)です。
      • mlUsername
      • mlPassword
      flowOperatorロールに割り当てられたユーザーアカウントのユーザー名とパスワード
      注:パーミッションを追加する必要がある場合は、flowDeveloperロールに割り当てられたユーザーアカウントを使用することもできます。
      • mlManageUsername
      • mlManagePassword
      flowDeveloperロールに割り当てられたユーザーアカウントのユーザー名とパスワード
      ml*DbNameカスタマイズされている場合は、DHSデータベースの名前
      ml*AppserverNameカスタマイズされている場合は、DHSアプリケーションサーバーの名前
      ml*Portデフォルトでない場合は、DHSプロジェクトが設定されているポート
  4. データハブコアモジュールをインストールします。
    ./gradlew hubInstallModules -PenvironmentName=DHSgradlew.bat hubInstallModules -PenvironmentName=DHS
  5. プロジェクトのプラグインをインストールします。
    ./gradlew mlLoadModules -PenvironmentName=DHSgradlew.bat mlLoadModules -PenvironmentName=DHS
  6. データハブ 4.0.2以降を使用している場合は、DHSデータベースにインデックスを読み込みます。
    ./gradlew mlUpdateIndexes -PenvironmentName=DHSgradlew.bat mlUpdateIndexes -PenvironmentName=DHS
  7. 読み込みステップを含むFlowを実行します。

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

  8. マッピングステップまたはマスタリングステップ、あるいはその両方を含むFlowを実行します。
    ./gradlew hubRunFlow -PflowName=your-flow-name -PentityName=your-entity-name -PenvironmentName=DHSgradlew.bat hubRunFlow -PflowName=your-flow-name -PentityName=your-entity-name -PenvironmentName=DHS
    重要:Gradleパラメータの値に空白が含まれている場合は、その値を二重引用符で囲む必要があります。値に空白が含まれていない場合は、値を引用符で囲む必要はありません
  9. ドキュメントがデータベース内にあることを確認します。
    1. 次のURLで、OPERATIONS-REST-ENDPOINT-URLおよびCURATION-REST-ENDPOINT-URLを、DHS管理者から得た適切なエンドポイントURLに置き換えます。
      Finalデータベースhttp://OPERATIONS-REST-ENDPOINT-URL:8011/v1/search
      Stagingデータベース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のSearchを参照してください。
    2. Webブラウザで、いずれかのURLに移動します。
    この結果は、データベース内のすべてのドキュメントのXMLリストです。このリスト内の各項目には、ドキュメントのURI、パス、その他のメタデータ、およびコンテンツのプレビューが含まれます。

次に行う手順

プロジェクトの初回アップロード後にFlowを更新する場合、gradle mlLoadModulesを再度実行してからFlowを実行することで、Flowの更新を再適用できます。