プロジェクト構造

MarkLogicデータハブでプロジェクトを初期化すると、基本ディレクトリツリーと一部のファイルのベースが作成されます。Flow、ステップ、その他の設定を作成すると、さらに多くのディレクトリとファイルが自動的に作成されます。

ただし、ディレクトリにカーソルを合わせると、説明が表示されます(使用可能な場合)。

   your-project-root
    ├── build.gradle
    ├── gradle-properties
    ├── gradle-env.properties
    ├── gradlew
    ├── gradlew.bat
    ├── marklogic-datahub-5.0.0.war
    ├── build
    │   ├── com.marklogic.ml-app-deployer
    │   └── ml-javaclient-util
    ├── entities
    │   ├── entity1.entity.json
    │   ├── ...
    │   └── entityN.entity.json
    ├── flows
    ├── gradle
    │   └── wrapper
    │       ├── gradle-wrapper.jar
    │       └── gradle-wrapper.properties
    ├── mappings
    ├── src
    │   └── main
    │       ├── entity-config
    │       ├── hub-internal-config
    │       │   ├── databases
    │       │   │   ├── job-database.json
    │       │   │   ├── staging-database.json
    │       │   │   ├── staging-schemas-database.json
    │       │   │   └── staging-triggers-database.json
    │       │   ├── security
    │       │   │   ├── amps
    │       │   │   │   └── 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
    │       │   │   │   ├── 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-config
    │       │   ├── 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
    │       │   │   ├── roles
    │       │   │   └── users
    │       │   └── servers
    │       │       └── final-server.json
    │       ├── ml-modules
    │       │   └── root
    │       │       └── custom-modules
    │       └── ml-schemas
    ├── step-definitions
    │   ├── ingestion
    │   ├── mapping
    │   ├── mastering
    │   └── custom
    └── .tmp
        └── hub-modules-deploy-timestamps.properties

build.gradle

このファイルでは、Gradleを使用して、データハブインスタンスを設定および管理できます。Gradleのドキュメントを参照してください。

gradle.properties

このプロパティファイルでは、データハブを正しくインストールおよび実行するために必要な変数を定義します。このファイルには、データハブのすべてのインスタンスに適用される値を格納します。

gradle-env.properties

データハブは、プロジェクトのさまざまな環境(例:devハブプロジェクトのオーバーライドファイルに基づくqaprodlocalなど)を使用します。新しい環境を作成するには、ダッシュの後に環境名を付けて新しいオーバーライドファイルを作成します。例えば、gradle-local.propertiesファイルには、ローカル環境のgradle.properties内の変数をオーバーライドする設定が含まれています。

gradlew

gradleディレクトリのGradleラッパーを実行するUnix/Linux実行可能ファイル。

gradlew.bat

gradleディレクトリのGradleラッパーを実行するWindows実行可能ファイル。

entities

このディレクトリには、エンティティ定義が含まれています。エンティティとは、EmployeeやSalesOrderなどのドメインオブジェクトのことです。
注:entitiesディレクトリは、データハブ用に予約されており、導入プロセスでは特別なケースとして扱われます。

flows

このディレクトリには、Flow定義が含まれています。Flowは、データの読み込みからマッピング、マスタリングまでを処理する一連のステップで構成されています。

gradle

このディレクトリには、Gradleラッパーが含まれています。Gradleラッパーは、Gradleのカスタムローカルバージョンであるため、Gradleを個別にインストールする必要はありません。Gradleラッパーは、新しいデータハブプロジェクトを初期化するときにインストールされます。

mappings

このディレクトリには、モデル間マッピングの設定アーティファクトが含まれています。詳細については、「マッピングについて」を参照してください。

src/main/entity-config

このディレクトリには、ステージングおよびファイナル用の2つのオプションファイルと2つのデータベース設定ファイルが含まれています。これらのファイルは、インデックスを設定するために変更できます。

src/main/hub-internal-config

このディレクトリには、サブディレクトリと、データハブが機能するために必要な最小限の設定を表すJSONファイルが含まれています。

hub-internal configには、STAGINGサーバーやJOBのサーバーおよびデータベースなど、内部のサーバーおよびデータベース用の設定ファイルが含まれています。ml-configには、FINALサーバーおよびデータベース用に同じファイルが含まれています。

重要:このディレクトリでは何も編集しないでください。このディレクトリの設定をオーバーライドする必要がある場合は、ml-configディレクトリの下に同じ名前のファイルとディレクトリ構造を作成し、オーバーライドするプロパティを追加します。

上記の各JSONファイルは、以下の作成に備えてMarkLogic REST APIに準拠しています。

src/main/hub-internal-config/databases

このディレクトリには、STAGING*データベースやJOBデータベースなどの内部データベースの設定が含まれています。

src/main/hub-internal-config/security

このディレクトリには、amps、権限、ロール、ユーザーを含むSTAGINGサーバーのセキュリティ設定ファイルが含まれています。

  • ampsサブディレクトリには、権限を一時的に高めるための設定ファイルが格納されています。
  • privilegesサブディレクトリには、データにアクセスするためのさまざまな権限またはパーミッションを定義する設定ファイルが格納されています。権限はロールにグループ化され、必要に応じてロールにユーザーが割り当てられます。
  • rolesサブディレクトリには、3つのデフォルトのロール(data-hub-admin-roleflow-developer-role、およびflow-operator-role)の設定ファイルが事前に配置されています。
  • usersサブディレクトリには、2つのデフォルトユーザー(flow-developer-userおよびflow-operator-user)の設定ファイルが事前に配置されています。

src/main/hub-internal-config/servers

このディレクトリには、JOBサーバーやSTAGINGサーバーなどの内部サーバーの設定が格納されています。

src/main/hub-internal-config/triggers

このディレクトリには、トリガー定義ファイルが含まれています。「Overview of Triggers(トリガーの概要)」を参照してください。

src/main/ml-config

このディレクトリには、データハブプロジェクトの設定に使用する追加のサブディレクトリとJSONファイルが含まれています。このディレクトリに、カスタムモジュールや変換だけでなく、他の設定アセットも追加できます。

hub-internal configには、STAGINGサーバーやJOBのサーバーおよびデータベースなど、内部のサーバーおよびデータベース用の設定ファイルが含まれています。ml-configには、FINALサーバーおよびデータベース用に同じファイルが含まれています。

以下のファイルは、ml-config/databasesディレクトリにのみ存在します。

  • final-database.json
  • final-schemas-database.json
  • final-triggers-database.json
  • modules-database.json
  • final-server.json
重要:カスタムトリガーは、ml-config/databases/database-name/triggersに追加する必要があります。トリガーの詳細については、ml-gradle Project Layout(ml-gradleプロジェクトレイアウト)を参照してください。

src/main/ml-config/databases

このディレクトリには、FINAL*データベースなどの外部データベースの設定が含まれています。

src/main/ml-config/databases/data-hub-staging-SCHEMAS

このディレクトリには、内部(ステージング*)SCHEMASデータベースの設定が含まれています。

src/main/ml-config/databases/data-hub-final-SCHEMAS

ml-gradle v3.11以降で使用されています。このディレクトリには、外部(ファイナル*)SCHEMASデータベースの設定が含まれています。ml-gradle v3.10以前の場合は、src/main/ml-schemasを参照してください。

src/main/ml-config/security

このディレクトリには、権限、ロール、ユーザーなど、FINALサーバーのセキュリティ設定ファイルが含まれています。

  • privilegesサブディレクトリには、データにアクセスするためのさまざまな権限またはパーミッションを定義する設定ファイルが格納されています。権限はロールにグループ化され、必要に応じてロールにユーザーが割り当てられます。
  • rolesサブディレクトリには、セキュリティロールの設定ファイルが格納されています。
  • usersサブディレクトリには、ユーザーの設定ファイルが格納されています。
注:デフォルトのセキュリティロールとユーザーは、STAGINGデータベースに対してはsrc/main/hub-internal-config/securityディレクトリ内に自動的に作成されますが、FINALデータベースに対しては作成されません。

src/main/ml-config/servers

このディレクトリには、FINALサーバーなどの外部データベースの設定が含まれています。

src/main/ml-modules

このディレクトリは、モジュールデータベースに導入されるアーティファクトのml-gradleのデフォルトの場所です。カスタムモジュールは、サブディレクトリ./custom-modulesに格納する必要があります。

src/main/ml-schemas

ml-gradle v3.10以前で使用されています。このディレクトリには、外部(ファイナル*)SCHEMASデータベースの設定が含まれています。ml-gradle v3.11以降の場合は、src/main/ml-config/databases/data-hub-final-SCHEMAS/schemasを参照してください。

step-definitions

このディレクトリには、ステップ定義が含まれています。GradleタスクhubCreateStepDefinitionを実行すると、結果として得られるステップ定義ファイルは、該当するステップタイプのサブディレクトリに格納されます。

  • ./ingestion
  • ./mapping
  • ./matching
  • ./custom

.tmp

このディレクトリには、一時的なハブアーチファクトが含まれます。

プラグイン(古いバージョンから)

注:DHF 4.xからアップグレードした場合、pluginsディレクトリで4.xFlowが引き続き維持されることがあり、こうしたFlowはGradleタスクhubRunLegacyFlowを使用して実行できます。