SQLite是一款輕量級(jí)的開(kāi)源的嵌入式數(shù)據(jù)庫(kù),是包含在C庫(kù)中的關(guān)系型數(shù)據(jù)庫(kù)管理系統(tǒng) (RDBMS)。與許多其他客戶端-服務(wù)器型數(shù)據(jù)庫(kù)管理系統(tǒng)不同的是,SQLite不是個(gè)程序與之通信的獨(dú)立進(jìn)程,而是被直接嵌入到了最終程序中成為了它的一個(gè)重要組成部分。
SQLite是如何工作的?
SQLite 是將整個(gè)數(shù)據(jù)庫(kù)(定義、表、索引和數(shù)據(jù)本身)作為單個(gè)跨平臺(tái)文件存儲(chǔ)在主機(jī)上的。它通過(guò)在寫入期間鎖定整個(gè)數(shù)據(jù)庫(kù)的文件來(lái)實(shí)現(xiàn)這種簡(jiǎn)單的設(shè)計(jì)。SQLite 讀取操作可以是多任務(wù)的,但寫入只能按順序執(zhí)行。由于采用無(wú)服務(wù)器設(shè)計(jì),SQLite 應(yīng)用程序比客戶端-服務(wù)器型數(shù)據(jù)庫(kù)需要更少的配置。SQLite 被稱為 zero-conf,因?yàn)樗恍枰?wù)管理(如啟動(dòng)腳本)或基于 GRANT 和密碼的訪問(wèn)控制。其訪問(wèn)控制是通過(guò)賦予數(shù)據(jù)庫(kù)文件本身的文件系統(tǒng)權(quán)限來(lái)處理的。
SQLite有什么特點(diǎn)?
SQLite作為一款相對(duì)輕型的數(shù)據(jù)庫(kù),具有體積小,性能高,可移植性強(qiáng)的特點(diǎn)。它最低只需要幾百KB內(nèi)存就可以正常運(yùn)行,同時(shí)能以極快的運(yùn)行速度在各類32位和64位OS系統(tǒng)中部署。
SQLite 作為 SQL 兼容的數(shù)據(jù)庫(kù)管理系統(tǒng)(DBMS),不像大多數(shù) SQL 數(shù)據(jù)庫(kù)系統(tǒng)那樣為列分配類型,而是使用了一個(gè)不尋常的類型系統(tǒng)將其分配給單獨(dú)的值;在語(yǔ)言方面,它是動(dòng)態(tài)類型的。此外,SQLite還可以將字符串插入到整數(shù)列中,使得其在綁定到動(dòng)態(tài)類型的腳本語(yǔ)言時(shí)增加了列的靈活性。
SQLite的表單通常包括一個(gè)隱藏的 rowid 索引列,這使得更快地訪問(wèn)表單中的數(shù)據(jù)成為可能。比方說(shuō)如果數(shù)據(jù)庫(kù)中包含整數(shù)主鍵列,SQLite 就會(huì)將其視為 rowid 的別名來(lái)優(yōu)化它,使得其內(nèi)容存儲(chǔ)為嚴(yán)格類型的 64 位有符號(hào)整型,并將其行為更改為自動(dòng)遞增列。
融合SQLite的PLCnext系列控制器
菲尼克斯PLCnext系列控制器集成了SQLite數(shù)據(jù)庫(kù)功能,其可以通過(guò)DataLogger這一PLCnext系統(tǒng)服務(wù)組件將項(xiàng)目工程運(yùn)行中的實(shí)時(shí)數(shù)據(jù)從全局?jǐn)?shù)據(jù)空間(GDS)傳輸?shù)絃inux層的數(shù)據(jù)庫(kù)中以進(jìn)行記錄和存儲(chǔ)。
當(dāng)我們啟動(dòng)PLCnext控制器時(shí),Datalogger服務(wù)也將隨之啟動(dòng)。然后DataLogger 就會(huì)以給定的采樣率收集與配置的 GDS 端口的 ESM 任務(wù)同步的值,并將它們與時(shí)間戳(精確到 1 μs)一起存儲(chǔ)到 RAM 磁盤中。
在標(biāo)準(zhǔn)設(shè)置下,數(shù)據(jù)庫(kù)以 SQLite 兼容方式存儲(chǔ)在 PLCnext 控制器上。配置變量的值保存在 SQLite 數(shù)據(jù)庫(kù)內(nèi)的表中。控制器上后綴為*.db的數(shù)據(jù)庫(kù)文件的默認(rèn)保存路徑是 /opt/plcnext。由于控制器的文件系統(tǒng)可以通過(guò) SFTP 協(xié)議訪問(wèn),為此我們可以使用合適的 SFTP 客戶端軟件例如 WinSCP對(duì)這數(shù)據(jù)庫(kù)文件進(jìn)行進(jìn)一步操作。另外,DataLogger服務(wù)既可通過(guò)配置.xml文件配置,也可以如下圖所示直接在PLCnext Engineer編程軟件中進(jìn)行配置,變更之后的配置將在控制器重啟后被激活。
在PLCnext Engineer軟件PLANT窗口,雙擊PLCnext進(jìn)入Data Logger Sessions窗口即可進(jìn)行Datalogger配置。
PLCnext結(jié)合數(shù)據(jù)庫(kù)的應(yīng)用,
讓我們可以輕松實(shí)現(xiàn)數(shù)據(jù)存儲(chǔ),
實(shí)現(xiàn)3T融合:
為IoT應(yīng)用提供更多的解決方案!