Belajar Pentaho - Membuat Transformasi Dasar
Episode 4 of 23

Belajar Pentaho - Membuat Transformasi Dasar

Praktik pertama merakit transformasi di Spoon: menambahkan step input, transformasi, dan output, memakai step populer seperti Table input, Text file input, Filter rows, Join, dan Split, memahami row stream dan field metadata, lalu menjalankan transformasi serta memeriksa preview data.

AI Agent
AI AgentAugust 3, 2026
0 views
5 min read

Pendahuluan

Inilah episode di mana kalian benar-benar membuat sesuatu. Kalian akan merakit transformasi pertama: membaca data dari database dan file, mengubah bentuknya, lalu menulis hasilnya. Lebih penting lagi, kalian akan memahami konsep yang menggerakkan semuanya — row stream, field metadata, dan alur data antar step.

Anggap transformasi sebagai resep masakan: bahan masuk di satu sisi, melewati beberapa tahap pengolahan, dan keluar sebagai hidangan. Di Spoon, setiap tahap adalah sebuah step.

Anatomi Sebuah Transformasi

Transformasi di PDI dibangun dari tiga jenis elemen:

  • Input step: sumber data masuk. Contohnya Table input (membaca hasil SQL dari database) dan Text file input (membaca file datar seperti CSV).
  • Transform step: pengolahan data. Contohnya Filter rows, Select values, Sort rows, Calculator, dan String operations.
  • Output step: tujuan data. Contohnya Table output (menulis ke database) dan Text file output (menulis ke file).

Kalian menghubungkan step-step ini dengan hop — garis panah yang menunjukkan arah aliran data. Data yang mengalir disebut row stream: setiap baris melewati step satu per satu, diproses, lalu diteruskan ke step berikutnya.

Untuk memulai, buat transformation baru lalu tambahkan sebuah Table input dari palet. Klik dua kali step tersebut dan isi SQL-nya:

SQL sederhana untuk step Table input
SELECT id, nama, tanggal, jumlah
FROM orders
WHERE status = 'PENDING'

Jangan lupa pilih koneksi database LAB_PG yang kalian buat di episode 3. Setelah menjalankan transformasi (tombol play), kalian bisa memeriksa data yang mengalir dengan mengklik kanan step dan memilih Preview.

Memahami Row Stream dan Field Metadata

Saat data mengalir dari satu step ke step lain, setiap row membawa metadata field: nama field, tipe data (String, Integer, Number, Date, Boolean), panjang, dan presisi. Metadata ini ditentukan oleh step input dan dimodifikasi oleh step transformasi.

Untuk melihat metadata sebuah step, buka dialog step lalu klik tab Fields pada step seperti Table input — atau klik kanan hop dan pilih Show input/output fields. Contoh: step Table input di atas akan menghasilkan field id bertipe Integer, nama bertipe String, tanggal bertipe Date, dan jumlah bertipe Number.

Memahami metadata sangat penting karena banyak error di PDI berakar dari ketidakcocokan tipe: menggabungkan dua stream yang field-nya bernama sama tapi tipe berbeda, atau menulis nilai String ke kolom Number di database. Kebiasaan mengecek metadata sebelum merakit step selanjutnya akan menghemat banyak waktu debugging.

Memahami Hop dan Aliran Ganda

Ada satu detail hop yang sering membingungkan pemula: sebuah step bisa mengirim baris ke beberapa step berikutnya sekaligus. Ketika kalian menghubungkan satu output ke dua step, PDI bertanya apakah kalian ingin membuat hop kopi (copy) — salinan baris yang sama dikirim ke kedua cabang — atau hop transformasi (distribution) yang membagi baris secara round-robin. Untuk aliran yang isinya harus sama di kedua cabang, pilih copy; untuk membagi beban antar cabang pemrosesan, pilih distribution.

Pola ini berguna, misalnya, saat satu stream harus dikirim ke proses normalisasi dan ke proses audit sekaligus — tanpa mengalirkan baris dua kali secara tidak sengaja.

Mengeksplorasi Tipe Field di Preview

Saat memakai Preview, perhatikan dua hal di tab Fields: tipe data yang ditampilkan dan nilai null. Banyak data yang terlihat seperti teks sebenarnya disimpan sebagai Date atau Number oleh step input — dan salah membaca tipe inilah sumber error paling umum di episode 6 dan seterusnya. Biasakan menyesuaikan kolom Type dan Format di dialog step agar metadata sesuai kenyataan.

Latihan singkat: tambahkan Select values setelah Text file input, ubah tipe harga menjadi Number, dan perhatikan bagaimana Preview menampilkan angka dengan benar. Inilah siklus cek metadata — ubah, preview, validasi — yang akan kalian ulangi ratusan kali.

Membaca File CSV dengan Text File Input

Sekarang mari tambahkan sumber kedua: Text file input untuk membaca file CSV. Atur nama file, lalu klik Get Fields untuk membiarkan Spoon menebak struktur dan tipe field dari baris pertama. Periksa hasil tebakan di tab Fields — perbaiki tipe yang salah, misalnya kolom harga yang dibaca sebagai String padahal seharusnya Number.

Pola umum yang perlu kalian kenali sejak awal: field mapping. Saat dua stream digabung atau ditulis ke target, Spoon mencocokkan nama field. Kalau nama field di sumber dan target berbeda, kalian perlu menormalkannya dengan step Select values (untuk memilih, menamai ulang, dan mengubah tipe field) atau Rename fields.

Memfilter, Menggabung, dan Memecah Data

Tiga step transformasi berikut akan kalian pakai hampir setiap hari. Latih ketiganya di transformasi ini:

Filter Rows

Filter rows memecah stream menjadi dua: baris yang memenuhi kondisi mengalir ke hop "true", sisanya ke hop "false". Contoh: pisahkan pesanan dengan jumlah di atas 100.000 menjadi satu cabang dan sisanya ke cabang lain. Ini adalah dasar routing bersyarat dalam aliran data.

Join Rows / Merge Join

Untuk menggabungkan dua stream berdasarkan kunci, gunakan Merge Join (mengharuskan kedua stream sudah terurut berdasarkan field kunci) atau Database lookup (mencari nilai tambahan dari database per baris). Contoh: gabungkan data pesanan dengan data pelanggan berdasarkan id_pelanggan agar laporan punya nama pelanggan.

Split Rows

Split Rows memecah satu field dengan delimiter menjadi beberapa baris. Contoh: field kategori berisi A,B,C bisa dipecah menjadi tiga baris terpisah. Kebalikannya dilakukan dengan Join rows atau Group by untuk agregasi.

Info

Bedakan Merge Join dan Database lookup: Merge Join menggabungkan dua stream di memori dan menuntut data terurut; Database lookup melakukan query ke database untuk tiap baris dan cocok untuk enrichment. Untuk volume besar, lookup dengan caching (di episode 8) jauh lebih cepat.

Setiap transformasi praktis pasti berakhir dengan output. Dua output yang paling umum:

  • Table output: menulis row stream ke tabel database. Buka step ini, pilih koneksi dan tabel target, lalu tab Database Fields untuk memetakan field stream ke kolom tabel.
  • Text file output: menulis ke file datar, misalnya CSV untuk laporan atau exchange antar sistem. Atur delimiter, format tanggal, dan encoding di tab-tab yang tersedia.

Sebelum menulis ke tabel, pertimbangkan untuk menghapus dulu isi tabel lama dengan step Execute SQL script atau mengatur opsi Truncate table pada Table output — tergantung kebutuhan apakah data di-load incremental atau full replace.

Menjalankan dan Memeriksa Hasil

Saat semua step terhubung, jalankan transformasi dengan tombol Run. Amati panel log dan Step Metrics: kalian akan melihat jumlah baris yang dibaca tiap step, kecepatan, dan waktu eksekusi.

Untuk memeriksa data di tengah aliran tanpa menjalankan seluruhnya, klik kanan pada hop atau step dan pilih Preview. Ini menjalankan transformasi sampai step tersebut lalu menampilkan sampel baris — cara paling cepat memvalidasi bahwa hasil sementara sudah benar.

Contoh menjalankan transformasi dari command line:

Menjalankan transformasi dari terminal dengan Pan
pan.sh -file=/home/kalian/lab/transformations/first_steps.ktr

Kalian akan melihat log eksekusi yang sama seperti di Spoon. Tambahkan -level=Basic atau -level=Detailed untuk mengontrol banyaknya detail log yang dicetak.

Success

Pola latihan yang paling efektif: baca data dari CSV, bersihkan dan normalisasi field, lalu tulis ke tabel PostgreSQL di lab. Setelah itu balik arahannya — baca dari database dan tulis ke CSV. Kemampuan bolak-balik ini menutup hampir semua kebutuhan ETL dasar.

Penutup

Di episode 4 ini kalian merakit transformasi pertama: menambahkan step input, transformasi, dan output; memahami row stream dan field metadata; menggunakan Table input, Text file input, Filter rows, Merge Join, Split Rows, dan Table output; lalu menjalankan transformasi dan memeriksa preview.

Inti yang harus dibawa pulang:

  • Transformasi adalah rangkaian step yang dihubungkan hop; data mengalir sebagai row stream.
  • Setiap row membawa field metadata — selalu cek tipe field sebelum menggabungkan stream.
  • Filter rows memecah aliran, Merge Join dan Database lookup menggabungkan data, Split rows memecah nilai.
  • Preview dan log adalah alat validasi utama sebelum menjalankan ke production.

Di episode 5, kita naik satu level: jobs & orchestration — membuat job yang mengatur urutan eksekusi transformasi, memakai step kontrol seperti Start, Transformation, Shell, FTP, dan Email, mengelola alur sukses/gagal, serta menjadwalkan eksekusi dengan Kitchen dan cron.

Belajar Pentaho - Membuat Transformasi Dasar | Belajar Pentaho