使用 Databend 加速 Hive 查询

作者:房孝敬 快手大数据架构

在快手大数据团队和 Databend 的共同努力下,终于支持基于 Hive Catalog 运行 Hive 上的查询。这个文档展示了如何设置 Databend 和 Hive 环境集成及运行 SQL 查询 Hive 上数据 。

如何搭建 Databend 和 Hive 集成环境

HiveServer & metastore & HDFS 应该是预先安装的。

  1. 目前官方还没放出来支持 Hive 的二进制 Databend-release。现在只能从源代码构建含 Hive 支持的 Databend。
## make sure JAVA_HOME is set
export JAVA_HOME=/path/to/java
export LD_LIBRARY_PATH=${JAVA_HOME}/lib/server:${LD_LIBRARY_PATH}
cargo build --features hive,storage-hdfs

  1. 设置 Databend 集群,参考[deploying-databend](https://databend.rs/doc/deploy/deploying-databend)
  2. 将 Hive 目录和 HDFS 存储添加到 databend-query.toml
[storage]
type = "hdfs"

[storage.hdfs]
# hdfs namenode address,such as 127.0.0.1:8020
name_node = "xx"
root = ""

[catalogs.hive]
type = "hive"
# hive metastore address, such as 127.0.0.1:9083
address = "xx"

  1. 使用 java & Hadoop 环境运行 databend-query
export HADOOP_HOME=xxx
export JAVA_HOME=xxx, such as /Library/Java/JavaVirtualMachines/openjdk-11.jdk/Contents/Home
export LD_LIBRARY_PATH=$JAVA_HOME/lib/server:$LD_LIBRARY_PATH

./bin/databend-query -c ./databend-query.toml > query.log 2>&1 &

  1. 使用 mysql 客户端设置 Hive 相关设置
set global sql_dialect = 'hive';

建议设置:

-- for chinese users
set global timezone = 'Asia/Shanghai';
set global max_execute_time = 180000;

-- support hive nvl function
create FUNCTION nvl as (a,b) -> ifnull(a,b);

  1. 使用 mysql 客户端或 mysql jdbc 客户端查询 Hive 数据。注意:Hive 表必须被引用为 “hive.db.table”
select * from hive.$db.$table limit 10;

限制

  1. 只支持 parquet table,不支持 orc,txt
  2. 不支持 struct & map & decimal 这些 Hive 的数据类型
  3. 只支持 Hive SELECT 查询,不支持DDL、INSERT、DML 操作
  4. 不支持 Hive udfs,Hive 函数支持有限

Hive 功能现在处于测试阶段,如使用中遇到问题和建议,随时反馈到 Databend [issue](https://github.com/datafuselabs/databend/issues)

关于 Databend

Databend 是一款开源、弹性、低成本,基于对象存储也可以做实时分析的新式数仓。期待您的关注,一起探索云原生数仓解决方案,打造新一代开源 Data Cloud。

  • Databend 文档:https://databend.rs/
  • Twitter:https://twitter.com/Datafuse_Labs
  • Slack:https://datafusecloud.slack.com/
  • Wechat:Databend
  • GitHub :https://github.com/datafuselabs/databend

猜你喜欢

转载自blog.csdn.net/Databend/article/details/128143171