大数据StarRocks(六) :Catalog

StarRocks 自 2.3 版本起支持 Catalog(数据目录)功能,实现在一套系统内同时维护内、外部数据,方便您轻松访问并查询存储在各类外部源的数据。

1. 基本概念

内部数据:指保存在 StarRocks 中的数据。
外部数据:指保存在外部数据源(如 Apache Hive™、Apache Iceberg、Apache Hudi、Delta Lake、JDBC)中的数据。

2. Catalog

当前 StarRocks 提供两种类型 Catalog:internal catalog 和 external catalog。
在这里插入图片描述

2.1 Internal catalog

内部数据目录,用于管理 StarRocks 所有内部数据。例如,执行 CREATE DATABASE 和 CREATE TABLE 语句创建的数据库和数据表都由 internal catalog 管理。 每个 StarRocks 集群都有且只有一个 internal catalog 名为 default_catalog。

2.2 External catalog

外部数据目录,用于连接外部 metastore。在 StarRocks 中,您可以通过 external catalog 直接查询外部数据,无需进行数据导入或迁移。当前支持创建以下类型的 external catalog:

Hive catalog:用于查询 Hive 数据。
Iceberg catalog:用于查询 Iceberg 数据。
Hudi catalog:用于查询 Hudi 数据。
Delta Lake catalog:用于查询 Delta Lake 数据。
JDBC catalog:用于查询 JDBC 数据源的数据。
使用 external catalog 查询数据时,StarRocks 会用到外部数据源的两个组件:

2.3 元数据服务

用于将元数据暴露出来供 StarRocks 的 FE 进行查询规划。

2.4 存储系统

用于存储数据。数据文件以不同的格式存储在分布式文件系统或对象存储系统中。当 FE 将生成的查询计划分发给各个 BE 后,各个 BE 会并行扫描 Hive 存储系统中的目标数据,并执行计算返回查询结果。

2.5 访问 Catalog

使用 SET CATALOG 切换当前会话里生效的 Catalog,然后通过该 Catalog 查询数据。

3. 查询数据

3.1 查询内部数据

连接 StarRocks。

如从 MySQL 客户端连接到 StarRocks。连接后,默认进入到 default_catalog。
如使用 JDBC 连接到 StarRocks,连接时即可通过 default_catalog.db_name 的方式指定要连接的数据库。
(可选)通过 SHOW DATABASES 查看数据库:

SHOW DATABASES;

SHOW DATABASES FROM default_catalog;

(可选)通过 SET CATALOG 切换当前会话生效的 Catalog:

SET CATALOG <catalog_name>;

再通过 USE 指定当前会话生效的数据库:

USE <db_name>;

或者,也可以通过 USE 直接将会话切换到目标 Catalog 下的指定数据库:

USE <catalog_name>.<db_name>;

通过 SELECT 查询内部数据:

SELECT * FROM <table_name>;

如在以上步骤中未指定数据库,则可以在查询语句中直接指定。

SELECT * FROM <db_name>.<table_name>;

SELECT * FROM default_catalog.<db_name>.<table_name>;

默认为内部查询示例:
在这里插入图片描述

3.2 查询外部数据

连接 StarRocks。

如从 MySQL 客户端连接到 StarRocks。连接后,默认进入到 default_catalog。
如使用 JDBC 连接到 StarRocks,连接时即可通过 default_catalog.db_name 的方式指定要连接的数据库。
(可选)执行以下语句查看当前 StarRocks 集群中的所有 Catalog 并找到指定的 External Catalog。

SHOW CATALOGS;

(可选)执行以下语句查看指定 external catalog 中的数据库。

SHOW DATABASES FROM catalog_name;

(可选)执行以下语句将当前会话切换到指定 external catalog 的指定数据库。

USE catalog_name.db_name;

查询外部数据。

SELECT * FROM table_name;

如在以上步骤中未指定 external catalog 和数据库,则可以在查询语句中直接指定。示例:

SELECT * FROM catalog_name.db_name.table_name;

示例:
在这里插入图片描述

3.3 跨 catalog 查询数据

如想在一个 catalog 中查询其他 catalog 中数据,可通过 catalog_name.db_name 或 catalog_name.db_name.table_name 的格式来引用目标数据。举例:
在 default_catalog.olap_db 下查询 hive_catalog 中的 hive_table。

SELECT * FROM hive_catalog.hive_db.hive_table;

在 hive_catalog.hive_db 下查询 default_catalog 中的 olap_table。

SELECT * FROM default_catalog.olap_db.olap_table;

在 hive_catalog.hive_db 中,对 hive_table 和 default_catalog 中的 olap_table 进行联邦查询。

SELECT * FROM hive_table h JOIN default_catalog.olap_db.olap_table o WHERE h.id = o.id;

在其他目录下,对 hive_catalog 中的 hive_table 和 default_catalog 中的 olap_table 进行联邦查询。

SELECT * FROM hive_catalog.hive_db.hive_table h JOIN default_catalog.olap_db.olap_table o WHERE h.id = o.id;

示例:
在这里插入图片描述

4. 外部表

外部表在3.1之后版本会逐步下线,推荐使用Catalog

StarRocks 支持以外部表 (External Table) 的形式,接入其他数据源。外部表指的是保存在其他数据源中的数据表,而 StartRocks 只保存表对应的元数据,并直接向外部表所在数据源发起查询。目前 StarRocks 已支持的第三方数据源包括 MySQL、StarRocks、Elasticsearch、Apache Hive™、Apache Iceberg 和 Apache Hudi。对于 StarRocks 数据源,现阶段只支持 Insert 写入,不支持读取,对于其他数据源,现阶段只支持读取,还不支持写入。

从 3.0 版本起,对于查询 Hive、Iceberg、Hudi 数据源的场景,推荐使用 Catalog。参见 Hive catalog、Iceberg catalog、Hudi catalog。
从 3.1 版本起,对于查询 MySQL、PostgreSQL 的场景推荐使用 JDBC catalog,对于查询 Elasticsearch 的场景推荐使用 Elasticsearch catalog。
从 2.5 版本开始,查询外部数据源时支持 Data Cache,提升对热数据的查询性能

Catalog的相关知识就先介绍到这里了,欢迎点赞,收藏,转发,评论交流~

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/607037.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

分布式系统架构设计之分布式消息队列架构解析

分布式消息队列架构是构建在分布式系统之上的消息队列架构&#xff0c;旨在提高高性能、高可用性和可伸缩性。它包括以下架构相关部分&#xff1a; 1、架构优势 分布式消息队列架构的优势主要体现在以下几个方面&#xff1a; 01 高可用性 在分布式消息队列架构中&#xff0…

uni-app顶部下拉舒心

下拉刷新实际上是在用户操作下拉交互时重新调用接口&#xff0c;然后将新获取的数据再次渲染到页面中。 操作步骤 基于 scroll-view 组件实现下拉刷新&#xff0c;需要通过以下方式来实现下拉刷新的功能。 配置 refresher-enabled 属性&#xff0c;开启下拉刷新交互监听 ref…

ARM架构—— Cortex-M3与Cortex-M4特点概述

一、Cortex-M3与Cortex-M4异同点 相同点&#xff1a; 基于ARM-v7-M架构。三级流水线设计。哈佛总线架构&#xff0c;统一的存储器空间&#xff1a;指令和地址总线使用相同的地址空间。32位寻址&#xff0c;支持4GB 存储空间。基于ARM AMBA&#xff08;高级微控制器总线架构&a…

在docker上运行LCM

目录 1.加载镜像并进入容器 2.安装依赖 3.在docker外部git-clone lcm 4.将get-clone的lcm复制到容器中 5.编译库 6.将可执行文件复制到容器中 7.进入可执行文件 8.编译可执行文件 9.再开一个终端运行程序 10.将以上容器打成镜像并导出 1.加载镜像并进入容器 sudo do…

基于多反应堆的高并发服务器【C/C++/Reactor】(中)在TcpConnection 中接收并解析Http请求消息

一、在TcpConnection 中多添加和http协议相关的request和response struct TcpConnection {struct EventLoop* evLoop;struct Channel* channel;struct Buffer* readBuf;struct Buffer* writeBuf;char name[32];// http协议struct HttpRequest* request;struct HttpResponse* r…

Java10:内部类

7 内部类&#xff08;了解&#xff09;7.1 成员内部类7.2 静态内部类7.3 局部内部类7.4 匿名内部类 2.3. 静态内部类2.4. Lambda表达式&#xff0c; 7 内部类&#xff08;了解&#xff09; 内部类&#xff1a;就是在一个类的内部再定义一个类。 分类&#xff1a; 成员内部类 静…

压力测试对系统研发的作用是什么?

在回答这个问题之前&#xff0c;我们先来看看压力测试到底是什么&#xff1f; 压力测试是一种非功能性的软件测试方法&#xff0c;它通过模拟极端或者异常条件下的负载&#xff0c;来评估系统的性能、稳定性、可靠性和可扩展性。这种测试方法通常会模拟多用户同时访问系统、大数…

LabVIEW在旋转机械故障诊断中的随机共振增强应用

在现代工业自动化领域&#xff0c;准确的故障诊断对于保障机械设备的稳定运行至关重要。传统的故障检测方法往往因噪声干扰而难以捕捉到微弱的故障信号。随着LabVIEW在数据处理和系统集成方面的优势日益凸显&#xff0c;其在旋转机械故障诊断中的应用开始发挥重要作用&#xff…

​油烟净化器电源安全,保障健康餐饮生活

我最近分析了餐饮市场的油烟净化器等产品报告&#xff0c;解决了餐饮业厨房油腻的难题&#xff0c;更加方便了在餐饮业和商业场所有需求的小伙伴们。 随着人们生活水平的提高&#xff0c;餐饮业也得到了快速发展。然而&#xff0c;餐饮油烟污染也成为了人们关注的焦点。 油烟中…

Spring学习 Spring整合MyBatis

6.1.创建工程 6.1.1.pom.xml <?xml version"1.0" encoding"UTF-8"?> <project xmlns"http://maven.apache.org/POM/4.0.0"xmlns:xsi"http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation"http://maven.ap…

20240108移远的4G模块EC20在Firefly的AIO-3399J开发板的Android11下调通的步骤

20240108移远的4G模块EC20在Firefly的AIO-3399J开发板的Android11下调通的步骤 2024/1/8 17:50 缘起&#xff1a;使用友善之臂的Android11可以让EC20上网&#xff0c;但是同样的修改步骤&#xff0c;Toybrick的Android11不能让EC20上网。最后确认是selinux的问题&#xff01; …

Linux文件系统与日志分析

目录 一、Linux文件系统 1、inode与block 2、查看inode号码的命令 3、inode包含文件的元信息 4、Linux系统文件的三个主要时间属性 5、用户通过文件名打开文件时系统内部过程 6、inode的大小 7、inode的特点 二、日志 1、日志的功能 2、日志文件的分类 3、系统日志…

解锁前端新潜能:如何使用 Rust 锈化前端工具链

前言 近年来&#xff0c;Rust的受欢迎程度不断上升。首先&#xff0c;在操作系统领域&#xff0c;Rust 已成为 Linux 内核官方认可的开发语言之一&#xff0c;Windows 也宣布将使用 Rust 来重写内核&#xff0c;并重写部分驱动程序。此外&#xff0c;国内手机厂商 Vivo 也宣布…

语言栏中的半角和全角

语言栏中的半角和全角 1. 语言栏2. Halfwidth and fullwidth forms3. Monospaced fontReferences 1. 语言栏 任务栏设置 时间和语言 输入 高级键盘设置 文本服务和输入语言 2. Halfwidth and fullwidth forms 半角和全角&#xff0c;别名半形和全形。 In CJK (Chinese, Japa…

并发编程之CASAtomic原子操作

目录 什么是CAS&#xff1f; CAS 原子操作的三大问题 ABA问题 循环时间长开销大 只能保证一个共享变量的原子操作 jdk中的原子操作类 AtomicInteger AtomicLong AtomicReference LongAdder 什么是CAS&#xff1f; CAS是“比较并交换”&#xff08;Compare and Swap&a…

sentinel入门,转载的,不记得在哪复制的了

sentinel 基本概念 开发的原因&#xff0c;需要对吞吐量&#xff08;TPS&#xff09;、QPS、并发数、响应时间&#xff08;RT&#xff09;几个概念做下了解&#xff0c;查自百度百科&#xff0c;记录如下&#xff1a; 响应时间(RT)   响应时间是指系统对请求作出响应的时间。…

python按列写入数据到excel

要将数据按列写入 Excel&#xff0c;可以使用 Python 的 openpyxl 库。 首先&#xff0c;需要安装 openpyxl 库。可以使用以下命令在终端或命令提示符中安装&#xff1a; pip install openpyxl然后&#xff0c;可以按照以下步骤编写代码&#xff1a; 1.导入 openpyxl 库&…

Prokka: ubuntu安装的时候出现错误

[14:10:57] Running: cat /app/prokka_result/ref_file/ref_file.HAMAP.hmm.tmp.77.faa | parallel --gnu --plain -j 2 --block 108208 --recstart ‘>’ --pipe hmmscan --noali --notextw --acc -E 1e-09 --cpu 1 /opt/prokka/db/hmm/HAMAP.hmm /dev/stdin > /app/pro…

Linux 网络工具

sar 利用 sar 工具来监控网络情况&#xff0c;命令行形式&#xff1a; sar -n [keyword] [ <interval> [ <count> ] ]参数说明&#xff1a; -n&#xff1a;表示网络性能监控。 keyword 的取值如下&#xff1a; DEV&#xff1a;显示网络接口信息。EDEV&#xff…

基于多反应堆的高并发服务器【C/C++/Reactor】(中)HttpResponse的定义和初始化 以及组织 HttpResponse 响应消息

一、HttpResponse的定义 1.定义状态码枚举 // 定义状态码枚举 enum HttpStatusCode {Unknown 0,OK 200,MovedPermanently 301,MovedTemporarily 302,BadRequest 400,NotFound 404 }; 2.HTTP 响应报文格式 这个数据块主要是分为四部分 第一部分是状态行第二部分是响应…