Один из моих клиентов задал мне вопрос: как вы относитесь к функциям магазинов? И как позиционировать их в парадигме сетки данных?

Мое мнение: я не большой поклонник централизованных или общих хранилищ функций. Они добавляют ненужную сложность вашей архитектуре. Каждый отдельный вариант аналитического использования уникален и требует уникальных данных. Например, в маркетинге вы можете прогнозировать пожилых клиентов и более молодых клиентов. Каждый вариант использования требует различных функций. Требование того, чтобы эти разные варианты использования соответствовали одному и тому же базовому набору функций, требует многих компромиссов. Вы, вероятно, в конечном итоге получите хранилище функций, которое не добавляет никакой ценности для каждого варианта использования.

Однако могут быть ситуации, когда предварительная обработка или создание функций занимает очень много времени. Или когда функции зависят от времени. Или когда функции зависят от других функций. В таких случаях нужен магазин. Такое хранилище функций — это обычная база данных, которая является частью варианта использования внутренней архитектуры. Таким образом, часть домена.

Возвращаясь к сетке данных: запрос и подготовка этих баз данных должны быть частью платформы данных самообслуживания. Домены должны нести ответственность за владение и обслуживание этих магазинов. При совместном использовании любых данных с другими доменами домены должны придерживаться тех же принципов, что и при обычном распространении данных. Поэтому используйте продукты данных вместо прямой интеграции баз данных с другими областями.