BigQuery到Hadoop集群 - 如何传输数据?

时间:2015-01-13 21:43:39

标签: python hadoop google-analytics google-bigquery etl

我有一个Google Analytics(GA)帐户,用于跟踪应用的用户活动。我设置了BigQuery,以便可以访问原始GA数据。数据每天都从GA到BigQuery。

我有一个python应用程序以编程方式查询BigQuery API。这个应用程序给我所需的响应,取决于我要查询的内容。

我的下一步是从BigQuery获取此数据并将其转储到Hadoop集群中。我想理想地使用数据创建一个配置表。我想围绕python应用程序构建类似ETL过程的东西。例如,我每天运行运行python应用程序的etl进程,并将数据导出到集群。

最终,这个ETL过程应该放在Jenkins上,并且应该能够在生产系统上运行。

在规划此ETL流程时,我需要考虑哪些架构/设计/一般因素?

关于我应该怎么做的任何建议?我有兴趣以最简单和可行的方式做到这一点。

提前致谢。

2 个答案:

答案 0 :(得分:3)

从BigQuery到Hadoop的最简单方法是使用官方的Google BigQuery Connector for Hadoop

https://cloud.google.com/hadoop/bigquery-connector

此连接器定义BigQueryInputFormat类。

  • 编写查询以选择适当的BigQuery对象。
  • 在Hadoop节点之间均匀分割查询结果。
  • 将拆分解析为java对象以传递给映射器。 Hadoop Mapper类接收每个选定BigQuery对象的JsonObject表示。

(它使用Google云端存储作为BigQuery数据和Hadoop消费的分割之间的媒介)

答案 1 :(得分:2)

结帐Oozie。它似乎符合您的要求。它具有工作流引擎,调度支持以及shell脚本和配置单元支持。

在安装和部署方面,它通常是hadoop发行版的一部分,但可以单独安装。它具有db作为持久层的依赖关系。这可能需要一些额外的努力。

它有Web UI和rest API。如果需要,可以自动管理和监控作业。