2012-12-20 114 views

回答

1

讀你的問題,看起來你有兩部分問題:1)將所有過去的數據一次性導出到Cloud SQL,2)設置某種週期性的ETL過程以保持兩個數據庫同步。

對於一次性傾倒,基於閱讀的文檔,看來你有幾個選擇這裏:

  1. 使用Bulkloader to export all of your data到CSV,然後要麼將其加載到本地MySQL實例,生成mysqldump並按照this tutorial將其加載到Cloud SQL中或創建一個腳本,該腳本將連接到Cloud SQL實例並一次加載一個事務的數據。
  2. 以編程方式在您的應用程序內部創建一個進程,以發佈任務以將給定數據寫入Cloud SQL實例,以及一個單獨的工作器,該工作器將連接到Cloud SQL db並寫入數據。

就我個人而言,我會去散裝/本地mysql/mysqldump路由,因爲您不會在主應用程序中添加任何丟棄代碼。如果出現任何問題,您可以清除Cloud SQL實例並重新啓動。

對於ETL部分,我建議使用任務隊列路由,因爲您將能夠接近實時,但有能力通過限制隊列執行速度來控制成本。

編輯:這篇文章可能是有趣的 - 涵蓋了從GAE到另一個數據庫的數據遷移:http://www-cs-students.stanford.edu/~silver/gae.html(有意義的內容是咆哮的部分後...)

相關問題