Anda dapat mengonfigurasi transkoder Mainframe Connector dengan menambahkan konfigurasi yang diperlukan dalam file JSON.
File ini disebut sebagai file konfigurasi transkoder. Anda harus menentukan konfigurasi seperti yang ditentukan di
bagian Konfigurasi.
Perintah qsam encode
dan qsam decode
menggunakan file konfigurasi transkoder untuk melakukan transkode data.
Halaman ini menjelaskan berbagai cara untuk mengonfigurasi transkoder Mainframe Connector.
Konfigurasi
Objek Configuration
adalah root konfigurasi transkoder.
File ini berisi semua opsi konfigurasi untuk transcoder.
Representasi JSON |
---|
{ "defaults": object ( |
Kolom | |
---|---|
defaults |
Tentukan pengubah kolom default untuk arketipe Cobol. |
field_suffixes |
Tentukan sufiks kolom. |
field_overrides |
Tentukan penggantian kolom. |
transformations |
Tentukan transformasi kolom. |
schema_validation_mode |
Tentukan mode validasi skema. |
header_records_to_skip |
Tentukan jumlah rekaman pertama yang akan dilewati. |
record_filter_condition |
Tentukan kondisi filter untuk data. Filter mendukung operator berikut:
Contoh:
|
DefaultsSection
Objek DefaultsSection
dapat digunakan untuk menentukan modifikasi default menurut jenis cobol.
Perubahan ini diterapkan sebelum modifikasi akhiran atau penggantian.
Representasi JSON |
---|
{ "alpha_numeric_display": object ( |
Kolom | |
---|---|
alpha_numeric_display |
Tentukan default untuk kolom alfanumerik (PIC X). |
numeric_display |
Tentukan nilai default untuk kolom tampilan numerik (desimal yang di-zona). |
binary |
Tentukan default untuk kolom angka biner (COMP). |
packed_decimal |
Tentukan default untuk kolom desimal padat (COMP-3). |
national |
Tentukan default untuk kolom nasional (PIC N). |
utf8 |
Tentukan default untuk kolom UTF-8 (PIC U). |
dbcs |
Default untuk kolom dbcs (DISPLAY-1). |
hexadecimal_floating_point |
Default untuk kolom floating point heksadesimal (COMP-1, COMP-2). |
FieldSuffix
Sufiks kolom berlaku untuk semua kolom yang memiliki sufiks.
Kolom dicocokkan jika diakhiri dengan tanda hubung (-
) atau garis bawah (_
) yang diikuti dengan akhiran.
Sufiks tidak peka huruf besar/kecil.
Pengubah FieldSuffix
diterapkan setelah pengubah FieldOverride
.
Misalnya, pengubah yang ditentukan untuk akhiran NID
akan diterapkan ke kolom bernama FLD-NID
, tetapi tidak untuk kolom FUNID
.
Representasi JSON |
---|
{ "suffix": string, "is_inverse": boolean, "modifier": object ( |
Kolom | |
---|---|
suffix |
Kolom dengan akhiran ini akan menerapkan pengubah padanya. |
is_inverse |
Tentukan apakah pengubah adalah pengubah kolom invers atau tidak.
Pengubah kolom inversi menerapkan pengubah pada kolom lain yang memiliki nama yang sama dengan kolom yang memiliki pengubah
tanpa pengubah. Misalnya, jika kolom Saat menggunakan pengubah kolom terbalik, ID khusus Misalnya, untuk membuat kolom indikator null, Anda dapat menggunakan pengubah kolom |
modifier |
Tentukan pengubah yang akan diterapkan ke kolom yang cocok. |
FieldOverride
Ganti atau ubah rantai dekode dan encode untuk kolom yang ditentukan.
Representasi JSON |
---|
{ "field": string, "modifier": object ( |
Kolom | |
---|---|
field |
Tentukan nama kolom untuk menerapkan pengubah. |
modifier |
Tentukan pengubah yang akan diterapkan ke kolom yang cocok. |
Transformasi
Transformasi tampilan digunakan untuk mengubah hubungan antara tabel dan file QSAM. Transformasi selalu difrasakan dari sudut pandang data. Konsepnya mirip dengan melihat tabel di BigQuery.
Representasi JSON |
---|
{ "exclude": object ( |
Kolom | |
---|---|
exclude |
|
unnest |
|
move |
|
rename |
|
FieldModifier
Pengubah kolom memungkinkan Anda mengubah encoding atau decoding kolom tertentu. Perhatikan bahwa tidak semua pengubah dapat diterapkan ke semua kolom. Lihat dokumentasi untuk mengetahui informasi selengkapnya tentang pengubah tertentu.
Representasi JSON |
---|
{ "filler": object ( |
Kolom | |
---|---|
filler |
Mengecualikan kolom dari pemrosesan dan output. |
null_if |
Menetapkan kolom ke null secara bersyarat berdasarkan nilai kolom lain. |
format_date |
Memformat kolom string sebagai tanggal. |
chain |
Merangkai beberapa pengubah untuk diterapkan secara berurutan. |
zoned_decimal |
Mengganti konfigurasi default untuk kolom desimal yang di-zona. |
binary |
Mengganti konfigurasi default untuk kolom numerik biner. |
packed_decimal |
Mengganti konfigurasi default untuk kolom desimal yang dipadatkan. |
null_if_invalid |
Menetapkan kolom ke null jika terjadi error transkode, sehingga mencegah tumpahan data. |
bytes |
Memperlakukan kolom sebagai urutan byte mentah, mengabaikan informasi jenis sebelumnya. |
varlen |
Tetapkan rekaman sebagai kolom panjang variabel. |
string |
Mengganti konfigurasi default untuk kolom string. |
null_if_empty |
Menetapkan kolom ke null jika kontennya dianggap kosong. |
format_timestamp |
Memformat kolom string sebagai stempel waktu. |
hfp |
Menafsirkan kolom sebagai angka Floating Point Heksadesimal (HFP). |
decode_as_null |
Menentukan cara nilai null harus didekode. |
encode_null_as |
Menentukan cara nilai null harus dienkode. |
Kecualikan
Mengecualikan kolom dari tabel hasil, tetapi tetap menjalani decoding atau encoding. Hal ini berguna saat kolom tidak perlu ditransfer ke tabel, tetapi diperlukan untuk transcoding. Misalnya, indikator null atau kolom panjang dapat dihilangkan dari tabel.
Untuk melewati transkode sepenuhnya, terapkan pengubah pengisi.
Representasi JSON |
---|
{ "field": string |
Kolom | |
---|---|
field |
Tentukan kolom yang akan dikecualikan. |
Unnest
Batalkan penyarangan kolom.
Representasi JSON |
---|
{ "field": string, "format": string |
Kolom | |
---|---|
field |
Menentukan kolom yang akan diuraikan |
format |
Tentukan format kolom baru.
Untuk struct yang tidak bertingkat, Untuk array dan daftar yang tidak bertingkat, |
Pindahkan
Memindahkan kolom dalam data.
Representasi JSON |
---|
{ "field": string, "offset": int |
Kolom | |
---|---|
field |
Tentukan kolom yang akan dipindahkan. |
offset |
Tentukan jumlah tempat, maju atau mundur, yang harus dituju oleh kolom. |
Ganti nama
Mengganti nama satu atau beberapa kolom berdasarkan pencocokan ekspresi reguler.
Misalnya, untuk mengganti semua tanda hubung dengan garis bawah, gunakan format JSON berikut:
{"find": "\\-", "replace":"_"}
.
Representasi JSON |
---|
{ "find": string, "replace": string |
Kolom | |
---|---|
find |
Menentukan pola ekspresi reguler Java untuk mengidentifikasi kolom yang akan diganti namanya. Pola dicocokkan dengan nama kolom lengkap. Jika pola cocok dengan bagian mana pun dari nama kolom, kolom tersebut dianggap cocok. Contoh:
|
replace |
Menentukan nama baru untuk kolom yang cocok. Grup tangkapan dari ekspresi reguler Contoh:
|
Pengisi
Menentukan bahwa kolom akan diabaikan selama pemrosesan. Kolom tidak akan didekode dari input atau dienkode ke output dan akan dikecualikan dari skema dan tabel data yang dihasilkan selama decoding. Anda dapat menerapkan pengubah ini ke kolom apa pun yang memiliki ukuran statis yang diketahui.
Berikan objek JSON kosong sebagai berikut:
Representasi JSON |
---|
{ |
NullIf
Menetapkan kolom ke null jika suatu kondisi terpenuhi. Anda harus menentukan salah satu dari
null_value
atau non_null_value
atau keduanya.
Untuk membuat kolom indikator null, Anda dapat menggunakan FieldSuffix
dengan pengubah kolom null_if
,
dan menetapkan is_inverse
ke true
seperti yang ditunjukkan dalam contoh berikut:
Contoh: Indikator null
Untuk membuat kolom indikator null, kita dapat menggunakan pengubah kolomnull_if
seperti ini.
{ "field_suffixes": [ { "suffix": "NID", "is_inverse": true, "modifier": { "null_if": { "null_value": "?", "target_field": "$self" } } } ] }
NID
dapat secara efektif menjadi indikator null seperti yang ditunjukkan dalam cuplikan buku contoh berikut:
01 REC. 02 FIELD PIC X(10). 02 FIELD-NID PIC X(1).
Contoh: Indikator null biner
Untuk membuat kolom indikator nullbinary
, kita dapat menggunakan pengubah kolom binary
dan null_if
seperti berikut.
{ "field_suffixes": [ { "suffix": "NID", "modifier": { "binary": {} } }, { "suffix": "NID", "is_inverse": true, "modifier": { "null_if": { "null_value": "15", "target_field": "$self" } } } ] }
NID
secara efektif menjadi indikator
null binary
menggunakan copybook yang sama dari contoh sebelumnya.
Contoh: Indikator null byte
Untuk membuat kolom indikator nullbytes
, kita dapat menggunakan pengubah kolom bytes
dan null_if
seperti ini.
Nilai untuk null dan tidak null dinyatakan sebagai HEX
.
{ "field_suffixes": [ { "suffix": "NID", "modifier": { "bytes": {} } }, { "suffix": "NID", "is_inverse": true, "modifier": { "null_if": { "null_value": "FF", "target_field": "$self" } } } ] }
NID
secara efektif menjadi indikator null bytes
menggunakan copybook yang sama dari contoh sebelumnya.
Representasi JSON |
---|
{ "target_field": string, "null_value": string, "null_values": string, "non_null_value": string, "non_null_values": string |
Kolom | |
---|---|
target_field |
Tentukan kolom yang nilainya ingin Anda periksa. Kolom harus dalam cakupan. |
null_value |
Jika ditentukan, jika |
null_values |
Jika ditentukan, jika |
non_null_value |
Jika ditentukan, jika |
non_null_values |
Jika ditentukan, jika |
FormatDate
Memformat string ke tanggal menggunakan salah satu format yang didukung. Anda hanya dapat menerapkan pengubah ini ke kolom berukuran. Selama proses decoding, format diuji secara berurutan hingga salah satu format cocok dengan string. Selama proses encoding, format pertama digunakan dan sisanya diabaikan.
Representasi JSON |
---|
{ "formats": object ( |
Kolom | |
---|---|
formats |
Daftar format tanggal. |
ModifierChain
Tentukan rangkaian pengubah untuk menerapkan beberapa pengubah secara berurutan. Pengubah diterapkan sesuai urutan yang ditentukan.
Representasi JSON |
---|
{ "modifiers": object ( |
Kolom | |
---|---|
modifiers |
Tentukan daftar pengubah yang akan diterapkan. |
ZonedDecimal
Menetapkan berbagai opsi yang terkait dengan encoding dan decoding angka desimal yang di-zone. Anda hanya dapat menerapkan pengubah ini pada kolom desimal.
Representasi JSON |
---|
{ "logical_type": enum ( |
Kolom | |
---|---|
logical_type |
Tentukan jenis logis yang akan digunakan saat mendekode atau mengenkode kolom. |
encoding |
Encoding yang digunakan untuk mengenkode kolom. |
Biner
Abaikan pengubah sebelumnya dan perlakukan kolom ini sebagai bilangan biner.
Representasi JSON |
---|
{ "signedness": enum ( |
Kolom | |
---|---|
signedness |
Tanda bilangan. |
PackedDecimal
Tetapkan kolom ini ke PackedDecimal.
Representasi JSON |
---|
{ "logical_type": enum ( |
Kolom | |
---|---|
logical_type |
Ganti jenis logika. Secara default, Mainframe Connector menggunakan jenis logika yang optimal berdasarkan presisi dan skala. |
NullIfInvalid
Perlakukan nilai sebagai null jika transkode gagal. Anda hanya dapat menerapkan pengubah ini ke kolom berukuran. Error diabaikan dan tidak dicatat dalam set data pelimpahan. Selama proses decoding, nilai kolom ini akan menjadi null untuk data ini. Selama proses encoding, jika data tidak dapat ditulis, seluruh kolom akan diisi dengan byte null.
Berikan objek JSON kosong sebagai berikut:
Representasi JSON |
---|
{ |
Byte
Memperlakukan kolom sebagai urutan byte mentah. Pengubah ini menggantikan informasi jenis sebelumnya, sehingga data byte mentah kolom dipertahankan apa adanya tanpa encoding karakter atau interpretasi numerik tertentu. Anda dapat menerapkan pengubah ini ke kolom apa pun, terlepas dari jenis atau ukuran aslinya.
Berikan objek JSON kosong sebagai berikut:
Representasi JSON |
---|
{ |
VarLen
Mewakili kolom panjang variabel.
Kolom panjang variabel berisi tiga bagian:
- Item grup yang berisi dua sub-kolom.
- Kolom dalam item grup yang berisi panjang data transaksi.
- Kolom dalam item grup yang berisi data.
Nama kolom panjang variabel akan menjadi nama grup.
Berikan objek JSON kosong sebagai berikut:
Representasi JSON |
---|
{ |
String
Menetapkan berbagai opsi yang terkait dengan decoding dan encoding string. Hanya dapat diterapkan pada kolom string.
Representasi JSON |
---|
{ "encoding": string, "trim_suffix": boolean, "pad_char": string |
Kolom | |
---|---|
encoding |
Encoding yang digunakan untuk mengenkode kolom. |
trim_suffix |
Jika disetel ke benar (true), spasi di akhir string akan dipangkas. trim_suffix hanya memengaruhi decoding, encoding mengabaikan trim_suffix. Perhatikan bahwa string yang hanya terdiri dari spasi akan menjadi string kosong. |
pad_char |
Saat ditetapkan, string ekspor padding dengan |
NullIfEmpty
Kolom harus disetel ke null jika semua byte dalam kolom tersebut adalah 0.
Berikan objek JSON kosong sebagai berikut:
Representasi JSON |
---|
{ |
FormatTimestamp
Memformat string ke stempel waktu menggunakan salah satu format yang disediakan. Ini hanya dapat diterapkan pada kolom berukuran. Selama decoding, format diuji secara berurutan hingga salah satu format cocok dengan string. Selama encoding, format pertama akan digunakan dan format lainnya akan diabaikan.
Representasi JSON |
---|
{ "formats": object ( |
Kolom | |
---|---|
formats |
Daftar format stempel waktu. |
HFP
Tetapkan kolom ini sebagai Floating Point Heksadesimal.
Berikan objek JSON kosong sebagai berikut:
Representasi JSON |
---|
{ |
DecodeAsNull
Menentukan cara nilai null diinterpretasikan selama proses decoding. Karena COBOL tidak mendukung nilai null secara native, parameter ini menentukan nilai apa yang harus diperlakukan sebagai null.
Representasi JSON |
---|
{ "values": string, "hex_bytes": string |
Kolom | |
---|---|
values |
Daftar representasi string. Setelah decoding awal kolom ke bentuk stringnya, jika konten kolom cocok dengan salah satu nilai ini, kolom akan diperlakukan sebagai null. |
hex_bytes |
Daftar representasi heksadesimal dari satu byte.
Jika kolom berisi pengulangan salah satu byte ini, kolom tersebut akan dianggap sebagai null.
Misalnya, menggunakan |
EncodeNullAs
Menentukan cara nilai null direpresentasikan selama proses encoding.
Representasi JSON |
---|
{ "value": string, "hex_byte": string |
Kolom | |
---|---|
value |
Encode nilai tertentu ini saat nilai sumber adalah null. Pastikan string valid untuk jenis kolom. |
hex_byte |
Encode urutan byte tertentu ini (ditampilkan sebagai string heksadesimal)
saat nilai sumber adalah null. Misalnya, |
DateTimeFormat
Ukuran dan pola yang akan digunakan saat mengonversi kolom menjadi tanggal.
Representasi JSON |
---|
{ "size": int, "pattern": string |
Kolom | |
---|---|
size |
Tentukan ukuran kolom yang menerapkan pola ini. |
pattern |
Tentukan pola pemformat tanggal. Untuk mengetahui informasi selengkapnya tentang pola pemformat yang valid, lihat Class DateTimeFormatter. |
ZonedDecimalEncoding
Tentukan encoding yang akan digunakan saat mendekode atau meng-encode kolom desimal yang di-zone.
Enum | |
---|---|
UNSPECIFIED |
Pertahankan encoding yang ditentukan dalam rantai pengubah.
Jika tidak ada pengubah yang ditentukan, EBCDIC akan digunakan. |
EBCDIC |
Gunakan encoding EBCDIC . |
ASCII |
Gunakan encoding ASCII . |
BinarySignedness
Jenis logika yang akan digunakan untuk kolom desimal.
Enum | |
---|---|
UNSPECIFIED |
Gunakan jenis yang paling optimal berdasarkan skala dan presisi. |
SIGNED |
Gunakan 64-bit untuk menyimpan nilai. Pengubah ini hanya berfungsi untuk angka yang presisinya kurang dari atau sama dengan 18, dan skalanya adalah 0. |
UNSIGNED |
Gunakan 64-bit untuk menyimpan nilai. Pengubah ini hanya berfungsi untuk angka yang presisinya kurang dari atau sama dengan 18. |
DecimalLogicalType
Jenis logika yang akan digunakan untuk kolom desimal.
Enum | |
---|---|
AUTO |
Gunakan jenis yang paling optimal berdasarkan skala dan presisi. |
LONG |
Gunakan 64-bit untuk menyimpan nilai. Pengubah ini hanya berfungsi untuk angka yang presisinya kurang dari atau sama dengan 18, dan skalanya adalah 0. |
DECIMAL64 |
Gunakan 64-bit untuk menyimpan nilai. Pengubah ini hanya berfungsi untuk angka yang presisinya kurang dari atau sama dengan 18. |
BIG_DECIMAL |
Simpan nilai sebagai nilai desimal yang tidak terikat. Opsi ini adalah opsi yang paling lambat, tetapi mendukung desimal apa pun dengan presisi apa pun pada skala apa pun. |
BIG_INTEGER |
Simpan nilai sebagai nilai bilangan bulat yang tidak terikat. Ini adalah opsi paling lambat, tetapi mendukung bilangan bulat apa pun dengan presisi apa pun. |
SchemaValidationMode
Tentukan mode validasi skema yang akan digunakan selama kompilasi copybook. Mode ini memverifikasi kompatibilitas dengan format data target tertentu.
Enum | |
---|---|
DEFAULT |
Mode validasi skema default. Mode ini memverifikasi bahwa nama kolom unik ada di copybook. |
BIG_QUERY |
Mode validasi skema untuk kompatibilitas BigQuery. Mode ini memperluas validasi default untuk memverifikasi bahwa skema copybook kompatibel dengan jenis data BigQuery. |
POSTGRES |
Mode validasi skema untuk kompatibilitas PostgreSQL. Mode ini memperluas validasi default untuk memverifikasi bahwa skema copybook kompatibel dengan jenis data PostgreSQL. |
MYSQL |
Mode validasi skema untuk kompatibilitas MySQL. Mode ini memperluas validasi default untuk memverifikasi bahwa skema copybook kompatibel dengan jenis data MySQL. |