大批量地址验证设计模式

目标

大批量地址验证教程介绍了可以使用大批量地址验证的不同场景。在本教程中,我们将向您介绍 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 上运行一次 High Volume 地址验证

下图展示了如何在 Google Cloud Platform 上构建集成,这种集成更适合一次性操作或测试。

图片

在这种情况下,我们建议您将 CSV 文件上传到 Cloud Storage 存储桶。然后,可以从 Cloud Run 环境运行 High Volume Address Validation 脚本。 不过,您也可以在任何其他运行时环境(例如 Compute Engine 或 Google Kubernetes Engine)中执行该代码。输出 CSV 文件也可以上传到 Cloud Storage 存储桶。

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

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

图片

  • 在这种情况下,您可以将 CSV 文件转储到 Cloud Storage 存储桶中。
  • Dataflow 作业可以提取要处理的地址,然后将其缓存在 BigQuery 中。
  • Dataflow Python 库可以进行扩展,以包含 High Volume 地址验证 逻辑,从而验证 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 上针对不同的应用场景使用 Address Validation API。

我们编写了一个开源 Python 库,可帮助您开始使用上述用例。您可以在计算机上通过命令行调用它,也可以通过 Google Cloud Platform 或其他云服务提供商调用它。

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

后续步骤

下载通过可靠的地址,提升结账、配送和运营体验 白皮书,并观看通过地址验证,提升结账、配送和运营体验 在线讲座。

建议的补充阅读材料:

贡献者

本文由 Google 维护。以下贡献者是其最初的作者。
主要作者:

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