Решение для бизнес-пользователей для загрузки данных ETL Data Lake - PullRequest
3 голосов
/ 21 апреля 2020

Вопрос

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

Мы создаем озеро данных в Azure ADLS gen2 с однонаправленным потоком данных: Nifi/ADF -> ADLS -> ETL/Spark/Databricks -> Data Warehouse -> Power BI. Некоторые входные данные ETL должны загружаться / обновляться ответственными бизнес-пользователями на еженедельной / ежемесячной основе.

Не могли бы вы предложить / улучшить решения для бизнес-пользователей для загрузки входных данных ETL с соблюдением указанных ниже требований?

Требования

  1. Удобный интерфейс.
  2. Разбор / проверка. Мы должны убедиться, что данные соответствуют ожидаемому формату во время загрузки.
  3. Аудит журналирования. Мы должны иметь возможность отслеживать, кто и когда загружен. В случае некоторых задержек следует отправлять уведомления.
  4. Простота внедрения и соответствие текущей архитектуре.

Достижения требований оцениваются от 1 (очень плохой практический подход) до 5 (100% чистое, простое в реализации решение).

Возможные решения

  1. Загрузка файлов из Power Apps в хранилище данных.
    Поток: Business users -> Power Apps -> Data Warehouse & Stored Procedures -> ADLS -> Spark -> Data Warehouse -> Power BI.

    • 1 требование = 5. Очень удобный интерфейс, созданный с помощью Power Apps.
    • 2 требование = 2. Плохая реализация проверок / преобразований в SQL хранимых процедурах. Весь другой код приложения написан на Spark.
    • 3, требование = 3-5. Не уверен, как реализовать это еще.
    • 4-е требование = 2. Поток данных становится двунаправленным средством DW -> ADLS -> DW. Труднее рассуждать и организовывать.
  2. Использование Spark / Databricks для событий / триггеров ADLS.
    Поток: Business users -> Microsoft Storage Explorer app -> ADLS gen2 -> Azure Blob Storage trigger -> Azure Function -> Spark parsing/validation job -> ADLS gen2

    • 1-е требование = 3-4. Загрузка через Storage Explorer очень удобна для пользователя, единственная проблема заключается в том, что механизм уведомления пользователя об успехе / неудаче может быть выполнен по электронной почте и может быть не очень понятным.
    • 2-е требование = 5. Мне нравится парсинг / проверка выполняется на стороне ETL, а не на хранимых процедурах хранилища данных.
    • 3-е требование = 1-3. Пока не ясно, чего достичь. Ожидается, что это будет хуже, чем в Power Apps.
    • 4-е требование = 4. Однонаправленный процесс, данные не перемещаются из DW в Data Lake. 4, а не 5, потому что бизнес-пользователю не очень понятно, что уведомление об успехе / неудаче будет приходить по электронной почте. Также немного большая сложность реализации.

1 Ответ

1 голос
/ 30 апреля 2020

Сцена

Я понимаю, что вы ищете однонаправленный процесс / архитектуру ETL, который имеет следующие функции (упорядоченные по приоритету):

  • удобен для пользователя
  • проверяет входные данные
  • анализирует входные данные с использованием SQL хранимых процедур
  • просто реализовать с использованием Azure хранилища озера данных (ADLS)
  • предоставляет, по крайней мере, основные c функции аудита, регистрируя, кто что и когда загрузил в озеро данных

Определение дружественного пользователю также немного расплывчато, поскольку пользователи со временем вы привыкнете к инструментам, которые не интуитивно понятны - вы можете, например, заставить их посещать курсы. Я знаю бизнес-пользователей, которые вообще не заинтригованы, например, Power BI, но у них нет никакого выбора, чтобы не использовать это.

Предложение

Мой общий опыт заключается в том, что индивидуальные интерфейсы, адаптированные к потребностям бизнеса, приводят к гораздо более счастливым пользователям, чем если бы они использовали массивный универсальный швейцарский армейский нож которые только несколько функций используются в повседневной деятельности пользователя. Я никогда не видел, чтобы использовались PowerApps, но то, что я получаю с их сайта и с https://alternativeto.net/software/microsoft-powerapps/, это что-то вроде платформы приложений / пользовательского интерфейса с низким кодом.

Я бы лично для инструментов с низким кодом и большим сообществом пользователей, таких как, например, Tableau, Qlik или Appian. Я не связан ни с одним из них, но мне удалось довольно быстро подключить их к SQL базам данных, поэтому я упоминаю эти три.

Вы сказали

У Storage Explorer достаточно дружественный пользовательский интерфейс, и его реализация не требует затрат. Единственное беспокойство касается проверки, обратной связи и аудита. Чтобы уменьшить вероятность проверки - мы можем создать несколько шаблонов Excel для бизнес-пользователей.

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

...