В наших последних постах вы видели, что большинство аналитиков наших клиентов испытывают трудности с написанием кода снова и снова. Но если честно, вы, вероятно, еще не верите нам, не так ли?

И даже если вы нам поверили, вы, вероятно, спросите о некоторых примерах или о том, как вы можете начать решать эту задачу.

Итак, сегодня мы собираемся показать вам пять способов переписывания кода и причину, по которой мы считаем, что вам следует подумать об использовании каталога активной аналитики, чтобы помочь вам и вашей команде стать еще более продуктивными.

1. Стандартизируйте противоречивые бизнес-правила (которые скрываются в предложениях WHERE и операторах CASE для ваших аналитиков).

ВЫ: Эй, босс, вы знаете, как мы сообщали о более низких показателях продаж на одного клиента, чем в отчетах отдела маркетинга?

БОСС: Да, это сводит команду лидеров с ума. Какой номер правильный?

ВЫ (нервно): Их… оказывается, 6 недель назад в систему POS был добавлен новый код транзакции, и мы никогда не обновляли нашу логику. Таким образом, мы пропустили эти продажи в наших подсчетах.

БОСС (голова взрывается): И все? Одно маленькое значение кода??!?!?

Они кажутся такими незначительными вещами, но в каждой компании, с которой мы работаем, логика в SQL-операторах CASE и предложениях WHERE, как ни странно, заключается в том, что ГДЕ вводится так много несоответствий, что усложняет поддержание «единой версии истины». ”

Представьте, что каждый раз при изменении вашего веб-приложения и мобильного приложения вы вручную изменяете оператор CASE длиной в сотни строк. Нет, спасибо! Но с активным каталогом аналитики Aginity вы можете вместо этого хранить эти сложные правила в виде фрагментов, благодаря чему оператор SQL из 200+ строк выглядит намного чище и красивее, например:

ВЫБРАТЬ

Идентификатор_события

,код_события

,Код_типа_страницы

,Event_timestamp

,ID посетителя

,App_ID

,Тип_браузера

,@{Тип делового мероприятия} (‹=== замените операторы CASE ссылкой на каталог)

Пока аналитики, специалисты по данным и операторы ВСЕ ссылаются на этот объект в своих запросах, одно изменение в каталоге обновит логику всех одновременно, и каждый получит обновленные правила в следующий раз, когда они обновят запрос. Отлично!

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

Многие SQL сегодня попадают от «автора» в руки бизнес-пользователей, которые в основном выполняют SQL для извлечения необходимых им данных. Как и в приведенном выше примере CASE, по мере изменения бизнес-логики трудно гарантировать, что это дойдет до всех нижестоящих потребителей. И когда вы передаете оператор SQL, нет никакой гарантии, что эти «полезные» аналитики на принимающей стороне не изменят запрос каким-либо образом, который, по их мнению, лучше подходит для их целей.

Каталог Aginity Team решает обе эти проблемы при поддержке сети «потребителей» SQL. Вместо того, чтобы давать необработанный SQL аналитику, я могу просто поделиться с ним ссылкой:

ВЫБРАТЬ *

ОТ @{Каталог команды/Профиль клиента}

Это гарантирует, что автор контролирует определение этого профиля клиента и поддерживает логику в одном месте. И это становится еще более гибким при использовании параметров. Aginity Team и Aginity Pro поддерживают параметры, которые затем предлагают пользователю заполнить во время выполнения. Поэтому, если бы этот профиль клиента менялся из года в год, я мог бы предложить пользователю указать интересующий его финансовый год:

3. Сведите к минимуму хранилище данных (стандартизируйте многие часто используемые JOIN в нормализованных базах данных)

Вы когда-нибудь чувствовали, что тратите 80% своего времени, соединяя одни и те же столы снова и снова? Когда я работал в сфере медицинского страхования, если бы у меня был 1 доллар каждый раз, когда я присоединяюсь к ПРЕТЕНЗИИ к УЧАСТНИКУ, ПОСТАВЩИКУ, ДИАГНОЗУ, УСЛУГЕ и т. Д., Что ж… скажем так, я бы больше не переживал о своей франшизе.

Каталог в Aginity Pro/Team также отлично подходит для этого. Думайте об этих СОЕДИНЕНИЯХ как о «блоке», который вы можете вызывать в любое время, когда вам понадобятся поля из этих таблиц.

ВЫБЕРИТЕ @{TypicalMedicalClaimsFields}

ОТ @{MedClaims Block}

ГДЕ Patient_ID = $some_value

Похоже, что печатается намного меньше, не так ли:

ВЫБРАТЬ *

ОТ

MED_CLAIMS_FACT МФ

INNER JOIN MEMBER_DIM MD ON MF.MEMBER_ID = MD.MEMBER_ID

INNER JOIN PROVIDER_DIM PD ON MF.PROVIDER_ID = PD.PROVIDER_ID

ВНУТРЕННЕЕ СОЕДИНЕНИЕ DIAGNOSIS_DIM DD ON MF.PRI_DIAG_CD = DD.DIAG_CD

INNER JOIN FACILITY_DIM FD ON MF.FACILITY_ID = FD.FACILITY_ID

ГДЕ

Patient_ID = $some_value

4. Упрощение сложного кода (уродливые подвыборки и соединения, которые вы часто используете)

Большие вложенные вложенные команды SELECT очень неудобны: они затрудняют чтение и запись SQL и часто приводят к проблемам с кардинальностью. Думая об этих подзапросах как о «множествах» или «представлениях» в вашем каталоге, вы действительно легко получите нужную логику и создадите очень удобочитаемую логику. Например:

ВЫБЕРИТЕ a.*, b.*

ОТ

CUSTOMER_MASTER_TABLEа

ВНУТРЕННЕЕ СОЕДИНЕНИЕ @{Продажи по клиентам — на прошлой неделе} b

ON a.customer_id = b.customer_id

ГДЕ

a.customer_id в (@{Исчезнувшие клиенты — в прошлом месяце})

5. Выбор общих полей (из больших таблиц, которые вы используете)

Это здорово, когда ИТ-отдел предоставляет вам киоск данных со всеми атрибутами, которые могут вам понадобиться для анализа на минимально возможном количестве таблиц. 10% странных вопросов, которые вы получаете, означают, что у вас, вероятно, есть то, что вам нужно. Но для 90% довольно распространенных вопросов я часто выбираю один и тот же набор из 15 столбцов из более чем 150 вариантов. Поэтому я снова и снова вставляю один и тот же большой блок столбцов в свой запрос.

Создание записи каталога для этого значительно упрощает вставку этих общих полей и их изменение в одном месте всякий раз, когда изменяется имя столбца или когда что-то добавляется.

ВЫБРАТЬ

@{Основные данные продукта — общие} (15 столбцов, которые я всегда выбираю в основной таблице)

,product_class_code_4

,product_class_code_5

,и т.д.

ОТ

PRODUCT_MASTER PM

ГДЕ

Discontinue_DT › $prompt_discontinue_date

Ладно — ладно, это топ-5 кейсов, как вам может помочь каталог активной аналитики! Сообщите нам свое мнение.