Belajar Pentaho - Advanced Sources & Targets
Episode 8 of 23

Belajar Pentaho - Advanced Sources & Targets

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.

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

Pendahuluan

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.

Sumber Data Relasional dan File: Excel, XML

Step input untuk file di Spoon mengikuti nama intuitif. Dua yang sering terlupakan padahal sangat berguna:

  • Excel input: membaca file .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.
  • XML input: membaca file XML. Di sini kalian bekerja dengan XPath — pilih elemen yang menjadi "baris" data dan petakan field dari atribut atau elemen anak.

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.

Excel dengan Banyak Sheet

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.

JSON dengan Struktur Bersarang

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.

Membaca JSON dan REST API

Data modern sering datang sebagai JSON, baik dari file maupun API. Dua step yang wajib kalian kuasai:

  • JSON input: membaca file JSON atau string JSON. Pilih path ke array data — misalnya $.orders[*] — dan petakan field dari objek di dalamnya.
  • REST client: memanggil REST API dan menerima respons. Bisa sebagai JSON, XML, atau teks biasa, lengkap dengan header HTTP dan autentikasi.

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:

Pola membaca REST API menjadi baris
REST client -> JSON input -> Transform -> Output

Mari lihat kaitannya dengan perintah curl sederhana yang setara dengan yang dilakukan step REST client:

Setara panggilan REST yang dilakukan step REST client
curl -s -H "Authorization: Bearer TOKEN" https://api.example.com/v1/orders

Response 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.

Konektor Hadoop dan Cloud Storage

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:

  • Hadoop/HDFS: membaca dan menulis file di Hadoop. Format file penting — Parquet, Avro, dan ORC menawarkan kompresi dan performa jauh di atas CSV, dan akan dibahas di episode 17.
  • Cloud storage: konektor untuk penyimpanan objek seperti Amazon S3, Azure Blob, dan Google Cloud Storage tersedia sebagai plugin. Pola kerjanya sama dengan konektor file biasa, hanya URL dan kredensialnya yang berbasis cloud.

Karena konektor ini bergantung pada plugin dan versi, jangan ragu mengecek dokumentasi resmi Pentaho untuk langkah instalasi yang sesuai versi PDI kalian.

Pola Kerja dengan Cloud Storage

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:

  • Table output: menulis ke tabel target dengan opsi Truncate table untuk full replace.
  • Dimension lookup/update: pola khusus untuk slowly changing dimension (SCD) yang akan dibahas di episode 15.
  • Bulk loading: untuk volume besar, gunakan Bulk load step atau SQL 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.

Lookup dan Caching untuk Performa

Saat volume data naik, lookup per baris menjadi bottleneck paling umum. Teknik optimasi yang harus kalian kenali:

  • Database lookup dengan caching: aktifkan opsi Enable caching dan Lookup all rows at start. Tabel referensi kecil yang jarang berubah dimuat sekali ke memori, menghemat ribuan query.
  • Stream lookup: memuat stream referensi ke memori dan melakukan pencarian tanpa database sama sekali.
  • Table input dengan join SQL: jika memungkinkan, lakukan join di level database dengan satu query besar alih-alih lookup per baris. Ini sering jauh lebih cepat.
  • Index yang tepat: pastikan kolom kunci lookup memiliki index di database.

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.

Penutup

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:

  • Tiap format punya step khusus: Excel input, XML input, JSON input, REST client — kenali kapan memakainya.
  • Pola REST client ke JSON input adalah jalan utama memanfaatkan API dalam pipeline.
  • Konektor Hadoop dan cloud membuka akses ke data lake dan big data.
  • Optimasi lookup dengan caching dan join SQL adalah kunci menjaga performa saat volume membesar.

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.

Belajar Pentaho - Advanced Sources & Targets | Belajar Pentaho