Data Formats (CSV, Parquet, JSON Lines) — Data Engineering

Format Data untuk Data Engineering Pemilihan format data yang tepat sangat mempengaruhi performa query, ukuran storage, dan kemudahan processing. CSV (Comma-Sep

Format Data untuk Data Engineering

Pemilihan format data yang tepat sangat mempengaruhi performa query, ukuran storage, dan kemudahan processing.

CSV (Comma-Separated Values)

Format paling sederhana dan universal. Human-readable tapi tidak efisien untuk data besar.

# Contoh CSV
id,name,amount,date
1,"Budi Santoso",150000,2024-01-15
2,"Siti Rahayu",275000,2024-01-16
3,"Ahmad Wijaya",89000,2024-01-16

# Baca dengan Python
import pandas as pd
df = pd.read_csv("transactions.csv")
print(df.dtypes)  # Semua kolom perlu di-cast manual

Parquet

Format columnar yang sangat efisien untuk analitik. Standar de facto di data engineering modern.

# Menulis Parquet
import pandas as pd

df = pd.DataFrame({
    "id": [1, 2, 3],
    "name": ["Budi", "Siti", "Ahmad"],
    "amount": [150000, 275000, 89000]
})
df.to_parquet("transactions.parquet", compression="snappy")

# Ukuran file: ~80% lebih kecil dari CSV untuk data besar
# Query hanya kolom tertentu → jauh lebih cepat
selected = pd.read_parquet("transactions.parquet", columns=["name", "amount"])

JSON Lines (JSONL / NDJSON)

Satu JSON object per baris. Ideal untuk streaming dan log data.

// Contoh .jsonl — setiap baris adalah JSON valid
{"id": 1, "event": "page_view", "url": "/home", "ts": "2024-01-15T10:30:00Z"}
{"id": 2, "event": "click", "url": "/products", "ts": "2024-01-15T10:30:05Z"}
{"id": 3, "event": "purchase", "amount": 150000, "ts": "2024-01-15T10:31:00Z"}

# Baca per baris (memory efficient)
import json
with open("events.jsonl") as f:
    for line in f:
        event = json.loads(line)
        process(event)

Kapan Menggunakan Apa?

Use CaseFormat
Quick sharing, Excel usersCSV
Data warehouse, analitikParquet
Event streaming, logJSON Lines
API response storageJSON Lines
ML training dataParquet

Yang akan kamu pelajari