Apache Ignite 中的 SQL 模式(Schema)管理机制(使用建议)

 更新时间:2025年07月23日 11:04:32   作者:lang20150928  
Apache Ignite支持多Schema管理,包含默认的PUBLIC和SYS系统Schema,允许自定义Schema通过配置或Cache名称定义,DDL创建表时会自动生成对应Cache,建议合理使用Schema组织数据及权限控制,本文给大家介绍Apache Ignite中的SQL模式(Schema)管理机制,感兴趣的朋友一起看看吧

这段内容讲的是 Apache Ignite 中的 SQL 模式(Schema)管理机制。我们可以从几个方面来理解:

一、什么是 Schema(模式)?

在 SQL 中,Schema 是数据库对象(如表、视图等)的命名空间和组织单位。Ignite 支持多个 Schema,便于组织和隔离不同的数据对象。

二、Ignite 中的默认 Schema

Ignite 默认提供了两个 Schema:

Schema 名说明
SYS系统 Schema,包含集群节点、缓存、SQL 元数据等系统视图。你不能在这个 Schema 中创建表或对象。详见 System Views
PUBLIC默认 Schema。当你没有显式指定 Schema 时,Ignite 默认使用这个 Schema。例如通过 JDBC 连接时,不指定 Schema 就会连接到 PUBLIC。

三、自定义 Schema(Custom Schemas)

Ignite 允许用户定义自己的 Schema,主要有两种方式:

✅ 1. 通过配置文件定义自定义 Schema

你可以通过 SqlConfiguration.setSqlSchemas(...) 方法在集群启动前定义多个自定义 Schema。

示例配置(XML):

<bean class="org.apache.ignite.configuration.IgniteConfiguration">
    <property name="sqlConfiguration">
        <bean class="org.apache.ignite.configuration.SqlConfiguration">
            <property name="sqlSchemas">
                <list>
                    <value>MY_SCHEMA</value>
                    <value>MY_SECOND_SCHEMA</value>
                </list>
            </property>
        </bean>
    </property>
</bean>

连接指定 Schema 的方式(如 JDBC):

jdbc:ignite:thin://127.0.0.1/MY_SCHEMA

✅ 2. 通过 Cache 自动创建 Schema

Ignite 中的每个 Cache(缓存)都可以通过 SQL 访问,每个 Cache 对应一个 Schema,Schema 名称就是 Cache 的名称。

示例:

如果你创建了一个名为 PersonCache 的缓存,那么你可以通过 SQL 查询:

SELECT * FROM PersonCache.Person

这里:

  • PersonCache 是 Schema 名;
  • Person 是表名(对应缓存中的键值结构)。

四、通过 DDL 创建表时的 Schema 与 Cache 关系

当你使用 CREATE TABLE 语句创建表时,Ignite 会自动创建一个对应的 Cache(缓存)来存储数据。

示例 SQL:

CREATE TABLE City (
  ID INT PRIMARY KEY,
  Name CHAR(35),
  CountryCode CHAR(3),
  District CHAR(20),
  Population INT
) WITH "backups=1, CACHE_NAME=City";
  • 这里指定了 CACHE_NAME=City,表示这个表对应的缓存名为 City
  • 如果你不指定 CACHE_NAME,Ignite 会自动生成一个名字,格式为:
SQL_<SCHEMA_NAME>_<TABLE_NAME>

例如,如果在 MY_SCHEMA 中创建表 City,生成的缓存名是:

SQL_MY_SCHEMA_CITY

五、Schema 与 Cache 的映射关系总结

来源Schema 名对应的 Cache 名
默认PUBLIC自动生成(如 SQL_PUBLIC_TABLENAME)
自定义配置MY_SCHEMA自动生成或手动指定
缓存自动创建Cache 名即 Schema 名Cache 名
DDL 创建表指定的 Schema指定的 CACHE_NAME 或默认生成

六、总结表格

类型名称是否可写用途
SYS系统 Schema❌ 不可写存储集群信息、系统视图
PUBLIC默认 Schema✅ 可写默认连接目标
自定义 Schema用户定义✅ 可写用于组织 SQL 对象
Cache Schema与 Cache 同名✅ 可写用于 SQL 查询缓存数据
DDL 表 Schema指定或默认✅ 可写对应一个缓存

七、使用建议

  • 使用 Schema 来组织不同业务模块的数据,便于管理和权限控制;
  • 如果需要 SQL 和缓存 API 混合访问,注意 Cache 名和 Schema 名的对应关系;
  • 使用 DDL 创建表时,建议显式指定 CACHE_NAME,便于后续管理;
  • 如果集群中有多个应用连接 Ignite,建议为每个应用配置不同的 Schema,避免命名冲突。

到此这篇关于Apache Ignite 中的 SQL 模式(Schema)管理机制的文章就介绍到这了,更多相关Apache Ignite SQL 模式内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • 配置Linux使用LDAP用户认证的方法

    配置Linux使用LDAP用户认证的方法

    这篇文章主要介绍了配置Linux使用LDAP用户认证的方法,本文给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下
    2019-10-10
  • Linux 命令 systemctl 基本介绍和常用选项

    Linux 命令 systemctl 基本介绍和常用选项

    这篇文章主要介绍了Linux命令systemctl,包括systemctl命令的基本介绍和常用选项、命令及示例,使用systemctl命令需要有管理员权限(例如root或具有sudo权限的用户),需要的朋友可以参考下
    2023-06-06
  • 如何在Linux中route add命令添加路由(Linux route)

    如何在Linux中route add命令添加路由(Linux route)

    route add命令是用于管理Linux操作系统网络路由,允许用户添加、删除或修改网络路由表中的条目,在Linux系统上添加静态路由,静态路由是手动配置的路由,它指定了数据包从一个网络到达另一个网络的路径,通过添加静态路由,可实现网络分段、转发和通信等
    2024-06-06
  • Linux中的几种最佳文件系统

    Linux中的几种最佳文件系统

    这篇文章主要介绍了Linux中的几种最佳文件系统,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-02-02
  • 详解CentOS7下PostgreSQL 11的安装和配置教程

    详解CentOS7下PostgreSQL 11的安装和配置教程

    这篇文章主要介绍了CentOS7下PostgreSQL 11的安装和配置教程,本文给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下
    2019-10-10
  • CentOS 6.5中SSH免密码登录配置教程

    CentOS 6.5中SSH免密码登录配置教程

    这篇文章主要介绍了CentOS 6.5中SSH免密码登录配置的相关资料,包括环境设置,本机生成公钥和私钥等知识点,本文给大家介绍的非常详细具有参考借鉴价值,需要的朋友可以参考下
    2016-10-10
  • Linux命令 移动/复制文件/目录到指定目录下的实现

    Linux命令 移动/复制文件/目录到指定目录下的实现

    这篇文章主要介绍了Linux命令 移动/复制文件/目录到指定目录下的实现方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-04-04
  • Linux系统下如何挂载FAT32的U盘

    Linux系统下如何挂载FAT32的U盘

    Linux挂载U盘步骤如下: 1:将U盘插入USB接口,检查是否插好 2:用fdisk命令检查分区和USB设备信息
    2013-04-04
  • 在Linux服务器中开放端口的三种方式

    在Linux服务器中开放端口的三种方式

    本文详细介绍了在Linux系统中通过firewall-cmd和iptables命令来开启防火墙并开放指定端口的方法,步骤包括启动防火墙、添加端口规则、重启防火墙以及检查端口状态,此外,还提供了两种不同的命令行方式来实现端口开放,需要的朋友可以参考下
    2025-02-02
  • Openssl实现双向认证教程(附服务端客户端代码)

    Openssl实现双向认证教程(附服务端客户端代码)

    这篇文章主要介绍了Openssl实现双向认证教程(附服务端客户端代码),文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-05-05

最新评论