mlcpによる読み込み

MarkLogic Content Pump(mlcp)は、MarkLogicが提供するスタンドアロンのJavaユーティリティです。

mlcpを使って、MarkLogicサーバーにデータを読み込むことができます。フローを2つセットアップできます。
  • mlcpを使った読み込みステップのみを含んだフロー。
  • 他のツールを使ったマッピングおよびマスタリング(統合あるいは分割)ステップを含んだフロー。

始める前に

以下が必要です。

  • mlcp
  • MarkLogicデータハブプロジェクト

手順

  1. フローを作成します。
  2. 読み込みステップを作成します。
    注: mlcpを呼び出すためにコマンドラインで使用したパラメータ値は、読み込みステップの設定を上書きします。
  3. 読み込みステップを設定します。mlcpコマンドコードをコピーします。

    読み込みステップの設定を選択したならば、mlcpコマンドフィールドの内容をクリップボードにコピーします。

  4. コマンドラインウィンドウを開き、mlcpプロジェクトのルートディレクトリに移動します。
  5. プロジェクトのルートでmlcpコマンドを実行します(-transform*パラメータを使用)。
    • QuickStartを使用:mlcpコマンドコードをコマンドラインに貼り付けて実行します。
    • Gradleを使用:以下のコードをコマンドラインに貼り付け、カスタマイズし、実行します。
         mlcp.sh import \
          -host "localhost" -port "8010"  \
          -username "flow-operator-user-account" -password "*****"  \
          -input_file_path "/path/to/your/input/directory"  \
          -input_file_type "delimited_text"  \
          -output_collections "ingestion-only,input"  \
          -output_permissions "rest-reader,read,rest-writer,update"  \
          -generate_uri "true"  \
          -output_uri_replace ".*input,'/ingestion-flow/json/'"  \
          -document_type "json"  \
          -transform_module "/data-hub/5/transforms/mlcp-flow-transform.sjs"  \
          -transform_param "flow-name=MyFlow,step=1"
      
         mlcp.bat import ^
          -host "localhost" -port "8010"  ^
          -username "flow-operator-user-account" -password "*****"  ^
          -input_file_path "/path/to/your/input/directory"  ^
          -input_file_type "delimited_text"  ^
          -output_collections "ingestion-only,input"  ^
          -output_permissions "rest-reader,read,rest-writer,update"  ^
          -generate_uri "true"  ^
          -output_uri_replace ".*input,'/ingestion-flow/json/'"  ^
          -document_type "json"  ^
          -transform_module "/data-hub/5/transforms/mlcp-flow-transform.sjs"  ^
          -transform_param "flow-name=MyFlow,step=1"
      
    -host
    MarkLogicサーバーインスタンス用のホストです。
    -port
    MarkLogicサーバーインスタンス用のポートです。
    -input_file_path
    ソースファイルの場所です。
    -input_file_type
    ソースファイルの形式。テキスト、JSON、XML、バイナリ、区切り文字付きテキスト。詳細は、mlcp: 対応している入力形式のまとめを参照してください。
    -generate_uri
    trueの場合、各新規レコードに関連付けられているカスタムURI。
    -output_collections
    新規レコードに関連付けられたコレクションタグを含む、カンマ区切りの文字列です。
    -output_permissions
    読み込まれたデータにアクセスできるロール(カンマ区切りで記載)。
    -output_uri_replace

    読み込まれたレコードのURIをカスタマイズするための置換リスト(カンマ区切りで記載)。このリストは、正規表現パターンとその置換文字列(形式:pattern,'string',pattern,'string',...で構成されています。置換文字列は一重引用符で囲む必要があります。

    詳細は、デフォルトURIの変換を参照してください。

    -document_type
    処理済みのレコードの形式。テキスト、JSON、XML、バイナリ。 以下の値が有効です。
    • json
    • xml
    • text
    • バイナリ

    入力ファイルタイプと違うドキュメントタイプを指定した場合、mlcpが変換を行います。

    -transform_module
    /data-hub/5/transforms/mlcp-flow-transform.sjsである必要があります。このモジュールは、データハブのインストール時に MODULESデータベースに追加されています。
    -transform_param

    カンマ区切りのキー/バリューのペアが/data-hub/5/transforms/mlcp-flow-transform.sjsモジュールに渡されます。以下のキーが有効です。

    • flow-name. わかりやすいフロー名を付けます。
    • step. シーケンス内のステップの順序を示す数字。
    • job-id.(オプション) このフローの実行に対応付けられた一意のジョブID。このオプションは、フローの実行がより大きなプロセスの一部である場合に使用できます(例えば、NiFiが独自のジョブ/プロセスIDによりオーケストレーションしたプロセスなど)。既存のデータハブのジョブIDと同じにすることはできません。指定していない場合は、一意のデータハブジョブIDが割り当てられます。
    • options.(オプション)フローに渡す追加オプション。JSONオブジェクトである必要があります。

次のタスク

QuickStartあるいはGradleを使って、別のフローを作成します。その後、読み込んだデータを強化するために、マッピングやマスタリング(統合あるいは分割)ステップを追加します。