top of page
Gambar penulisCornellius Yudha Wijaya

Ubah Laptop Anda Menjadi Mesin Analitik Pribadi dengan DuckDB dan MotherDuck

Ubah Laptop Anda Menjadi Mesin Analitik Pribadi dengan DuckDB dan MotherDuck

Di era di mana pemrosesan data analitik menjadi pembeda utama antara bisnis yang sukses dan tidak, kita membutuhkan perangkat yang dapat mendukung kebutuhan tersebut. Kemajuan teknologi telah membantu memajukan semua perangkat data yang kita butuhkan, yaitu DuckDB dan MotherDuck.


DuckDB adalah sistem manajemen database open-source, in-process SQL Online Analytical Processing (OLAP). Sistem database ini dirancang untuk menangani kueri data analitik dengan cepat, tanpa memandang ukuran data. Sistem ini menggunakan pemrosesan in-memory dan sistem OLAP yang secara efektif meningkatkan proses data analitik kita.


DuckDB cocok untuk menyimpan dan memproses data tabular yang melibatkan data analitik (join tabel, agregasi data, dan lain-lain) dan ketika workflow kita biasanya melibatkan perubahan signifikan pada tabel. Di sisi lain, DuckDB tidak cocok untuk aktivitas data bervolume tinggi dan banyak proses konkuren dalam satu database.


MotherDuck adalah layanan yang mengelola DuckDB-in-cloud. Layanan ini gratis untuk digunakan dan open-source, dikelola oleh komunitas DuckDB. Ini adalah layanan yang dibuat melalui kemitraan dengan DuckDB Lab untuk menciptakan platform layanan cloud yang dapat digunakan publik.


Dengan kombinasi DuckDB dan Motherduck, kita dapat membuat mesin analitik yang siap digunakan dalam setiap skenario. Bagaimana cara kita melakukannya? Mari kita mulai.

MotherDuck UI

Kita akan menggunakan UI MotherDuck asli untuk memberi Anda contoh bagaimana layanan ini bekerja dan mengapa DuckDB adalah alat yang ampuh untuk analitik data. Silakan daftar di situs web dan buat akun MotherDuck jika Anda belum memilikinya.


Setelah Anda berhasil mendaftar akun MotherDuck, kita akan dibawa ke UI MotherDuck. Cobalah untuk membiasakan diri dengan UI-nya, dan Anda akan menyadari bahwa UI-nya mirip dengan Jupyter Notebook jika Anda pernah menggunakannya.


Kita akan bereksperimen dengan kemampuan DuckDB di UI MotherDuck dengan data Gaji Data Scientist dari Kaggle. Unggah data menggunakan tombol Add Files, dan sel baru akan ditampilkan dengan kueri untuk dieksekusi. Kueri tersebut harus terlihat seperti ini.

CREATE OR REPLACE TABLE ds_salaries AS SELECT * FROM read_csv_auto(['ds_salaries.csv']);

Setelah Anda membuat tabel, cobalah untuk kueri data dengan kode berikut.

select * from my_db.ds_salaries limit 10;

Seperti yang Anda lihat, MotherDuck sangat mirip dengan melakukan data analisis di Notebook, tetapi dengan kueri SQL. Mari coba kueri untuk melakukan analisis data di MotherDuck.

select job_title, 
       avg(salary_in_usd) as average_salary_in_usd 
from my_db.ds_salaries
GROUP BY job_title
ORDER BY job_title
Ubah Laptop Anda Menjadi Mesin Analitik Pribadi dengan DuckDB dan MotherDuck

Anda dapat mengeksekusi kueri di sel; hasil tabel ditampilkan mirip dengan gambar di bawah ini.

Ubah Laptop Anda Menjadi Mesin Analitik Pribadi dengan DuckDB dan MotherDuck

Anda dapat memfilter data, memutar (pivot) tabel, atau mendownload hasilnya dengan tombol pilihan yang tersedia di UI.

MotherDuck Python

MotherDuck juga memungkinkan pengguna untuk mengakses database melalui Python di Notebook Anda. Kita perlu menginstal paket DuckDB menggunakan kode berikut.

pip install duckdb==v0.9.2

Versi terbaru yang didukung MotherDuck adalah DuckDB 0.9.2; itulah sebabnya kita menginstal versi tersebut.


Ketika instalasi berhasil, kita perlu menghubungkan DuckDB dengan MotherDuck. Ada beberapa cara untuk mengautentikasi koneksi, tetapi kita akan menggunakan layanan token. Token ini diperoleh di pengaturan MotherDuck Anda.

import duckdb

token = "insert token here"
# inisiasi koneksi MotherDuck 
con = duckdb.connect(f'md:?motherduck_token={token}')

Jika kita tidak menetapkan nama database-nya, MotherDuck akan mengakses menggunakan database default, yaitu my_db. Selanjutnya, mari gunakan kueri yang sama yang kita lakukan sebelumnya di Notebook.

q = """
select job_title,
       avg(salary_in_usd) as average_salary_in_usd
from my_db.ds_salaries
GROUP BY job_title
ORDER BY job_title
"""

con.sql(q).show()

Anda akan melihat output yang mirip dengan tabel di bawah ini.

┌─────────────────────────────────────┬───────────────────────┐
│              job_title              │ average_salary_in_usd │
│               varchar               │        double         │
├─────────────────────────────────────┼───────────────────────┤
│ 3D Computer Vision Researcher       │              21352.25 │
│ AI Developer                        │     136666.0909090909 │
│ AI Programmer                       │               55000.0 │
│ AI Scientist                        │            110120.875 │
│ Analytics Engineer                  │    152368.63106796116 │
│ Applied Data Scientist              │              113726.3 │
│ Applied Machine Learning Engineer   │               99875.5 │
│ Applied Machine Learning Scientist  │    109452.83333333333 │
│ Applied Scientist                   │     190264.4827586207 │
│ Autonomous Vehicle Technician       │               26277.5 │
│            ·                        │                  ·    │
│            ·                        │                  ·    │
│            ·                        │                  ·    │
│ Principal Data Engineer             │              192500.0 │
│ Principal Data Scientist            │            198171.125 │
│ Principal Machine Learning Engineer │              190000.0 │
│ Product Data Analyst                │               56497.2 │
│ Product Data Scientist              │                8000.0 │
│ Research Engineer                   │    163108.37837837837 │
│ Research Scientist                  │    161214.19512195123 │
│ Software Data Engineer              │               62510.0 │
│ Staff Data Analyst                  │               15000.0 │
│ Staff Data Scientist                │              105000.0 │
├─────────────────────────────────────┴───────────────────────┤
│ 93 rows (20 shown)                                2 columns │
└─────────────────────────────────────────────────────────────┘

Dengan kueri di atas, Anda dapat menggunakan kode berikut untuk memprosesnya ke dalam Pandas DataFrame.

import pandas as pd
df = con.sql(q).fetchdf()

Terakhir, Anda dapat memuat dataset lain ke database menggunakan kueri berikut.

con.sql("CREATE TABLE mytable AS SELECT * FROM '~/filepath.csv'")

Kueri di atas mengasumsikan data Anda adalah file CSV. Opsi lain termasuk S3 atau DuckDB lokal ke database MotherDuck.


Kesimpulan

DuckDB adalah sistem database open-source yang dikembangkan khusus untuk data analitik. Sistem ini dirancang untuk menangani pemrosesan data dengan cepat dan efisien. MotherDuck adalah layanan cloud yang dikelola secara open-source untuk DuckDB.

Dengan menggabungkan DuckDB dan MotherDuck, kita dapat mengubah laptop kita menjadi mesin data analitik pribadi dengan menyimpan data kita di cloud dan memprosesnya dengan cepat menggunakan DuckDB.



13 tampilan0 komentar

Postingan Terkait

Lihat Semua

Comments


bottom of page