You need to enable JavaScript to run this app.
导航
Hive 外表
最近更新时间:2024.11.15 14:48:48首次发布时间:2024.11.06 13:58:49

CnchHive为Bytehouse团队提供的一种表引擎,支持使用外表的方式进行联邦查询,用户无需通过数据导入,可以直接进行数据查询Hive中的数据。
目前数据格式只支持 Parquet/Orc。

使用

CREATE TABLE hive_ext Engin=CnchHive('thrift://hive_metastore:port', 'hive_database_name', 'hive_table_name')
SETTINGS endpoint = 'https://os-s3-cn-beijing.volces.com',
         region = 'cn-beijing',
         ak_id = 'AKLTMjU3ZTYzOG********yMGE0ZmJiZjc2ODkxZWMxY2Q',
         ak_secret = 'WlRkak56Ump**********sT0RCaU9UQm1NREV4WkRWaU1HWQ=='
DESCRIBE TABLE t;

hive表的列名和类型,以及Partition By key, Cluster By key,将会在建表的时候自动推导建立。列默认建立Nullable类型, 列类型映射规则见下文。

  • 引擎参数

    • thrift://hive_metastore:port:hivemetastore 的地址
    • hive_database_name:指定hive中的数据库
    • hive_table_name:指定hive中的表,不支持view。
  • 设置参数

    • Endpoint: 兼容 S3 协议的对象存储地址
    • Region : 对象存储的服务位置,如果服务商为提供,留空
    • ak_id/ak_secrent, 具有 Hive访问权限(包含 Hive Metastore 以及对应的对象存储)的密钥。

Hive 表也可以指定列名和类型以及分区键创建, 不推荐使用。

CREATE TABLE [IF NOT EXISTS]  hive_ext
(
    uuid Nullable(String),
    price Nullable(Int32),
    date String
)
Engin=CnchHive('thrift://hive_metastore:port', 'hive_database_name', 'hive_table_name')
partition by date
SETTINGS endpoint = '100.96.4.84:80',
         region = 'cn-beijing',
         ak_id = 'AKLTMjU3ZTYzOG********yMGE0ZmJiZjc2ODkxZWMxY2Q',
         ak_secret = 'WlRkak56Ump**********sT0RCaU9UQm1NREV4WkRWaU1HWQ=='

列类型映射

hive列类型

CnchHive列类型

描述

INT/INTERGER

Nullable INT/INTERGER

BIGINT

Nullable BIGINT

TIMESTAMP

Nullable DateTime

STRING

Nullable String

VARCHAR

Nullable FixedString

内部转换为FixedString

CHAR

Nullable FixedString

内部转换为FixedString

DOUBLE

Nullable DOUBLE

FLOAT

Nullable FLOAT

DECIMAL

Nullable DECIMAL

MAP

Nullable Map

ARRAY

Nullable Array

说明:

  • hive表schema变更不会自动同步,需要在Bytehouse中重建hive外表
  • 当前hive存储格式仅支持Parquet/Orc
  • 当前CnchHive不支持insert、alter操作

运维

关键词

解决方法

DB::Exception: Can not insert NULL data into non-nullable column "name"

列字段添加Nullable属性。

DB::Exception: The hive type is not match in cnch.

CnchHive schema type与Hive schema不匹配。

DB::Exception: column name xxx doesn't match.

CnchHive schema name与Hive schema不匹配。

DB::Exception: CnchHive only support parquet format. Current format is org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat.

CnchHive目前仅支持存储格式为Parquet。

DB::Exception: No available nnproxy xxx.

HiveMetastore的psm有问题,需check HiveMetastore psm是否可访问。