Memperluas jangkauan koneksi PDI: menghubungkan database, CSV, Excel, XML, JSON, dan REST API; memakai konektor Hadoop dan cloud storage; menulis hasil ke data warehouse dan analytics store; serta memanfaatkan lookup dan caching untuk performa.

Di episode 4-7, kalian bekerja dengan database dan file CSV. Di dunia nyata, sumber data jauh lebih beragam: file Excel yang dikirim orang lain, JSON dari API, XML dari sistem lawas, hingga data di Hadoop dan cloud storage. Episode ini membuka pintu ke semua sumber itu.
Kalian akan belajar step untuk tiap format, pola membaca REST API dan JSON, koneksi ke Hadoop dan cloud, cara memuat ke data warehouse, serta teknik lookup dan caching yang menjaga performa tetap sehat.
Step input untuk file di Spoon mengikuti nama intuitif. Dua yang sering terlupakan padahal sangat berguna:
.xls dan .xlsx. Pilih sheet, tentukan baris pertama tempat data dimulai, dan gunakan Get Fields untuk membaca struktur. Penting untuk file dengan header yang tidak di baris pertama.Untuk XML, pemahaman dasar XPath sangat membantu. Contoh: untuk dokumen dengan struktur <orders><order id="1"><total>100</total></order></orders>, baris adalah elemen order, field id adalah atribut, dan total adalah elemen anak. PDI membiarkan kalian menentukan lokasi field secara visual di step XML input.
File Excel dari pengguna bisnis sering memuat beberapa sheet sekaligus — satu sheet per cabang atau per bulan. Di Excel input, aktifkan opsi Get Sheet Names untuk membaca daftar sheet sebagai stream tersendiri, lalu tentukan sheet mana yang menjadi sumber data utama. Perhatikan juga bahwa baris pertama sering berisi judul yang harus dilewati: atur Start row melewati baris judul dan centang Is Header Names Present jika baris pertama adalah nama kolom.
Tidak semua JSON datar. Objek bersarang seperti {"customer": {"nama": "Budi", "alamat": {"kota": "Jakarta"}}} membutuhkan JSON Path untuk menjangkau field di dalamnya — misalnya $.customer.alamat.kota. Di step JSON input, setiap path yang dipilih menjadi satu kolom, dan kalian bisa memilih beberapa field dari objek yang sama dalam satu dialog. Untuk array di dalam objek, gabungkan path array dengan path field agar Spoon menghasilkan satu baris per elemen array.
Pola ini juga berlaku saat API mengembalikan respons dengan pagination: respons kedua dan seterusnya diambil dengan memodifikasi parameter halaman, lalu semua hasil digabung. Untuk volume besar, gabungkan REST client dengan Table output yang dibatasi batch agar memori tidak jebol.
Data modern sering datang sebagai JSON, baik dari file maupun API. Dua step yang wajib kalian kuasai:
$.orders[*] — dan petakan field dari objek di dalamnya.Pola paling umum: step REST client memanggil API dan menerima JSON, lalu output-nya diumpankan ke step JSON input untuk dipecah menjadi baris. Berikut contoh bentuknya:
REST client -> JSON input -> Transform -> OutputMari lihat kaitannya dengan perintah curl sederhana yang setara dengan yang dilakukan step REST client:
curl -s -H "Authorization: Bearer TOKEN" https://api.example.com/v1/ordersResponse JSON-nya lalu dipecah oleh JSON input. Ingat, step REST client di Spoon melakukan hal yang sama dari dalam transformasi, dengan hasil yang bisa dipegang sebagai field untuk diproses lebih lanjut.
Info
Saat API butuh autentikasi atau header khusus, isi lewat tab Headers di step REST client. Untuk API yang memakai token dinamis, kombinasi step HTTP POST atau REST client dengan JSON input yang mengekstrak token, lalu variabel untuk melewatkannya, adalah pola yang umum dipakai.
PDI Enterprise menyediakan Pentaho Big Data plugin untuk koneksi ke ekosistem Hadoop; versi komunitas bisa memakai step HDFS dan konektor dasar. Yang perlu kalian pahami:
Karena konektor ini bergantung pada plugin dan versi, jangan ragu mengecek dokumentasi resmi Pentaho untuk langkah instalasi yang sesuai versi PDI kalian.
Konektor cloud mengikuti pola yang sama di semua platform: beri kredensial (access key, secret, atau role-based auth), tentukan bucket dan path, lalu gunakan step seperti membaca file biasa. Untuk mencoba akses object storage tanpa membuka Spoon, gunakan CLI penyedia, misalnya aws s3 ls s3://bucket-lab — ini cara tercepat memastikan kredensial dan path sudah benar sebelum menyusun transformasi. Untuk arsitektur modern, banyak tim memakai PDI untuk menulis data ke object storage dalam format Parquet (episode 17), lalu membiarkan mesin analitik membaca langsung dari sana. Ini mengubah cloud storage dari sekadar target file menjadi fondasi data lake.
Sebagai target, PDI sangat fleksibel. Untuk beban data warehouse, pola yang umum:
COPY/BULK INSERT yang jauh lebih cepat daripada insert per baris.Untuk analytics store, PDI bisa menulis ke database OLAP seperti PostgreSQL/MonetDB, atau mengekspor data ke file Parquet untuk dibaca mesin analitik. Kuncinya: pahami karakteristik target — batch size, indexing, dan mekanisme load — agar pemuatan tidak melambat seiring data membesar.
Contoh pendekatan bulk loading untuk volume besar — di sini PDI mengekspor data ke file CSV, lalu memanggil perintah massal database dari job entry Shell:
psql -h localhost -d warehouse \
-c "\copy fact_penjualan FROM '/tmp/staging.csv' WITH (FORMAT csv, HEADER true)"Dibanding insert per baris dari Table output, pendekatan ini bisa puluhan kali lebih cepat untuk jutaan baris — terutama saat round-trip jaringan dan database menjadi biaya dominan.
Saat volume data naik, lookup per baris menjadi bottleneck paling umum. Teknik optimasi yang harus kalian kenali:
Success
Aturan praktis yang sering dipakai: kalau sumber data bisa digabung lewat SQL di database, lakukan di sana. Kalau tidak, gunakan lookup dengan caching dan muat tabel referensi ke memori. Lookup per baris tanpa cache adalah pilihan terakhir, bukan yang pertama.
Di episode 8 ini kalian memperluas jangkauan PDI: membaca Excel, XML, JSON, dan REST API; mengenal konektor Hadoop dan cloud storage; menulis ke data warehouse dan analytics store; serta menerapkan lookup dan caching untuk performa.
Inti yang harus dibawa pulang:
Di episode 9, kita merapikan aset kita: metadata, repository, dan version control — mengelola koneksi dan shared objects, memahami perbedaan repository dan file-based storage, menerapkan Git pada proyek PDI, serta mengelola environment dan variable substitution.