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

目标

大批量地址验证教程将引导您了解适合进行大批量地址验证的不同场景。在本教程中,我们将向您介绍 Google Cloud Platform 中用于运行大量地址验证的各种设计模式。

首先介绍如何在 Google Cloud Platform 中使用 Cloud Run、Compute Engine 或 Google Kubernetes Engine 运行一次性大量地址验证。然后,我们将介绍如何将此功能纳入数据流水线。

读完本文后,您应该对在 Google Cloud 环境中大量运行地址验证的各种方案有了充分的了解。

<ph type="x-smartling-placeholder">

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 不完美平衡了扩缩和简单性需求,因此应是首选。

总结

通过应用本文所述的模式,您可以将 Address Validation API 用于 Google Cloud Platform 上的不同应用场景和不同应用场景。

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

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

后续步骤

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

建议深入阅读:

贡献者

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

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