データハブ Gradleタスク

データハブのGradleプラグイン(ml-data-hub)で使用可能なGradleタスク。

データハブ内でのGradleの使用 データハブ

データハブフロー内でデータハブGradleプラグインを使用する方法については、データハブGradleプラグインを参照してください。

パラメータをGradleタスクに渡すには、-Pオプションを使用します。

./gradlew taskname ...-PparameterName=parameterValue ... -igradlew.bat taskname ...-PparameterName=parameterValue ... -i
重要: Gradleパラメータの値に空白が含まれている場合は、その値を二重引用符で囲む必要があります。値に空白が含まれていない場合は、値を引用符で囲んではいけません。

Gradleの-iオプションを使ってinfoレベルのロギングができます。

このページでは、データハブのGradleプラグイン(ml-data-hub)で使用可能なGradleタスクのすべてを紹介します。
  • mlで始まる名前のタスクは、ml-gradle実装用のものをデータハブ用にカスタマイズしたものです。
  • hubで始まる名前のタスクは、特にデータハブ用に作成されたものです。
ヒント: gradle tasksを実行すると、使用可能なGradleタスクすべてとその詳細な説明が表示されます。

MarkLogicデータハブのセットアップタスク

これらのタスクは、MarkLogicデータハブの設定と管理に使用します。

mlDeploy

(オンプレミスのみ)データハブプロジェクトをデータハブインスタンスにデプロイするには、hubPreinstallCheckを使用してください。

./gradlew mlDeploy -igradlew.bat mlDeploy -i

データハブサービス(DHS)クラウドインスタンスをデプロイするには、hubDeployあるいはそのバリエーションを使用します。

hubDeploy, hubDeployAsDeveloper, hubDeployAsSecurityAdmin

(DHSクラウドのみ)モジュールやその他のリソースをMarkLogicサーバーにインストールします。(データハブ 5.2以降)

ユーザーアカウントに割り当てられたロールに基づき、適切な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
  • 上記すべて

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

オンプレミスのデータハブインスタンスをデプロイするには、mlDeployを使用します。

mlWatch

データハブ固有のフォルダ(pluginsおよびentity-config)内の内のモジュールを監視することで、ml-gradleのWatchTaskを拡張します。

./gradlew mlWatch -igradlew.bat mlWatch -i
mlUpdateIndexes

フォレストを作成または更新せずに、すべてのデータベースのプロパティを更新します。データベースのプロパティの多くは、インデックス付けに関連するものです。

./gradlew mlUpdateIndexes -igradlew.bat mlUpdateIndexes -i
hubUpdate

データハブインスタンスを新しいバージョンに更新します。

./gradlew hubUpdate -igradlew.bat hubUpdate -i

hubUpdateタスクを実行する前に、build.gradleファイルを編集します。pluginsにある'com.marklogic.ml-data-hub’バージョンの値を新しいデータハブのバージョンに変更します。

例えば、データハブ 5.2.0に更新する場合は、次のようにします。
 plugins {
  id 'com.marklogic.ml-data-hub' version '5.2.0'
}

新しいバージョンのデータハブにアップグレードする詳細な手順については、「データハブのアップグレード」を参照してください。

-iオプション(infoモード)を使用してhubUpdateタスクを実行すると、タスクの詳細(変更された設定など)が表示されます。

hubInfo

データハブ設定に関する基本情報を出力します。

./gradlew hubInfo -igradlew.bat hubInfo -i
hubDeployUserArtifacts

エンティティやマッピングなどのユーザーアーティファクトがMarkLogicサーバーにインストールされます。(データハブ 4.2以降)

./gradlew hubDeployUserArtifacts -igradlew.bat hubDeployUserArtifacts -i

MarkLogicデータハブのスキャフォールディングタスク

これらのタスクにより、プロジェクト、エンティティ、フロー、およびステップのスキャフォールディングを実行できます。

hubInit

現在のディレクトリをデータハブプロジェクトとして初期化します。

./gradlew hubInit -igradlew.bat hubInit -i
hubCreateEntity

ボイラープレートのエンティティを作成します。

./gradlew hubCreateEntity -PentityName=YourEntityName -igradlew.bat hubCreateEntity -PentityName=YourEntityName -i
entityName
(必須)作成するエンティティの名前。
hubCreateFlow

ボイラープレートのフロー定義ファイルを作成します。

./gradlew hubCreateFlow -PflowName=YourFlowName -igradlew.bat hubCreateFlow -PflowName=YourFlowName -i
flowName
(必須)作成するフローの名前。
hubCreateStepDefinition

ステップとしてフローに追加できるカスタムのステップ定義を作成します。

./gradlew hubCreateStepDefinition -PstepDefName=yourstepname -PstepDefType=yoursteptype -Pformat=[sjs|xqy] -igradlew.bat hubCreateStepDefinition -PstepDefName=yourstepname -PstepDefType=yoursteptype -Pformat=[sjs|xqy] -i
stepDefName
(必須)作成するカスタムステップ定義の名前。
stepDefType
作成するステップ定義のタイプ。ingestionmappingmasteringcustomです。デフォルトはcustomです。
format
新規ステップ定義に関連付けられたモジュールの形式です。xqy(XQuery用)あるいはsjs(JavaScript)です。デフォルトはsjsです。

JavaScriptモジュール(main.sjs)が生成され、このステップで必要な処理を実行するためのステップ定義に関連付けられます。

  • -Pformat=sjsの場合、あるいはオプションが指定されていない場合、main.sjsファイルだけが作成されます。この中にステップで必要な処理が含まれています。
  • -Pformat=xqyの場合、ファイルが2つ作成されます。
    • lib.xqyは、カスタマイズの対象となるXQueryモジュールです。このステップに必要な処理が含まれています。例えば、エンベロープを作成するカスタムコードなどです。
    • main.sjsは、lib.xqyをラップするものです。

これらのモジュールは、your-project-root/src/main/ml-modules内にあります。

ヒント: デフォルトのステップ(読み込み、マッピング、マスタリング)を若干編集するだけでニーズが満たされる場合、hubCreateFlowで作成されたフロー内のステップのサンプルを適宜修正してください。ステップのサンプルでは、事前定義されたdefault-ingestiondefault-mappingdefault-masteringというステップ定義を使用します。新しく作成する必要はありません。
hubGeneratePii

個人情報(PII)として指定されたエンティティプロパティを保護するためのセキュリティ設定ファイルを生成します。詳細は、「個人情報の管理」を参照してください。

./gradlew hubGeneratePii -igradlew.bat hubGeneratePii -i

MarkLogicデータハブのフロー管理タスク

こうしたタスクでは、フローを実行してクリーンアップできます。

hubRunFlow

フローを実行します。

./gradlew hubRunFlow -PflowName=YourFlowName -PentityName=YourEntityName -PbatchSize=100 -PthreadCount=4 -PshowOptions=[true|false] -PfailHard=[true|false] -Psteps="1,2" -PjobId="abc123" [ -Poptions="{ customkey: customvalue, ...}" | -PoptionsFile=/path/to.json ] -igradlew.bat hubRunFlow -PflowName=YourFlowName -PentityName=YourEntityName -PbatchSize=100 -PthreadCount=4 -PshowOptions=[true|false] -PfailHard=[true|false] -Psteps="1,2" -PjobId="abc123" [ -Poptions="{ customkey: customvalue, ...}" | -PoptionsFile=/path/to.json ] -i
flowName
(必須)実行するハーモナイズフローの名前。
entityName
(フローにマッピングステップが含まれている場合に必須)マッピングステップで使用するエンティティの名前。
batchSize
バッチに含める項目の数。デフォルトは100です。
threadCount
実行するスレッドの数。デフォルトは4です。
showOptions
trueの場合、コマンドに渡されたオプションが出力されます。デフォルトはfalseです。
failHard
true場合、ステップが失敗するとすぐにフローの実行が終了します。デフォルトはfalseです。
steps
実行するステップ番号(カンマ区切りで指定)。指定していない場合は、フロー全体が実行されます。
jobId
このフローの実行に対応付けられた一意のジョブID。このオプションは、フローの実行がより大きなプロセスの一部である場合に使用できます(例えば、NiFiが独自のジョブ/プロセスIDによりオーケストレーションしたプロセスなど)。既存のデータハブのジョブIDと同じにすることはできません。指定していない場合は、一意のデータハブジョブIDが割り当てられます。
options
キー/バリューペアを含むJSON構造が、カスタムパラメータとしてステップモジュールに渡されます。
optionsFile
キー/バリューペアを含むJSONファイルへのパスが、カスタムパラメータとしてステップモジュールに渡されます。

ステップモジュールに渡されたカスタムキー/バリューパラメータは、ステップモジュール内の$options(xqy)あるいはoptions(sjs)変数を通じて使用できます。

hubExportJobs

ジョブレコードをエクスポートします。このタスクは、ステージングデータベースまたはファイナルデータベースのコンテンツには影響しません。

./gradlew hubExportJobs -PjobIds=ID1,ID2,IDn -Pfilename=export.zip -igradlew.bat hubExportJobs -PjobIds=ID1,ID2,IDn -Pfilename=export.zip -i
jobIds
エクスポートするジョブIDのカンマ区切りリスト。
filename
生成するzipファイルの名前(ファイル拡張子を含む)。デフォルトはjobexport.zipです。
hubDeleteJobs

ジョブレコードを削除します。このタスクは、ステージングデータベースまたはファイナルデータベースのコンテンツには影響しません。

./gradlew hubDeleteJobs -PjobIds=ID1,ID2,IDn -igradlew.bat hubDeleteJobs -PjobIds=ID1,ID2,IDn -i
jobIds
(必須)削除するジョブIDのカンマ区切りリスト。

MarkLogicデータハブのレコード管理タスク

これらのタスクでは、特定のレコードに対してフロー外でアクションを実施できます。

hubMergeEntities

指定されたマスタリングステップの設定に基づき、指定されたレコードをマージします。

./gradlew hubMergeEntities -PmergeURIs=URI1,URI2,URIn -PflowName=YourFlowName -Pstep=1 -Ppreview=[true|false] -Poptions={YourStepOptionOverrides} -igradlew.bat hubMergeEntities -PmergeURIs=URI1,URI2,URIn -PflowName=YourFlowName -Pstep=1 -Ppreview=[true|false] -Poptions={YourStepOptionOverrides} -i
mergeURIs
(必須) マージするレコードのURIのカンマ区切りのリスト。
flowName
(必須) マスタリングステップを含むフローの名前。
ステップ
指定されたフロー内のマスタリングステップのステップ番号。このタスクでは、マスタリングステップ内の設定を使用します。デフォルトは1です。つまりフロー内の最初のステップがマスタリングステップです。
preview
trueの場合、データベースには何も変更が加えられず、マージ済みレコードがシミュレーションとして返されます。それ以外の場合は、マージ済みレコードがデータベースに保存されます。デフォルトはfalseです。
options
指定されたマスタリングステップ内の設定を上書きするマスタリングステップを含むJSON形式の文字列です。デフォルトは、{}です。
hubUnmergeEntities

指定されたマージ済みレコードを作成した一連のマージをリバースします。

./gradlew hubUnmergeEntities -PmergeURI=URIofMergedRecord -PretainAuditTrail=[true|false] -PblockFutureMerges=[true|false] -igradlew.bat hubUnmergeEntities -PmergeURI=URIofMergedRecord -PretainAuditTrail=[true|false] -PblockFutureMerges=[true|false] -i
mergeURI
(必須) アンマージするレコードのURI。
retainAuditTrail
trueの場合、マージ済みレコードはアーカイブコレクションに移動されます。それ以外の場合は、削除されます。デフォルトは、trueです。
blockFutureMerges
trueの場合、コンポーネント(マージ元)のレコードは再度マージされることがなくなります。デフォルトは、trueです。
注: このタスクでは、指定されたマージ済みレコードをアーカイブ化あるいは削除します。またこれを作成するために組み合わされたコンポーネント(マージ元)のレコードはアーカイブされなくなります。コンポーネントレコードの1つがマージ済みレコードである場合、コンポーネントレコードはそのままになります。

MarkLogicデータハブのアンインストールタスク

mlUndeploy

(オンプレミスのみ)データハブおよびプロジェクトに関するあらゆるコンポーネントをMarkLogicサーバーから削除します(データベース、アプリケーションサーバー、フォレスト、ユーザーなど)。

./gradlew mlUndeploy -Pconfirm=true -igradlew.bat mlUndeploy -Pconfirm=true -i

データハブインスタンスがDHS(クラウド)上にデプロイされている場合、サポートに連絡して、プロジェクトのコンポーネントを削除するように依頼してください。サポートへのコンタクト

以前の(DHF 4.x)タスク

hubCreateInputFlow

以前(DHF 4.x)の入力フローを作成します。結果として得られるDHF 4.xFlowは、hubRunLegacyFlowを使用して実行する必要があります。

./gradlew hubCreateInputFlow -PentityName=YourEntityName -PflowName=YourFlowName -PdataFormat=[xml|json] -PpluginFormat=[xqy|sjs] -igradlew.bat hubCreateInputFlow -PentityName=YourEntityName -PflowName=YourFlowName -PdataFormat=[xml|json] -PpluginFormat=[xqy|sjs] -i
entityName
(必須)フローを所有するエンティティの名前。
flowName
(必須)作成する入力フローの名前。
dataFormat
xmlあるいはjson。デフォルトはjsonです。
pluginFormat
xqyあるいはsjs。プラグインプログラミング言語。
hubCreateHarmonizeFlow

以前(DHF 4.x)のハーモナイズフローを作成します。結果として得られるDHF 4.xFlowは、hubRunLegacyFlowを使用して実行する必要があります。

./gradlew hubCreateHarmonizeFlow -PentityName=YourEntityName -PflowName=YourFlowName -PdataFormat=[xml|json] -PpluginFormat=[xqy|sjs] -PmappingName=yourmappingname -igradlew.bat hubCreateHarmonizeFlow -PentityName=YourEntityName -PflowName=YourFlowName -PdataFormat=[xml|json] -PpluginFormat=[xqy|sjs] -PmappingName=yourmappingname -i
entityName
(必須)フローを所有するエンティティの名前。
flowName
(必須)作成するハーモナイズフローの名前。
dataFormat
xmlあるいはjson。デフォルトはjsonです。
pluginFormat
xqyあるいはsjs。プラグインプログラミング言語。
mappingName
コード生成の際に使用されるモデル対モデルのマッピングの名前です。
hubRunLegacyFlow

レガシーのDHF 4.xのハーモナイズフローを実行します。

./gradlew hubRunLegacyFlow -PentityName=YourEntityName -PflowName=YourFlowName -PbatchSize=100 -PthreadCount=4 -PsourceDB=data-hub-STAGING -PdestDB=data-hub-FINAL -PshowOptions=[true|false] -Pdhf.YourKey=YourValue -igradlew.bat hubRunLegacyFlow -PentityName=YourEntityName -PflowName=YourFlowName -PbatchSize=100 -PthreadCount=4 -PsourceDB=data-hub-STAGING -PdestDB=data-hub-FINAL -PshowOptions=[true|false] -Pdhf.YourKey=YourValue -i
entityName
(必須)ハーモナイズフローを含むエンティティの名前。
flowName
(必須)実行するハーモナイズフローの名前。
batchSize
バッチに含める項目の数。デフォルトは100です。
threadCount
実行するスレッドの数。デフォルトは4です。
sourceDB
実行の対象となるデータベースの名前。デフォルトは使用するステージングデータベースの名前です。
destDB
ハーモナイズされた結果を入れるデータベースの名前。デフォルトは使用するファイナルデータベースの名前です。
showOptions
このコマンドに渡されたオプションを出力するかどうかを指定します。デフォルトはfalseです。
dhf.YourKey
キーに関連付けられた値です。これらのキー/バリューのペアは、カスタムパラメータとしてフローに渡されます。追加のキー/バリューペアを別のオプションとして渡すこともできます。
hubrunlegacyflow ...-Pdhf.YourKeyA=YourValueA -Pdhf.YourKeyB=YourValueB ...

ステップモジュールに渡されたカスタムキー/バリューパラメータは、ステップモジュール内の$options(xqy)あるいはoptions(sjs)変数を通じて使用できます。