将数据从配置单元 table 复制到 Bigquery 的推荐方法是什么

Whats the recommended way of copying data from hive table to Bigquery

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

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

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

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

所以要遵循的过程是:

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

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

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

我做到了。

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