API для доступа к результатам аналитики на базе NoSQL СУБД Цель: Чтобы ближе познакомится с частым кейсом использования NoSQL СУБД в аналитике мы реализуем простой API для сохранения и доступа к результатам аналитики. Цель - получить практический опыт с нереляционной базой с точки зрения дата инженера. - Мы разрабатываем сервис который показывает другим сервисам внутри нашей компании Lifetime Value клиента (по его идентификатору). Мы решили использовать Aerospike в самой простой редакции. - Сейчас у нас простая in-memory реализация: import logging store = {} def add_customer(customer_id, phone_number, lifetime_value): store[customer_id] = {'phone': phone_number, 'ltv': lifetime_value} def get_ltv_by_id(customer_id): item = store.get(customer_id, {}) if (item == {}): logging.error('Requested non-existent customer ' + str(customer_id)) else: return item.get('ltv') def get_ltv_by_phone(phone_number): for v in store.values(): if (v['phone'] == phone_number): return v['ltv'] logging.error('Requested phone number is not found ' + str(phone_number)) 1. Запустите aerospike локально в докере: docker run -tid --name db -p 3000:3000 aerospike/aerospike-server Чтобы проверить что он работает зайдите в AQL: docker exec -it db aql 2. Поставьте в свое окружение клиент aerospike для python, например: pip3 install aerospike 3. Используя документацию https://www.aerospike.com/docs/client/python/index.html реализуйте три функции (add_customer, get_ltv_by_id, get_ltv_by_phone) Решение должно быть в виде одного файла скрипта, использовать 127.0.0.1:3000 в качестве соединения с Aerospike