Эта статья является частью #ServerlessSeptember https://aka.ms/ServerlessSeptember2020. Вы найдете другие полезные статьи, подробные руководства и видеоролики в этой коллекции бессерверного контента. Новые статьи от членов сообщества и сторонников облачных вычислений публикуются каждую неделю с понедельника по четверг до сентября.

Узнайте больше о том, как Microsoft Azure активирует бессерверные функции, на странице https://docs.microsoft.com/azure/azure-functions/.

Когда мы обычно думаем о сегментации или классификации клиентов, нам на ум приходят большие базы данных клиентов, обычно интернет-магазины, которые имеют множество данных, чтобы иметь возможность правильно классифицировать своих клиентов и, таким образом, иметь возможность предлагать новые продукты или рекомендовать дополнительные продажи в покупках, которые делают эти клиенты. Если вы хотите узнать больше о рейтинге клиентов, вы можете прочитать эту статью.

RFM (Recency, Frequency and Monetary Value) — это один из наиболее распространенных методов выполнения сегментации клиентов, пытающийся проанализировать не только объем операций клиента, но и то, как они распределяются во времени, а также давно или недавно этот клиент купил нас. Вы можете получить больше информации об этой методике RFM здесь.

Но сценарий, рассматриваемый в этой статье, относится к малому бизнесу, который использует Dynamics NAV в качестве ERP и имеет, помимо множества небольших распределенных торговых точек, небольшой интернет-магазин.

Эта компания хотела бы провести RFM-анализ своих клиентов, но при этом она хотела интегрировать эту классификацию в модуль CRM, предоставляемый ее интернет-магазином, принимая во внимание, что консолидация онлайн- и офлайн-транзакций была выполнена в Dynamics NAV.

Первая проблема, это было несложно, выполнение RFM-классификаций в Dynamics NAV — это то, что мы обычно делаем, как непосредственно с помощью SQL-запросов, так и встроенных в вычисления DAX в Power BI, но в этом случае нам нужен был API, который можно было бы запрашивать. из интернет-магазина, чтобы иметь возможность классифицировать этих клиентов и периодически совершать эти звонки. Чтобы завершить сценарий, вся инфраструктура этого клиента находилась в режиме IaaS в Microsoft Azure.

В этих условиях мы подумали об альтернативах, и тот, который нас больше всего убедил, заключался в использовании функций Azure в рамках бессерверной архитектуры, которая позволила бы нам публиковать функцию классификации клиентов и предоставлять ее по запросу на веб-сайте клиента. хранить.

Таким образом, мы обеспечили себе легкую архитектуру, которой легко управлять (помните, что перед нами небольшой клиент) при ограниченных затратах.

Кроме того, предвидя, что в будущем нам потребуется выполнять более сложные анализы с использованием машинного обучения, мы решили выполнить эту функцию с помощью языка Python.

Шаг 1. Расчет RFM

Как я уже говорил ранее, этот расчет можно выполнить простым способом, используя различные подходы. В этом случае мы используем язык SQL для извлечения этого RFM непосредственно из базы данных NAV. Вы можете увидеть код, используя образец базы данных Dynamics NAV здесь.

Шаг 2. Создайте код Python для чтения классификации RFM

Эта часть проще, так как нам просто нужно подключиться к базе данных SQL и выполнить запрос. Код будет примерно таким

Шаг 3. Создайте функцию Azure

Наконец, нам нужно было сгенерировать функцию Azure для ответа на вызовы интернет-магазина, и для этого мы решили использовать HTTPTrigger в качестве триггера для нашей функции.

Если вы впервые обращаетесь к функциям Azure, ознакомьтесь с этим пошаговым руководством, чтобы создать свой первый проект функций Azure в Visual Studio Code. https://docs.microsoft.com/en-us/azure/azure-functions/functions-create-first-function-vs-code?pivots=programming-language-python

Объединив все части, код функции будет таким же простым, как:

Просто предупреждение. Я удалил все проверки на ошибки и средства безопасности для аутентификации, чтобы мы могли сосредоточиться на бизнес-компонентах. Вы должны добавить проверку ошибок и уровень безопасности для производственной среды.

Вывод

Здесь я попытался показать, как легко модернизировать устаревший Dynamics NAV с помощью функций Azure с бессерверной архитектурой. Эта функция открывает новый мир возможностей для модернизации ваших приложений и их подключения с использованием выбранного вами языка. Я рекомендую вам взглянуть на Функции Azure и подумать о том, как модернизировать ваши приложения!