在 Google Cloud Platform 上進行高大量位址驗證的設計模式

目標

高磁碟區地址驗證教學課程會逐步引導您使用高流量地址驗證的各種情境。在這個教學課程中,我們將介紹 Google Cloud Platform 中不同的設計模式,方便您執行高磁碟區位址驗證。

我們會先概略介紹如何搭配 Cloud Run、Compute Engine 或 Google Kubernetes Engine,在 Google Cloud Platform 中執行高磁碟區位址驗證,一次性執行。接著,我們會說明如何在資料管道中加入這項功能。

閱讀本文後,您應瞭解在 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 提供的其他資料庫功能。不過,我們認為記憶體儲存庫可兼顧擴充性與便利性,因此建議優先採用。

結論

只要套用這裡所述的模式,您就能將 Address Validation API 用於不同的用途,以及 Google Cloud Platform 中不同的用途。

我們撰寫了一個開放原始碼的 Python 程式庫,可協助您開始運用上述用途。您可以利用電腦的指令列叫用這項服務,或是透過 Google Cloud Platform 或其他雲端服務供應商叫用。

請參閱這篇文章,進一步瞭解如何使用資料庫。

後續步驟

下載「透過可靠的地址改善結帳、配送及營運流程 」白皮書,並參閱「利用地址驗證改善結帳、配送和營運成效 」網路研討會。

建議的延伸閱讀:

貢獻者

Google 維護這篇文章。以下著作人最初編寫過這個草稿。
主體作者:

Henrik Valve | 解決方案工程師
Thomas Anglaret | 解決方案工程師
Sarthak Ganguly | 解決方案工程師