ジョブ プロパティ ファイルを使用したファイル形式のオーバーライド

プロパティ ファイルを使用して、データフローの Read from File ステージおよび Write to File ステージで指定されたファイルのファイル レイアウト (またはスキーマ) をオーバーライドできます。これを行うには、プロパティ ファイルで次のように指定します。

StageName\:schema=Protocol:SchemaFile

説明:

StageName

Enterprise Designer で、データフローのステージのアイコンの下に表示されるステージ ラベル。ステージ名に空白、コロン、または等号が含まれる場合は、その前にバックスラッシュを挿入します。例えば、ステージのラベルが "Read from File" の場合は、ステージ名として Read\ from\ File と指定します。

Embedded\ Dataflow\ 1.Embedded\ Dataflow\ 2.Write\ to\ 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

注: ステージ名の後に :file を入れる必要があります。例えば、Read\ from\ File:file とします。これは、コマンド ラインでファイルをオーバーライドする場合の構文とは異なります。コマンド ラインではステージ名の後に :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 ステージで指定されたフィールドのタイプと一致している必要があります。

以下のプロパティ ファイル例では、最終行において、Read from File ステージで定義されたファイル レイアウトをファイル inputSchema.xml で定義されたレイアウトでオーバーライドします。ステージ名の中の空白の前にはバックスラッシュを挿入します。

j=testJob
h=myspectrumserver.example.com
s=8080
u=david1234
p=mypassword1234
Read\ from\ File\:file=esclient:c:/MyData/testInput.txt
Read\ from\ File\:schema=esclient:c:/MyData/inputSchema.xml