プロジェクト構造
MarkLogicデータハブでプロジェクトをイニシャライズすると、基本的なディレクトリツリーおよびいくつかのファイルが叩き台として提供されます。フローやステップあるいは他の設定を作成すると、追加のディレクトリやファイルが自動的に作成されます。
ディレクトリの上にカーソルを移動すると説明が表示されます(説明がないものもあります)。
your-project-root
├── build.gradle
├── gradle-properties
├── gradle-env.properties
├── gradlew
├── gradlew.bat
├── marklogic-datahub-5.2.0.war
├── entities
│ ├── MyEntity1.entity.json
│ ├── ...
│ └── MyEntityN.entity.json
├── flows
│ ├── MyFlow1.flow.json
│ ├── ...
│ └── MyFlowN.flow.json
├── gradle
│ └── wrapper
│ ├── gradle-wrapper.jar
│ └── gradle-wrapper.properties
├── mappings
│ └── MyFlow-MyStep
│ └── MyFlow-MyStep-0.mapping.json
├── src
│ └── main
│ ├── entity-config
│ │ ├── exp-final-entity-options.xml
│ │ ├── exp-staging-entity-options.xml
│ │ ├── final-entity-options.xml
│ │ ├── staging-entity-options.xml
│ │ └── databases
│ │ ├── final-database.json
│ │ └── staging-database.json
│ ├── hub-internal-config
│ │ ├── database-fields
│ │ │ ├── job-database.xml
│ │ │ └── staging-database.xml
│ │ ├── databases
│ │ │ ├── job-database.json
│ │ │ ├── staging-database.json
│ │ │ ├── staging-schemas-database.json
│ │ │ └── staging-triggers-database.json
│ │ ├── security
│ │ │ ├── amps
│ │ │ │ ├── amps-dhf-update-batch.json
│ │ │ │ ├── amps-dhf-update-job.json
│ │ │ │ └── dhf-amp-*.json
│ │ │ ├── privileges
│ │ │ │ ├── dhf-internal-data-hub.json
│ │ │ │ ├── dhf-internal-entities.json
│ │ │ │ ├── dhf-internal-mappings.json
│ │ │ │ └── dhf-internal-trace-ui.json
│ │ │ ├── roles
│ │ │ │ ├── data-hub-admin-role.json
│ │ │ │ ├── data-hub-admin.json
│ │ │ │ ├── data-hub-developer.json
│ │ │ │ ├── data-hub-entity-model-reader.json
│ │ │ │ ├── data-hub-entity-model-writer.json
│ │ │ │ ├── data-hub-environment-manager.json
│ │ │ │ ├── data-hub-explorer-architect.json
│ │ │ │ ├── data-hub-flow-reader.json
│ │ │ │ ├── data-hub-flow-writer.json
│ │ │ │ ├── data-hub-job-internal.json
│ │ │ │ ├── data-hub-job-reader.json
│ │ │ │ ├── data-hub-mapping-reader.json
│ │ │ │ ├── data-hub-mapping-writer.json
│ │ │ │ ├── data-hub-module-reader.json
│ │ │ │ ├── data-hub-module-writer.json
│ │ │ │ ├── data-hub-monitor.json
│ │ │ │ ├── data-hub-operator.json
│ │ │ │ ├── data-hub-portal-security-admin.json
│ │ │ │ ├── data-hub-security-admin.json
│ │ │ │ ├── data-hub-step-definition-reader.json
│ │ │ │ ├── data-hub-step-definition-writer.json
│ │ │ │ ├── flow-developer-role.json
│ │ │ │ └── flow-operator-role.json
│ │ │ └── users
│ │ │ ├── flow-developer-user.json
│ │ │ └── flow-operator-user.json
│ │ ├── servers
│ │ │ ├── job-server.json
│ │ │ └── staging-server.json
│ │ └── triggers
│ │ ├── ml-dh-entity-create.json
│ │ ├── ml-dh-entity-delete.json
│ │ ├── ml-dh-entity-modify.json
│ │ ├── ml-dh-entity-validate-create.json
│ │ ├── ml-dh-entity-validate-modify.json
│ │ ├── ml-dh-json-mapping-create.json
│ │ ├── ml-dh-json-mapping-delete.json
│ │ └── ml-dh-json-mapping-modify.json
│ ├── ml-config
│ │ ├── entities.layout.json
│ │ ├── database-fields
│ │ │ └── final-database.xml
│ │ ├── databases
│ │ │ ├── final-database.json
│ │ │ ├── final-schemas-database.json
│ │ │ ├── final-triggers-database.json
│ │ │ ├── modules-database.json
│ │ │ ├── data-hub-staging-SCHEMAS
│ │ │ │ └── schemas
│ │ │ └── data-hub-final-SCHEMAS
│ │ │ └── schemas
│ │ ├── security
│ │ │ ├── privileges
│ │ │ ├── protected-paths
│ │ │ ├── query-rolesets
│ │ │ ├── roles
│ │ │ └── users
│ │ └── servers
│ │ └── final-server.json
│ ├── ml-modules
│ │ └── root
│ │ └── custom-modules
│ │ ├── ingestion
│ │ │ └── MyStep
│ │ │ └── main.sjs
│ │ ├── mapping
│ │ │ └── MyStep
│ │ │ └── main.sjs
│ │ ├── mapping-functions
│ │ ├── matching
│ │ │ └── MyStep
│ │ │ └── main.sjs
│ │ ├── merging
│ │ │ └── MyStep
│ │ │ └── main.sjs
│ │ ├── mastering
│ │ │ └── MyStep
│ │ │ └── main.sjs
│ │ └── custom
│ │ └── MyStep
│ │ └── main.sjs
│ └── ml-schemas
└── step-definitions
├── ingestion
│ └── MyCustomIngestionStep
│ └── MyCustomIngestionStep.step.json
├── mapping
│ └── MyCustomMappingStep
│ └── MyCustomMappingStep.step.json
├── mastering
│ └── MyCustomMasteringStep
│ └── MyCustomMasteringStep.step.json
└── custom
└── MyCustomOtherStep
└── MyCustomOtherStep.step.json
build.gradle
このファイルにより、Gradleを使ってデータハブインスタンスを設定および管理できるようになります。詳細は、Gradleのドキュメントを参照してください。
gradle.properties
このpropertiesファイルでは、データハブのインストールおよび実行を適切に行うために必要な変数を定義しています。このファイルを使って、データハブのすべてのインスタンスに適用される値を格納します。
gradle-env.properties
データハブ はプロジェクトの環境を指定します(例:dev
、qa
、prod
、local
)。これはハブプロジェクトのオーバーライドファイルに基づきます。新しい環境を作成するには、ダッシュの後に新しい環境名が付いたオーバーライドファイルを新規作成してください。例えば、ローカル環境用のgradle-local.propertiesファイルには、gradle.propertiesの変数をオーバーライドする設定が含まれてます。
gradlew
Unix/Linux実行ファイルで、gradleディレクトリ内のGradleラッパーを実行します。
gradlew.bat
Windows実行ファイルで、gradleディレクトリ内のGradleラッパーを実行します。
entities
flows
このディレクトリにはフロー定義が含まれています。フローはデータを処理するステップ(読み込み、マッピング、マスタリングなど)から構成されています。
gradle
このディレクトリにはGradleラッパーが含まれています。これはGradleのカスタムなローカル版です。このためGradleを別途インストールする必要はありません。このGradleラッパーは、新規データハブプロジェクトをイニシャライズした際にインストールされます。
mappings
このディレクトリにはモデル間のマッピング設定のアーティファクトが含まれています。詳細については、マッピングについてを参照してください。
src/main/entity-config
このディレクトリには、optionsファイルおよび、STAGINGおよびFINALに関する2つのデータベース設定ファイルが含まれています。これらのファイルを修正することで、インデックスを設定できます。
src/main/hub-internal-config
このディレクトリには、データハブが機能するうえで最小限必要な設定を表すJSONファイルおよびサブディレクトリが含まれています。
hub-internal-configには内部サーバーおよびデータベース(STAGINGおよびJOBSサーバーとデータベースなど)に関する設定ファイルが含まれています。ml-configには、FINALサーバーおよびデータベースに関する同様のファイルが含まれています。
上記のJSONファイルのそれぞれは、以下を作成するうえでMarkLogic REST APIに準拠しています。
- データベース
- 権限
- ロール
- ユーザー
- サーバー
src/main/hub-internal-config/databases
このディレクトリには、内部データベース(STAGING-* データベースやJOBSデータベースなど)の設定が含まれています。
src/main/hub-internal-config/security
このディレクトリには、STAGINGサーバー用のセキュリティ設定ファイルが含まれています(アンプ、権限、ロール、ユーザーなど)。
- ampsサブディレクトリには、権限の一時的な増強(amplification)用の設定ファイルが含まれています。
- privilegesサブディレクトリには、データへのアクセスに関するさまざまな権限やパーミッションを定義する設定ファイルが含まれています。複数の権限は1つのロールにまとめられています。これを必要に応じてユーザーに割り当てます。
- rolesサブディレクトリには、デフォルトの3つのロール(data-hub-admin-role、flow-developer-role、flow-operator-role)用に事前に準備された設定ファイルが入っています。
- usersサブディレクトリには、デフォルトの2つのユーザー(flow-developer-user、flow-operator-user)用に事前に準備された設定ファイルが入っています。
src/main/hub-internal-config/servers
このディレクトリには、内部サーバー(JOBSサーバーやSTAGINGサーバーなど)の設定が含まれています。
src/main/hub-internal-config/triggers
このディレクトリには、トリガー定義ファイルが含まれています。詳細は、トリガーの概要を参照してください。
src/main/ml-config
このディレクトリには、追加のサブディレクトリおよびデータハブプロジェクトを設定するためのJSONファイルが含まれています。このディレクトリには、カスタムモジュールや変換、その他の設定アセットを追加できます。
hub-internal-configには内部サーバーおよびデータベース(STAGINGおよびJOBSサーバーとデータベースなど)に関する設定ファイルが含まれています。ml-configには、FINALサーバーおよびデータベースに関する同様のファイルが含まれています。
以下のファイルは、ml-config/databasesディレクトリにしか含まれていません。
- final-database.json
- final-schemas-database.json
- final-triggers-database.json
- modules-database.json
- final-server.json
src/main/ml-config/databases
このディレクトリには、外部データベース(FINAL-* データベースなど)の設定が含まれています。
src/main/ml-config/databases/data-hub-staging-SCHEMAS
このディレクトリには、内部の(staging-*)SCHEMASデータベースの設定が含まれています。
src/main/ml-config/databases/data-hub-final-SCHEMAS
ml-gradle v3.11以降に使用されています。このディレクトリには、外部の(final-*)SCHEMASデータベースの設定が含まれています。ml-gradle v3.10以前については、src/main/ml-schemasの項を参照してください。。
src/main/ml-config/security
このディレクトリには、FINALサーバー用のセキュリティ設定ファイルが含まれています(権限、ロール、ユーザーなど)。
- privilegesサブディレクトリには、データへのアクセスに関するさまざまな権限やパーミッションを定義する設定ファイルが含まれています。複数の権限は1つのロールにまとめられています。これを必要に応じてユーザーに割り当てます。
- rolesサブディレクトリには、セキュリティロール用の設定ファイルが含まれています。
- usersサブディレクトリには、ユーザー用の設定ファイルが含まれています。
src/main/ml-config/servers
このディレクトリには、外部サーバー(FINALサーバー)の設定が含まれています。
src/main/ml-modules
このディレクトリは、MODULESデータベースにデプロイされるアーティファクト用のデフォルトのml-gradleの場所です。カスタムディレクトリは、./root/custom-modulesサブディレクトリに格納されている必要があります。
src/main/ml-schemas
ml-gradle v3.101以前に使用されています。このディレクトリには、外部の(final*)SCHEMASデータベースの設定が含まれています。ml-gradle v3.11以降については、src/main/ml-config/databases/data-hub-final-SCHEMAS/schemasの項を参照してください。。
step-definitions
このディレクトリにはステップ定義が含まれています。GradleタスクhubCreateStepDefinitionを実行する場合、結果として得られるステップ定義ファイルは、該当するステップタイプのサブディレクトリに格納されます。
- ./ingestion
- ./mapping
- ./matching
- ./custom
plugins(以前のバージョンに由来)