- Yazar, Hacker News’ün tüm verilerini indirip bunu DuckDB ile analiz etti
- Toplam 20GB boyutundaki tüm öğeleri (hikâyeler + yorumlar) JSON dosyaları olarak kaydetti ve ileride güncellenebilecek şekilde kurguladı
- DuckDB kullanarak ‘Python’, ‘JavaScript’, ‘Ruby’, ‘Rust’ gibi ifadelerin anılma oranlarını haftalık bazda zaman serisi olarak analiz etti
- SQL yazımında LLM kullandı, böylece yeni başlayanlar da karmaşık analizleri kolayca yapabildi
- İlgili proje herkese açık hn.unlurker.com sitesinde görülebiliyor ve herkes bu verileri analiz temelli olarak yeniden kullanabiliyor
Tüm Hacker News verisini kazımak
hn.unlurker.comu oluştururken Go diliyle kendi HN API istemcisini geliştirdi; bu, en yeni Go özellikleri ve linter’ları kullandığı kişisel bir proje olarak başladı
- Hacker News öğelerini (HN API’deki hikâyeler ve yorumlar) 0 numaradan başlayarak sırayla tamamen indiren
scan komutunu hayata geçirdi
- İndirme işlemi birkaç kez dursa da, yeniden başlatılabilir yapı sayesinde birkaç saat içinde yaklaşık 20GiB JSON dosyası elde etti
DuckDB ile metin zaman serisi analizi
grep ile basit desen aramaları yaparken, analiz aracı olarak DuckDB’yi denedi; küçük ölçekli tek dosya analizleri için optimize edilmiş hızlı bir veritabanı
- JSON dosyalarını tabloya aktararak, öğe metinlerinde geçen dillerin oranını haftalık bazda hesapladı
- Python, JavaScript, Java, Ruby, Rust anahtar kelimelerini içeren oranları 12 haftalık hareketli ortalama ile görselleştirebilecek SQL yazdı
- DuckDB’nin yeni arayüzü sayesinde kullanım kolaylaştı ve LLM yardımıyla SQL yazmak da oldukça kolay hale geldi
Sonuçlar ve sonraki plan
- DuckDB, bu ölçekteki veri analizi için olağanüstü performans ve kullanılabilirlik sundu
- Veri toplamayı tamamladıktan sonra yazar, yarı şaka yarı ciddi biçimde "LLM tabanlı yüzlerce bot eğitip Hacker News’ün yerini alacağım" dedi
- Ancak veri toplama ve analiz konusundaki asıl amaca ulaşıldı ve proje burada sonlandı
- Bundan sonraki analizlerin, bu verilerden yeni içgörüler çıkaracak kişilere kaldığını belirtti
Referans bağlantıları
1 yorum
Hacker News yorumları
İki veritabanı Hacker News tablolarını güncelliyor; böylece indirme yapmadan analiz etmek mümkün
Geçmişte @fesshole Twitter/Bluesky hesabı için benzer bir çalışma yapmıştım
Hacker News’in tüm içeriğini barındıran 20 GiB’lık bir JSON dosyam vardı
Java için yapılan sorgular, JavaScript’in tüm örneklerini de içerdiği için Java olduğundan fazla temsil ediliyor
Hacker News’i indirirken netiketin ne olduğunu merak ediyorum
İleride birçok API’nin
duckdbdosyası döndürme seçeneği sunacağını öngörüyorumjsonveritabanına yüklenecekse, yanıt olarak doğrudan veritabanı almak daha verimliBenzer bir işi yapmıştım
parquetolarak dışa aktardım, indirdim veduckdbile sorguladımTüm Hacker News içeriğini yerelde indirdikten sonra, LLM tabanlı bir bot eğitip katkı sağlayan bir kullanıcı gibi çalıştırmak mümkün olabilir
Kümülatif grafikler kullanılmaması yönünde bir talep
Geçmişte Hacker News veri dökümleri hazırlamıştım