Apache?Ignite?中的?SQL?模式(Schema)管理機制(使用建議)
這段內(nèi)容講的是 Apache Ignite 中的 SQL 模式(Schema)管理機制。我們可以從幾個方面來理解:
一、什么是 Schema(模式)?
在 SQL 中,Schema 是數(shù)據(jù)庫對象(如表、視圖等)的命名空間和組織單位。Ignite 支持多個 Schema,便于組織和隔離不同的數(shù)據(jù)對象。
二、Ignite 中的默認(rèn) Schema
Ignite 默認(rèn)提供了兩個 Schema:
| Schema 名 | 說明 |
|---|---|
| SYS | 系統(tǒng) Schema,包含集群節(jié)點、緩存、SQL 元數(shù)據(jù)等系統(tǒng)視圖。你不能在這個 Schema 中創(chuàng)建表或?qū)ο蟆T斠?System Views。 |
| PUBLIC | 默認(rèn) Schema。當(dāng)你沒有顯式指定 Schema 時,Ignite 默認(rèn)使用這個 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 自動創(chuàng)建 Schema
Ignite 中的每個 Cache(緩存)都可以通過 SQL 訪問,每個 Cache 對應(yīng)一個 Schema,Schema 名稱就是 Cache 的名稱。
示例:
如果你創(chuàng)建了一個名為 PersonCache 的緩存,那么你可以通過 SQL 查詢:
SELECT * FROM PersonCache.Person
這里:
PersonCache是 Schema 名;Person是表名(對應(yīng)緩存中的鍵值結(jié)構(gòu))。
四、通過 DDL 創(chuàng)建表時的 Schema 與 Cache 關(guān)系
當(dāng)你使用 CREATE TABLE 語句創(chuàng)建表時,Ignite 會自動創(chuàng)建一個對應(yīng)的 Cache(緩存)來存儲數(shù)據(jù)。
示例 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,表示這個表對應(yīng)的緩存名為City。 - 如果你不指定
CACHE_NAME,Ignite 會自動生成一個名字,格式為:
SQL_<SCHEMA_NAME>_<TABLE_NAME>
例如,如果在 MY_SCHEMA 中創(chuàng)建表 City,生成的緩存名是:
SQL_MY_SCHEMA_CITY
五、Schema 與 Cache 的映射關(guān)系總結(jié)
| 來源 | Schema 名 | 對應(yīng)的 Cache 名 |
|---|---|---|
| 默認(rèn) | PUBLIC | 自動生成(如 SQL_PUBLIC_TABLENAME) |
| 自定義配置 | MY_SCHEMA | 自動生成或手動指定 |
| 緩存自動創(chuàng)建 | Cache 名即 Schema 名 | Cache 名 |
| DDL 創(chuàng)建表 | 指定的 Schema | 指定的 CACHE_NAME 或默認(rèn)生成 |
六、總結(jié)表格
| 類型 | 名稱 | 是否可寫 | 用途 |
|---|---|---|---|
| SYS | 系統(tǒng) Schema | ? 不可寫 | 存儲集群信息、系統(tǒng)視圖 |
| PUBLIC | 默認(rèn) Schema | ? 可寫 | 默認(rèn)連接目標(biāo) |
| 自定義 Schema | 用戶定義 | ? 可寫 | 用于組織 SQL 對象 |
| Cache Schema | 與 Cache 同名 | ? 可寫 | 用于 SQL 查詢緩存數(shù)據(jù) |
| DDL 表 Schema | 指定或默認(rèn) | ? 可寫 | 對應(yīng)一個緩存 |
七、使用建議
- 使用 Schema 來組織不同業(yè)務(wù)模塊的數(shù)據(jù),便于管理和權(quán)限控制;
- 如果需要 SQL 和緩存 API 混合訪問,注意 Cache 名和 Schema 名的對應(yīng)關(guān)系;
- 使用 DDL 創(chuàng)建表時,建議顯式指定
CACHE_NAME,便于后續(xù)管理; - 如果集群中有多個應(yīng)用連接 Ignite,建議為每個應(yīng)用配置不同的 Schema,避免命名沖突。
到此這篇關(guān)于Apache Ignite 中的 SQL 模式(Schema)管理機制的文章就介紹到這了,更多相關(guān)Apache Ignite SQL 模式內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
linux添加子用戶并給予root權(quán)限,ssh私鑰登錄方式
這篇文章主要介紹了linux添加子用戶并給予root權(quán)限,ssh私鑰登錄方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2026-01-01
在Ubuntu 14 上安裝 Nginx-RTMP 流媒體服務(wù)器的教程
RTMP流媒體協(xié)議是 一套 Adobe 開發(fā)的音頻視頻實時傳輸協(xié)議;nginx-rtmp 是一個基于nginx的 RTMP服務(wù)模塊,開源,免費,接下來通過本文給大家介紹在Ubuntu 14 上安裝 Nginx-RTMP 流媒體服務(wù)器,需要的朋友可以參考下2019-11-11
關(guān)于opensips用戶認(rèn)證配置文件 opensips.cfg 使用介紹
本篇文章小編為大家介紹,關(guān)于opensips用戶認(rèn)證配置文件opensips.cfg使用介紹。需要的朋友參考下2013-04-04
Ubuntu18.04安裝Nvidia顯卡驅(qū)動教程(圖文)
這篇文章主要介紹了Ubuntu18.04安裝Nvidia顯卡驅(qū)動教程(圖文),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-07-07
Linux 查看磁盤IO并找出占用IO讀寫很高的進(jìn)程
這篇文章主要介紹了Linux 查看磁盤IO并找出占用IO讀寫很高的進(jìn)程,本文給大家介紹的非常詳細(xì),具有一定的參考借鑒價值,需要的朋友可以參考下2020-02-02
Linux系統(tǒng)配置sftp服務(wù)以及實現(xiàn)免密登錄方式
這篇文章主要介紹了Linux系統(tǒng)配置sftp服務(wù)以及實現(xiàn)免密登錄方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2024-06-06
win7下VMware虛擬機安裝linux7.2上網(wǎng)配置教程
這篇文章主要為大家詳細(xì)介紹了win7下VMware虛擬機安裝linux7.2上網(wǎng)配置教程,具有一定的參考價值,感興趣的小伙伴們可以參考一下2018-09-09

