YTsaurus është një platformë ruajtjeje dhe përpunimi e shpërndarë për të dhëna të mëdha me mbështetje për modelin MapReduce.
Disa ditë më parë, Yandex njoftoi platformën YTsauru me kod të hapur, e cila përdoret për ruajtjen dhe përpunimin e shpërndarë të sasive të mëdha të të dhënave, duke mbështetur manipulimin e të dhënave duke përdorur paradigmën MapReduce, motorin e pyetjeve SQL, sistemin e skedarëve të shpërndarë dhe ruajtjen NoSQL në formatin çelës-vlerë.
YTsaurus përdoret në infrastrukturën e Yandex për të shfrytëzuar në mënyrë efikase fuqinë llogaritëse të superkompjuterëve të kompanisë. Platforma mund të shkallëzohet në grupe me më shumë se 10,000 nyje, duke mbuluar deri në një milion procesorë dhe mijëra GPU (për detyra të të mësuarit automatik).
Kontejnerët e izoluar që funksionojnë në serverë fizikë mund të përdoren si njësi grupimi. Hapësira ruajtëse mund të përmbajë ekzabajt të dhënash të vendosura në media të ndryshme si disqet e ngurtë, SSD, NVME dhe RAM.
Grupi mbështet shtimin dhe heqjen dinamike të nyjeve, tepricën (asnjë pikë të vetme dështimi), përsëritjen automatike, përmirësimet aktive të softuerit të grupimit dhe rikuperimin automatik të tepricës në rast të dështimit të nyjeve.
Mbështeten tre lloje grupimesh: grupime llogaritëse (për përpunim masiv paralel të të dhënave të mëdha duke përdorur operacionet MapReduce), grupime për tabela pivot dhe ruajtje çelës-vlerë, dhe grupime të shpërndara gjeografikisht.
Një shërbim i bazuar në platformë mund të sigurojë mjetet për të ruajtur dhe përpunuar të dhëna për dhjetëra mijëra përdorues. Aplikacionet tipike YTsaurus në Yandex përfshijnë ruajtjen e informacionit rreth përdoruesve të rrjetit të reklamave, trajnimin e modeleve të mësimit të makinerive, formimin e një indeksi kërkimi dhe ndërtimin e një magazine të dhënash për shërbime si Yandex Taxi. , Ushqimi, Lavka dhe dërgesat
Nga rastet e përdorimit bazë përmenden:
- Përpunimi në grup: MapReduce dhe SPYT (Apache Spark si një motor kompjuterik mbi të dhënat në YTsaurus) për përpunimin e të dhënave të strukturuara dhe gjysmë të strukturuara: regjistrime ose transaksione financiare.
- Analiza ad hoc: Pyetje të shpejta nëpërmjet CHYT (një grup serverësh ClickHouse në nyjet llogaritëse YTsaurus) pa kopjuar të dhënat në një sistem të veçantë analitik. ODBC dhe JDBC me aftësinë për të lidhur BI për vizualizim.
- Detyrat OLTP: Puna transaksionale në kohë reale me ruajtjen e vlerës së çelësit: për shembull, ruajtja e profilit të përdoruesit, shfaqja e reklamave ose përpunimi i transmetimit.
- Mësimi i makinerisë: Menaxho grupet GPU për të trajnuar modelet me miliarda parametra.
- Ruajtja e informacionit meta: Ruajtja transaksionale e metainformacionit dhe shërbimi i besueshëm i bravave të shpërndara.
- Krijimi i depove të të dhënave dhe ETL për përpunimin e të dhënave me shumë nivele duke përdorur mjete tipike: Apache Spark, SQL, MapReduce.
Ndërsa nga ana e elementeve kryesore të arkitekturës përmenden:
- Sistemi i skedarëve të shpërndarë dhe ruajtja e metainformacionit të bazuar në pemë me tolerancë ndaj gabimeve Cypress.
- Programues për llogaritjen e shpërndarë me mbështetje për modelin MapReduce, si dhe operacione bazë të avancuara.
- Shkallueshmëria horizontale e operacioneve të TI-së.
- Izolimi i burimeve kompjuterike dhe mundësia e shpërndarjes së burimeve të caktuara kompjuterike (CPU, GPU, RAM) në përmasa të ndryshme.
- PivotTables për krijimin e ruajtjes OLTP, mbështetje për ruajtjen e bazuar në MVCC, transaksionet, aftësinë për të fshirë të dhënat pas skadimit dhe radhët e mesazheve për përpunimin e transmetimit të të dhënave mbi PivotTables.
- API dhe biblioteka për gjuhët e programimit C++, Python, Java, Go.
- Një ndërfaqe në internet për përdoruesit dhe administratorët që mbështet navigimin përmes një ruajtjeje të ngjashme me pemën.
Së fundmi, nëse jeni të interesuar të mësoni më shumë , duhet të dini se kodi i projektit është shkruar në C/C++ dhe është me burim të hapur sipas licencës Apache 2.0. Mund të gjeni më shumë detaje në lidhjen e mëposhtme.
Depozita GitHub përmban kodin e serverit për YTsaurus, infrastrukturën e vendosjes që përdor k8s, një ndërfaqe web për sistemin dhe SDK-të e klientit për gjuhët e njohura të programimit si C++, Java, Go dhe Python.