Euclid 是一家发展迅速的技术初创企业,通过测量行人流量、商店访问量、路人转化率、退出率、访问时长和客户忠诚度来帮助传统零售商优化营销、销售和运营绩效。该公司拥有庞大的流量计数传感器网络,覆盖美国各地近 400 个购物中心、商场和街道。Euclid 提供的匿名整合数据每月可测量美国专营零售店、百货商店、购物商场和零售大卖场的超过 2100 万次购物会话。Euclid 位于美国加利福尼亚州的帕洛阿尔托市。
Euclid 分析客户运动数据,将流量与营销活动相关联,从而帮助零售商优化客流高峰时段的营销和其他活动。该公司以多种抽象级别处理数据,从而识别并分析关键数据特征。Euclid 的分析师负责运行 SQL 查询、创建新算法,然后生成自定义报告。此类工作需要有可调整以适应使用高峰的灵活计算环境。另外,联合创始人和首席技术官 Ken Leung 解释说:“我们的分析团队始终在试验新的探试算法。如果某种方法的确有效,或者需要向历史数据中添加定论,我们可能不得不重新计算多达 18 个月的客户数据。这需要非常强大的计算能力,并且会带来流量高峰。我们需要能够根据需要扩大和缩小规模的资源。”
Euclid 在 Web 层使用由 Heroku(Amazon 合作伙伴网络 (APN) 中的高级技术合作伙伴)提供的技术,并且一直采用 Amazon Web Services (AWS) 平台。Euclid 在 Amazon Simple Storage Service (Amazon S3) 上存储信息,并使用 Amazon Elastic MapReduce (Amazon EMR) 并行处理数据。
起初该公司在 MySQL 上运行数据存储,但后来迁移至 Amazon Redshift 以提高分析工作负载的性能。“使用 Amazon Redshift,我们的分析师能够处理大型数据集,并且对堆栈快速运行基于 SQL 的查询。”平台工程部主管 Dexin Wang 说,“它的速度令我们非常惊讶 – 使用 MySQL 进行统计行数的简单计算需要花费 5.5 小时,而使用 Amazon Redshift 仅需 30 秒。” 据 Wang 估算,只需几天时间便可将生产数据传输至 Amazon Redshift 并开始对其进行分析。“Amazon Redshift 非常易于扩展,管理要求也极低,”他解释说,“而且经济高效。从之前的数据库系统迁移至 Amazon Redshift 之后,我们的成本降低了 90%。”
Euclid 的工程师直接在 Amazon EC2 实例上编写和测试代码。这使他们能够在任何地点工作,访问无限制带宽,并轻松快速地移动数据,速度高达每秒 25MB。Euclid 使用三种 Amazon EC2 实例来处理数据,并使用 AWS Elastic Beanstalk 实现负载平衡和自动扩展。Euclid 每天在 Amazon S3 上存储的未压缩数据多达 30GB。
分析团队利用 Amazon EMR 和 Hadoop 累计并分析数据。“Amazon EMR 为我们完成了大部分繁重工作。”Leung 说,“以前工作时,我使用的是 Hadoop,我们不得不花时间安装和管理集群。但使用 AWS 后,我们再也不需要做这些。我们只在需要时使用该服务,这节省了大量成本。” 下面的图 1 展示了 AWS 上的 Euclid 环境。
“从我们创业初期开始,AWS 就使得 Euclid 非常敏捷,而且发展迅速。”Leung 说,“在公司成立之初,只有我们两个人,也没有资金。即便在获得资金以后,我们的资源也十分有限。而我们在 AWS 上的总支出不到 1000 美元。这使我们能够专注于开发流程,灵活调整以利用各种商机,并快速帮助客户尝试不同的解决方案,而不必调拨专门的资源。”
随着公司不断发展,他们利用 Amazon Redshift 和 Amazon EMR 对不断增长的大型数据集运行复杂查询,同时性能也在不断提高。“在过去三年中,我们每天收集 1GB 到 30GB 的数据。”Leung 说,“通过在 AWS 上运行并利用 Amazon Redshift,我们能够进行扩展,从而提供强大的计算能力,可在几小时内完成处理数十 TB 庞大数据集的任务,而以前处理这种任务需要两周时间。总的来说,与构建能够满足峰值计算负载需求的基础设施所需的开销相比,使用 AWS 可节省 80% 到 90% 的成本。”
Wang 补充说:“我们不想在基础设施或扩展问题上花费过多精力。我们只希望能够提出问题并获得答案。AWS 帮助我们迅速得到了答案。”
要详细了解 AWS 如何帮助您满足数据负载需求,请访问 AWS 上的大数据详细信息页面:http://thinkwithwp.com/big-data/。
有关 Heroku 如何帮助贵公司在 AWS 云上运行的更多信息,请参阅 AWS 合作伙伴目录中的 Heroku 清单。