コマンド ラインでのファイル フォーマットのオーバーライド

Job Executor または管理ユーティリティを使用してジョブを実行する際に、データフローの Read from File ステージおよび Write to File ステージで指定されたファイルのファイル レイアウト (またはスキーマ) をオーバーライドできます。

Job Executor でこれを行うには、Job Executor コマンド ライン コマンドの終わりに以下を指定します。

StageName:schema=Protocol:SchemaFile

管理ユーティリティでは、job execute コマンドで次のように --l 引数を使用します。

–-lStageName:schema=Protocol:SchemaFile

説明:

StageName

Enterprise Designer で、データフローのステージのアイコンの下に表示されるステージ ラベル。例えば、ステージのラベルが "Read from File" の場合は、ステージ名として Read from Fileと指定します。

埋め込まれたデータフローまたはサブフロー内のステージを指定するには、ステージ名の前に埋め込まれたデータフローまたはサブフローの名前とピリオドを付けて、次のようにします。

EmbeddedOrSubflowName.StageName

例えば、"Subflow1" という名前のサブフローの中の "Write to File" という名前のステージを指定するには、次のようにします。

Subflow1.Write to File

別の埋め込まれたデータフローの中にある埋め込まれたデータフロー内のステージを指定するには、親データフローをそれぞれピリオドで区切って追加します。例えば、Embedded Dataflow 2 が Embedded Dataflow 1 の中にあり、Embedded Dataflow 2 内の Write to File ステージを指定する場合は、次のようにします。

Embedded Dataflow 1.Embedded Dataflow 2.Write to File

Protocol
通信プロトコル。次のいずれかです。
file
ファイルが Spectrum™ Technology Platformサーバーと同じコンピュータ上にある場合は、file プロトコルを使用します。例えば、Windows では、

"file:C:/myfile.txt"

と指定し、Unix または Linux では、

"file:/testfiles/myfile.txt" と指定します

esclient
ファイルがジョブを実行するコンピュータ上にあり、そのコンピュータがSpectrum™ Technology Platformサーバーを実行するコンピュータと異なる場合は、esclient プロトコルを使用します。次の形式を使用します。

esclient:コンピュータ名/ファイルへのパス

例を次に示します。

esclient:mycomputer/testfiles/myfile.txt

注: ジョブをサーバー自体で実行している場合は、fileプロトコルを使用しても esclient プロトコルを使用しても構いませんが、file プロトコルを使用した方がパフォーマンスが高くなる可能性があります。
Job Executor を実行しているコンピュータがSpectrum™ Technology Platformサーバーのホスト名を解決できない場合、"ファイルのアクセスでエラーが発生しました" というエラーが表示される可能性があります。この問題を解決するには、サーバー上で次のファイルを開きます:SpectrumLocation/server/app/conf/spectrum-container.properties。プロパティ spectrum.runtime.hostname にサーバーの IP アドレスを設定します。
esfile
ファイルが ファイル サーバー上にある場合は、esfile プロトコルを使用します。このファイル サーバーは Management Console でリソースとして定義する必要があります。次の形式を使用します。

esfile://ファイル サーバー/ファイルへのパス

例を次に示します。

esfile://myserver/testfiles/myfile.txt

ここで、myserver は、Management Console で定義された FTP ファイル サーバー リソースです。
webhdfs
ファイルが Hadoop Distributed File Server 上にある場合は、webhdfs プロトコルを使用します。HDFS サーバーは Management Console でリソースとして定義する必要があります。次の形式を使用します。

webhdfs://ファイル サーバー/ファイルへのパス

例を次に示します。

webhdfs://myserver/testfiles/myfile.txt

ここで、myserver は、Management Console で定義された HDFS ファイル サーバー リソースです。
SchemaFile

使用するレイアウトを定義したファイルへのフル パス。

注: ファイルのパスには、バックスラッシュではなくスラッシュ (/) を使用する必要があります。

スキーマ ファイルを作成するには、目的のレイアウトを Read from File または Write to File で定義し、[エクスポート] ボタンをクリックして、レイアウトを定義する XML ファイルを作成します。

注: Job Executor を使用する場合は、スキーマ ファイル内のフィールドのデータ タイプをオーバーライドできません。<FieldSchema> 要素の子である <Type> 要素の値は、データフローの Read from File ステージまたは Write to File ステージで指定されたフィールドのタイプと一致している必要があります。

ファイル フォーマットのオーバーライドの例

以下の Job Executor コマンドでは、ファイル C:/myschema.xml を Read from File ステージによって読み込まれるファイルのレイアウト定義として使用します。

java -jar jobexecutor.jar -j Job1 -u Bob1234 -p "" "Read from File":schema="file:C:/myschema.xml"