Saya memiliki sekitar 4 juta catatan per hari dan harus disimpan selama 7 tahun secara online, jadi kami melihat 10,2 miliar catatan yang harus saya cari. Para pengguna berharap bahwa pencarian akan cukup cepat untuk UI, menghasilkan 3-5 detik
Karena politik di luar kendali saya, saya tidak dapat menggunakan solusi database rak karena itu berarti saya harus memberikan database kepada tim lain untuk dikelola (jangan tanya) yang berarti saya kehilangan kemampuan untuk mengoptimalkan perangkat keras dan perangkat lunak karena mereka memiliki layanan satu ukuran untuk semua data dan diisi (secara internal) oleh GB. Saya yakin saya akan mendapatkan komentar yang menyarankan saya menyampaikan maksud, saya sudah memiliki dan manajemen mengerti apa yang mereka minta saya lakukan adalah konyol.
Saya telah melihat menggunakan Lucene sebagai inti dari solusi saya. Menyimpan data aktual yang dipartisi berdasarkan jenis dan hari dalam file datar. Kemudian menggunakan dokumen Lucene untuk mengindeks beberapa bidang yang dicari oleh, dengan satu-satunya bidang "Disimpan" menjadi id dari catatan (sehingga saya bisa membacanya dari file datar)
Saya tidak tahu persis pada Lucene atau hard drive, tetapi sesuai pemahaman saya, akan ada IO awal / mencari waktu untuk mencari indeks, maka ketika saya memiliki semua ID dokumen Lucene, saya membaca dokumen yang akan dikenakan IO lebih lanjut Saya mencari waktu, lalu saya membaca catatan sebenarnya dari flat ... Saya tidak bisa membayangkan, mengingat ukuran dataset, bahwa ini akan sangat cepat, yang saya agak khawatirkan?
Lucene memiliki ukuran dokumen maksimum 2,1 miliar per indeks, jadi saya akan memerlukan beberapa indeks di sini.
Apakah pendekatan ini, di muka itu, tampak seperti itu bisa berhasil?
Data yang saya simpan adalah data event-action. Sebagian besar kueri akan dikelompokkan berdasarkan id acara dan mendapatkan detail acara-aksi terakhir untuk acara tertentu. Beberapa kueri akan menganalisis acara himpunan besar dan tindakan-peristiwa individualnya.