【问题标题】:Whats the recommended way of copying data from hive table to Bigquery将数据从配置单元表复制到 Bigquery 的推荐方法是什么
【发布时间】:2018-07-23 09:46:24
【问题描述】:

我见过 Move data from hive tables in Google Dataproc to BigQuery Migrate hive table to Google BigQuery

但是 distcp 的问题是,它会将数据从 hdfs 移动到 gs..并且我的表是 ORC 格式。到目前为止,bigquery 还声称只支持 JSON、CSV、AVRO。

因此需要帮助将数据从 hive 表(ORC 格式)传输到 BigQuery(任何格式)

【问题讨论】:

  • 您可以添加评论on the related feature request,要求在可用时将其列入白名单。在那之前,您最好的选择可能只是转换为受支持的格式。

标签: hive google-cloud-platform google-bigquery orc


【解决方案1】:

正如 Elliot 所说,不支持 ORC。因此,您必须将您的 ORC 数据转换为您提到的 3 种格式之一。 我个人更喜欢 Avro,因为这种序列化比 JSON 或 CSV 更健壮。

所以要遵循的过程是:

  1. 使用正确的数据类型创建 BQ 表(需要在第一步中完成,以确保使用某些 Avro 逻辑类型(如 Timestamp)进行正确转换)
  2. 启动 Hive 查询以生成 Avro 格式的数据。见this SQL example
  3. disctp 到 Google 云存储
  4. “bq load”到您的表中
  5. 通过比较 Hive 和 BigQuery 上的表是否具有相同的数据来检查您没有犯任何错误:https://github.com/bolcom/hive_compared_bq

【讨论】:

  • 我今天早上刚刚更新了我的 gcloud 堆栈,我在发行说明中看到了这条说明:“BigQuery ▪ 增加了将 ORC 文件导入 BigQuery 的实验性支持。” .所以它似乎比我预期的来得早
  • 这听起来很有希望。谢谢您的回复。
  • 如果对您有帮助,请考虑支持/接受此答案。
【解决方案2】:

支持 orc,您可以从 GCP 控制台轻松创建表。

https://cloud.google.com/bigquery/docs/loading-data-cloud-storage-orc

我已经做到了。

注意:如果是 hive 表,orc 文件中从未提及表的架构,因此在上传时,您将获得如下图所示的列名。创建表后,您需要重命名和更新列名。

【讨论】:

    猜你喜欢
    • 2011-12-15
    • 2016-06-13
    • 2018-09-06
    • 1970-01-01
    • 2011-07-01
    • 1970-01-01
    • 2021-06-26
    • 1970-01-01
    • 2020-05-03
    相关资源
    最近更新 更多