数据是为企业的许多关键任务引擎提供动力的燃料, 从商业智能到预测分析;数据科学到机器学习。要想完全有用, 数据和任何燃料一样, 必须是丰富的、现成的、干净的。数据接收过程 (准备用于分析的数据) 通常包括称为 “提取” (从当前位置获取数据)、转换 (清理数据并对数据进行规范化) 和加载 (将数据放置在数据库中, 以便对其进行分析) 的步骤。企业通常在提取和加载方面有很短的时间, 但许多企业在转换方面遇到了问题。其结果可能是分析引擎处于空闲状态, 因为它没有需要处理的数据。
鉴于这一现实, 这里有一些关于数据摄入的最佳实践需要考虑。
期待困难和计划因此
数据摄取的肮脏秘密是, 据报道, 在任何分析项目中, 收集和清理数据需要60% 到80% 的预定时间。我们想象数据科学家将大部分时间都花在运行算法、检查结果, 然后为下一次运行完善算法上。这是工作中令人振奋的部分, 但现实是, 数据科学家将大部分时间都花在试图将数据旋转成形状, 以便开始他们的分析工作。随着大数据的规模不断扩大, 这部分工作一直在变大。许多企业在不了解这一点的情况下开始数据分析项目, 然后当数据接收过程不符合其最初的计划时, 他们会感到惊讶或失望。同时, 其他团队开发了分析引擎, 这些引擎假定存在干净的摄入数据, 并在数据摄入工作失败时袖手旁观。没有灵丹妙药可以帮助你避免这些困难。期待他们, 并为他们做计划。例如, 您可能希望为数据接收安排更多的时间, 为数据分配更多的人员, 引入外部专业知识, 或者推迟开发分析引擎的开始, 直到项目的数据接收部分进展顺利。
自动输入数据
在过去的好日子里, 当数据很小, 最多只能存放在几个表格中的时候, 数据的接收可以手动执行。一个人定义了一个全局架构, 然后为每个本地数据源分配了一个程序员, 以了解如何将其映射到全局架构中。个别程序员用他们最喜欢的脚本语言编写映射和清理例程, 然后相应地运行它们。如今, 数据的大小和种类都变得太大, 无法手动进行管理。您需要开发尽可能自动化摄入过程的工具。例如, 用户应该能够在电子表格中定义此信息, 然后由强制执行指定元数据的工具读取, 而不是手动定义表的元数据, 例如其架构或关于最小值和最大有效值的规则。这种类型的自动化本身可以减轻数据摄取的负担。但是, 在许多情况下, 考虑到所涉及的表数量太多, 它并不能消除摄入瓶颈。当必须接收数千个表时, 填写数千个电子表格比编写数千个摄入脚本要好。然而, 它仍然不是一项可扩展或可管理的任务。
使用人工智能
开发了各种产品, 采用机器学习和统计算法自动推断正在摄入的数据的信息, 并在很大程度上消除了对体力劳动的需求。其中包括数据塔默等开源系统以及塔默、特里法塔和帕萨塔等商业产品。这些系统可以自动执行的流程的一些示例包括:
- 从映射到它的本地表中输入全局架构
这些系统依靠人类提供训练数据, 并解决算法无法做出明确确定的灰色地带。较新的系统, 如 informatica 的 claire 或开源的 activecclean 项目, 被吹捧为完全消灭人类的工具。
说到底, 这些产品是真实的, 它们是有效的, 它们应该是任何企业数据摄入路线图的一部分。
让它自助服务
在一家中型企业中, 每周都需要摄入数十个新的数据源。一个必须实现每个请求的集中式 it 组织将不可避免地成为瓶颈。解决方案是通过提供易于使用的工具, 为想要接收新数据源的用户准备接收数据, 使数据摄取自助服务成为可能。例如, 为用户提供自助服务工具, 以便在用户尝试将数据输入全局数据库之前检测和清除丢失的值、异常值和重复记录。
管理数据以保持其清洁
一旦你去清理你的数据的麻烦, 你会想保持它的清洁。这意味着引入数据治理, 由负责每个数据源质量的数据管理员负责。
此责任包括: 定义架构和清理规则, 决定应在每个数据源中接收哪些数据, 以及管理脏数据的处理。当然, 数据治理还包括数据质量以外的其他方面, 如数据安全和遵守法规标准 (如 gdpr 和主数据管理)。实现所有这些目标需要本组织在与数据的关系方面进行文化转变, 需要一个能够支持所需努力并对结果负责的数据管理员。
宣传您的已清理数据
一旦你清理了一个特定的数据源, 其他用户是否可以很容易地找到它?如果您的数据集成始终按照客户的要求点对点完成, 则任何客户都无法找到已为其他客户清理的可能有用的数据。您的组织应该实现一个 pub-sup (发布-订阅) 模型, 其中包含以前清理过的数据的注册表, 供所有用户查找。
最终, 这些最佳实践如果放在一起, 可能是特定数据接收项目的成功和失败之间的区别。