数据清理哲学-源,数据仓库还是前端?

时间:2018-09-25 19:33:55

标签: mysql mapping tableau data-warehouse data-cleaning

我处于传统的Back to Front ETL堆栈中,从数据源(Adobe Analytics)到MySQL数据仓库再到Tableau前端进行可视化。我的问题围绕清理数据/映射的最佳做法以及在什么步骤进行。
1)清理:我们没有从源(Adobe)到数据仓库的自动(SSIS等)连接器,因此我们需要定期上传CSV文件。由于各种原因,这些文件变得不够理想(拼写错误,空值等)。问题:应该对CSV文件执行“清理”操作,还是将数据上传到MySQL数据仓库(在表/视图中)后进行清理? 2)映射:许多不同的最终用户用例要求我们将数据映射到表(地理区域,帐户类型等)...应该在数据仓库中完成(MySQL联接)还是仅仅是前端(Tableau)一样好?我认为,真正的问题与性能有关,因为您可以在任一步骤中相对轻松地做到这一点。

谢谢!

1 个答案:

答案 0 :(得分:2)

1)清洁:我建议您将CSV文件中的数据加载到staging database中,然后从那里进行清洁,然后再到达将Tableau连接到的数据库至。这样,您可以保留原始文件,如有必要,最终可以将其重新加载。我不确定“传统的ETL堆栈”是什么,但是诸如Microsoft SSIS或Pentaho Data Integrator(免费)之类的ETL工具将对构建这些流程提供宝贵的帮助,然后您可以定期运行ETL作业或每次将新文件上传到目录中。这是这种过程的一个很好的例子:https://docs.microsoft.com/en-us/sql/2014/integration-services/lesson-1-create-a-project-and-basic-package-with-ssis

2)“ 映射”:您应该在Tableau连接到的数据库上建立一个数据模型,可能是dimensional model。此数据模型应存储干净的“业务建模”数据。转换数据时,应执行查找(联接/映射),以便将其加载到数据模型中。使用Tableau探索干净数据的维度模型也将更好地提高UX /性能。

总体流程如下:CSV->登台数据库->清理/转换/映射->业务数据模型(数据库)-> Tableau