Använda HDInsight Spark och Kafka
Som datatekniker måste du fastställa den lämpligaste typen av HDInsight-kluster som ska skapas för att skapa din lösning. Spark- och Kafka-kluster är ett bra sätt att mata in och bearbeta dataströmmar i realtid eller nästan i realtid när de används tillsammans.
Använda Kafka för att mata in realtidsdata
Apache Kafka kan användas som ett meddelandesystem, ett publicera prenumerationssystem eller som en plattform för strömningsbearbetning. Den lagrar data till en logg som kan läsas i realtid, efter bearbetas och kan läsas av flera konsumenter samtidigt.
Använda Spark-strukturerad strömning för att bearbeta realtidshändelser
Apache Spark är en distribuerad databearbetningsmotor med öppen källkod som kan användas under många omständigheter för att snabbt bearbeta, fråga, analysera och transformera data i stor skala. Spark används ofta för att utföra ETL- och SQL-jobb på stordata, bearbeta strömmande data och utföra maskininlärning.
Spark-strukturerad direktuppspelning har funktioner som inte är tillgängliga på andra plattformar, till exempel garantier för feltolerans, möjligheten att ansluta batchdata och strömmande data, möjligheten att hantera data som kommer sent och många fler som vi kommer att lära oss mer om senare i den här modulen. Med Azure HDInsight kan du också skapa ett VNET som rymmer både ditt Spark- och Kafka-kluster. Med båda klustren i ett virtuellt nätverk kan Spark-klustret komma åt enskilda partitioner av data i Kafka-klustret i stället för att prata mellan kluster eller slutpunkter. Genom att ge åtkomst till enskilda partitioner av data ökar du den parallellitet du har i realtidsbearbetningsjobbet, vilket ger dig bättre dataflöde.
Scenarier för att använda Kafka med Spark
Det finns många realtidsanalysscenarier som skulle dra nytta av realtidsströmningen som Apache Kafka och Spark aktiverar. Alla dessa scenarier har både en komponent för strömmande datainmatning, som är Kafka-komponenten, och en analysprocess som körs på data, som är Spark-komponenten.
- identifiering av bedrägerier i realtid för att mata in finansiella transaktionsdata och jämföra dem med historiska mönster för bedrägligt beteende.
- Vagnparkshantering och anslutna bilscenarier där du matar in IoT-enhetsdata och reagerar när vissa sensordata som körsträcka, hastighet, plats eller temperaturdata når ett tröskelvärde.
- Klickaströmsanalys på e-handelslösningar för att analysera hur sidplaceringen av produkter kan påverka impulsköp och klicka igenom.
- Patientövervakning i realtid för att titta på information om blodtryck och hjärtfrekvens och meddela läkare när en patient är i ett kritiskt tillstånd.
- Smarta rutnätslösningar som bevakar elektrisk användning och svarar när kraven ändras.
- Kundens beteende i butiker, för att ta reda på vilka inköp som görs vid vissa tidpunkter på dagen för att schemalägga påfyllning och ändra utcheckningsfilens bemanning.
- IT-infrastruktur och nätverksövervakning för att hålla utkik efter servertillgänglighet och bandbredd och omdirigera trafik vid behov.
- efterfråge- och lagerhantering i realtid för att hålla utkik efter låga lagernivåer och uppmana till ombeställning eller påfyllning av dessa artiklar.
Enkel migrering från batch till direktuppspelning
I många fall startar de här scenarierna lokalt eller med batchbearbetning av data, men när lösningarna utvecklas och behoven utvecklas flyttas batchbearbetningen till strömning och lokala program flyttas till molnet. Som nämnts ovan är Spark-strukturerad strömning unik i sin förmåga att hantera både batch- och strömningsjobb, vilket gör det enklare att överföra alla batchbearbetningar som du gör till realtidsjobb eftersom du kan övergå från en till en annan, eller använda dem samtidigt, med samma program och ramverk.