Google Cloud Platform 上大量地址验证的设计模式

目标

高容量地址验证教程介绍了可以使用高容量地址验证的不同场景。在本教程中,我们将向您介绍 Google Cloud Platform 中用于运行高容量地址验证的不同设计模式。

我们将首先概述如何在 Google Cloud Platform 中使用 Cloud Run、Compute Engine 或 Google Kubernetes Engine 运行高容量地址验证,以进行一次性执行。然后,我们将了解如何将此功能纳入数据流水线。

读完本文后,您应该能够很好地了解在 Google Cloud 环境中以高容量运行地址验证的不同选项。

Google Cloud Platform 上的参考架构

本部分将深入探讨使用 Google Cloud Platform 进行大批量地址验证的不同设计模式。通过在 Google Cloud Platform 上运行,您可以与现有流程和数据流水线集成。

在 Google Cloud Platform 上运行一次高容量地址验证

下图展示了一个参考架构,说明了如何在 Google Cloud Platform 上构建更适合一次性操作或测试的集成。

图片

在这种情况下,我们建议您将 CSV 文件上传到 Cloud Storage 存储分区。然后,可以在 Cloud Run 环境中运行高容量地址验证脚本。不过,您可以在任何其他运行时环境(例如 Compute EngineGoogle Kubernetes Engine)中执行它。 输出 CSV 还可以上传到 Cloud Storage 存储分区。

作为 Google Cloud Platform 数据流水线运行

上一部分中显示的部署模式非常适合快速测试高容量地址验证,以供一次性使用。不过,如果您需要经常在数据流水线中使用它,那么可以更好地利用 Google Cloud Platform 原生功能来提高其稳健性。您可以进行的一些更改包括:

图片

  • 在这种情况下,您可以将 CSV 文件转储到 Cloud Storage 存储分区中。
  • Dataflow 作业可以提取要处理的地址,然后将其缓存在 BigQuery 中。
  • Dataflow Python 库可以扩展为具有高容量地址验证逻辑,以验证 Dataflow 作业中的地址。

以长期运行的周期性进程形式从数据流水线运行脚本

另一种常见方法是在流式数据流水线中验证一批地址,作为一种定期执行的流程。您可能还在 BigQuery 数据存储区中存储了地址。在此方法中,我们将了解如何构建需要每天/每周/每月触发的周期性数据流水线

图片

  • 将初始 CSV 文件上传到 Cloud Storage 存储分区。
  • 使用 Memorystore 作为持久性数据存储区,以维护长时间运行的进程的中间状态。
  • 将最终地址缓存到 BigQuery 数据存储区中。
  • 设置 Cloud Scheduler 以定期运行脚本。

此架构具有以下优势:

  • 借助 Cloud Scheduler,可以定期进行地址验证。您可能需要每月重新验证地址,或者每月/每季度验证所有新地址。此架构有助于解决该用例。
  • 如果客户数据位于 BigQuery 中,则可以直接在其中缓存经过验证的地址或验证标志。注意:大批量地址验证文章详细介绍了可以缓存的内容以及缓存方式

  • 使用 Memorystore 可提供更高的恢复能力,并能够处理更多地址。此步骤为整个处理流水线添加了状态,这对于处理非常大的地址数据集是必需的。 您也可以在此处使用其他数据库技术,例如 Cloud SQL[https://cloud.google.com/sql] 或 Google Cloud Platform 提供的任何其他数据库类型。不过,我们认为 Memorystore 完美地平衡了伸缩和简易性需求,因此应该是首选。

总结

通过应用此处所述的模式,您可以在 Google Cloud Platform 上针对不同的用例使用地址验证 API。

我们编写了一个开源 Python 库,可帮助您开始使用上述应用场景。您可以从计算机上的命令行调用该工具,也可以从 Google Cloud Platform 或其他云服务提供商调用该工具。

如需详细了解如何使用该库,请参阅这篇文章

后续步骤

下载通过可靠的地址提升结账、配送和运营效率 白皮书,并观看通过地址验证提升结账、配送和运营效率 网络研讨会。

建议的进一步阅读内容:

贡献者

Google 负责维护本文。以下贡献者最初撰写了此内容。
主要作者:

Henrik Valve | 解决方案工程师
Thomas Anglaret | 解决方案工程师
Sarthak Ganguly | 解决方案工程师