Adam Bellemare, główny technolog Confluent Pojawienie się generującej sztucznej inteligencji odrodziło od dawna dyskutowane pytanie: jak uzyskać swoje systemy i usługi z danymi, których potrzebują, aby wykonywać swoją pracę? Podczas gdy najczęściej pyta się o microservices i zaludniając jezioro danych, generująca sztuczna inteligencja posunęła się do czoła tej listy. Kluczowym problemem z dostępem do danych jest to, że usługi, które tworzą oryginalny rekord danych, niekoniecznie są najbardziej odpowiednie do hostowania dostępu ad-hoc do niego. Twoja usługa może być w pełni zdolna do wykonywania swoich rzeczywistych obowiązków biznesowych, ale nie jest w stanie dostarczyć tych danych potencjalnym klientom. Analitycy danych zmierzyli się z tym problemem dziesięciolecia temu, gdy oryginalny system rejestracji (w ) nie mógł zapewnić niezbędnej mocy i wydajności dla analitycznych przypadków użytkowania. inżynier danych wyodrębniłby dane z oryginalnego systemu rekordów i załadował je do Chociaż narzędzia i technologie zmieniły się na przestrzeni dziesięcioleci, cel pozostaje ten sam: kopiowanie danych z przestrzeni operacyjnej do przestrzeni analitycznej. bazy danych OLTP bazy danych OLAP Fig 1 : Prosta praca Extract-Transform-Load (ETL) kopiowania danych z domeny operacyjnej do domeny analitycznej. Fig 1 Microservices mają ten sam problem. Jak uzyskują dane, których potrzebują? Jedną z powszechnych opcji jest bezpośrednie zapytanie do oryginalnego systemu rekordów, za pośrednictwem HTTP, SOAP lub RPC, na przykład. Podobnie jak w przypadku analityka danych, obowiązują te same ograniczenia, ponieważ usługa nie jest w stanie obsłużyć wzorców dostępu, wymogów opóźnienia i obciążeń nałożonych na nią przez inne zależne usługi. Fig 2: Inne usługi będą wymagać danych do rozwiązywania własnych przypadków użytkowania biznesowego, co spowoduje sieć połączeń punkt-punkt. Rysunek 2: Krzyżem tej sprawy jest to, że Ten otwarty wymóg komplikuje sprawy, ponieważ usługa musi wykonać dobrą pracę, spełniając swoje bezpośrednie obowiązki biznesowe, a także musi wspierać wzorce dostępu do danych poza swoimi bezpośrednimi przypadkami użytkowania biznesowego. the services that create the data must also provide access to it for external systems Aplikacja, która utworzyła dane, jest również odpowiedzialna za wypełnianie zapytań dotyczących danych na żądanie wszystkich innych usług. Fig 3: Rozwiązaniem umożliwiającym dostęp do danych do usług, systemów i AI jest , odpowiedzialny tylko za cyrkulację i dystrybucję danych w całej organizacji. Znajduje się tam (czasami znany również jako ) w dedicated data communications layer data streaming event streaming Krótko mówiąc, usługi publikują ważne dane biznesowe w trwałych, skalowalnych i odtwarzalnych strumieniach danych. Inne usługi, które potrzebują tych danych, mogą subskrybować odpowiednie strumienie danych, zużywać dane i reagować na nie zgodnie z ich potrzebami biznesowymi. Specjalna warstwa komunikacji danych, dostarczana przez strumienie danych, upraszcza wymianę danych w całej organizacji. Fig 4: Strumieniowanie danych pozwala zasilać usługi dowolnej wielkości (mikro lub makro), wypełniać jeziora danych i inne analityczne punkty końcowe oraz zasilać aplikacje i usługi AI w całej firmie. Usługi nie muszą pisać wszystkich swoich danych do strumienia danych, tylko to, co jest przydatne dla innych. Dobrym miejscem do rozpoczęcia jest zbadanie żądań, które obsługuje usługa, takich jak żądania GET, ponieważ ilustrują typy danych zwykle żądanych od innych. Inne usługi czytają dane z przepływów danych i reagują na nie, aktualizując własne sklepy państwowe, stosując własną logikę biznesową i generując wyniki, które mogą również publikować w swoim własnym strumieniu. Nie żądają już danych ad hoc od serwisu producenta - zamiast tego otrzymują wszystkie swoje dane za pośrednictwem strumienia danych, w tym nowe dane, usunięte dane i wprowadzone zmiany w danych. Ponieważ nie żądają już danych na żądanie, muszą zachować kopię stanu, o który dbają w swoich własnych magazynach danych. (Uwaga: Nie muszą przechowywać WSZYSTKICH danych, tylko pola, które im zależy) Konsument ponosi wyłączną odpowiedzialność za własne wskaźniki wydajności, o ile dane są dostępne w strumieniu danych. Streaming danych oferuje znaczne korzyści dla mikroserwisów, sztucznej inteligencji i analityki. Dane zapisane do strumieni mogą być szeroko dostępne w całej organizacji. Usługa producenta pisze dane raz, a konsumenci mogą czytać dane tak często, jak potrzebują. Należy pamiętać, że tanie dyski i przechowywanie w chmurze pozwala zachować dane w strumieniu tak długo, jak potrzebujesz (w tym nieograniczone przechowywanie!) Upraszcza zależności między producentami a konsumentami. Producent nie jest już odpowiedzialny za obsługę wzorców zapytań tych, którzy zależą od jego danych. Konsument nie jest już zależny od wydajności obliczeniowej i pamięci masowej producenta w celu zaspokojenia potrzeb biznesowych. Rozłączanie: Usługi konsumpcyjne mogą tolerować przerwy producenta bez znacznego pogorszenia usługi, chociaż przepływ danych nie będzie już aktualizowany i ostatecznie stanie się nieaktywny. Power operational (OLTP-based) systemy: przepływy danych pozwalają na budowanie event-driven (micro)services, które zarówno zużywają dane i pisać własne dane do strumieni. Zarówno w czasie rzeczywistym, jak i w analizie partii: Analytics może wykorzystywać te same strumienie danych do analizy w czasie rzeczywistym lub jako źródło do budowania tabel Iceberg lub Delta do analizy partii. Fuel Gen AI i agenci AI: Te same strumienie mogą również zasilać generującą sztuczną inteligencję. Strumienie danych umożliwiają nisko opóźnione odzyskiwanie generacji rozszerzonej (RAG) i budowanie kontekstu, dzięki czemu Twoje zapytania AI zawsze mają najbardziej odpowiednie i aktualne informacje. Napraw złe dane raz, rozpowszechniaj wszędzie: Możesz naprawić złe dane u źródła i rozpowszechniać je za pośrednictwem strumienia danych do wszystkich konsumentów w dalszym ciągu. Możesz nadal korzystać z połączeń punkt do punktu żądania/odpowiedzi. Nie jest to propozycja wszystkiego lub niczego. Możesz stopniowo migrować niektóre usługi i obciążenia robocze do strumieniowania danych, pozostawiając inne opierając się na istniejących architekturach żądania-odpowiedzi. Strumienie danych umożliwiają zasilanie operacji, analiz i AI, wszystkie z tego samego źródła danych. Jako warstwa komunikacji danych, ułatwia to kolegom i ich usługom znalezienie i wykorzystanie danych, których potrzebują w swoich przypadkach użytkowania biznesowego. Jedną z ostatnich głównych korzyści jest korzyść strategiczna. Ten jest nieco trudniejszy do oszacowania, ale bez wątpienia jest jednym z najważniejszych. Inwestując w warstwę przesyłania danych, otwierasz szeroką gamę możliwości, aby Twoje dane działały. Apache Kafka, popularny wybór dla przesyłania danych, oferuje szeroką gamę złączy do integracji ze wszystkimi rodzajami systemów i usług. Nie jesteś już ograniczony do korzystania tylko z AI, które są zintegrowane z Twoją ofertą danych lub tych, które są dołączone do dostawcy usług chmury, który przechowuje wszystkie Twoje dane analityczne. Myślenie o danych, jak uzyskać do nich dostęp i jak je dostać tam, gdzie muszą być, zawsze było wyzwaniem, zwłaszcza dla podziału operacyjno-analitycznego. Ale pojawienie się GenAI uczyniło to jeszcze ważniejszym, dodając jeszcze większą wagę i znaczenie do rozwiązania tego starożytnego problemu. W jego sercu leży prosta zasada - niech usługi biznesowe koncentrują się na swoich przypadkach użytkowania biznesowego i niech warstwa komunikacji danych dostarcza danych wszystkim, którzy tego potrzebują poprzez strumieniowanie danych o niskiej latencji.