0

Ett par månader tillbaka, vi ställde frågan om världen behöver en annan streaming motor. Nu ska vi förlänga denna fråga till fråga. Praktiskt taget varje streaming motorn har ett sätt att skicka in frågor – annars, varför skulle du behöva en streaming-motor? Även om streaming motorer erbjuder löftet av färska data i realtid, den fula sanningen är att de måste cache data först. Det innebär att de flesta streaming fråga motorer måste titta tillbaka på data som redan har samlats in.
Som det spårade användarnas engagemang över sin Internet-egenskaper, Yahoo söker en mer lätt sätt för att utföra de ganska rudimentär frågor som vanligtvis kastas på data som är i rörelse, såsom räknas, medelvärden, led, och distributioner. Och med tanke på trafiken, det sökte ett sätt för att validera sensorer och instrument som plockar upp dessa punkter. I själva verket, validering blev den primära använda fallet för nya projekt.
Resultatet är den kul-projektet, som Yahoo bara öppen källkod på GitHub. Bullet är en distribuerad ram utformad för cloud flera hyresgäster datacenter, som låter dig köra “framåtblickande frågor. Bullet frågor act on data som flyter genom systemet efter att du skickat in frågan. Med andra ord, du frågar data som kommer fram, snarare än data som redan kommit. Ovanligt för ett open source-projekt, Kula innehåller också en visuellt användargränssnitt, så att du inte nödvändigtvis begränsas till kommandoraden eller tredje part verktyg. Och det har också en REST API för programmatisk åtkomst.
Som en fråga motor, Bullet var utformade för att vara lätta i vikt, lägga till minimala omkostnader som du processen strömmar. Men det är en del tunga lyft som är involverade i att raw-data formaterad som Avro-filer, måste tolkas i kolumner som sedan kan slå till med SQL-frågor som är placerade över skjutbara fönster.
Kula kan hämta enskilda poster, utför sammansättningar såsom grupp-bys, summerar, räknar, ranking och medelvärden. Och, för att använda de fall där du vill kalibrera programvara instrumentering, det kan generera histogram som visar distributionen av faktiska data värden. Och om torrent av att datan är för stor för minne som är tillgängligt, kan du prova att använda DataSketch bibliotek som Yahoo utvecklas. DataSketches ge det närmaste till persistens i Kula, i och med att de cache resultat (men inte rådata).
Som Yahoo skapat Storm, är det inte förvånande att Bullet har optimerats för att motorn. Men det kan även läsa från Kafka eller Vattenränna. Det skulle antagligen inte att lägga mycket värde för motorer som Gnista av Streaming som är begränsade till microbatching.
Medan Kula är idag begränsad till en handfull av SQL-frågor på live -, tid-fönster data, en av de kommande funktioner som kommer att läggas till är möjligheten att strömma inkrementell resultat att en klient ansökan via REST API.
För nu, Bullet är tidigt skede tekniken, som finns tillgänglig som öppen källkod via GitHub. Det finns inga leverantörer av stöd och det är inte en del av något verktyg, så du är på din egen när det gäller att hantera och integrera den. Bullet tävlar i ett mycket trångt landskap logga övervakning motorer som Splunk, Logstash/Elasticsearch, och andra som tillhandahåller nära realtid kapacitet. Utmaningen för att få mindshare har visat sig vara fallet att framåtblickande frågor ge kanten till att veta dina kunder genom den digitala loggfilen fotspår de lämnar.
0