ITPub博客

首页 > 数据库 > 数据库开发技术 > Doris Catalog入门学习

Doris Catalog入门学习

原创 数据库开发技术 作者:毛毛小妖的笔记 时间:2024-02-18 21:27:00 0 删除 编辑

写在前面

在我们使用 Doris 时,有些数据存储在 HDFS,MYSQL 或者 Greenplum 中,那我们怎么在Doris中去使用这些数据呢?

一种办法是可以将数据导入到 Doris 中来使用,这种方式一定可以解决我们的问题。

但是有时候这些数据作为维度数据,数据量比较小,只是偶尔用一下,导入太麻烦了,我们可以直接在 Doris 中直接查询这些数据吗?

答案是当然可以的,这就是我们接下来要说的 Catalog,Doris 很贴心的为我们提供了很多 Catalog,使得我们可以很方便的查询外部系统的数据,并且我们这些数据之间还可以进行join操作,实现多源数据的联邦查询。

我们以几个常见的 Catalog 来说一下怎么使用吧,便于大家快速理解和入门。官网文档很详细了,使用方法类似,用到了直接找官网文档也是很方便的。

Hive catalog

首先第一个要分享的就是 Hive catalog,这个是比较常见的,在离线数仓分析中,基本离不开 Hive。

在没有使用 Doris 之前,我们要查询 Hive 数据,可以写 HQL 语句,这种效率是比较低的;也可以使用 Flink 或者 Spark 来做数据分析,这种方法需要对 Flink 或 Spark 编程比较熟悉,使用门槛高。

使用 Doris 之后,我们可以将 HDFS 数据导入 Doris,然后使用 Mysql 协议的 SQL 语句查询数据,速度是非常快的;也可以使用 Hive Catalog,使用 SQL 语句直接查询 Hive 的数据,相较于传统方式,使用门槛低且效率高。

好了,那就开始吧。

首先 Doris 环境必须得有,没有 Doris 环境还玩个啥呀。除了 Doris 环境,还需要安装 Hadoop 和 Hive。这些都具备之后,在 MYSQL 客户端中连接上 Doris,执行使用命令即可创建我们的 Hive Catalog。

非 HA 模式

CREATE CATALOG hive PROPERTIES (
    'type'='hms',
    'hive.metastore.uris' = 'thrift://metastore_ip:metastore_port'
);

HA 模式

CREATE CATALOG hive PROPERTIES (
    'type'='hms',
    'hive.metastore.uris' = 'thrift://metastore_ip:metastore_port',
    'hadoop.username' = 'hive',
    'dfs.nameservices'='ns',
    'dfs.ha.namenodes.ns'='nn1,nn2',
    'dfs.namenode.rpc-address.ns.nn1'='ip1:8020',

    'dfs.namenode.rpc-address.ns.nn2'='ip2:8020',   

    'dfs.client.failover.proxy.provider.ns'='org.apache.hadoop.hdfs.server.namenode.ha.ConfiguredFailoverProxyProvider'

);

查看 Hive Catalog

我们可以通过如下命令查看创建的 Hive Catalog:

show catalogs;
CatalogId CatalogName Type IsCurrent
13089 hive hms
0 internal internal yes

切换 Hive Catalog

创建完成之后,怎么使用呢?我们可以使用如下命令切换到 Hive Catalog:

switch hive;

查询操作方式一

切换到 Hive Catalog 之后,就可以使用 sql 去查询 hive 了。

# 查询数据库
show databases;

# 使用数据库
use db_name;

# 查询库下的表
show tables;

# 查询表数据
select * from table_name;

# 查询表结构
show create table table_name;

查询操作方式二

如果不想敲这么多命令,也可以像这样使用:

show tables from hive.demo;

select count(*) ct from hive.demo.test_tbl;

导入 Doris

既然可以查询 Hive 的数据,那就可以使用 insert into 语句将 Hive 数据导入 Doris。我们需要先创建一个 Doris 表,然后通过 insert into doris_tbl select * from hive_tbl 即可将 Hive 数据导入 Doris。

JDBC Catalog

在旧版本的 Doris 中,我们可以通过创建外表的方式可以查询 JDBC 数据,新版中建议使用 JDBC Catalog的方式。

以我们常见的 Mysql 为例吧,可以通过如下步骤创建外表:

在 fe/jdbc_drivers/ 目录下放入 Mysql 的驱动

在 be/jdbc_drivers/ 录下放入 Mysql 的驱动

创建Mysql Catalog

CREATE CATALOG mysql
PROPERTIES (
    "type"="jdbc",
    "user"="demo",
    "password"="demo",
    "jdbc_url" = "jdbc:mysql://ip:port/demo",
    "driver_url" = "mysql-connector-java-8.0.30.jar",
    "driver_class" = "com.mysql.cj.jdbc.Driver"
);

查询

然后就可以使用 mysql 语法查询 mysql 数据了:

show databases from mysql;

show tables from mysql.demo;

select * from mysql.demo.t_ds_user limit 1; 

GreenPlum Catalog

由于 Greenplum 是基于 Postgrepsql的,GreenPlum 和 Postgresql 都可以使用 postgresql 的驱动:

在 fe/jdbc_drivers/ 目录下放入 postgresql 的驱动

在 be/jdbc_drivers/ 录下放入 postgresql 的驱动

创建 Greenplum Catalog

CREATE CATALOG gp
PROPERTIES (
    "type"="jdbc",
    "user"="demo",
    "password"="demo",
    "jdbc_url" = "jdbc:postgresql://ip:5432/demo",
    "driver_url" = "postgresql-42.5.1.jar",
    "driver_class" = "org.postgresql.Driver"
);

写在最后

看完整个操作过程,原来 Doris 的Catalog,还可以这么简单,看来Doris的开发者们确实很贴心,让我们用起来简单,维护也简单,怪不得Doris深受广大用户青睐呢,哈哈。

Doris 官网提供了很详细的文档,也提供了很多其他组件的 Catalog,有兴趣可以直达官网:https://doris.apache.org/zh-CN/docs/lakehouse/multi-catalog。


往期推荐

Doris 数仓使用规范(经验版)

Apache Doris和ClickHouse的深度分析

Doris 负载均衡配置

kafka 数据快速接入 Apache Doris

Flink CDC数据接入Apache Doris实践

Doris Unique Key 模型查询结果不一致问题

原文作者:毛毛小妖的笔记;如有侵权,请联系管理员删除。

请登录后发表评论 登录
全部评论

注册时间:2019-04-04

  • 博文量
    70
  • 访问量
    46581