Ang YTsaurus ay isang distributed storage at processing platform para sa malaking data na may suporta para sa MapReduce model.
Ilang araw na nakalipas Inihayag ang Yandex sa pamamagitan ng isang inihayag ang pagbubukas ng source code ng YTsauru platform, na ginagamit para sa distributed storage at pagproseso ng malalaking halaga ng data, na sumusuporta sa pagmamanipula ng data gamit ang MapReduce paradigm, SQL query engine, distributed file system at NoSQL storage sa key-value format.
YTsaurus ginamit na sa imprastraktura ng Yandex upang mahusay na gamitin ang computing power ng mga supercomputer ng kumpanya Maaaring mag-scale ang platform sa mga cluster ng higit sa 10 node, na sumasaklaw ng hanggang sa isang milyong processor at libu-libong GPU (para sa mga gawain sa machine learning).
Maaaring gamitin ang mga nakahiwalay na container na tumatakbo sa mga pisikal na server bilang mga cluster unit. Ang storage ay maaaring maglaman ng mga exabytes ng data na matatagpuan sa iba't ibang media tulad ng mga hard drive, SSD, NVME, at RAM.
Sinusuportahan ng cluster ang dynamic na pagdaragdag at pag-alis ng mga node, redundancy (walang solong punto ng pagkabigo), awtomatikong pagtitiklop, aktibong pag-upgrade ng cluster software, at awtomatikong pagbawi ng redundancy sa kaso ng pagkabigo ng node.
Tatlong uri ng mga kumpol ang sinusuportahan: compute clusters (para sa malawakang parallel processing ng malaking data gamit ang MapReduce operations), clusters para sa pivot table at key-value storage, at geographically distributed clusters.
Ang isang platform-based na serbisyo ay maaaring magbigay ng paraan upang mag-imbak at magproseso ng data para sa libu-libong mga gumagamit. Kasama sa mga karaniwang YTsaurus na application sa Yandex ang pag-iimbak ng impormasyon tungkol sa mga user ng ad network, pagsasanay sa mga modelo ng machine learning, pagbuo ng search index, at pagbuo ng data warehouse para sa mga serbisyo tulad ng Yandex Taxi. , Pagkain, Lavka at mga paghahatid
Sa mga pangunahing kaso ng paggamit ito ay nabanggit:
- Batch processing: MapReduce at SPYT (Apache Spark bilang isang computing engine sa data sa YTsaurus) para sa pagproseso ng structured at semi-structured na data: mga talaan o mga transaksyong pinansyal.
- Ad hoc analysis: Mabilis na mga query sa pamamagitan ng CHYT (isang pangkat ng mga ClickHouse server sa YTsaurus compute node) nang hindi kinokopya ang data sa isang hiwalay na analytics system. ODBC at JDBC na may kakayahang ikonekta ang BI para sa visualization.
- Mga Gawain sa OLTP: Real-time na transaksyonal na trabaho na may key-value storage: halimbawa, storage ng profile ng user, pagpapakita ng ad, o pagpoproseso ng stream.
- Pag-aaral ng makina: Pamahalaan ang mga GPU cluster para sanayin ang mga modelo na may bilyun-bilyong parameter.
- Imbakan ng impormasyon ng meta: Transaksyonal na imbakan ng metainformation at maaasahang serbisyo ng mga ipinamahagi na kandado.
- Paglikha ng mga data warehouse at ETL para sa multi-tier na pagproseso ng data gamit ang mga tipikal na tool: Apache Spark, SQL, MapReduce.
Habang sa bahagi ng mga pangunahing elemento ng arkitektura, ang mga sumusunod ay nabanggit:
- Ibinahagi ang file system at Cypress fault-tolerant tree-based na imbakan ng metainformation.
- Scheduler para sa distributed computing na may suporta para sa MapReduce model, pati na rin ang mga advanced na basic operations.
- Pahalang na scalability ng mga pagpapatakbo ng IT.
- Pag-iisa ng mga mapagkukunan sa pag-compute at posibilidad na maglaan ng ilang mga mapagkukunan sa pag-compute (CPU, GPU, RAM) sa iba't ibang sukat.
- Mga PivotTables para sa paglikha ng OLTP storage, suporta para sa MVCC-based na storage, mga transaksyon, ang kakayahang magtanggal ng data pagkatapos mag-expire, at mga queue ng mensahe para sa streaming na pagproseso ng data sa mga PivotTables.
- API at mga aklatan para sa mga programming language C++, Python, Java, Go.
- Isang web interface para sa mga user at administrator na sumusuporta sa nabigasyon sa pamamagitan ng isang storage na parang puno.
Sa wakas kung interesado kang malaman ang tungkol dito, dapat mong malaman na ang code ng proyekto ay nakasulat sa C/C++ at bukas sa ilalim ng lisensya ng Apache 2.0. Maaari mong suriin ang mga detalye sa sumusunod na link.
El Repository ng GitHub naglalaman ng code ng server para sa YTsaurus, ang balangkas ng deployment na ginagamit ng mga k8, isang web interface sa system, at mga SDK ng kliyente para sa mga sikat na programming language gaya ng C++, Java, Go, at Python.