这篇文章描述了Adobe Audience Manager进行数据仓库测试的挑战,并逐步介绍了我们为解决这些问题而开发的内部功能测试框架。
作为领先的数据管理平台,Adobe Audience Manager每天处理数十亿的实时和批处理事件。然后,这些数据被转化为综合报告,以帮助市场营销人员向正确的受众提供定制体验。
为了确保这些报告的准确性和可靠性,我们必须首先验证数据本身是正确的、完整的和正确的格式。这是通过勤奋的数据仓库测试实现的。然而,测试过程很大程度上是人工操作的,而且由于摄入的数据规模巨大,这是出了名的困难。因此,全面的测试实际上是不可能的,这会降低数据的完整性,并增加错误进入生产环境的风险。
为了应对这些挑战,我们开发了一个功能测试框架,该框架能够为Adobe Audience Manager报告堆栈自动化数据仓库测试。有了这个框架,我们可以支持大规模的详细测试,并以更低的成本轻松地验证每个数据点的准确性和质量。
测试adobeaudience Manager报告堆栈既复杂又不可靠
关于框架要测试的内容的上下文,我们首先将简要介绍Adobe Audience Manager报告堆栈。 (请参见下图。)
管道以从Adobe Audience Manager客户收到的事件日志开始。 这些日志可以存储在S3存储桶中,也可以写入到Snowflake中的表中。Snowflake是一种高效的基于云的数据仓库,我们替代Amazon Redshift进行了迁移,以简化Adobe Audience Manager的大规模报表。
这些雪花表充当我们的报表脚本的输入和输出表,报表脚本基本上是Python脚本,将业务逻辑应用到SQL形式的输入表的数据上。然后将结果返回到输出表,并使用Tableau呈现为报告。
在测试通过这个报告栈的不断增长的数据量时,我们面临以下挑战: 容易出错的手工测试:由于在任何给定时间都有数百万数据点流进Adobe Audience Manager,因此不可能彻底测试