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类型, 列类型映射规则见下文。
引擎参数
设置参数
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 |
说明:
关键词 | 解决方法 |
---|---|
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是否可访问。 |