Què és Flink i el procés de dades en Streaming?

1.1    Què és Flink?

És una eina per al processament continu per a conjunts de dades.

 

 

 

Abans d’entrar en detall sobre Flink, revisem a un primer nivell els tipus de conjunts de dades que trobarem al processar dades, així com els tipus de models d’execució que podem triar per processar. Aquestes dues idees sovint es combinen, i és útil separar-les clarament.

 

Primer, 2 tipus de conjunts de dades

 

  • Unbounded
    • Conjunts de dades infinits que s’adjunten de manera contínua
      • Sensors físics que proporcionen mesures
      • Dades de log de màquina

 

  • Bounded
    • Conjunts de dades finits i sense canvis

 

 

En segon lloc, 2 tipus de models d’execució

 

  • Streaming: processament que s’executa de manera contínua mentre es produeixin dades.
  • Batch: processament que s’executa i s’executa en un temps finit de temps, alliberant recursos quan finalitzi

 

És possible, encara que no necessàriament òptim, processar qualsevol tipus de conjunt de dades amb qualsevol tipus de model d’execució. Per exemple, la execució per lots s’ha aplicat durant molt de temps a conjunts de dades sense límits malgrat els possibles problemes amb la finestra, la gestió de l’estat i les dades fora d’ordre.

 

Flink es basa en un model d’execució en streaming, que és un ajust intuïtiu per al processament de conjunts de dades sense límits: l’execució en streaming és un processament continu on les dades que es produeixen contínuament. I l’alineació entre el tipus de conjunt de dades i el tipus de model d’execució ofereix molts avantatges pel que fa a la precisió i el rendiment.

 

1.2    Característiques: Per què Flink?

 

Flink és un marc de codi obert per al processament de flux distribuït que:

 

  • Proporciona resultats precisos, fins i tot en el cas d’informació fora d’ordre o d’arribada tardana
  • És stateful i tolerant a errors i pot recuperar-se de les fallades sense deixar de mantenir exactament l’estat de l’aplicació
  • Es realitza a gran escala, que s’executa en milers de nodes amb molt bones característiques de rendiment i latència

 

 

Flink garanteix exactament una semàntica per a càlculs stateful. ‘Stateful’ significa que les aplicacions poden mantenir una agregació o resum de les dades que s’han processat al llarg del temps, i el mecanisme de control de Flink assegura que es realitzarà exactament una vegada per a l’estat d’una aplicació en cas d’error.

 

 

 

  • Flink suporta processos de flux i finestres amb semàntica de temps d’esdeveniment. El temps de l’esdeveniment facilita la computació de resultats precisos sobre els fluxos on els esdeveniments arriben fora d’ordre i on els esdeveniments poden arribar retardats.

 

  • Flink suporta finestres flexibles basades en el temps. LES FINESTRES es poden personalitzar amb condicions d’activació flexibles per suportar patrons de transmissió sofisticats. La finestra de Flink fa possible modelar la realitat de l’entorn on es creen les dades.
  • La tolerància a la fallida de Flink és lleugera i permet que el sistema mantingui altes taxes de rendiment i proporcioni la coherencia d’exactament-una vegada. Flink es recupera de fallades amb pèrdua de dades zero mentre que la compensació entre la fiabilitat i la latència és insignificant.

 

  • Flink és capaç d’obtenir un alt rendiment i baixa latència (processar moltes dades ràpidament). Els gràfics que es mostren a continuació mostren el rendiment de Apache Flink i Apache Storm completant una tasca de comptatge distribuït que requereixen la reproducció de dades en temps real.

 

  • Els safepoints de Flink proporcionen un mecanisme de control de versions, que permet actualitzar aplicacions o reproduir dades històriques sense estat perdut i un temps d’inactivitat mínim.

 

  • Flink està dissenyat per funcionar en clústers a gran escala amb molts nodes, i, a més d’un mode de clúster autònom, Flink proporciona suport per a YARN i Mesos.

 

 

 

  • Un conjunt de dades limitat es pot tractar simplement com un cas especial d’un sense límit, pel que és possible aplicar tots els mateixos conceptes de transmissió que hem exposat anteriorment a les dades finites.
  • Això és exactament com es comporta l’API de dataset de Flink. Un conjunt de dades delimitades es gestiona a l’interior de Flink com un “flux finit”, amb només algunes diferències menors en com Flink gestiona els conjunts de dades limitats.
  • Per tant, és possible utilitzar Flink per processar dades batch i sense límits, amb ambdues API que s’executen en el mateix motor d’execució de transmissió distribuïda: una arquitectura senzilla però potent.

 

 

 

 

 

 

En el nivell més bàsic, el programa Flink està format per:

  • Font de dades: dades entrants que Flink processa
  • Transformacions: el pas de processament, quan Flink modifica les dades entrants, que aquí s’inclou la llibreria FlinkCEP.
  • Sink de dades: On Flink envia dades després del processament

 

1.3    FlinkCEP

Amb la ubiqüitat de les xarxes de sensors i dispositius intel·ligents que recullen cada vegada més dades, tenim el repte d’analitzar un flux creixent de dades en temps real proper. Ser capaç de reaccionar ràpidament a les tendències canviants o d’actualitzar la intel·ligència empresarial pot ser un factor decisiu per a l’èxit o el fracàs d’una empresa. Un problema clau en el processament en temps real és la detecció de patrons d’esdeveniments en els fluxos de dades.

El processament d’esdeveniments complexos (CEP) tracta exactament aquest problema de coincidir contínuament els esdeveniments entrants amb un patró. El resultat d’una coincidència sol ser esdeveniments complexos que es deriven dels esdeveniments d’entrada. A diferència dels RDBMS tradicionals en què s’executa una consulta en dades emmagatzemades, CEP executa les dades d’una consulta emmagatzemada. Totes les dades que no són rellevants per a la consulta es poden descartar immediatament. Els avantatges d’aquest enfocament són evidents, atès que les consultes del CEP s’apliquen en un flux potencialment infinit de dades. A més, les entrades es processen immediatament. Una vegada que el sistema ha vist tots els esdeveniments per obtenir una seqüència corresponent, els resultats s’emeten immediatament. Aquest aspecte condueix efectivament a la capacitat de l’analítica de temps real del CEP.

 

En conseqüència, el paradigma de processament del CEP va generar un gran interès i va trobar aplicació en una gran varietat de casos d’ús.

 

Apache Flink amb la seva veritable naturalesa de transmissió i les seves capacitats per a una latència baixa, així com un processament de flux de transferència alta és un ajust natural per a les càrregues de treball del CEP.

Deixa un comentari

L'adreça electrònica no es publicarà. Els camps necessaris estan marcats amb *