将大查询数据导出到内部Hadoop集群中

时间:2015-02-18 21:47:07

标签: google-bigquery

我们在Big查询中有GA数据,我的一些用户希望将其加入到Hadoop中的内部数据中,我们无法移动到Big Query。

请告诉我这是最好的方法。

2 个答案:

答案 0 :(得分:1)

请参阅BigQuery to Hadoop Cluster - How to transfer data?

从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 :(得分:1)

你可以像Felipe Hoffa建议的那样遵循Hadoop连接器的路线。或者构建自己的应用程序,将数据从BigQuery传输到你的Hadoop集群。在这两种方式中,您都可以使用Pig,Hive等在hadoop集群上进行必要的连接。

如果您想尝试应用程序方法,请告诉我您的应用程序可能需要遵循的流程:

  1. 查询BQ表(展平任何嵌套或重复的字段)
  2. 如果查询响应过大,可以将此响应转移到目标表中。您的目标表只是BigQuery中的另一个表。
  3. 然后,您可以将此目标表导出到GCS存储桶。这使用另一个查询请求。您可以选择导出格式,压缩类型,将数据拆分为多个文件等。
  4. 在GCS存储桶中,使用名为gsutil的工具,您可以将文件复制到群集网关计算机。
  5. 从群集网关计算机,您可以使用hadoop命令'copyFromLocal'将此数据复制到HDFS目录。
  6. 一旦它在HDFS目录中,您就可以创建指向此HDFS目录的配置单元外部表。您的数据现在可以在Hive表中找到。准备加入群集中的内部数据。
  7. 如果您需要更多细节或说明,请与我们联系。我沿着这条路走下去,因为我发现连接器替代方案有点过于复杂。但这是一种因人而异的主观意见。

相关问题