Hive-BigQuery 连接器

借助开源 Hive-BigQuery 连接器,您的 Apache Hive 工作负载可以在 BigQueryBigLake 表中读取和写入数据。您可以将数据存储在 BigQuery 存储空间中,或以 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 查询转换为符合 BigQuery ANSI 的 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 连接器的说明。