Apache?Ignite?中的?SQL?模式(Schema)管理機(jī)制(使用建議)
這段內(nèi)容講的是 Apache Ignite 中的 SQL 模式(Schema)管理機(jī)制。我們可以從幾個(gè)方面來(lái)理解:
一、什么是 Schema(模式)?
在 SQL 中,Schema 是數(shù)據(jù)庫(kù)對(duì)象(如表、視圖等)的命名空間和組織單位。Ignite 支持多個(gè) Schema,便于組織和隔離不同的數(shù)據(jù)對(duì)象。
二、Ignite 中的默認(rèn) Schema
Ignite 默認(rèn)提供了兩個(gè) Schema:
Schema 名 | 說(shuō)明 |
---|---|
SYS | 系統(tǒng) Schema,包含集群節(jié)點(diǎn)、緩存、SQL 元數(shù)據(jù)等系統(tǒng)視圖。你不能在這個(gè) Schema 中創(chuàng)建表或?qū)ο蟆T斠?jiàn) System Views。 |
PUBLIC | 默認(rèn) Schema。當(dāng)你沒(méi)有顯式指定 Schema 時(shí),Ignite 默認(rèn)使用這個(gè) Schema。例如通過(guò) JDBC 連接時(shí),不指定 Schema 就會(huì)連接到 PUBLIC。 |
三、自定義 Schema(Custom Schemas)
Ignite 允許用戶定義自己的 Schema,主要有兩種方式:
? 1. 通過(guò)配置文件定義自定義 Schema
你可以通過(guò) SqlConfiguration.setSqlSchemas(...)
方法在集群?jiǎn)?dòng)前定義多個(gè)自定義 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. 通過(guò) Cache 自動(dòng)創(chuàng)建 Schema
Ignite 中的每個(gè) Cache(緩存)都可以通過(guò) SQL 訪問(wèn),每個(gè) Cache 對(duì)應(yīng)一個(gè) Schema,Schema 名稱就是 Cache 的名稱。
示例:
如果你創(chuàng)建了一個(gè)名為 PersonCache
的緩存,那么你可以通過(guò) SQL 查詢:
SELECT * FROM PersonCache.Person
這里:
PersonCache
是 Schema 名;Person
是表名(對(duì)應(yīng)緩存中的鍵值結(jié)構(gòu))。
四、通過(guò) DDL 創(chuàng)建表時(shí)的 Schema 與 Cache 關(guān)系
當(dāng)你使用 CREATE TABLE
語(yǔ)句創(chuàng)建表時(shí),Ignite 會(huì)自動(dòng)創(chuàng)建一個(gè)對(duì)應(yīng)的 Cache(緩存)來(lái)存儲(chǔ)數(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
,表示這個(gè)表對(duì)應(yīng)的緩存名為City
。 - 如果你不指定
CACHE_NAME
,Ignite 會(huì)自動(dòng)生成一個(gè)名字,格式為:
SQL_<SCHEMA_NAME>_<TABLE_NAME>
例如,如果在 MY_SCHEMA
中創(chuàng)建表 City
,生成的緩存名是:
SQL_MY_SCHEMA_CITY
五、Schema 與 Cache 的映射關(guān)系總結(jié)
來(lái)源 | Schema 名 | 對(duì)應(yīng)的 Cache 名 |
---|---|---|
默認(rèn) | PUBLIC | 自動(dòng)生成(如 SQL_PUBLIC_TABLENAME) |
自定義配置 | MY_SCHEMA | 自動(dòng)生成或手動(dòng)指定 |
緩存自動(dòng)創(chuàng)建 | Cache 名即 Schema 名 | Cache 名 |
DDL 創(chuàng)建表 | 指定的 Schema | 指定的 CACHE_NAME 或默認(rèn)生成 |
六、總結(jié)表格
類型 | 名稱 | 是否可寫 | 用途 |
---|---|---|---|
SYS | 系統(tǒng) Schema | ? 不可寫 | 存儲(chǔ)集群信息、系統(tǒng)視圖 |
PUBLIC | 默認(rèn) Schema | ? 可寫 | 默認(rèn)連接目標(biāo) |
自定義 Schema | 用戶定義 | ? 可寫 | 用于組織 SQL 對(duì)象 |
Cache Schema | 與 Cache 同名 | ? 可寫 | 用于 SQL 查詢緩存數(shù)據(jù) |
DDL 表 Schema | 指定或默認(rèn) | ? 可寫 | 對(duì)應(yīng)一個(gè)緩存 |
七、使用建議
- 使用 Schema 來(lái)組織不同業(yè)務(wù)模塊的數(shù)據(jù),便于管理和權(quán)限控制;
- 如果需要 SQL 和緩存 API 混合訪問(wèn),注意 Cache 名和 Schema 名的對(duì)應(yīng)關(guān)系;
- 使用 DDL 創(chuàng)建表時(shí),建議顯式指定
CACHE_NAME
,便于后續(xù)管理; - 如果集群中有多個(gè)應(yīng)用連接 Ignite,建議為每個(gè)應(yīng)用配置不同的 Schema,避免命名沖突。
到此這篇關(guān)于Apache Ignite 中的 SQL 模式(Schema)管理機(jī)制的文章就介紹到這了,更多相關(guān)Apache Ignite SQL 模式內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Linux?命令?systemctl?基本介紹和常用選項(xiàng)
這篇文章主要介紹了Linux命令systemctl,包括systemctl命令的基本介紹和常用選項(xiàng)、命令及示例,使用systemctl命令需要有管理員權(quán)限(例如root或具有sudo權(quán)限的用戶),需要的朋友可以參考下2023-06-06如何在Linux中route?add命令添加路由(Linux?route)
route?add命令是用于管理Linux操作系統(tǒng)網(wǎng)絡(luò)路由,允許用戶添加、刪除或修改網(wǎng)絡(luò)路由表中的條目,在Linux系統(tǒng)上添加靜態(tài)路由,靜態(tài)路由是手動(dòng)配置的路由,它指定了數(shù)據(jù)包從一個(gè)網(wǎng)絡(luò)到達(dá)另一個(gè)網(wǎng)絡(luò)的路徑,通過(guò)添加靜態(tài)路由,可實(shí)現(xiàn)網(wǎng)絡(luò)分段、轉(zhuǎn)發(fā)和通信等2024-06-06詳解CentOS7下PostgreSQL 11的安裝和配置教程
這篇文章主要介紹了CentOS7下PostgreSQL 11的安裝和配置教程,本文給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2019-10-10Linux命令?移動(dòng)/復(fù)制文件/目錄到指定目錄下的實(shí)現(xiàn)
這篇文章主要介紹了Linux命令?移動(dòng)/復(fù)制文件/目錄到指定目錄下的實(shí)現(xiàn)方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-04-04Openssl實(shí)現(xiàn)雙向認(rèn)證教程(附服務(wù)端客戶端代碼)
這篇文章主要介紹了Openssl實(shí)現(xiàn)雙向認(rèn)證教程(附服務(wù)端客戶端代碼),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-05-05