Tuesday, 21 February 2023

Ekstrak Data JSON dengan Talend Open Studio

Ekstrak Data JSON dengan Talend Open Studio

Posting ini kelanjutan dari unggahan sebelumnya thttprequest-tos . Skema JSON dan XML merupakan format standar yang mudah dibaca dalam proses pembuatan pipeline atau integrasi data. Namun proses ekstrak data kerap kali hanya membutuhkan data-data yang spesifik. Pengalaman seorang pipeline builder akan diuji pada pemilihan data mana yang akan di ekstrak. Setiap format atau skema JSON maupun XML memiliki pola yang berbeda-beda. sebagai contoh data banjir 10 tahun (reiver discharge) yang penulis dapatkan dari situs www.open-meteo.com 

{

"latitude": -6.8999977,

"longitude": 109.70001,

"generationtime_ms": 0.42700767517089844,

"utc_offset_seconds": 0,

"timezone": "GMT",

"timezone_abbreviation": "GMT",

"daily_units": {

"time": "iso8601",

"river_discharge": "m³/s"

},

"daily": {

"time": [

"2012-01-01",

"2012-01-02",

"2012-01-03",

"2012-01-04",

"2012-01-05", 

                        ...dstnya


Data yang diharapkan ada pada path "time" dan "river_discharge". Prosesnya adalah sebagai berikut:

  1. Buat proyek baru pada Talend Open Studio (TOS)
  2. Ikuti langkah-langkah pada postingan thttprequest-tos.
  3. Ambil file yang telah di download pada langkah kedua.
  4. Tentukan path JSON yang sesuai dengan pilihan data, yakni "time" dan "river_discharge".
Langkah-langkahnya 
  1. Pada jendela Designer, tempatkan komponen tFileInputJson dan tLogRow. tFileInputJson berfungsi mengambil file yang telah disimpan dan mengekstrak data. tLogRow difungsikan sebagai visualisasi data ekstrak sebelum di load ke dalam database.
  2. Klik ganda pada komponen tFileInputJson untuk membuka tab component.
  3. Pada menu Basic Setting, tentukan kolom data yang dipilih melalui tombol Edit Schema (lingkaran merah). 



    Ubah nama kolom sesuai dengan skema json, tentukan tipe file (date dan double) dan format tanggal (yyyy-MM-dd). Pilih tombol OK untuk kembali pada tab component.
  4. Tentukan Read By: JsonPath Without Loop. Ini adalah bagian yang perhatian khusus. tidak semua skema json dapat menggunakan Read By JsonPath Without Loop. Anda harus melakukan riset untuk menentukan pilihan Read By yang tepat.
  5. Karena menggunakan file yang telah diunduh, maka arahkan filename sesuai letak berkas.
  6. kemudian set mapping untuk kedua kolom dengan isian berikut:
    - $.daily.time[*]
    - $.daily.river_discharge[*]
  7. Selanjutnya klik kanan pada komponen tFileInputJson, hubungkan dengan komponen tLogRow melalui menu row>main.
  8. Pilih mode Table untuk tampilan keluaran data.



  9. keseluruhan disain pipeline seperti gambar berikut.



  10. Eksekusi disain Anda dengan tombul Run pada tab >>Run, dan akan menghasilkan aliran data seperti dibawah ini.



Selamat mencoba dan tinggalkan komentar Anda untuk postingan ini.

#talendopenstudio
#dataintegration
#etl
#pipelinebuilder

Thursday, 9 February 2023

tHttpRequest - Talend Open Studio

 Komponen tHttpRequest pada Talend Open Studio

tHttpRequest adalah komponen magic yang saya sukai pada Talend Open Studio (TOS). Nama komponen tersebut sudah menandakan fungsinya, yaitu melakukan permintaan perintah HTTP baik POST maupun GET.

Banyak petunjuk penggunaan atau tutorial dalam metode ektrak, transfer dan load menggunakan file CSV. Itu mungkin cara yang singkat untuk menulis sebuah tutorial. Kenyataan dalam sebuah sistem adalah "Bisa tidak ambil langsung dari sumbernya?". Khususnya kita warga +62 yang sangat menyukai otomasi. Jika anda sampaikan pada klien bahwa diperlukan admin untuk unduh file, kemudian unggah kembali ke dalam sistem. Maka 99% sistem akan mangkrak setelah serah terima.

Web service atau API adalah urutan perintah permintaan http yang sangat memudahkan dalam proses pengumpulan data. Kita sangat sering berinteraksi dengan web service dalam dunia ektrak, transfer dan load (ETL). Komponen tHttpRequest menjadi favorit saya guna mengambil data secara online untuk membangun pipeline ETL. 

Mudahnya silahkan buka TOS anda, buat repository project dan buat job baru pada menu Job Design. Anda akan dihadapkan dengan kanvas kosong untuk disain pipeline. Pilih tHttpRequest pada palete komponen, kemudian letakkan pada kanvas Anda.


Double klik pada komponen tHttpRequest akan membuka tab Component di jendela bawah kanvas. Atribut pertama adalah properti, yaitu skema dari struktur JSON file sumber. Karena tugasnya hanya untuk unduh file maka atribut properti tidak ada pilihannya. Jika Anda sunting skema, maka kolom yang tersedia adalah "ResponContent" dengan karakter string.

Selanjutnya adalah atribut URI, saya gunakan alamat dari BMKG, yaitu https://peta-maritim.bmkg.go.id/public_api/overview/gelombang.json. Pilih metode GET untuk ambil data json dari alamat tersebut.

Melihat hasil permintaan http dapat dilakukan dengan menambah komponen tLogRow. Hubungkan kedua komponen dengan koneksi Row > Main, klik kanan pada komponen tHttpRequest. Buka Tab Run Job dan eksekusi tombol <Run>, akan menampilkan isi data. Dapat dilihat pada gambar dibawah ini.


Selamat, Anda berhasil mengambil data dalam format JSON. Jika anda hendak menyimpan berkas, aktifkan pilihan <Write respon content to file> pada tab componen tHttpRequest. Masukkan alamat direktori yang sesuai.
Catatan : file json tujuan harus dibuat terlebih dahulu pada direktori tujuan.

Terima Kasih, silahkan beri komentar pada postingan ini

#TOS #talendopenstudio #dataintegration #etl
 

Tuesday, 7 February 2023

Bigquery Google dengan 10 Tahun data Banjir Kota Pekalongan

Membuat Dataset sendiri pada Bigquery Google

Menggunakan Data Banjir 10 Tahun Kota Pekalongan 

Tulisan ini terprovokasi oleh salah satu perusahaan yang mensyaratkan kemampuan BigQuery Google. Penulis pun mulai mencari apa itu Bigquery. Pada dokumentasi google, Bigquery adalah data warehouse enterprise berbasis cloud dengan biaya efektif dan tanpa server. Dibangun lengkap dengan Machine Learning (ML) dan Bisnis Intelejen (BI). Demo video yang dibawakan oleh Lisa Google sangat menyenang, membayangkan mudahnya membuat visual dan insight. Sehingga penulis pun tertarik untuk mencoba.

Google menawarkan sandbox untuk mencoba Bigquery tanpa harus mendaftar kartu kredit, solusi yang cerdas.

https://console.cloud.google.com/bigquery

Note: please comment kalau ada bisa tanpa CC atau DC


Selanjutnya Anda akan diminta mengaktifkan (enable) fitur Bigquery console/API.

Sebagai pendatang baru pada dunia Bigquery, penulis akan mengikuti langkah-langkah pemula membuat query pada BQ. Google menyebutnya sebagai Query a public dataset with the Google Cloud console



Setelah anda memasuki jendala seperti diatas, google akan menyarankan langkah berikutnya, yaitu:

In the Type to search field, enter bigquery-public-data to check whether the public project is starred to the Explorer pane.

Hasilnya 0 found

It's ok, jangan panik, Google menyarankan untuk mencari tabel yang ada pada dataset bigquery-public-data. Contohnya adalah  austin_311 or gsod, and then click Broaden search to all projects. Hasilnya sebagai berikut.


Pada bagian Explore akan tampil dataset Bigquery-public-data beserta tabel-tabel didalamnya. Anda harus mengaktifkan bintang pada dataset tersebut, sebagai tanda dataset yang akan digunakan selama proses query. Pilih Open lewat menu 3 titik disamping dataset tersebut untuk melihat detail data dan kolom-kolomnya.

Saatnya mencoba query, pada bagian editor tuliskan perintah berikut ini:

SELECT

  name, gender,

  SUM(number) AS total

FROM

  `bigquery-public-data.usa_names.usa_1910_2013`

GROUP BY

  name, gender

ORDER BY

  total DESC

LIMIT

  10


Query Per Minute dapat dilihat pada tab Job Information



Sungguh menakjubkan tidak sampai 1 detik, query tersebut dieksekusi oleh Bigquery Google.

Selanjutnya penulis akan mencoba membuat data set sendiri. Menggunakan MyProject > silver-harmony, jalankan perintah create dataset melalui menu titik tiga. 



Saya berikan nama 10years_pekalongan dimana Dataset tersebut akan menampung 10 tahun rekam data debit aliran sungai di kota pekalongan. Sesuai dengan petunjuk dari google, kita harus mengaktifkan tanda bintang pada dataset 10years_pekalongan.


Melalui menu tiga titik, jalankan perintah open untuk membuka database 10years_pekalongan. Kemudian pada bagian editor pilih menu create tabel. Akan menampilkan formulir seperti dibawah ini.


Penulis berharap google dapat langsung mengambil data dari web service. Tapi Google tidak memberikan pilihan tersebut. Asumsi penulis adalah google menginginkan sumber data yang clear & clean.

Mengisi seluruh isian formulir, Saya menggunakan file format csv dengan autodect skema. Lanjut dengan eksekusi perintah create table, google akan menampilan informasi proses telah selesai.



Go to table dan Open


Menyenangkan, kolom-kolom dapat terdeksi secara otomatis. Tab Preview dapat Anda gunakan untuk melihat isi dari suatu tabel. Mari, kita lihat isi dari data banjir 10 tahun Kota Pekalongan. Hasilnya...


Berantakan...

3 row pertama adalah atribute dari data. Konten data dimula dari baris ke 4. Tentunya ini harus diseting terlebih dahulu. Formulir create table memberikan pilihan yang baik untuk antisipasi data-data kosong yang akan di perlukan sebagai null.

Saat Anda merubah source file, sandbox tidak serta mendeteksinya. Jika dipaksakan hanya akan memberikan loading time tanpa ujung. Merefresh uploaded file juga tidak ada gunanya, sehingga tabel yang sudah di buat harus dihapus dan mengulang proses create table dari awal.

Saat anda cretae tabel pada seksi advance ada pilihan berapa row yang harus dilewati, saya pilih tiga baris. Artinya anda harus mengetahui skema dan metadata source data sebelum diupload pada Bigquery. (ingat clean & clear)

Hasil perubahan seting create table dengan opsi autodect field adalah sebagai berikut:


Fitur pengenalan otomatis sandbox tetap tidak mengenali kolom yg ada pada file. Sehingga hanya menuliskan string_field_0 dan string_field_1. Oleh karena itu penulis menempuh cara manual, yang mana memang disarankan dalam demo dari google :-)

Menggunakan perintah teks seperti dibawah ini

time:date,river_discharge:float,f3:string,f4:string,f5:string,f6:string

Masih keluar error karena bigquery tidak mengenali date dan double as float dari file sumber, harus diganti menjadi string. Akhirnya setelah 3 kali mengulang proses create data, tampilan tabel bisa sesuai dengan keinginan penulis.


Secara keseluruhan penilaian penulis adalah tidak memuaskan membuat data set sendiri menggunakan BigQuery.  Harapan untuk dapat melakukan visualisasi sekejap seperti pada video demi juga tidak dapat terwujud karena google langsung mengaktifkan tagihan saat menguji menu BI.


#google #bigquery #datavisualization

Monday, 6 February 2023

Bercerita Dengan Data

Bercerita Dengan Data

Mari kita nikmati dongeng legenda berikut ini.

Data-data:

  1. Sebuah keluarga terdiri dari Ayah, Ibu dan Anak.
  2. Sang ayah seorang nelayan, pada pukul 23:00 berangkat melaut.
  3. Sang ayah tidak kembali.
  4. Sang anak merantau ke kota besar.
  5. Sang anak sukses menjadi kaya raya.
  6. Sang anak berkunjung ke kampung halaman.
  7. Sang anak tidak mengakui ibunya yang tua renta dan miskin.
  8. Sang anak dikutuk jadi batu.
  9. Happy ending untuk Sang Ibu atau Anak atau Sang Bapak?

Pertanyaan:
  1. Apakah judul cerita diatas?
  2. Apakah cerita tersebut dapat anda dinikmakti ?
  3. Apakah pesan cerita dapat anda diterima?
  4. Apakah cerita tersebut akan anda sampaikan kembali turun menurun?
  5. Apakah anak-anak dapat menikmati cerita tersebut?
Data-data:



Pertanyaan:
  1. Apakah anda dapat dengan mudah membuat berbagai jenis data dalam bentuk grafik diatas?
  2. Apakah anda dapat mengubah warna-warna pada grafik diatas dengan aplikasi EXCEL?
  3. Apakah anda sering menggunakan model grafik diatas untuk presentasi?
Bagi Anda yang menjawab “Tidak” pada pertanyaan cerita rakyat dan grafik diatas;
Selamat bergabung..

Bagi Anda yang menjawab “Iya” pada pertanyaan Grafik Cantik;
Maka Anda telah salah bercerita dengan data.
Selamat bergabung.. 

Bercerita dengan data adalah sebuah panduan dalam membuat visualisasi data, bagaimana menempatkan hasil analisa kedalam presentasi Anda, bagaimana memadukan dengan citra perusahaan, dan hal-hal lain yang terkait dengan memvisualkan data secara tepat guna.

Melalui BLOG ini penulis akan mencoba menyampaikan materi-materi tentang Bercerita Dengan Data, nanti episode-episode berikutnya.

#berceritadengan data
#storytellingwithdata
#bikinpresentasibaik
#colenussbaumerknaflic






Friday, 3 February 2023

Metada Pada Talend Open Studio

 Metadata Pada Talend Open Studio


Sebagai lanjutan dari posting sebelumnya terkait topik metadata. Kali ini Penulis akan berikan contoh aplikatif pada perangkat Talend Open Studio (TOS). Talend Open Studio merupakan aplikasi integrasi data yang dikeluarkan oleh Talend Inc - silahkan googling untuk keterangan yang lengkap. 

Menu METADATA dapat ditemukan pada bagian blok <Repository>. TOS memberikan pilihan yang mewah atas jenis metadata, mulai dari flat file, spreadsheet, database bahkan sampai ke Azure dan Salesforce. Umumnya saya menggunakan Metadata untuk jenis data XML dan JSON. 

Klik kanan pada jenis data json, akan keluar pilihan Create Json Schema. selanjutnya Anda akan diminta memasukan keterangan metadata yang akan dibuat. Mulai dari Nama, tujuan, deskripsi, versi dan status metadata (development. testing, production). Lokasi file keluaran telah ditentukan secara tetap oleh TOS.

Selanjutnya Anda akan diminta menentukan model untuk membuat koneksi metadata Json, pilihannya adalah input atau output. Saya pilih input karena prosedurnya adalah mengambil data dari file Json.

Langkah selanjutnya menambah file metadata kedalam repository. Anda akan diminta untuk membuat pengaturan file. Tentukan metode read xpath atau jsonpath (xpath umumnya untuk file XML). Tambahkan file Json serta jenis encodingnya. Saya gunakan standar UTF-8 dengan limit 0. Akan tampil skema Json di bagan bawah formulir.

TRIKS : gunakan json path finder untuk menentukan titik looping. www.jsonpathfinder.com

Tahap berikutnya adalah  menentukan pengaturan parse atau ekstrak file Json. Langkah ke -4 ini akan memvisualkan data yang akan di peroleh dari ekstrak file Json. Anda akan diminta menentukan path loop dan field-field apa yang harus di ekstrak serta penamaan dari field tersebut. Keseluruhan proses langkah 4 dilakukan secara drag & drop, sebuh sistem yang cerdas dari TOS. 

Setelah sukses melalui seluruh langkah satu sampai empat. Anda akan tiba pada bagian akhir pembuatan metada pada aplikasi TOS. Langkah ke 5 ini, meminta Anda untuk menentukan deskripsi dari tiap-tiap field, yakni:

1. Key

2. Type

3. Nullable

4. Date Pattern 

5. Length

6. Precision 

7. Default 

8. Comment

Melalui nama-nama pengaturan deskripsi pada daftar diatas sudah dapat kita bayangkan seperti apa isinya. Ini adalah bagian terpenting dari proses metadata yang akan dibawa sampai proses loading data ke dalam database.

Setelah semua proses diyakini benar, Anda dapat menekan tombol <Finish> dan metafile akan tersimpan pada repository TOS. 

#talend #talendopenstudio


JURUS PEMBELAH DATA

Tulisan berikut ini adalah perjalanan penulis membuka data dari sisi pandang data scientist Pemahaman Bisnis Judul: Stroke Prediction Datase...