Read from Variable Format File
Read from Variable Format File は、さまざまなレイアウトのレコードを含むファイルからデータを読み込みます。各レコードは、リスト フィールドとして読み込まれます。親レコード タイプを示すタグを指定でき、それ以外のすべてのレコード タイプが親の下のリスト フィールドになります。
可変フォーマット ファイルには、次の特性があります。
- ファイル内のレコードは、異なるフィールド、および異なる数のフィールドを持つことができる。
- 各レコードには、レコードのタイプを識別するタグ (通常は数字) を含める必要がある。
- 階層的な関連性をサポートしている。
可変フォーマット ファイルの例
次の例は、2 人の顧客 Joe Smith と Anne Johnson の当座預金口座の取引に関する情報を含む、可変フォーマット ファイルを示しています。この例のファイルは、フィールド区切り文字としてカンマを使用する区切り記号付きファイルです。
001 Joe,Smith,M,100 Main St,555-234-1290
100 CHK12904567,12/2/2007,6/1/2012,CHK
200 1000567,1/5/2012,Fashion Shoes,323.12
001 Anne,Johnson,F,1202 Lake St,555-222-4932
100 CHK238193875,1/21/2001,4/12/2012,CHK
200 1000232,3/5/2012,Blue Goose Grocery,132.11
200 1000232,3/8/2012,Trailway Bikes,540.00
各レコードの先頭フィールドには、レコードのタイプ、およびレコードのフォーマットを識別するタグが含まれています。
- 001: Customer レコード
- 100: Account レコード
- 200: Account transaction レコード
区切り記号付きファイルにおいて、上の例に示すように、タグ値 (001、100、200) をレコード先頭の固定長バイトに含めることは一般的です。
各レコードには独自のフォーマットがあります。
- 001: FirstName,LastName,Gender,Address,PhoneNumber
- 100: AccountID,DateOpened,ExpirationDate,TypeOfAccount
- 200: TransactionID,DateOfTransaction,Vendor,Amount
レコード フォーマット 100 (アカウント レコード) は、前のレコード 001 の子で、レコード フォーマット 200 (アカウント トランザクション レコード) は、前のレコード 100 (アカウント レコード) の子です。したがって、例のファイルでは、Joe Smith のアカウント CHK12904567 に Fashion Shoes で 2012/1/5 に数量 323.12 のトランザクションが発生していました。同様に、Anne Johnson のアカウント CHK238193875 には、Blue Goose Grocery で 2012/3/5 に 1 つ、Trailway Bikes で 2012/3/8 に 1 つのトランザクションが発生していました。
[ファイル プロパティ] タブ
オプション名 | 説明 |
---|---|
サーバ名 |
入力として選択したファイルが Enterprise Designer を実行しているコンピュータ上にあるか、Spectrum™ Technology Platform サーバー上にあるかを示します。ローカル コンピュータ上のファイルを選択した場合、サーバー名はマイ コンピュータになります。サーバー上のファイルを選択した場合、サーバー名は Spectrum™ Technology Platform になります。 |
ファイル名 |
ファイルへのパスを指定します。省略記号ボタン (...) をクリックし、目的のファイルを選択します。 ワイルド カード文字を使用して、ディレクトリ内の複数のファイルからデータを読み込むことができます。サポートされているワイルド カード文字は、* と ? です。例えば、*.csv と指定して、ディレクトリ内にある、拡張子が HDFS ファイル サーバーからのファイルの読み込みでサポートされる圧縮形式を次に示します。
注: ファイルの拡張子は、そのファイルの解凍に使用される圧縮形式を示します。
重要: なお、Spectrum™ Technology Platform サーバーを実行しているプラットフォームが Unix または Linux の場合、これらのプラットフォームでファイル名およびパスの大文字と小文字が区別されることに注意してください。
|
レコード タイプ |
ファイル内のレコードのフォーマット。次のいずれかを選択します。
|
文字エンコーディング |
テキスト ファイルのエンコーディング。次のいずれかを選択します。
|
レコード長 |
固定長ファイルでは、個々のレコードの文字数を指定します。 |
フィールド区切り文字 |
区切り記号付きファイル内のフィールドを区切るのに使用する文字を指定します。 例えば、次のレコードでは (|) 記号がフィールド区切り文字として使われています。
フィールド区切り文字として定義できるのは次の文字です。
これ以外の文字がフィールド区切り文字として使われているファイルについては、省略記号ボタン (...) をクリックし、別の文字を区切り文字として選択してください。 |
タグ区切り文字 | 区切り記号付きファイル内の各レコードの識別フィールドを区切るために、タグ フィールドの後ろに配置する文字を指定します。タグ区切り文字は 1 文字でなければなりません。 デフォルトでは、以下の文字がタグ区切り文字として選択できます。
これ以外の文字がタグ区切り文字として使われているファイルについては、省略記号ボタン (...) をクリックして、カスタムなタグ区切り文字を追加して選択します。 注: デフォルトで、[レコード区切り文字] は [フィールド区切り文字] として選択された文字と同じです。このフィールドを有効にして別の文字を選択するには、[フィールド区切り文字と同じ] チェックボックスをオフにします。
|
[フィールド区切り文字と同じ] | タグ区切り文字がフィールド区切り文字と同じかどうかを示します。別の文字をタグ区切り文字として選択するには、このチェックボックスをオフにします。 注: デフォルトで、このチェックボックスはオフで、[タグ区切り文字] フィールドは無効になっています。
|
Text qualifier |
区切り記号付きファイル内のテキスト値を囲むのに使用する文字。 例えば、次のレコードでは二重引用符 (") がテキスト修飾子として使われています。
テキスト修飾子として定義できるのは次の文字です。
これ以外の文字がテキスト修飾子として使われているファイルについては、省略記号ボタン (...) をクリックし、別の文字をテキスト修飾子として選択してください。 |
レコード区切り文字 |
順次ファイルまたは区切り記号付きファイル内のレコードを区切るのに使用する文字を指定します。[デフォルトの EOL を使用] チェック ボックスをオンにすると、このフィールドは使用できません。 使用できるレコード区切り文字の設定は次のとおりです。
これ以外の文字がレコード区切り文字として使われているファイルについては、省略記号ボタン (...) をクリックし、別の文字をレコード区切り文字として選択してください。 |
ルート タグ名 |
他のレコード タイプの親であるレコードに対して使用するタグ。例えば、3 つのレコード タイプ 001、100、200 があり、レコード タイプ 100 および 200 がレコード タイプ 001 の子である場合、001 はルート タグです。 |
固定長タグを使用 |
レコード タグを配置する各レコードの先頭に固定長スペースを割り当てるかどうかを指定します。例えば、以下は、固定長フィールドにタグ 001、100、200 を持つファイルを示しています。
|
タグ開始位置 |
[固定長タグを使用] ボックスをオンにした場合、各レコード内のタグの開始位置を指定します。例えば、タグがレコードの 4 文字目で始まる場合は 4 と指定します。 |
タグ長 |
[固定長タグを使用] ボックスをオンにした場合、[タグの開始位置] フィールドで指定した位置から始まるタグに割り当てるスペースの数を指定します。例えば、[タグの開始位置] フィールドで 3 と指定し、[タグ長] フィールドで 7 と指定した場合、4 ~ 10 の位置がレコード タグと見なされます。指定する値は、最も長いタグ名のすべての文字を含められるだけの大きさである必要があります。 [ルート タグ名] フィールドのタグ名を長くした場合、[タグ長] フィールドの値は自動的に増えます。 最大タグ長は 1024 です。 |
デフォルトの EOL を使用 |
Spectrum™ Technology Platform サーバーが実行されているオペレーティング システムのデフォルトの行末 (EOL) 文字をファイルのレコード区切り文字として使用します。 ファイルの EOL 文字がサーバーのオペレーティング システムで使われているデフォルトの EOL 文字と異なる場合は、このオプションをオンにしないでください。例えば、ファイルで Windows の EOL が使われていて、サーバーの動作プラットフォームが Linux の場合は、このオプションをオンにしないでください。代わりに、[レコード区切り文字] フィールドで [Windows] オプションを選択します。 |
フィールド数が定義よりも少ないレコードを、形式誤りとみなす |
このオプションを有効にすると、完全なレコードより少ない数のフィールドを含む子レコードは形式誤りと見なされます。形式誤りレコードが発生すると、処理は次のルート タグまで進み、その間にあるすべての子タグが無視されます。例外は、行番号とともに、形式誤りの子レコードについての情報を格納するログに書き出されます。 注: このオプションが有効かどうかにかかわらず、次の場合にはレコードは常に形式誤りと見なされます。
|
[フィールド] タブ
[フィールド] タブでは、ファイルから読み込む各フィールドの特性を指定します。
[実行時] タブ
フィールド名 | 説明 |
---|---|
ファイル名 |
最初のタブで選択したファイル名が表示されます。 |
開始レコード |
レコードをデータフローに読み込むときファイルの先頭部分にあるレコードをスキップしたければ、読み込みたい最初のレコードを指定します。例えば、最初の 50 個のレコードをスキップする場合は 51 と指定します。これで 51 番目のレコードがデータフローに読み込まれる最初のレコードとなります。 |
すべてのレコード |
[開始レコード] フィールドで指定したレコードからファイルの最後までのレコードをすべて読み込む場合は、このオプションをオンにします。 |
最大レコード数 |
[開始レコード] フィールドで指定したレコードを起点にそこから一定の数のレコードを読み込む場合は、このオプションをオンにします。例えば、最初の 100 個のレコードを読み込みたい場合は、このオプションをオンにして 100 と入力します。 |