ClickHouse
Utvecklare | ClickHouse, Inc. |
---|---|
Initial release | 15 juni 2016 |
Stabil frisättning | v23.2.1.2537-stable / 24 februari 2023
|
Förvar | |
Skrivet i | C++ |
Operativ system | Linux , FreeBSD , macOS |
Licens | Apache-licens 2.0 |
Hemsida |
ClickHouse är ett kolumnorienterat DBMS med öppen källkod (kolumndatabashanteringssystem) för online analytisk bearbetning (OLAP) som tillåter användare att generera analytiska rapporter med hjälp av SQL-frågor i realtid. ClickHouse Inc. har sitt huvudkontor i Bay Area of California, USA med dotterbolaget ClickHouse BV, baserat i Amsterdam , Nederländerna.
I september 2021 i San Francisco, Kalifornien, införlivades ClickHouse för att hysa teknologin med öppen källkod med en initial investering på 50 miljoner dollar från Index Ventures och Benchmark Capital med deltagande av Yandex NV och andra. Den 28 oktober 2021 fick företaget serie B-finansiering på totalt 250 miljoner USD till en värdering av 2 miljarder USD från Coatue Management, Altimeter Capital och andra investerare. Företaget fortsätter att bygga open source-projektet och teknisk molnteknik.
Historia
ClickHouses teknologi utvecklades först för över 10 år sedan på Yandex , Rysslands största teknikföretag. 2009 startade Alexey Milovidov och utvecklare ett experimentellt projekt för att kontrollera hypotesen om det var lönsamt att generera analytiska rapporter i realtid från icke-aggregerad data som också ständigt läggs till i realtid. Utvecklarna tillbringade tre år för att bevisa denna hypotes, och 2012 lanserades ClickHouse för första gången i produktion för att driva Yandex.Metrica , den näst största webbanalysplattformen i världen, efter Google Analytics.
Till skillnad från anpassade datastrukturer som användes tidigare, var ClickHouse mer allmänt tillämpbar för att fungera som ett databashanteringssystem. Kraften och användbarheten hos ClickHouse erbjöd en äkta kolumnorienterad DBMS , den gjorde det möjligt för system att generera rapporter från petabyte av rådata med fördröjningar på under sekunder. ClickHouse användes allmänt på Yandex, inklusive för Yandex.Tank lasttestverktyg och Yandex.Market för att övervaka webbplatsens tillgänglighet och nyckeltal.
Under 2016 släpptes ClickHouse-projektet som programvara med öppen källkod under Apache 2-licensen i juni 2016 för att driva analytiska användningsfall över hela världen. Systemen på den tiden erbjöd en servergenomströmning på hundra tusen rader per sekund, ClickHouse out utförde den hastigheten med en genomströmning på hundratals miljoner rader per sekund.
Sedan ClickHouse blev tillgängligt som öppen källkod 2016 har dess popularitet växt exponentiellt, vilket framgår av adoption av branschledande företag som Uber, Comcast, eBay och Cisco. ClickHouse implementerades också vid CERN:s LHCb-experiment för att lagra och bearbeta metadata om 10 miljarder händelser med över 1000 attribut per händelse.
Funktioner
De viktigaste funktionerna i ClickHouse DBMS är:
- Äkta kolumnorienterad DBMS . Ingenting lagras med värdena. Till exempel stöds värden med konstant längd för att undvika att lagra deras längd "nummer" bredvid värdena.
- Linjär skalbarhet. Det är möjligt att utöka ett kluster genom att lägga till servrar.
- Feltolerans. Systemet är ett kluster av skärvor, där varje skärva är en grupp repliker. ClickHouse använder asynkron multi-master replikering. Data skrivs till alla tillgängliga repliker och distribueras sedan till alla återstående repliker. ZooKeeper används för att koordinera processer, men det är inte involverat i frågebehandling och exekvering.
- Förmåga att lagra och bearbeta petabyte med data.
- SQL- stöd. ClickHouse stöder ett utökat SQL -liknande språk som inkluderar arrayer och kapslade datastrukturer, approximativa och URI -funktioner, och tillgängligheten för att ansluta ett externt nyckel-värdelager.
- Hög prestanda.
- Datakomprimering.
- Hårddiskoptimering (HDD). Systemet kan bearbeta data som inte får plats i RAM ( Random-Access Memory) .
- Klienter för databasanslutning (DB). Databasanslutningsalternativ inkluderar konsolklienten, HTTP- API:t eller en av omslagen (omslag är tillgängliga för Python , PHP , NodeJS , Perl , Ruby och R ). ODBC-drivrutin och JDBC-drivrutin är också tillgängliga för ClickHouse.
Begränsningar
ClickHouse har några funktioner som kan anses vara nackdelar:
- Det finns inget stöd för transaktioner .
- Brist på fullfjädrad UPDATE/DELETE-implementering.
Användningsfall
ClickHouse designades för OLAP- frågor.
- Det fungerar med ett litet antal tabeller som innehåller ett stort antal kolumner.
- Frågor kan använda ett stort antal rader som extraherats från DB , men bara en liten delmängd av kolumner.
- Frågor är relativt sällsynta (vanligtvis runt 100 RPS per server).
- För enkla frågor är latenser på cirka 50 ms tillåtna.
- Kolumnvärdena är ganska små och består vanligtvis av siffror och korta strängar (till exempel 60 byte per URL ).
- Hög genomströmning krävs vid bearbetning av en enda fråga (upp till miljarder rader per sekund per server).
- Ett frågeresultat är oftast filtrerat eller aggregerat.
- Datauppdateringen använder ett enkelt scenario (vanligtvis endast batch, utan komplicerade transaktioner).
Ett av de vanligaste fallen för ClickHouse är serverlogganalys. Efter att ha ställt in regelbundna datauppladdningar till ClickHouse (det rekommenderas att infoga data i ganska stora partier med mer än 1000 rader), är det möjligt att analysera incidenter med omedelbara frågor eller övervaka en tjänsts mätvärden, såsom felfrekvenser, svarstider och så vidare.
ClickHouse kan även användas som ett internt datalager för interna analytiker. ClickHouse kan lagra data från olika system (som Hadoop eller vissa loggar) och analytiker kan bygga interna instrumentpaneler med datan eller utföra realtidsanalyser för affärsändamål.
Benchmark resultat
Enligt benchmark -tester utförda av dess utvecklare är ClickHouse för OLAP- frågor mer än 100 gånger snabbare än Hive (ett DBMS baserat på Hadoop -teknologistacken) eller MySQL (en vanlig RDBMS ).