Doris:多源数据目录(Multi-Catalog)

目录

一.基本概念      

二.基本操作

2.1 查看 Catalog

2.2 新增 Catalog

2.3 切换 Catalog

2.4 删除 Catalog

2.5 查看Catalog创建信息

三.JDBC Catalog

3.1 上传mysql驱动包

3.2 创建mysql catalog

3.3 使用SQL读取Catalog

3.4 使用JDBC读取Catalog

四.元数据管理

4.1 元数据缓存

4.2 元数据刷新

五、数据缓存

5.1 FE 配置

5.2 BE 配置

六、弹性计算节点

6.1 添加计算节点

6.2 使用计算节


一.基本概念      

  多源数据目录(Multi-Catalog)功能,旨在能够更方便对接外部数据目录,以增强Doris的数据湖分析和联邦数据查询能力。

        Multi-Catalog 功能在原有的元数据层级上,新增一层Catalog,构成 Catalog -> Database -> Table 的三层元数据层级。其中,Catalog 可以直接对应到外部数据目录。Internal Catalog 是内置的默认 Catalog,用户不可修改或删除。目前支持的外部数据目录包括:

  1. Apache Hive
  2. Apache Iceberg
  3. Apache Hudi
  4. Elasticsearch
  5. JDBC: 对接数据库访问的标准接口(JDBC)来访问各式数据库的数据。
  6. Apache Paimon(Incubating)

二.基本操作

2.1 查看 Catalog

show catalogs;

2.2 新增 Catalog

create catalog jdbc_mysql_233_8 properties (
    "type"="jdbc",
    "user"="root",
    "password"="123456",
    "jdbc_url" = "jdbc:mysql://192.168.110.233:3307/demo",
    "driver_url" = "mysql-connector-java-8.0.30.jar",
    "driver_class" = "com.mysql.cj.jdbc.Driver",

    "metadata_refresh_interval_sec"="20"
);

2.3 切换 Catalog

switch catalog_name

        切换后,可以直接通过 SHOW DATABASES,USE DB 等命令查看和切换对应 Catalog 中的 Database。Doris 会自动通过 Catalog 中的 Database 和 Table。用户可以像使用 Internal Catalog 一样,对 External Catalog 中的数据进行查看和访问。
        当前,Doris 只支持对 External Catalog 中的数据进行只读访问。

2.4 删除 Catalog

drop catalog catalog_name

2.5 查看Catalog创建信息

show create catalog catalog_name;

三.JDBC Catalog

         JDBC Catalog 通过标准 JDBC 协议,连接其他数据源。连接后,Doris 会自动同步数据源下的 Database 和 Table 的元数据,以便快速访问这些外部数据。

3.1 上传mysql驱动包

        需将 Jar 包预先存放在 FE 和 BE 部署目录的 jdbc_drivers/ 目录下。系统会自动在这个目录下寻找。该目录的位置,也可以由 fe.conf 和 be.conf 中的 jdbc_drivers_dir 配置修改。

修改fe和be配置文件,指定jdbc_drivers_dir目录。

3.2 创建mysql catalog

####mysql 8

CREATE CATALOG jdbc_mysql_233_8 PROPERTIES (
    "type"="jdbc",
    "user"="root",
    "password"="123456",
    "jdbc_url" = "jdbc:mysql://192.168.110.233:3307/demo",
    "driver_url" = "mysql-connector-java-8.0.30.jar",
    "driver_class" = "com.mysql.cj.jdbc.Driver"
)

####mysql 5

CREATE CATALOG jdbc_mysql_233_5  PROPERTIES (
    "type"="jdbc",
    "user"="root",
    "password"="123456",
    "jdbc_url" = "jdbc:mysql://192.168.110.233:3306/demo",
    "driver_url" = "mysql-connector-java-5.1.47.jar",
    "driver_class" = "com.mysql.jdbc.Driver"
)

3.3 使用SQL读取Catalog

show catalogs;

switch catalog_name;

show databases;

use db_name;

show tables;

select  * from table_name limit 10;

3.4 使用JDBC读取Catalog

JDBC URL 中使用 catalog_name.db 可以指定默认 Catalog,例如:

jdbc:mysql://FE_IP:FE_PORT/catalog.db?useSSL=false

四.元数据管理

4.1 元数据缓存

        为了提升访问外部数据源的性能,Apache Doris 会对外部数据源的元数据进行缓存。元数据包括库、表、列信息、分区信息、快照信息、文件列名等。

4.2 元数据刷新

        默认情况下,外部数据源的元数据变动,如创建、删除表,加减列等操作,不会同步给 Doris。

用户可以通过以下几种方式刷新元数据。

  • 手动刷新:用户需要通过 REFRESH 命令手动刷新元数据。

     1)REFRESH CATALOG:该命令会刷新指定 Catalog 的库列表,表列名以及所有缓存信息等。

REFRESH CATALOG catalog_name;

        2)REFRESH DATABASE:该命令会刷新指定 Database 的表列名以及 Database 下的所有缓存信息等。

REFRESH DATABASE [catalog_name.]db_name;

        3)REFRESH TABLE:该命令会刷新指定 Table 下的所有缓存信息等。

REFRESH TABLE [catalog_name.][db_name.]table_name;

  • 定时刷新

        在创建catalog时,在properties 中指定刷新时间参数metadata_refresh_interval_sec ,以秒为单位,若在创建catalog时设置了该参数,FE 的master节点会根据参数值定时刷新该catalog。

CREATE CATALOG hive PROPERTIES (
    'type'='hms',
    'hive.metastore.uris' = 'thrift://172.0.0.1:9083',
    'metadata_refresh_interval_sec' = '3600'
);

五、数据缓存

        数据缓存(Data Cache)通过缓存最近访问的远端存储系统(HDFS 或对象存储)的数据文件,加速后续访问相同数据的查询。Data Cache 功能仅作用于针对文件的外表查询(如 Hive、Hudi )。对内表查询,或非文件的外表查询(如 JDBC、Elasticsearch)等无影响。

        Data Cache 默认关闭,需要在 FE 和 BE 中设置相关参数进行开启。

5.1 FE 配置

  • 单个会话中开启 Data Cache:

SET enable_file_cache = true;

  • 全局开启 Data Cache:

SET GLOBAL enable_file_cache = true;

5.2 BE 配置

        添加参数到 BE 节点的配置文件 conf/be.conf 中,并重启 BE 节点让配置生效。

参数必选项说明
enable_file_cache是否启用 Data Cache,默认 false
file_cache_path

缓存目录的相关配置,json格式,例子: [{"path": "/path/to/file_cache3", "total_size":53687091200,"query_limit": 10737418240, "normal_percent":85, "disposable_percent":10, "index_percent":5}]。

path 是缓存的保存路径,

total_size 是缓存的大小上限,

query_limit 是单个查询能够使用的最大缓存大小,

normal_percent, disposable_percent, index_percent 3个cache队列的百分比,他们之和是100

六、弹性计算节点

        计算节点作为一种特殊类型的 BE 节点,没有数据存储能力,只负责数据计算。 在湖仓一体解决方案中,计算节点可以作为弹性节点,用于查询外部数据源,如 Hive、Iceberg、JDBC 等。Doris 不负责外部数据源数据的存储,因此,可以使用计算节点方便的扩展对外部数据源的计算能力。同时,计算节点也可以配置缓存目录,用于缓存外部数据源的热点数据,进一步加速数据读取。

6.1 添加计算节点

        在 BE 的 be.conf 配置文件中增加以下配置,之后启动 BE 节点,该节点就会以计算节点类型运行。

be_node_role=computation

        之后可以通过 MySQL 客户端链接 Doris 并执行:

ALTER SYSTEM ADD BACKEND

        添加这个 BE 节点。添加成功后,在 SHOW BACKENDS 的 NodeRole 列可以看到节点类型为 computation。

        注意:计算节点可以转换为混合节点。但混合节点不可以转换为计算节点。

6.2 使用计算节点

        添加参数到 FE 节点的配置文件 conf/fe.conf 中,并重启 FE 节点让配置生效。

参数必选项说明
prefer_compute_node_for_external_table 默认false,需要改成true启用计算节点
min_backend_num_for_external_table

该参数表示:期望可参与外表数据查询的 BE 节点的最小数量。在 Doris 2.0(含)版本之前,该参数的默认值为 3。2.1 版本之后,默认参数为 -1。-1 表示该值等同于当前集群内计算节点的数量。

        以上参数可以通过 ADMIN SET FRONTEND CONFIG 命令动态修改,不需要重启 FE 节点。且所有 FE 节点都需配置。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

m0_37559973

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值