Mainframe Connector トランスコーダを構成するには、必要な構成を JSON ファイルに追加します。このファイルは、トランスコーダ構成ファイルと呼ばれます。構成セクションで指定されているように構成を定義する必要があります。qsam encode
コマンドと qsam decode
コマンドは、トランスコーダ構成ファイルを使用してデータ トランスコーディングを実行します。
このページでは、Mainframe Connector トランスコーダを構成するさまざまな方法について説明します。
構成
Configuration
オブジェクトは、トランスコーダ構成のルートです。ここに、トランスコーダのすべての構成オプションが含まれています。
JSON 表現 |
---|
{ "defaults": object ( |
フィールド | |
---|---|
defaults |
Cobol アーキタイプのデフォルトのフィールド修飾子を指定します。 |
field_suffixes |
フィールドの接尾辞を指定します。 |
field_overrides |
フィールドのオーバーライドを指定します。 |
transformations |
フィールド変換を指定します。 |
schema_validation_mode |
スキーマ検証モードを指定します。 |
DefaultsSection
DefaultsSection
オブジェクトを使用すると、cobol 型のデフォルトの変更を指定できます。これらは、接尾辞やオーバーライドの変更の前に適用されます。
JSON 表現 |
---|
{ "alpha_numeric_display": object ( |
フィールド | |
---|---|
alpha_numeric_display |
英数字(PIC X)フィールドのデフォルトを指定します。 |
numeric_display |
数値表示(ゾーン付き小数)フィールドのデフォルトを指定します。 |
binary |
バイナリ数(COMP)フィールドのデフォルトを指定します。 |
packed_decimal |
パックされた小数(COMP-3)フィールドのデフォルトを指定します。 |
national |
国内(PIC N)フィールドのデフォルトを指定します。 |
utf8 |
UTF-8(PIC U)フィールドのデフォルトを指定します。 |
dbcs |
dbcs(DISPLAY-1)フィールドのデフォルト値。 |
hexadecimal_floating_point |
16 進数浮動小数点(COMP-1、COMP-2)フィールドのデフォルト。 |
FieldSuffix
フィールド接尾辞は、接尾辞を持つすべてのフィールドに適用されます。
フィールドがハイフン(-
)またはアンダースコア(_
)で終わり、末尾に接尾辞が続く場合は、フィールドが一致します。
接尾辞は大文字と小文字が区別されません。
FieldSuffix
修飾子は FieldOverride
修飾子の後に適用されます。
たとえば、接尾辞 NID
に定義された修飾子は、FLD-NID
という名前のフィールドに適用されますが、FUNID
フィールドには適用されません。
JSON 表現 |
---|
{ "suffix": string, "is_inverse": boolean, "modifier": object ( |
フィールド | |
---|---|
suffix |
この接尾辞が付いたフィールドに修飾子が適用されます。 |
is_inverse |
修飾子がフィールド修飾子の逆であるかどうかを指定します。逆フィールド修飾子は、修飾子なしのフィールドと同じ名前の別のフィールドに修飾子を適用します。たとえば、同じレコードに 逆フィールド修飾子を使用する場合、フィールド名が接尾辞付きのフィールドを参照するために従来使用できる場合は、特別な識別子 たとえば、null インジケータ フィールドを作成するには、 |
modifier |
一致するフィールドに適用する修飾子を指定します。 |
FieldOverride
指定したフィールドのデコード チェーンとエンコード チェーンをオーバーライドまたは変更します。
JSON 表現 |
---|
{ "field": string, "modifier": object ( |
フィールド | |
---|---|
field |
修飾子を適用するフィールドの名前を指定します。 |
modifier |
一致するフィールドに適用する修飾子を指定します。 |
変換
ビュー変換は、テーブルと QSAM ファイルの関係を変更するために使用されます。変換は常にデータの視点から記述されます。コンセプトは BigQuery のビューテーブルに似ています。
JSON 表現 |
---|
{ "exclude": object ( |
フィールド | |
---|---|
exclude |
|
unnest |
|
move |
|
rename |
|
FieldModifier
フィールド修飾子を使用すると、特定のフィールドのエンコードまたはデコードを変更できます。すべての修飾子がすべてのフィールドに適用できるわけではありません。詳細については、特定の修飾子に関するドキュメントをご覧ください。
JSON 表現 |
---|
{ "filler": object ( |
フィールド | |
---|---|
filler |
フィールドを無視して除外します。 |
null_if |
条件で基になるフィールドの値を null に設定します。 |
format_date |
文字列フィールドを日付としてフォーマットします。 |
chain |
複数の修飾子を連結する。 |
zoned_decimal |
ゾーン付きフィールドの小数点の設定をオーバーライドします。 |
binary |
バイナリ フィールドの構成をオーバーライドします。 |
packed_decimal |
パックされた小数フィールドの構成をオーバーライドします。 |
null_if_invalid |
エラーが発生したときに行をスピンアウトするのではなく、フィールドを null に設定します。 |
bytes |
バイト数フィールドをオーバーライドします。 |
varlen |
レコードを可変長フィールドとして設定します。 |
string |
文字列フィールドの構成をオーバーライドします。 |
null_if_empty |
フィールドが空の場合は、基になるフィールドの値を null に設定します。 |
format_timestamp |
文字列フィールドをタイムスタンプとしてフォーマットします。 |
hfp |
このフィールドは 16 進数浮動小数点数に設定します。 |
除外
結果テーブルからフィールドを除外しますが、デコードまたはエンコードは行います。これは、フィールドをテーブルに転送する必要はないものの、トランスコードに必要な場合に便利です。たとえば、null インジケーター フィールドや長さフィールドはテーブルから省略できます。
トランコーディングを完全にバイパスするには、フィラー修飾子を適用します。
JSON 表現 |
---|
{ "field": string |
フィールド | |
---|---|
field |
除外するフィールドを指定します。 |
ネストを解除
フィールドのネストを解除します。
JSON 表現 |
---|
{ "field": string, "format": string |
フィールド | |
---|---|
field |
ネストを解除するフィールドを指定する |
format |
新しいフィールド形式を指定します。
ネストされていない構造体の場合、 ネストされていない配列とリストの場合、 |
移動
レコード内のフィールドを移動する。
JSON 表現 |
---|
{ "field": string, "offset": int |
フィールド | |
---|---|
field |
移動するフィールドを指定します。 |
offset |
フィールドを移動する位置(前方または後方)の数を指定します。 |
名前を変更
正規表現の一致に基づいて 1 つ以上のフィールドの名前を変更します。
たとえば、すべてのハイフンをアンダースコアで置き換えるには、{"find": "\\-", "replace":"_"}
という JSON 形式を使用します。
JSON 表現 |
---|
{ "find": string, "replace": string |
フィールド | |
---|---|
find |
名前を変更するフィールドを識別する Java 正規表現のパターンを指定します。 パターンは、フィールド名全体と照合されます。パターンがフィールド名の一部と一致する場合、そのフィールドは一致と見なされます。 例:
|
replace |
一致したフィールドの新しい名前を指定します。
例:
|
フィラー
フィールドがデコードまたはエンコードされないことを指定します。また、デコード プロセス中に、結果テーブルからも除外されます。この修飾子は、サイズが既知の任意のフィールドに適用できます。
次のように空の JSON オブジェクトを指定します。
JSON 表現 |
---|
{ |
NullIf
条件が満たされた場合は、フィールドを null に設定します。null_value
または non_null_value
のいずれか、または両方を指定する必要があります。
null インジケーター フィールドを作成するには、null_if
フィールド修飾子を持つ FieldSuffix
を使用し、次の例に示すように is_inverse
を true
に設定します。
例: Null-indicator
null インジケーター フィールドを作成するには、次のようにnull_if
フィールド修飾子を使用します。{ "field_suffixes": [ { "suffix": "NID", "is_inverse": true, "modifier": { "null_if": { "null_value": "?", "target_field": "$self" } } } ] }
NID
のすべてのフィールドを効果的に null インジケータにできます。01 REC. 02 FIELD PIC X(10). 02 FIELD-NID PIC X(1).
例: バイナリ null インジケーター
binary
null インジケーター フィールドを作成するには、binary
フィールド修飾子と null_if
フィールド修飾子を使用します。{ "field_suffixes": [ { "suffix": "NID", "modifier": { "binary": {} } }, { "suffix": "NID", "is_inverse": true, "modifier": { "null_if": { "null_value": "15", "target_field": "$self" } } } ] }
NID
のすべてのフィールドを、前の例と同じコピーブックを使用して実質的に binary
ヌル インジケータにできます。例: バイトの null インジケーター
bytes
null インジケーター フィールドを作成するには、bytes
フィールド修飾子と null_if
フィールド修飾子を使用します。null と null 以外の値は HEX
として表されます。{ "field_suffixes": [ { "suffix": "NID", "modifier": { "bytes": {} } }, { "suffix": "NID", "is_inverse": true, "modifier": { "null_if": { "null_value": "FF", "target_field": "$self" } } } ] }
NID
のすべてのフィールドを、前の例と同じコピーブックを使用して実質的に bytes
null インジケータにできます。
JSON 表現 |
---|
{ "target_field": string, "null_value": string, "non_null_value": string |
フィールド | |
---|---|
target_field |
値を確認するフィールドを指定します。フィールドはスコープ内にある必要があります。 |
null_value |
指定した場合、 |
non_null_value |
指定した場合、 |
FormatDate
サポートされている形式のいずれかを使用して、文字列を日付にフォーマットします。この修飾子は、サイズ指定されたフィールドにのみ適用できます。デコード プロセスでは、いずれかの形式が文字列と一致するまで、形式が順番にテストされます。エンコード プロセスでは、最初の形式が使用され、残りは無視されます。
JSON 表現 |
---|
{ "formats": object ( |
フィールド | |
---|---|
formats |
日付形式のリスト。 |
ModifierChain
修飾子チェーンを指定して、複数の修飾子を連続して適用します。修飾子は、指定された順序で適用されます。
JSON 表現 |
---|
{ "modifiers": object ( |
フィールド | |
---|---|
modifiers |
適用する修飾子のリストを指定します。 |
ZonedDecimal
ゾーン付き小数点数のエンコディングとデコードに関連するさまざまなオプションを設定します。この修飾子は小数点フィールドにのみ適用できます。
JSON 表現 |
---|
{ "logical_type": enum ( |
フィールド | |
---|---|
logical_type |
フィールドのデコードまたはエンコードに使用する論理型を指定します。 |
encoding |
フィールドがエンコードされるエンコード。 |
バイナリ
前の修飾子はすべて無視し、このフィールドをバイナリ数として扱います。
JSON 表現 |
---|
{ "signedness": enum ( |
フィールド | |
---|---|
signedness |
数値の符号。 |
PackedDecimal
このフィールドを PackedDecimal に設定します。
JSON 表現 |
---|
{ "logical_type": enum ( |
フィールド | |
---|---|
logical_type |
論理型をオーバーライドします。デフォルトでは、Mainframe Connector は精度とスケールに基づいて最適な論理型を使用します。 |
NullIfInvalid
トランスコードに失敗した場合は、値を null として扱います。この修飾子は、サイズ指定されたフィールドにのみ適用できます。このエラーは無視され、スピルオーバー データセットに記録されません。デコード プロセス中、このフィールドの値は、このレコードでは null になります。エンコード プロセス中にデータを書き込めない場合、フィールド全体が null バイトで埋められます。
次のように空の JSON オブジェクトを指定します。
JSON 表現 |
---|
{ |
バイト
修飾子チェーンを無視し、データを未加工バイトとして扱います。この修飾子は、任意のサイズのフィールドに適用できます。
次のように空の JSON オブジェクトを指定します。
JSON 表現 |
---|
{ |
VarLen
可変長フィールドを表します。
可変長フィールドには、次の 3 つの部分があります。
- 2 つのサブフィールドを含むグループ項目。
- グループ項目内のフィールド。トランザクション データの長さが含まれます。
- データを含むグループアイテム内のフィールド。
可変長フィールドの名前がグループ名になります。
次のように空の JSON オブジェクトを指定します。
JSON 表現 |
---|
{ |
文字列
文字列のデコードとエンコードに関連するさまざまなオプションを設定します。文字列フィールドにのみ適用できます。
JSON 表現 |
---|
{ "encoding": string, "trim_suffix": boolean, "pad_char": string |
フィールド | |
---|---|
encoding |
フィールドがエンコードされるエンコード。 |
trim_suffix |
true に設定すると、文字列の末尾の空白が削除されます。trim_suffix はデコードにのみ影響し、エンコードでは trim_suffix は無視されます。空白のみで構成される文字列は空文字列になります。 |
pad_char |
|
NullIfEmpty
フィールド内のすべてのバイトが 0 の場合は、フィールドを null に設定する必要があります。
次のように空の JSON オブジェクトを指定します。
JSON 表現 |
---|
{ |
FormatTimestamp
指定された形式のいずれかを使用して、文字列をタイムスタンプにフォーマットします。これは、サイズ指定されたフィールドにのみ適用できます。デコード中、いずれかの形式が文字列と一致するまで、形式が順番にテストされます。エンコード中は、最初の形式が使用され、残りは無視されます。
JSON 表現 |
---|
{ "formats": object ( |
フィールド | |
---|---|
formats |
タイムスタンプの形式のリスト。 |
HFP
このフィールドを 16 進浮動小数点数に設定します。
次のように空の JSON オブジェクトを指定します。
JSON 表現 |
---|
{ |
DateTimeFormat
フィールドを日付に変換する際に使用するサイズとパターン。
JSON 表現 |
---|
{ "size": int, "pattern": string |
フィールド | |
---|---|
size |
このパターンが適用されるフィールドのサイズを指定します。 |
pattern |
日付フォーマッタのパターン。有効なフォーマッタ パターンの詳細については、クラス DateTimeFormatter をご覧ください。 |
BinarySignedness
小数フィールドに使用する論理型。
列挙型 | |
---|---|
UNSPECIFIED |
スケールと精度に基づいて、最も最適なタイプを使用します。 |
SIGNED |
64 ビットを使用して値を保存します。この修飾子は、精度が 18 以下で、スケールが 0 の値でのみ機能します。 |
UNSIGNED |
64 ビットを使用して値を保存します。この修飾子は、精度が 18 以下の数値でのみ機能します。 |
DecimalLogicalType
小数フィールドに使用する論理型。
列挙型 | |
---|---|
AUTO |
スケールと精度に基づいて、最も最適なタイプを使用します。 |
LONG |
64 ビットを使用して値を保存します。この修飾子は、精度が 18 以下で、スケールが 0 の値でのみ機能します。 |
DECIMAL64 |
64 ビットを使用して値を保存します。この修飾子は、精度が 18 以下の数値でのみ機能します。 |
BIG_DECIMAL |
値を無制限の小数値として保存します。これは最も遅いオプションですが、任意のスケールで任意の精度の小数をサポートします。 |
BIG_INTEGER |
値を無制限の整数値として保存します。これは最も遅いオプションですが、任意の精度の任意の整数をサポートします。 |
ZonedDecimalEncoding
ゾーン付き小数フィールドのデコードまたはエンコードに使用するエンコードを指定します。
列挙型 | |
---|---|
UNSPECIFIED |
修飾子チェーンで指定されたエンコードを保持します。修飾子が指定されていない場合は、EBCDIC が使用されます。 |
EBCDIC |
EBCDIC エンコードを使用します。 |
ASCII |
ASCII エンコードを使用します。 |
SchemaValidationMode
コピーブックのコンパイル時に使用されるスキーマ検証モード。このモードでは、特定のターゲット データ形式との互換性が確保されます。
列挙型 | |
---|---|
DEFAULT |
デフォルトのスキーマ検証モード。このモードでは、コピーブック内のフィールド名が一意になります。 |
BIG_QUERY |
BigQuery との互換性のためのスキーマ検証モード。このモードでは、デフォルトの検証が拡張され、コピーブックのスキーマが BigQuery のデータ型と互換性があることが確認されます。 |