将数据从BigQuery导出到本地PostgreSQL/MySql数据库

问题描述:

我是BigQuery和BigQuery的Python API - 处女。将数据从BigQuery导出到本地PostgreSQL/MySql数据库

我的任务是:从使用的BigQuery和Python API的google open dataset提取数据,将数据加载到MySQL的/ PostgreSQL的本地数据库(一个安装在我的电脑上)

我看到它的方式(后我的2小时研究)是: 将数据拉入本地csv文件(using this kind of a sample code),将数据从文件加载到数据库中。

这是否类似于执行任务的正确方式?

如果不是,请您提供一些建议/指导?

在此先感谢。

+0

这是正确的做法。 – Pentium10 2014-09-13 20:09:05

+0

它可以完成省略csv文件的步骤? SO-on-the-go? – Dennis 2014-09-13 20:13:48

+0

您可以运行查询并处理输出https://developers.google.com/bigquery/docs/reference/v2/jobs/getQueryResults但是,导出为CSV可以加快导入到SQL数据库的速度。 – Pentium10 2014-09-13 21:03:36

API方法

你上面列出的步骤是正确的。综上所述,开发者:

  1. 使用的BigQuery API的“Jobs: insert”方法插入数据提取的工作 - 这导致数据被发送到谷歌云存储桶。

  2. 使用Google Cloud Storage API的“Objects: get”方法在本地下载文件。

  3. 要获得额外荣誉,我将使用“Tables: get”方法查询原始BQ表以获取原始BigQuery表架构,并使用它来构建MySQL导入步骤的架构。

的WEB UI方法

为什么不跑,你需要使用谷歌的BigQuery的Web UI任何查询,然后将数据导出到通过UI谷歌的云存储桶?为什么你需要使用Python?

+1

这是一种测试任务,让人们了解我有一些python技能:)但是,感谢您的建议:) – Dennis 2014-09-14 08:13:40

+2

**编辑:更新原始答案**确定 - 那么是的,上面列出的步骤是正确的。总之,您应该:1.使用BigQuery API的“作业:插入”方法插入数据抽取作业 - 这会导致数据被发送到Google云端存储分区。 2.使用Google Cloud Storage API的“Objects:get”方法在本地下载文件。 3.为了获得额外的荣誉,我将使用“Tables:get”方法查询原始BQ表以获取原始BigQuery表架构,并使用它来构建MySQL导入步骤的架构。 – 2014-09-14 21:02:44

+1

太棒了!这意味着我是对的:)最后一件事。我是否需要支付任何费用才能启用Google存储桶?我找不到一个免费的方式来访问它 – Dennis 2014-09-14 21:10:41