The form has been successfully submitted.
Please find further information in your mailbox.
Select language
Korzystając ze strumieniowego przesyłania danych Apache Kafka, Innowise zapewnił płynny potok danych do świadomego podejmowania decyzji i analiz.
Naszym klientem jest międzynarodowa korporacja specjalizująca się w produkcji różnorodnych pojazdów osobowych i użytkowych, motocykli, silników i maszyn turbinowych.
Szczegółowe informacje o kliencie nie mogą być ujawnione zgodnie z postanowieniami NDA.
Producent motoryzacyjny, globalny podmiot z oddziałami i centrami dealerskimi na wszystkich kontynentach, stanął w obliczu znaczącego wyzwania zarządzania danymi dylemat. Różne jednostki w firmie działały niezależnie, co skutkowało nieefektywnością i brakiem wglądu w operacje, sprzedaż, zarządzanie projektami i nie tylko.
Multiple data sources led to duplicate efforts, inconsistent data quality, and a significant drain on resources as teams in different locations struggled to reconcile information. This fragmentation hindered the manufacturer’s ability to make informed, strategic decisions swiftly and effectively.
Ponadto klient miał trudności z dostępem do danych w czasie rzeczywistym, potrzebnych do podejmowania strategicznych decyzji. Opóźnienia w udostępnianiu i przetwarzaniu danych skutkowały niewykorzystanymi szansami i spóźnionymi reakcjami na potrzeby rynku, ponieważ trendy rynkowe i preferencje konsumentów szybko ewoluowały.
Klient poszukiwał kompleksowego rozwiązania w celu ujednolicenia różnych źródeł danych w spójny system i zapewnienia skalowalności w celu dostosowania do przyszłych ekspansji biznesowych.
Innowise offered a transformative approach centered around integrating Apache Kafka to address the client’s challenges. Simply put, we turned the customer’s existing information flows into Kafka data streams to ensure uninterrupted data flow, real-time analytics, and comprehensive visualizations.
Naszym początkowym zadaniem było stworzenie architektury umożliwiającej pobieranie informacji ze źródeł danych i przesyłanie ich do Apache Kafka. Najpierw zbudowaliśmy konektor dla Codebeamer, kompleksowej platformy zarządzania projektami, której klient używał do tworzenia oprogramowania i współpracy. Wybraliśmy Apache Kafka ze względu na jego wyjątkową zdolność do obsługi strumieni danych na dużą skalę, o wysokiej przepustowości i w czasie rzeczywistym, w sposób odporny na błędy, skalowalny i rozproszony.
Initially, Innowise’s specialists analyzed Codebeamer’s API documentation comprehensively to identify the most efficient methods for extracting project data, including work items, changesets, and user activities. We also examined the authentication mechanism, data request limits, and the API’s return formats.
Based on the API analysis, we designed the connector architecture with a focus on modularity, scalability, and fault tolerance. Our software engineers utilized Java to code the connector, which was responsible for linking to Codebeamer’s API, fetching data, and writing it to a Kafka topic. We implemented a converter to transform the data from Codebeamer’s format to a Kafka-compatible format. This included mapping various data fields to Kafka’s key-value pairs and handling schema variations. Finally, our project team managed robust configuration, enabling users to dynamically specify API credentials, polling intervals, and target Kafka topics.
In the first stage, the connector polled Codebeamer’s API to fetch new and updated data at configurable intervals. Then, it transformed the data into a Kafka-compatible format, ensuring each piece of information is represented as a discrete event. We utilized batch processing capabilities to efficiently handle large volumes of data without overwhelming Codebeamer’s API or the Kafka cluster.
Opracowaliśmy również niestandardowy konektor Kafka dla źródła danych FTP, krytycznego komponentu do konsolidacji różnych plików i formatów, w tym JSON, XML i CSV. Konektor łączył się z serwerem FTP i skutecznie monitorował nowe i zaktualizowane pliki, wyodrębniając je i przenosząc do ekosystemu Kafka.
Wdrożyliśmy solidny mechanizm monitorowania plików w celu wykrywania dodawania nowych plików lub modyfikacji istniejących plików. Włączyliśmy inteligentną logikę parsowania, która mogła automatycznie rozpoznawać i poprawnie przetwarzać każdy typ pliku w celu obsługi różnorodnych formatów plików (JSON, XML, CSV). Miało to kluczowe znaczenie dla przekształcania ustrukturyzowanych i częściowo ustrukturyzowanych danych w tych plikach w jednolity format odpowiedni do przesyłania strumieniowego przez Kafkę.
Back-end
Maszyna wirtualna Java 17, Kotlin, Spring
CI/CD
CI/CD on-premise
Our project team followed a well-structured project course, with deliverables at the end of each stage to ensure alignment with the client’s goals. Our approach was grounded in the Scrum framework, facilitating flexibility, continuous improvement, and robust client engagement throughout the project.
Początkowo nasi analitycy biznesowi przeprowadzili warsztaty z klientem, aby zrozumieć jego krajobraz danych, zidentyfikować kluczowe źródła danych i zdefiniować zakres integracji Kafka. Na podstawie tych informacji opracowali kompleksowy plan projektu i listę wymagań dla konektorów Kafka.
Po zebraniu wymagań nasi programiści zaprojektowali architekturę dla konektorów Kafka. Po kolei, Inżynierowie QA przeprowadziła szeroko zakrojone kontrole, w tym testy jednostkowe, integracyjne i wydajnościowe, aby zapewnić niezawodność i wydajność złączy.
Na koniec wdrożyliśmy konektory w środowisku klienta, zapewniając sesje szkoleniowe dla zespołu klienta w zakresie zarządzania i korzystania z nowych rozwiązań do strumieniowego przesyłania danych.
Podczas całego projektu komunikacja z klientem była najwyższym priorytetem. Wykorzystaliśmy Slack do codziennej komunikacji i Zoom do cotygodniowych odpraw i przeglądów sprintów. Śledzenie zadań i zarządzanie projektami odbywało się za pośrednictwem Jira, co zapewniało przejrzysty wgląd w postępy projektu i odpowiedzialność wszystkich członków zespołu.
Obecnie nasz zespół projektowy wprowadza drobne poprawki w razie potrzeby. Poza tym, klient planuje zwrócić się do nas z prośbą o realizację większej liczby projektów streamingu danych w przyszłości.
1
Właściciel produktu
1
Architekt rozwiązań
1
Kierownik techniczny
2
Programistów back-end
Innowise opracowało system konektorów, który agreguje informacje ze źródeł danych klienta i przekształca je w strumienie danych Apache Kafka. Integrując różne źródła danych w ujednolicony, strumieniowy potok danych Apache w czasie rzeczywistym, rozwiązaliśmy podstawowe wyzwania związane z fragmentacją danych, skalowalnością i integracją. Producent z branży motoryzacyjnej korzysta teraz z ograniczonego silosu danych, świadomego podejmowania decyzji i przejrzystych analiz, które sprzyjają rozwojowi biznesu.
Nasze rozwiązanie do strumieniowego przesyłania danych oparte na Kafce jest skalowalne, dzięki czemu klient może szybko się rozwijać i dodawać nowe źródła danych bez uszczerbku dla wydajności.
36%
zwiększenie dokładności podejmowania decyzji
44%
zwiększenie dostępności danych
Zadzwoń lub wypełnij poniższy formularz, a my skontaktujemy się z Tobą po przetworzeniu Twojego zgłoszenia.
Po otrzymaniu i przetworzeniu Twojego zgłoszenia skontaktujemy się z Tobą wkrótce, aby wyszczególnić potrzeby projektu i podpisać umowę o zachowaniu poufności, aby zapewnić poufność informacji.
Po przeanalizowaniu wymagań, nasi analitycy i programiści opracowują projekt z zakresem prac, wielkością zespołu, czasem i kosztami szacunki.
Umówimy się z Tobą na spotkanie, aby omówić ofertę i dojść do porozumienia porozumienia.
Podpisujemy umowę i rozpoczynamy pracę nad projektem tak szybko, jak to możliwe.
Dowiedz się jako pierwszy o innowacjach IT i interesujących studiach przypadków.
© 2007-2025 Innowise. Wszelkie prawa zastrzeżone.
Polityka prywatności. Polityka dotycząca plików cookie.
Innowise Sp. z o.o Ul. Rondo Ignacego Daszyńskiego, 2B-22P, 00-843 Warszawa, Polska
Rejestrując się, wyrażasz zgodę na naszą Politykę Prywatności, w tym korzystanie z plików cookie i przekazywanie Twoich danych osobowych.
Dziękuję!
Wiadomość została wysłana.
We’ll process your request and contact you back as soon as possible.
Dziękuję!
Wiadomość została wysłana.
Przetworzymy Twoją prośbę i skontaktujemy się z Tobą tak szybko, jak to możliwe.