出力ファイルのJSONメタデータの設定

Talend Open Studio for Data Integration ユーザーガイド

EnrichVersion
5.6
EnrichProdName
Talend Open Studio for Data Integration
task
ジョブデザインと開発
EnrichPlatform
Talend Studio

このセクションでは、出力ファイルのJSONメタデータを定義する方法を説明しています。入力ファイルのJSONメタデータの設定は、入力ファイルのJSONメタデータの設定を参照してください。

一般的なプロパティの定義

  1. ウィザードで、[Name] (名前)、[Purpose] (目的)、[Description] (説明)など、JSONファイルメタデータを識別するための一般的な情報を対応するフィールドに入力します。

    [Name] (名前)フィールドは必須です。また、[Description] (説明)フィールドに入力した情報はファイル接続でマウスオーバーすると、ツールヒントとして表示されます。

    注記

    この手順では、入力接続であるか出力接続であるかを判別しやすくする情報を入力することが推奨されます。どちらであるかは次の手順で定義します。

  2. 必要に応じて、[Version] (バージョン)フィールドと[Status] (ステータス)フィールドを設定します。

    リポジトリアイテムのバージョンとステータスは、[Project Settings] (プロジェクト設定)ダイアログボックスでも管理することができます。詳細は、バージョン管理およびステータス管理を参照してください。

  3. 必要に応じて、[Path] (パス)フィールドのとなりの[Select] (選択)ボタンをクリックし、[File Json] (JSONファイル)ノードの下の作成したファイル接続を格納するフォルダーを選択します。

  4. [Next] (次へ)をクリックして、メタデータのタイプを設定します。

メタデータタイプの設定およびテンプレートJSONファイルのロード

この手順では、スキーマのタイプを入力または出力のいずれかに設定します。ここでは、出力に設定する方法を説明しています。

  1. このダイアログボックスでは、[Output JSON] (出力JSON)を選択して[Next] (次へ)をクリックし、ウィザードの次の手順に進みます。

  2. 出力メタデータを手動で作成するか、既存のJSONファイルをテンプレートとして作成するかを選択します。

    [Create manually] (手作業で作成)オプションを選択した場合、スキーマを手作業で設定し、ソースカラムとターゲットカラムをリンクする必要があります。出力JSONファイル/フィールドは、tWriteJSONFieldなどのJSON出力コンポーネントを使用するジョブから生成されます。

    この例では、既存のJSONファイルをロードして、出力メタデータを作成します。そのためには、[Create from a file] (ファイルから作成)オプションを選択します。

  3. [JSON File] (JSONファイル)フィールドの横にある[Browse...] (参照...)ボタンをクリックして、出力JSONファイル/フィールドに適用されるJSONファイル構造のアクセスパスを参照し、ファイルをダブルクリックします。または、ファイルのフルパスまたはテンプレートJSONファイルにアクセスするためのURLを入力します。

    [File Viewer] (ファイルビューアー)エリアに、JSON構造のプレビューが表示され、[File Content] (ファイルの内容)エリアに、最大でファイルの先頭から50行が表示されます。

  4. システムにより自動的に検出されない場合は、[Encoding] (エンコーディング)フィールドにエンコーディングのタイプを入力します。

  5. [Limit] (制限)フィールドに、XPathクエリが実行されるカラムの数を入力します。すべてのカラムに対して実行する場合は、「0」を入力します。

  6. オプションで、出力ファイルパスを指定します。

  7. [Next] (次へ)をクリックして、スキーマを定義します。

スキーマの定義

これまでの操作が終了したら、青色の矢印が示すように、[Linker Source] (リンカーソース)エリアのカラムが[Linker Target] (リンカーターゲット)で対応するカラムに自動的にマッピングされます。

この手順では、出力スキーマを定義する必要があります。次の表は、それぞれの操作方法を説明しています。

目的 操作
ループモジュールを定義する

[Linker Target] (リンカーターゲット)エリアで、モジュールを右クリックし、コンテキストメニューから[Set As Loop Element] (ループモジュールとして設定)を選択します。

注記

ループを実行するようにモジュールを定義することは必須です。

グループモジュールを定義する

[Linker Target] (リンカーターゲット)エリアで、モジュールを右クリックし、コンテキストメニューから[Set As Group Element] (グループモジュールとして設定)を選択します。

注記

ループモジュールの親モジュールは、親モジュールがJSONツリーのルートでない限り、グループモジュールとして設定できます。

モジュールの子モジュールを作成する

[Linker Target] (リンカーターゲット)エリアで、次のいずれかを行います。

  • モジュールを右クリックし、コンテキストメニューから[Add Sub-element] (サブモジュールの追加)を選択します。表示されるダイアログボックスにサブモジュールの名前を入力して、[OK]をクリックします。

  • モジュールを選択し、下部のボタンをクリックします。表示されるダイアログボックスで[Create as sub-element] (サブモジュールとして作成)を選択し、[OK]をクリックします。次のダイアログボックスにサブモジュールの名前を入力し、[OK]をクリックします。

モジュールの属性を作成する

[Linker Target] (リンカーターゲット)エリアで、次のいずれかを行います。

  • モジュールを右クリックし、コンテキストメニューから[Add Attribute] (属性の追加)を選択します。表示されるダイアログボックスに属性の名前を入力して、[OK]をクリックします。

  • モジュールを選択し、下部のボタンをクリックします。表示されるダイアログボックスで[Create as attribute] (属性として作成)を選択し、[OK]をクリックします。次のダイアログボックスに属性の名前を入力し、[OK]をクリックします。

モジュールのネームスペースを作成する

[Linker Target] (リンカーターゲット)エリアで、次のいずれかを行います。

  • モジュールを右クリックし、コンテキストメニューから[Add Name Space] (ネームスペースの追加)を選択します。表示されるダイアログボックスにネームスペースの名前を入力して、[OK]をクリックします。

  • モジュールを選択し、下部のボタンをクリックします。表示されるダイアログボックスで[Create as name space] (ネームスペースとして作成)を選択し、[OK]をクリックします。次のダイアログボックスにネームスペースの名前を入力し、[OK]をクリックします。

1つ以上のモジュール、属性、ネームスペースを削除する

[Linker Target] (リンカーターゲット)エリアで、次のいずれかを行います。

  • モジュール、属性、またはネームスペースを右クリックし、コンテキストメニューから[Delete] (削除)を選択します。

  • モジュール、属性、またはネームスペースを選択し、下部のボタンをクリックします。または、

  • モジュール、属性、またはネームスペースを選択し、[Delete]キーを押します。

    注記

    モジュールに子が存在する場合、モジュールを削除すると子も削除されます。

1つ以上のモジュールの順序を変更する

[Linker Target] (リンカーターゲット)エリアで、モジュールを選択し、ボタンおよびボタンを使って、カラムを追加または削除できます。

モジュール、属性、またはネームスペースに静的な値を設定する

[Linker Target] (リンカーターゲット)エリアで、モジュール、属性、またはネームスペースを右クリックし、コンテキストメニューから[Set A Fix Value] (固定値の設定)を選択します。

注記

  • 設定した値により、ジョブの入力側データフローから取得された該当するコラムの値が置き換えられます。

  • ループモジュールの子モジュールには、モジュールに子モジュールがなく、ソースターゲットのマッピングが存在しない限り、静的な値を設定できます。

ソースターゲットのマッピングを作成する

[Linker Source] (リンカーソース)エリアで、カラムを選択し、[Linker Target] (リンカーターゲット)エリアのノードにドロップします。必要に応じて、ダイアログボックスで[Create as sub-element of target node (ターゲットノードのサブモジュールとして作成)、[Create as attribute of target node] (ターゲットノードの属性として作成)、または[Add linker to target node] (リンカーをターゲットノードに追加)を選択し、[OK]をクリックします。

ターゲットノードに許可されていないオプションを選択すると、警告のメッセージが表示され、操作は失敗します。

ソースターゲットのマッピングを削除する [Linker Target] (リンカーターゲット)エリアで、ノードを右クリックし、コンテキストメニューから[Disconnect Linker] (リンカーの切断)を選択します。
別のJSONファイルからJSONツリーを作成する [Linker Target] (リンカーターゲット)エリアで、スキーマアイテムを右クリックし、コンテキストメニューから[Import JSON Tree] (JSONツリーのインポート)を選択して、別のJSONファイルをロードします。次に、ソースターゲットのマッピングを手作業で作成し、出力スキーマを再度定義する必要があります。

注記

Ctrlキー + Shiftキーを使うと、複数のフィールドを選択してドロップでき、すばやくマッピングできます。右クリック操作でも複数の選択ができます。

  1. [Linker Target] (リンカーターゲット)エリアで、ループモジュールとして設定するモジュールを右クリックし、コンテキストメニューから[Set As Loop Element] (ループモジュールとして設定)を選択します。

    この例では、details (詳細)モジュールで実行するループを定義します。

  2. 必要に応じてマッピングをカスタマイズします。

  3. [Next] (次へ)をクリックして、スキーマを確定します。

最終スキーマの確定

ウィザードの最後の手順では、生成されたエンドスキーマが表示され、スキーマを必要に応じてカスタマイズできます。

  1. 必要に応じて、スキーマの名前(デフォルトはmetadata)を変更し、コメントを入力します。

    必要に応じてツールバーを使ってスキーマカラムを追加、削除、移動する、スキーマをXMLファイルにエクスポートする、スキーマ定義XMLファイルをインポートしてスキーマを置き換える、などスキーマをカスタマイズします。

  2. スキーマの基になるJSONファイルが変更されたら、[Guess] (推測)ボタンをクリックして、スキーマを再度生成します。スキーマをカスタマイズしている場合、[Guess](推測)をクリックすると変更が失われることに注意してください。

  3. [Finish] (終了)をクリックします。[Repository] (リポジトリ)ツリービューの該当する[File JSON] (JSONファイル)メタデータの下に新規ファイル接続とそのスキーマが表示されます。

これで、ファイル接続または任意のスキーマを[Repository] (リポジトリ)ツリービューでドラッグして、新しいtWriteJSONFieldコンポーネントとしてデザインワークスペースにドロップするか、既存のコンポーネントにドロップしてメタデータを再利用できます。ジョブで一元化するメタデータの使用方法の詳細は、ジョブで一元化されたメタデータを使用する方法およびリポジトリスキーマを設定する方法を参照してください。

既存のファイル接続を変更するには、[Repository] (リポジトリ)ツリービューで接続を右クリックし、[Edit JSON] (JSONの編集)を選択して、ファイルメタデータセットアップウィザードを開きます。

既存のファイル接続に新規スキーマを追加するには、[Repository] (リポジトリ)ツリービューで接続を右クリックし、コンテキストメニューから[Retrieve Schema] (スキーマ情報の取得)を選択します。

既存のファイルスキーマを編集するには、[Repository] (リポジトリ)ツリービューでスキーマを右クリックし、コンテキストメニューから[Edit Schema] (スキーマの編集)を選択します。