JavaHere
2.21K subscribers
250 photos
5 videos
115 files
528 links
Software Engineer @ Google

IT - Lifestyle - Sport
Download Telegram
JavaHere
Join task (updated) Endigi qilishim kerak bo’lgan ish: Table A va B. A table da 50 million atrofida row. B table da 26 milliard atrofida row. A tabledagi X columnni B tabledagi X column yordamida to’ldirishim kerak. A - aID B - bID Menda C mapping…
Yechim

1. aID lardan foydalanib BF (Bloom Filter) qurdim.

2. B table ni BF o'tkazib oldim.

3. Chiqqan natijani join qildim.

Qiziq narsalar:

1. aID lar 50 million. Bu degani men birma-bir yurib chiqib uni BF ga solib chiqaman deyish xato. A tablni parallel yurib chiqib, ohirida bir nechta BF larni merge qilish kerak bo'ladi.

2. B table ni ham parallel yurib chiqib har bir partition ni parallel BF dan o'tkazib chiqiladi. Bunda BF har bir workerga parameter sifatida berib yuboriladi.

3. BF 100% to'g'ri ishlamaydi. Bunda men 0.001 False Positive ishlatdim. Ya'ni (26B - 50M) * 0.001 = ~26M, 50M+26M = 76Million element qoldi. Bu esa 26B ni join qilishdan ancha yaxshi va oson edi.

#tarjiba

JavaHere
28.08.2026
Uy, Polsha
⚡20