自 2.1.3 版本开始,Apache Doris 支持对 Hive 的 DDL 和 DML 操作。用户可以直接通过 Apache Doris 在 Hive 中创建库表,并将数据写入到 Hive 表中。通过该功能,用户可以通过 Apache Doris 对 Hive 进行完整的数据查询和写入操作,进一步帮助用户简化湖仓一体架构。
本文介绍在 Apache Doris 中支持的 Hive 操作,语法和使用须知。
提示
这是一个实验功能。
提示
使用前,请先设置:
set global enable_nereids_planner = true; set global enable_fallback_to_original_planner = false;
从老版本升级上来的集群,这些参数可能有变化。
元数据创建与删除
Catalog
-
创建
CREATE CATALOG [IF NOT EXISTS] hive PROPERTIES ( "type"="hms", "hive.metastore.uris" = "thrift://172.21.16.47:7004", "hadoop.username" = "hadoop", "fs.defaultFS" = "hdfs://172.21.16.47:4007" );注意,如果需要通过 Apache Doris 创建 Hive 表或写入数据,需要在 Catalog 属性中显式增加
fs.defaultFS属性。如果创建 Catalog 仅用于查询,则该参数可以省略。更多参数,请参阅 Hive Catalog
-
删除
DROP CATALOG [IF EXISTS] hive;删除 Catalog 并不会删除 hive 中的任何库表信息。仅仅是在 Apache Doris 中移除了对这个 Hive 集群的映射。
Database
-
创建
可以通过
SWITCH语句切换到对应的 Catalog 下,执行CREATE DATABASE语句:SWITCH hive; CREATE DATABASE [IF NOT EXISTS] hive_db;也可以使用全限定名创建,或指定 location,如:
CREATE DATABASE [IF NOT EXISTS] hive.hive_db; CREATE DATABASE [IF NOT EXISTS] hive.hive_db PROPERTIES ('location'='hdfs://172.21.16.47:4007/path/to/db/');之后可以通过
SHOW CREATE DATABASE命令可以查看 Database 的 Location 信息:mysql> SHOW CREATE DATABASE hive_db; +----------+---------------------------------------------------------------------------------------------+ | Database | Create Database | +----------+---------------------------------------------------------------------------------------------+ | hive_db | CREATE DATABASE `hive_db` LOCATION 'hdfs://172.21.16.47:4007/usr/hive/warehouse/hive_db.db' | +----------+---------------------------------------------------------------------------------------------+ -
删除
DROP DATABASE [IF EXISTS] hive.hive_db;注意
对于 Hive Database,必须先删除这个 Database 下的所有表后,才能删除 Database,否则会报错。这个操作会同步删除 Hive 中对应的 Database。
Table
-
创建
Apache Doris 支持在 Hive 中创建分区或非分区表。
-- Create unpartitioned hive table CREATE TABLE

最低0.47元/天 解锁文章
2689

被折叠的 条评论
为什么被折叠?



