0

Et par måneder tilbage, vi stillede spørgsmålet, om verden har brug for en anden streaming engine. Nu vil vi udvide det spørgsmål til søgninger. Stort set hver streaming engine er en måde at sende forespørgsler – ellers, hvorfor ville du brug for en streaming engine? Selv om streaming motorer lover frisk real-time data, den grimme sandhed er, at de skal cache data først. Det betyder, at de fleste streaming forespørgsel motorer skal se tilbage på data der allerede er indsamlet.
Som det spores brugernes engagement over dens egenskaber for Internet, og Yahoo var de søger en mere let middel til at udføre den ret rudimentær forespørgsler, der er typisk smidt på data, der er i bevægelse, som tæller, gennemsnit, rækker, og fordelinger. Og i betragtning af den trafik, der søgte en måde til validering af sensorer og instrumenter, der opfanger disse tæller. I virkeligheden, validering blev den primære use case for dette nye projekt.
Resultatet er Bullet projekt, som Yahoo bare åbne kilder på GitHub. Bullet er et meget distribueret ramme, der er designet til cloud multi-tenant data centre, der lader dig køre “forward-looking forespørgsler. Bullet forespørgsler handle på data, der strømmer gennem systemet, når du sender forespørgslen. Med andre ord, du forespørge på data, der vil ankomme, snarere end data, der allerede er ankommet. Det er usædvanligt for et open source-projekt, en Kugle indeholder også en visuel brugergrænseflade, så du er ikke nødvendigvis begrænset til kommandolinjen eller tredjeparts-værktøjer. Og det har også en REST API for programmeringsmæssig adgang.
Som en forespørgsel motor, Bullet er designet til at være lette vægt, tilføjer minimal overhead som du behandler vandløb. Men der er nogle tunge løft, der er involveret i at de rå data, der er formateret som Avro filer, skal være opdelt i kolonner, der kan blive ramt med SQL-forespørgsler, der er placeret over sliding windows.
Bullet kan hente de enkelte poster, udføre samlinger, såsom gruppe-bys, beløb, der tæller, placeringer, og i gennemsnit. Og, for at bruge de tilfælde, hvor du ønsker at kalibrere den software, instrumentering, det kan genererer histogrammer viser fordelingen af de faktiske data værdier. Og hvis den syndflod af data er for stor til, at den tilgængelige hukommelse, kan du prøve at bruge den DataSketch bibliotek, som Yahoo udviklet. DataSketches give det tætteste ting at vedholdenhed i Bullet, at de cache resultater (men ikke rå data).
Som Yahoo skabt Storm, er det ikke overraskende, at Bullet er blevet optimeret til den pågældende motor. Men det kan også læses fra Kafka eller Flume. Det ville nok ikke være af stor værdi at søgemaskiner som Gnist Streaming, der er begrænset til microbatching.
Mens Kugle i dag er begrænset til en håndfuld af SQL-forespørgsler på live, tid-windowed data, en af de næste funktioner, der vil blive tilføjet er muligheden for at streame trinvis resultater til en klient applikation, via REST API.
For nu, Bullet er tidligt tidspunkt teknologi, der er tilgængelig som open source via GitHub. Der er ingen sælger støtte, og det er ikke en del af noget værktøj, så du på egen hånd med hensyn til at styre og integrere det. Bullet konkurrerer i et meget overfyldt landskab af log-overvågning af motorer, såsom Splunk, Logstash/Elasticsearch, og andre, at give nær real-time kapaciteter. Udfordringen for at få mindshare viser sig for det tilfælde, at der fremadrettet forespørgsler give kant i at kende dine kunder via den digitale log-fil fodaftryk de efterlader.
0