Komponen Table to KV mengonversi data tabular menjadi string dalam format key-value (KV). Setiap kolom yang dipilih diubah menjadi pasangan kunci-nilai pada output.
Hanya kolom dengan tipe data BIGINT atau DOUBLE yang dapat dikonversi. Kolom lain dapat dilewatkan tanpa perubahan dalam format aslinya menggunakan appendColNames. Nilai null tidak disertakan dalam output. Anda dapat menentukan kolom yang ingin dipertahankan agar tetap dalam format aslinya.
Konfigurasi komponen Table to KV
Terdapat dua metode konfigurasi yang didukung.
Metode 1: Konfigurasi di Machine Learning Designer
Konfigurasikan parameter komponen pada halaman pipeline di Machine Learning Designer (sebelumnya Machine Learning Studio) dari Platform for AI (PAI).
| Tab | Parameter | Deskripsi |
|---|---|---|
| Fields Setting | Columns to Convert | Nama kolom yang akan dikonversi. Kolom harus bertipe BIGINT atau DOUBLE. |
| Reserved Columns | Nama kolom yang dilewatkan tanpa perubahan dalam format aslinya. | |
| KV Delimiter | Pembatas antara kunci dan nilai. Default: titik dua (:). | |
| KV Pair Delimiter | Pembatas antara pasangan kunci-nilai. Default: koma (,). | |
| Parameters Setting | Convert Columns to IDs | Apakah nama kolom diganti dengan ID integer di output. Nilai yang valid: Yes, No. |
| Tuning | Cores | Jumlah core. Sistem mengalokasikan core secara otomatis berdasarkan ukuran data masukan. |
| Memory Size | Memori per core dalam MB. Sistem mengalokasikan memori secara otomatis berdasarkan ukuran data masukan. |
Metode 2: Konfigurasi menggunakan perintah PAI
Jalankan perintah PAI melalui komponen SQL Script. Untuk informasi selengkapnya, lihat SQL Script.
PAI -name TableToKV
-project algo_public
-DinputTableName=maple_tabletokv_basic_input
-DoutputTableName=maple_tabletokv_basic_output
-DselectedColNames=col0,col1,col2
-DappendColNames=rowid;| Parameter | Wajib | Deskripsi | Default |
|---|---|---|---|
inputTableName | Ya | Nama tabel input. | Tidak ada |
outputTableName | Ya | Nama tabel output. | Tidak ada |
selectedColNames | Tidak | Kolom yang akan dikonversi. Harus bertipe BIGINT atau DOUBLE. | Semua kolom |
appendColNames | Tidak | Kolom yang dilewatkan tanpa perubahan dalam format aslinya. | Tidak ada |
inputTablePartitions | Tidak | Partisi yang dibaca dari tabel input. Gunakan format Partition_name=value. Untuk partisi multi-level, gunakan name1=value1/name2=value2;. Pisahkan beberapa partisi dengan koma (,). | Semua partisi |
kvDelimiter | Tidak | Pembatas antara kunci dan nilai. | Titik dua (:) |
itemDelimiter | Tidak | Pembatas antara pasangan kunci-nilai. | Koma (,) |
convertColToIndexId | Tidak | Apakah nama kolom diganti dengan ID integer. Atur ke 1 untuk mengonversi; 0 untuk mempertahankan nama kolom. | 0 |
inputKeyMapTableName | Tidak | Nama tabel indeks yang sudah ada untuk digunakan dalam pemetaan ID kolom. Hanya digunakan saat convertColToIndexId=1. Jika tidak ditentukan, sistem menghasilkan set ID baru. | null |
outputKeyMapTableName | Ya (saat convertColToIndexId=1) | Nama tabel indeks output yang menyimpan pemetaan kolom ke ID. | Tidak ada |
lifecycle | Tidak | Siklus hidup tabel output dalam hari. Harus berupa bilangan bulat positif. | Tidak ada |
coreNum | Tidak | Jumlah core. Nilai yang valid: 1–9999. Harus ditentukan bersama dengan memSizePerCore. | Ditentukan sistem |
memSizePerCore | Tidak | Memori per core dalam MB. Nilai yang valid: 1024–65536. Harus ditentukan bersama dengan coreNum. | Ditentukan sistem |
Batasan
Jika tabel input
key_mapdisediakan, hanya kolom yang namanya muncul baik di tabelkey_mapmaupun tabel input yang akan dikonversi.Jika tipe data yang ditentukan dalam tabel
key_mapberbeda dari tipe data aktual kolom di tabel input, tabel outputkey_mapakan menggunakan tipe data dari tabelkey_map.
Contoh
Tabel input
drop table if exists test;
create table test as
select * from
(
select 0 as rowid, 1 as col0, 1.1 as col1, 2 as col2 union all
select 1 as rowid, 0 as col0, 1.2 as col1, 3 as col2 union all
select 2 as rowid, 1 as col0, 2.3 as col1, 4 as col2 union all
select 3 as rowid, 1 as col0, 0.0 as col1, 5 as col2
) tmp;Perintah PAI
PAI -name TableToKV
-project algo_public
-DinputTableName=test
-DoutputTableName=test_output
-DselectedColNames=col0,col1,col2
-DconvertColToIndexId=1
-DoutputKeyMapTableName=test_key_map
-DappendColNames=rowid;col0, col1, dan col2 dikonversi ke format KV. rowid dilewatkan tanpa perubahan. Nama kolom diganti dengan ID integer karena convertColToIndexId=1.
Tabel output: `test_output`
| rowid | kv |
|---|---|
| 0 | 0:1,1:1.1,2:2 |
| 1 | 0:0,1:1.2,2:3 |
| 2 | 0:1,1:2.3,2:4 |
| 3 | 0:1,1:0,2:5 |
Tabel output: `test_key_map`
| col_name | col_index | col_datatype |
|---|---|---|
| col0 | 0 | bigint |
| col1 | 1 | double |
| col2 | 2 | bigint |