Hive-BigQuery 连接器

开源 Hive-BigQuery 连接器 让您的 Apache Hive 存在 工作负载在 BigQuery 中读取和写入数据,以及 BigLake 表。您可以将数据存储在 BigQuery Storage 或开源数据格式, Cloud Storage

Hive-BigQuery 连接器实现了 Hive Storage Handler API,以允许 Hive 工作负载与 BigQuery 和 BigLake 表集成。Hive 执行引擎会处理计算操作(例如汇总和联接),而连接器会管理与存储在 BigQuery 或与 BigLake 关联的 Cloud Storage 存储桶中的数据的互动。

下图说明了 Hive-BigQuery 连接器 适合计算层和数据层之间。

Hive-BigQuery 连接器架构

使用场景

以下是 Hive-BigQuery 连接器在常见数据驱动型场景中的一些用途:

  • 数据迁移。您计划将 Hive 数据仓库迁移到 BigQuery, 然后逐步将您的 Hive 查询转换为 BigQuery SQL 方言。 由于数据仓库的大小和关联的应用数量众多,您预计迁移需要花费大量时间,并且您需要确保迁移操作期间的连续性。这里是 工作流:

    1. 您将数据迁移至 BigQuery
    2. 借助该连接器,您可以访问和运行原始 Hive 查询,同时逐步将 Hive 查询转换为符合 ANSI 标准的 BigQuery SQL 方言。
    3. 完成迁移和转换后,您将停用 Hive。
  • Hive 和 BigQuery 工作流。您计划使用 Hive 处理某些任务,并使用 BigQuery 处理可从其功能(例如 BigQuery BI EngineBigQuery ML)获益的工作负载。您可以使用该连接器将 Hive 表联接到 BigQuery 表。

  • 依赖开源软件 (OSS) 栈。为避免受制于特定供应商 您需要为您的数据仓库使用完整的 OSS 栈。您的流量套餐如下:

    1. 您可以使用 BigLake 连接将数据以原始 OSS 格式(例如 Avro、Parquet 或 ORC)迁移到 Cloud Storage 存储桶。

    2. 您可以继续使用 Hive 来执行和处理 Hive SQL 方言查询。

    3. 您可以根据需要使用该连接器连接到 BigQuery,以便获享以下功能:

特性

您可以使用 Hive-BigQuery 连接器处理 BigQuery 数据并执行以下任务:

  • 使用 MapReduce 和 Tez 执行引擎运行查询。
  • 从 Hive 创建和删除 BigQuery 表。
  • 将 BigQuery 表和 BigLake 表与 Hive 表联接起来。
  • 使用 Storage Read API 流和 Apache Arrow 格式从 BigQuery 表中快速读取
  • 您可以使用以下方法将数据写入 BigQuery:
    • 使用 BigQuery 直接写入 处于待处理模式的 Storage Write API。对于需要较短写入延迟时间的工作负载(例如刷新时间较短的近乎实时信息中心),请使用此方法。
    • 通过将临时 Avro 文件暂存到 Cloud Storage,然后使用 Load Job API 将文件加载到目标表中,实现间接写入。这种方法比直接方法更便宜,因为 BigQuery 会加载 作业不会产生费用。由于此方法速度较慢,因此最适合用于非时间关键型工作负载
  • 访问 BigQuery 时间分区聚簇表。以下示例 定义了 Hive 表和表之间的关系 在 BigQuery 中进行分区和聚簇。

    CREATE TABLE my_hive_table (int_val BIGINT, text STRING, ts TIMESTAMP)
    STORED BY 'com.google.cloud.hive.bigquery.connector.BigQueryStorageHandler'
    TBLPROPERTIES (
    'bq.table'='myproject.mydataset.mytable',
    'bq.time.partition.field'='ts',
    'bq.time.partition.type'='MONTH',
    'bq.clustered.fields'='int_val,text'
    );
  • 修剪列,以免从数据层检索不必要的列。

  • 使用谓词下推功能预先过滤 BigQuery 存储中的数据行 层。此方法可显著提升整体查询性能, 减少遍历网络的数据量。

  • 自动将 Hive 数据类型转换为 BigQuery 数据类型。

  • 阅读 BigQuery 视图表快照

  • 与 Spark SQL 集成。

  • 与 Apache Pig 和 HCatalog 集成。

开始使用

请参阅相关说明, 在 Hive 集群上安装和配置 Hive-BigQuery 连接器