将大查询数据导出到内部 Hadoop 集群
Export big query data into in house Hadoop Cluster
我们在 Big Query 中有 GA 数据,我的一些用户希望将其加入 Hadoop 中的内部数据,我们无法将其转移到 Big Query。
请告诉我最好的方法是什么。
参见BigQuery to Hadoop Cluster - How to transfer data?:
从 BigQuery 到 Hadoop 的最简单方法是使用官方 Google BigQuery Connector for Hadoop
https://cloud.google.com/hadoop/bigquery-connector
此连接器定义了 BigQueryInputFormat class。
- 将查询写入 select 适当的 BigQuery 对象。
- 在 Hadoop 节点之间平均拆分查询结果。
- 将拆分解析为 java 个对象以传递给映射器。 Hadoop Mapper class 接收每个 selected BigQuery 对象的 JsonObject 表示。
(它使用 Google Cloud Storage 作为 BigQuery 数据和 Hadoop 使用的拆分之间的中介)
您可以按照 Felipe Hoffa 的建议遵循 Hadoop 连接器的路线。或者构建您自己的应用程序,将数据从 BigQuery 传输到您的 Hadoop 集群。在这两种方式中,您都可以使用 Pig、Hive 等在 hadoop 集群上进行所需的连接。
如果您想尝试申请方法,让我带您了解您的申请可能需要遵循的流程:
- 查询 BQ tables(展平任何嵌套或重复的字段)
- 如果您的查询响应太大,您可以将此响应转移到目的地 table。您的目的地 table 只是 BigQuery 中的另一个 table。
- 然后您可以将此目的地 table 导出到 GCS 存储桶。这使用另一个查询请求。您将可以选择导出格式、压缩类型、将数据拆分为多个文件等。
- 您可以使用名为 gsutil 的工具从 GCS 存储桶中将文件复制到您的集群网关计算机。
- 从您的集群网关机器,您可以使用 hadoop 命令 'copyFromLocal' 将此数据复制到您的 HDFS 目录。
- 一旦它位于 HDFS 目录中,您可以创建一个指向此 HDFS 目录的外部配置单元 table。您的数据现在将在 Hive table 中可用。准备加入集群上的内部数据。
如果您需要更多详细信息或说明,请告诉我。我走这条路是因为我发现连接器替代品有点太复杂了。但这是个人主观看法。
我们在 Big Query 中有 GA 数据,我的一些用户希望将其加入 Hadoop 中的内部数据,我们无法将其转移到 Big Query。
请告诉我最好的方法是什么。
参见BigQuery to Hadoop Cluster - How to transfer data?:
从 BigQuery 到 Hadoop 的最简单方法是使用官方 Google BigQuery Connector for Hadoop
https://cloud.google.com/hadoop/bigquery-connector
此连接器定义了 BigQueryInputFormat class。
- 将查询写入 select 适当的 BigQuery 对象。
- 在 Hadoop 节点之间平均拆分查询结果。
- 将拆分解析为 java 个对象以传递给映射器。 Hadoop Mapper class 接收每个 selected BigQuery 对象的 JsonObject 表示。
(它使用 Google Cloud Storage 作为 BigQuery 数据和 Hadoop 使用的拆分之间的中介)
您可以按照 Felipe Hoffa 的建议遵循 Hadoop 连接器的路线。或者构建您自己的应用程序,将数据从 BigQuery 传输到您的 Hadoop 集群。在这两种方式中,您都可以使用 Pig、Hive 等在 hadoop 集群上进行所需的连接。
如果您想尝试申请方法,让我带您了解您的申请可能需要遵循的流程:
- 查询 BQ tables(展平任何嵌套或重复的字段)
- 如果您的查询响应太大,您可以将此响应转移到目的地 table。您的目的地 table 只是 BigQuery 中的另一个 table。
- 然后您可以将此目的地 table 导出到 GCS 存储桶。这使用另一个查询请求。您将可以选择导出格式、压缩类型、将数据拆分为多个文件等。
- 您可以使用名为 gsutil 的工具从 GCS 存储桶中将文件复制到您的集群网关计算机。
- 从您的集群网关机器,您可以使用 hadoop 命令 'copyFromLocal' 将此数据复制到您的 HDFS 目录。
- 一旦它位于 HDFS 目录中,您可以创建一个指向此 HDFS 目录的外部配置单元 table。您的数据现在将在 Hive table 中可用。准备加入集群上的内部数据。
如果您需要更多详细信息或说明,请告诉我。我走这条路是因为我发现连接器替代品有点太复杂了。但这是个人主观看法。