Философия очистки данных - источник, хранилище данных или интерфейс?

Я нахожусь в традиционном стеке ETL Back to Front от источника данных (Adobe Analytics) до хранилища данных MySQL и внешнего интерфейса Tableau для визуализации. Мой вопрос вращается вокруг лучших практик для очистки данных / картирования и на каком этапе.
1) Очистка. У нас нет автоматического (SSIS и т. Д.) Соединителя от источника (Adobe) к хранилищу данных, поэтому мы периодически загружаем файлы CSV. По разным причинам эти файлы становятся неоптимальными (опечатки, пустые значения и т. Д.). Вопрос: следует ли "чистить" файлы CSV или загружать данные в хранилище данных MySQL (в таблицах / представлениях)? 2) Отображение: ряд различных вариантов использования конечного пользователя требует от нас отображения данных в таблицы (географические регионы, типы учетных записей и т. Д.)... должно ли это быть сделано в хранилище данных (присоединение MySQL) или это просто как хорошо в передней части (Tableau)? Я считаю, что реальный вопрос касается производительности, поскольку вы можете сделать это относительно легко на любом этапе.

Спасибо!

1 ответ

1) Очистка. Я бы посоветовал вам загрузить данные в файлах CSV в промежуточную базу данных и очистить их оттуда до того, как они достигнут базы данных, к которой вы подключаете Tableau. Таким образом, вы можете сохранить исходные файлы, которые вы можете в конечном итоге перезагрузить при необходимости. Я не уверен, что такое "традиционный стек ETL Back to Front", но инструмент ETL, такой как Microsoft SSIS или Pentaho Data Integrator (бесплатно), будет полезен при построении этих процессов, и вы сможете периодически запускать задания ETL. или каждый раз, когда новый файл загружается в каталог. Вот хороший пример такого процесса: https://docs.microsoft.com/en-us/sql/2014/integration-services/lesson-1-create-a-project-and-basic-package-with-ssis

2) "Отображение": у вас должна быть модель данных, возможно, многомерная модель, построенная на базе данных, к которой подключается Tableau. Эта модель данных должна хранить чистые и "моделируемые бизнесом" данные. Вы должны выполнять поиск (соединения / сопоставления) при преобразовании ваших данных, чтобы вы могли загрузить их в модель данных. Использование Tableau для исследования размерной модели чистых данных также будет лучше для UX/ производительности.

Общий поток будет выглядеть примерно так: CSV -> промежуточная база данных -> очистить / преобразовать / отобразить -> модель бизнес-данных (база данных) -> таблица

Другие вопросы по тегам