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 原生功能来提高其稳健性。您可以进行的更改包括:

图片

  • 在这种情况下,您可以转储 Cloud Storage 存储分区中的 CSV 文件。
  • 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 上针对不同的用例使用 Address Validation API,也可以在不同的用例中使用该 API。

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

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

后续步骤

下载利用可靠的地址改进结账、配送和运营 白皮书,并观看利用地址验证功能改进结账、配送和运营 在线讲座。

建议深入阅读:

贡献者

本文由 Google 维护。以下贡献者最初撰写了这篇文章。
主要作者:

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