Recommendation system: enhanced cross-selling through data collection for online shops

Rozwiązanie oparte na Python ma na celu automatyzację systemu gromadzenia danych użytkownika i ulepszenie analityki użytkownika.

Klient

Region
UE
Klient od
2019

Our client is a large EU online shop. The main range of the store is diversified clothing of various brands for men, women, and children. 

Szczegółowe informacje o kliencie nie mogą być ujawnione zgodnie z postanowieniami NDA.

Wyzwanie

Współpracujemy z platformą internetową, która zapewnia możliwość zakupu ubrań i akcesoriów różnych marek.

Nasz klient dostarczył nam aktywnie rozwijającą się architekturę systemu rekomendacji do analityki i zbierania danych o aktywności użytkowników.

Rozwiązanie

Naszym celem było stworzenie systemu gromadzenia i przetwarzania danych, aby zapewnić zarówno kupującym rekomendacje dotyczące odpowiednich towarów, jak i klientowi bardziej istotne informacje na temat aktywności kupujących w jednym miejscu.

Platforma nie została opracowana od podstaw; zmodyfikowaliśmy ją w ramach zadań klienta. Rozwiązanie zostało zbudowane w oparciu o technologie chmurowe, nowoczesne podejście do rozwoju, które pozwala zaoszczędzić na DevOps, ponieważ usługi chmurowe oferują wszystko, co jest potrzebne w chmurze.

Dane są gromadzone na podstawie tego, co klienci kupują lub dodają do koszyka, ich kliknięć, ruchów myszy itp. Następnie system tworzy modele, które będą oferować kupującym potencjalnie pożądane towary. Byliśmy odpowiedzialni za zorganizowanie dokładnego zbierania danych.

OPTYMALIZACJA ZAPYTAŃ DO PRZESYŁANIA METRYK DO SNOWFLAKE

Dostarczono nam ogromny plik składający się z wielu wierszy (kilka tysięcy) z różnymi zapytaniami SQL. Klient zbierał dane z różnych tabel i obliczał różne wskaźniki. Istniało wiele powtarzających się części kodu i musieliśmy stworzyć generator zapytań, który w oparciu o kilka szablonów kodu zmieniał wartości wejściowe zapytań i wykonywał je zamiast wykonywać te same wielokrotne zapytania. Umożliwiło to stworzenie wygodnego, elastycznego i skalowalnego narzędzia do szybkiego i dynamicznego dodawania zapytań w celu obliczenia nowych wskaźników.

AUTOMATYZACJA ZARZĄDZANIA DANYMI

AWS to platforma chmurowa firmy Amazon, która umożliwia dostawcom aplikacji, ISV i sprzedawcom szybkie i bezpieczne hostowanie ich rozwiązań - niezależnie od tego, czy jest to istniejąca aplikacja, czy nowa. Aplikacja oparta na SaaS. AWS Systems Manager Parameter Store zapewnia bezpieczne repozytorium do zarządzania danymi konfiguracyjnymi i hasłami. Naszym zadaniem było zautomatyzowanie dodawania nowych lub zmiany nieaktualnych konfiguracji lub wrażliwych haseł lub danych, tak aby użytkownik nie musiał robić tego ręcznie za pomocą interfejsu graficznego.

KONFIGURACJA PRZEPŁYWU POWIETRZA

W Airflow przepływy pracy są projektowane i wyrażane jako DAG, gdzie każdy krok DAG jest zdefiniowany jako konkretne zadanie. Został on zaprojektowany ze świadomością, że wszystkie procesy ekstrakcji, transformacji, ładowania i manipulacji danymi są najlepiej wyrażone jako kod, i jako taka jest to platforma oparta na kodzie, która umożliwia szybką i wydajną iterację przepływów pracy. Ponieważ Airflow jest wysoce skuteczny w organizowaniu i planowaniu przepływów pracy potoku danych, używamy go do konfigurowania wstępnie zaplanowanych zdarzeń. DAG może być uruchamiany co godzinę lub na przykład co 3 godziny 30 minut itd. Jeśli wszystkie zadania w DAG zostały pomyślnie zakończone, wówczas DAG jest uważany za pomyślnie zakończony. Jest to wygodne, ponieważ DAG działa przez cały czas bez konieczności wykonywania ręcznych czynności.

ZARZĄDZANIE CEGŁAMI DANYCH

Utworzyliśmy nowe zadania, które odczytywały dane z zasobnika S3 klienta, wykonywały pewne przetwarzanie i przesyłały dane bezpośrednio do nas w DynamoDB. Zadania te zostały dodane jako część Airflow DAGs, aby zautomatyzować ten proces.

WDROŻENIE CI/CD

Podczas pracy nad projektem skonfigurowaliśmy CI/CD, jedną z praktyk DevOps, która pozwala programistom wdrażać zmiany w oprogramowaniu częściej i bardziej niezawodnie, minimalizować błędy, zwiększać szybkość rozwoju i poprawiać jakość produktu końcowego. Włączyliśmy ją między GitHub i Databricks. W ten sposób, gdy coś zmieniło się w GitHub, jest to automatycznie wyświetlane w naszym Databricks. W rezultacie klient otrzymuje rozwiązanie wyższej jakości przy minimalnej liczbie worków.

Technologie i narzędzia

Główne języki programowania
Python, Scala, JavaSQL
Scala, PythonTableau
AWS (EC2, MWAA, Lambda, S3, SSM, CloudWatch, IAM, CloudFormation, CodeBuild, EMR), DataDog
Snowflake, Databricks, Kafka, DynamoDB
Frameworki
Hadoop, Spark

Proces

Biorąc pod uwagę wszystkie wymagania klienta i specyfikę projektu, zaproponowaliśmy Scrum jako metodologię cyklu życia oprogramowania z wykorzystaniem Jira i Confluence. Jeśli chodzi o narzędzie komunikacji, klient zasugerował użycie Microsoft Teams.

W oparciu o nasze bogate doświadczenie w tworzeniu różnych aplikacji internetowych i systemów zarządzania danymi, nasz zespół zaproponował najbardziej odpowiedni stos technologiczny.

Podczas całego projektu organizujemy codzienne i cotygodniowe spotkania, przeglądy techniczne, przeglądy sprintów, retro, planowanie i ciągłe spotkania jeden na jeden z liderem zespołu w sprawie wszelkich pytań lub wątpliwości.

Dzięki dobrze zaplanowanemu przepływowi pracy oraz terminowym i przejrzystym procesom komunikacji jesteśmy w stanie dostarczać wyniki szybciej i wydajniej.

Zespół

4
Inżynierowie danych
6
Analitycy danych
1
Kierownik projektu
1
Menedżer produktu
1
QA Engineer

Oczekiwane wyniki

After completing the project’s active phase, which refers to updating the data analytics and recommendation system, the online shopping platform has gained better performance, stability, and usability, thereby increasing its marketing opportunities and sales. 

Zespół projektowy został uznany za profesjonalistów dzięki rozległemu zapleczu technicznemu i wysokim umiejętnościom komunikacyjnym. Ponieważ udało nam się z powodzeniem zorganizować współpracę z klientem w aktywnej fazie projektu, nasi eksperci IT kontynuowali współpracę z klientem, zapewniając długoterminowe wsparcie dla rozwiązania.

Czas trwania projektu
  • Od 2022 r.
  • Projekt wciąż trwa, na tym etapie wspieramy platformę i wdrażamy nowe funkcjonalności

    Skontaktuj się z nami

    Umów się na rozmowę lub wypełnij poniższy formularz, a my odezwiemy się do Ciebie po przetworzeniu Twojego zgłoszenia

    Wyślij nam wiadomość głosową
    Załącz dokumenty
    Prześlij plik

    Można załączyć 1 plik o rozmiarze do 2 MB. Prawidłowe formaty plików: pdf, jpg, jpeg, png.

    Klikając Wyślij, wyrażasz zgodę na przetwarzanie Twoich danych osobowych przez Innowise zgodnie z nasz Polityką Prywatności w celu przekazania Ci odpowiednich informacji. Podając numer telefonu, zgadzasz się na kontakt za pośrednictwem połączeń głosowych, SMS-ów lub komunikatorów. Mogą obowiązywać opłaty za połączenia, wiadomości i transmisję danych.

    Możesz także wysłać swoje zapytanie
    na adres contact@innowise.com
    Co dalej?
    1

    Po otrzymaniu i przetworzeniu zgłoszenia skontaktujemy się z Tobą, aby szczegółowo opisać projekt i podpisać umowę NDA w celu zapewnienia poufności.

    2

    Po zapoznaniu się z Twoimi potrzebami i oczekiwaniami, nasz zespół opracuje projekt wraz z zakresem prac, wielkością zespołu, czasem i szacunkowymi kosztami.

    3

    Zorganizujemy spotkanie w celu omówienia oferty i ustalenia szczegółów.

    4

    Na koniec podpiszemy umowę, błyskawicznie rozpoczynając pracę nad projektem.

    strzałka