、配置ODBC數(shù)據(jù)源
1.1、安裝Mysql-connect-ODBC驅(qū)動(dòng),點(diǎn)擊mysql-connector-odbc-5.2.5-winx64.msi
1.2、點(diǎn)擊下一步NexT
1.3、選擇:I accept the terms in the license agreement
1.4、選擇 Typical,下一步Next
1.5、ODBC驅(qū)動(dòng)安裝完畢
二、在控制面板中點(diǎn)擊“管理工具”
2.1、選擇64位ODBC數(shù)據(jù)源
設(shè)置ODBC數(shù)據(jù)源時(shí),可以指定用戶數(shù)據(jù)源名稱(DSN)或系統(tǒng)DSN。用戶DSN是特定于登錄到計(jì)算機(jī)的人。只有這個(gè)人才能看到在用戶DSN選項(xiàng)卡上定義的數(shù)據(jù)源。系統(tǒng)DSN并不是特定于登錄到計(jì)算機(jī)的人。任何登錄到機(jī)器的人都可以看到在SystemDSN選項(xiàng)卡上定義的數(shù)據(jù)源。您設(shè)置用戶DSN或系統(tǒng)DSN的能力取決于所使用的數(shù)據(jù)庫和ODBC驅(qū)動(dòng)程序。有關(guān)詳細(xì)信息,請(qǐng)與數(shù)據(jù)庫管理員聯(lián)系或參考ODBC驅(qū)動(dòng)程序文檔。
2.2、點(diǎn)擊添加
2.3、選擇“MySQL ODBC 8.0 Unicode Driver”
2.4、填寫數(shù)據(jù)庫信息,Data Source Name是數(shù)據(jù)庫名稱;Description是描述,可不填寫;
TCP/IP Server可以填localhost或127.0.0.1;User為用戶名,默認(rèn)為root;Password為密碼,為安裝MySQL時(shí)所填寫的密碼;然后點(diǎn)擊Test,提示connect successful,即成功。然后點(diǎn)擊OK。
- 在數(shù)據(jù)源名稱框中,輸入數(shù)據(jù)源的適當(dāng)名稱,如MySQL。使用此名稱可建立到數(shù)據(jù)庫的連接。
- 在描述框中,輸入此數(shù)據(jù)源的說明,如MySQL database.
- 在TCP/IP服務(wù)器框中,輸入數(shù)據(jù)庫服務(wù)器的名稱。有關(guān)數(shù)據(jù)庫服務(wù)器的名稱,請(qǐng)咨詢數(shù)據(jù)庫管理員。
- 在港框中輸入端口號(hào)。默認(rèn)端口號(hào)為3306.
- 在用戶框中,輸入您的用戶名。
- 在密碼框中輸入您的密碼。
- 在數(shù)據(jù)庫框中,輸入數(shù)據(jù)庫的名稱。
2.5、配置完成。
三、在matlab中進(jìn)行操作
3.1、打開MATLAB,在APP中選擇Database Explorer;
通過單擊MATLAB工具條上的Apps選項(xiàng)卡打開數(shù)據(jù)庫資源管理器應(yīng)用程序。然后,在“應(yīng)用程序”部分的右側(cè),單擊“顯示更多”箭頭,打開應(yīng)用程序庫。在“數(shù)據(jù)庫連接和報(bào)告”下,單擊“數(shù)據(jù)庫資源管理器”。或者,在命令行輸入DatabaseExplorer。在“數(shù)據(jù)源”部分中,選擇“配置數(shù)據(jù)源>配置ODBC數(shù)據(jù)源”。
3.2、在彈窗中選擇建好的數(shù)據(jù)庫,輸入用戶名及密碼,點(diǎn)擊connect;
3.3、連接成功為下圖
3.4、在命令行中輸入代碼,得到數(shù)據(jù),如下圖;
連接到MySQL使用ODBC驅(qū)動(dòng)程序和命令行
使用ODBC數(shù)據(jù)源名稱連接到數(shù)據(jù)庫。例如,此代碼假定您正在連接到名為MySQL具有用戶名username和密碼pwd.
conn=database('MySQL','username','pwd');
閉數(shù)據(jù)庫連接。
close(conn)
迎關(guān)注我的頭條號(hào):Wooola,10年Java軟件開發(fā)及架構(gòu)設(shè)計(jì)經(jīng)驗(yàn),專注于Java、Go語言、微服務(wù)架構(gòu),致力于每天分享原創(chuàng)文章、快樂編碼和開源技術(shù)。
簡介
TDengine是濤思數(shù)據(jù)推出的一款開源的專為物聯(lián)網(wǎng)、車聯(lián)網(wǎng)、工業(yè)互聯(lián)網(wǎng)、IT運(yùn)維等設(shè)計(jì)和優(yōu)化的大數(shù)據(jù)平臺(tái)。
Github上Star1W+,fork 2.8K。
傳送門
官網(wǎng)
https://www.taosdata.com/cn/
Github
https://github.com/taosdata/TDengine
特性
應(yīng)用場(chǎng)景
架構(gòu)設(shè)計(jì)
數(shù)據(jù)模型和設(shè)計(jì)
- 數(shù)據(jù)模型:關(guān)系型數(shù)據(jù)庫模型,但要求每個(gè)采集設(shè)備單獨(dú)建表
- 主要模塊:包含管理節(jié)點(diǎn)、數(shù)據(jù)節(jié)點(diǎn)和客戶端,數(shù)據(jù)節(jié)點(diǎn)支持虛擬化
- 寫入流程:先寫入WAL、之后寫入緩存,再給應(yīng)用確認(rèn)
- 數(shù)據(jù)存儲(chǔ):數(shù)據(jù)按時(shí)間段切片、采取列存、不同數(shù)據(jù)類型不同壓縮算法
TAOS SQL
- 支持的數(shù)據(jù)類型:支持時(shí)間戳、整型、浮點(diǎn)型、布爾型、字符型等多種數(shù)據(jù)類型
- 數(shù)據(jù)庫管理:添加、刪除、查看數(shù)據(jù)庫
- 表管理:添加、刪除、查看、修改表
- 數(shù)據(jù)寫入:支持單表單條、多條、多表多條寫入,支持歷史數(shù)據(jù)寫入
- 數(shù)據(jù)查詢:支持時(shí)間段、值過濾、排序、查詢結(jié)果手動(dòng)分頁等
- SQL函數(shù):支持各種聚合函數(shù)、選擇函數(shù)、計(jì)算函數(shù),如avg, min, diff等
- 時(shí)間維度聚合:將表中數(shù)據(jù)按照時(shí)間段進(jìn)行切割后聚合,降維處理
超級(jí)表STable:多表聚合
- 什么是超級(jí)表:一種創(chuàng)新的方式來管理和聚合同一類設(shè)備
- 超級(jí)表管理:創(chuàng)建/刪除、改變超級(jí)表
- 寫數(shù)據(jù)時(shí)自動(dòng)建子表:用超級(jí)表做模板,自動(dòng)建表
- STable中TAG管理:增加、刪除、修改超級(jí)表或表的標(biāo)簽
- STable多表聚合:通過設(shè)置標(biāo)簽過濾條件,將一組表進(jìn)行聚合
- STable使用示例:解釋超級(jí)表的使用
高級(jí)功能
- 連續(xù)查詢(Continuous Query):基于滑動(dòng)窗口,定時(shí)自動(dòng)的對(duì)數(shù)據(jù)流進(jìn)行查詢計(jì)算
- 數(shù)據(jù)訂閱(Publisher/Subscriber):象典型的消息隊(duì)列,應(yīng)用可訂閱接收到的最新數(shù)據(jù)
- 緩存 (Cache):每個(gè)設(shè)備最新的數(shù)據(jù)都會(huì)緩存在內(nèi)存中,可快速獲取
連接器
- C/C++ Connector:通過libtaos客戶端的庫,連接TDengine服務(wù)器的主要方法
- Java Connector(JDBC):通過標(biāo)準(zhǔn)的JDBC API,給Java應(yīng)用提供到TDengine的連接
- Python Connector:給Python應(yīng)用提供一個(gè)連接TDengine服務(wù)器的驅(qū)動(dòng)
- RESTful Connector:提供一最簡單的連接TDengine服務(wù)器的方式
- Go Connector:給Go應(yīng)用提供一個(gè)連接TDengine服務(wù)器的驅(qū)動(dòng)
- Node.js Connector:給node應(yīng)用提供一個(gè)鏈接TDengine服務(wù)器的驅(qū)動(dòng)
與其他工具的連接
- Telegraf:將DevOps采集的數(shù)據(jù)發(fā)送到TDengine
- Grafana:獲取并可視化保存在TDengine的數(shù)據(jù)
- Matlab:通過配置Matlab的JDBC數(shù)據(jù)源訪問保存在TDengine的數(shù)據(jù)
- R:通過配置R的JDBC數(shù)據(jù)源訪問保存在TDengine的數(shù)據(jù)
系統(tǒng)管理
- 文件目錄結(jié)構(gòu):TDengine數(shù)據(jù)文件、配置文件等所在目錄
- 服務(wù)端配置:端口,緩存大小,文件塊大小和其他系統(tǒng)配置
- 客戶端配置:字符集、鏈接IP地址、缺省用戶名、密碼等配置
- 用戶管理:添加、刪除TDengine用戶,修改用戶密碼
- 數(shù)據(jù)導(dǎo)入:可按腳本文件導(dǎo)入,也可按數(shù)據(jù)文件導(dǎo)入
- 數(shù)據(jù)導(dǎo)出:從shell按表導(dǎo)出,也可用taosdump工具做各種導(dǎo)出
- 系統(tǒng)連接、任務(wù)查詢管理:查詢或停止現(xiàn)有的連接、查詢和流式計(jì)算
- 系統(tǒng)監(jiān)控:檢查系統(tǒng)現(xiàn)有的連接、查詢、流式計(jì)算,日志和事件等
技術(shù)設(shè)計(jì)
- 存儲(chǔ)設(shè)計(jì):為時(shí)序數(shù)據(jù)專門優(yōu)化設(shè)計(jì)的列式存儲(chǔ)格式
- 查詢處理:高效的查詢計(jì)算時(shí)序數(shù)據(jù)的方法
- 集群設(shè)計(jì):吸取NoSQL的優(yōu)點(diǎn),支持高可靠,支持線性擴(kuò)展
- 技術(shù)博客:更多的技術(shù)分析和架構(gòu)設(shè)計(jì)文章
性能對(duì)比
對(duì)比InfluxDB、OpenTSDB、Cassandra、MySQL、ClickHouse
性能測(cè)試報(bào)告
https://www.taosdata.com/downloads/TDengine_Testing_Report_cn.pdf
版本
社區(qū)版
TDengine社區(qū)版是一開源版本,采用的是AGPL許可證,是一個(gè)處理中小規(guī)模的物聯(lián)網(wǎng)數(shù)據(jù)平臺(tái)。它具備高效處理物聯(lián)網(wǎng)數(shù)據(jù)所需要的所有功能,包括:
- 類SQL查詢語言來插入或查詢數(shù)據(jù)
- 支持C/C++, Java(JDBC), Python, Go, RESTful, and Node.JS 等開發(fā)接口
- 通過TDengine Shell或Python/R/Matlab可做各種Ad Hoc查詢分析
- 通過連續(xù)查詢,支持基于滑動(dòng)窗口的流式計(jì)算
- 引入超級(jí)表,讓設(shè)備之間的數(shù)據(jù)聚合通過標(biāo)簽變得簡單、靈活
- 內(nèi)嵌消息隊(duì)列,應(yīng)用可訂閱最新的數(shù)據(jù)
- 內(nèi)嵌緩存機(jī)制,每臺(tái)設(shè)備的最新狀態(tài)或記錄都可快速獲得
- 無歷史數(shù)據(jù)與實(shí)時(shí)數(shù)據(jù)之分,對(duì)應(yīng)用而言,透明且完全一樣
- 安裝包僅1.5M,從下載到成功運(yùn)行僅僅幾秒的時(shí)間
企業(yè)版
TDengine企業(yè)版是一個(gè)運(yùn)營商級(jí)別的分布式版本,它具備超高的可靠性,超強(qiáng)的水平擴(kuò)展能力,以應(yīng)對(duì)大數(shù)據(jù)的挑戰(zhàn)。除社區(qū)版所有功能外,它還有如下功能:
- 線性擴(kuò)展能力,以保證任何規(guī)模的數(shù)據(jù)量都可以處理
- 無單點(diǎn)故障,高可靠,以保證運(yùn)營商級(jí)的服務(wù)
- 內(nèi)嵌數(shù)據(jù)實(shí)時(shí)同步,可跨機(jī)房將數(shù)據(jù)實(shí)時(shí)復(fù)制到不同節(jié)點(diǎn)
- 支持多級(jí)存儲(chǔ),方便可靠的前提下,進(jìn)一步降低存儲(chǔ)成本
- 提供可視化的管理工具,讓運(yùn)維更加簡單
- 支持更多的工業(yè)數(shù)據(jù)接口以及更多的第三方工具
- 7*24的專業(yè)技術(shù)支持
云服務(wù)版
TDengine云服務(wù)版是將TDengine企業(yè)版運(yùn)行在AWS和阿里云上,具備彈性伸縮、零管理的特點(diǎn),通過專業(yè)的技術(shù)服務(wù)團(tuán)隊(duì),提供運(yùn)營商級(jí)的物聯(lián)網(wǎng)大數(shù)據(jù)平臺(tái)服務(wù)。
- 鼠標(biāo)簡單一點(diǎn),即可擴(kuò)容,以應(yīng)對(duì)數(shù)據(jù)量的高速增長
- 零管理,再也沒有系統(tǒng)安裝、部署、維護(hù)的煩惱
- 從管理后臺(tái),可以查看運(yùn)行狀態(tài)、使用情況,以及各種統(tǒng)計(jì)
- 按月按使用量付費(fèi),中小企業(yè)的理想選擇
- 7*24小時(shí)專業(yè)技術(shù)服務(wù)
案例
從官網(wǎng),筆者沒看到有客戶使用的真實(shí)案例,其中企業(yè)版和云服務(wù)版需要付費(fèi)的,但是有一些TDengine性能壓測(cè)對(duì)比以及基于TDengine開發(fā)的系統(tǒng)文章介紹。
常見問題
1. 遇到錯(cuò)誤"failed to connect to server", 我怎么辦?
客戶端遇到鏈接故障,請(qǐng)按照下面的步驟進(jìn)行檢查:
- 在服務(wù)器,執(zhí)行 systemctl status taosd 檢查taosd運(yùn)行狀態(tài)。如果沒有運(yùn)行,啟動(dòng)taosd
- 確認(rèn)客戶端連接時(shí)指定了正確的服務(wù)器IP地址
- ping服務(wù)器IP,如果沒有反應(yīng),請(qǐng)檢查你的網(wǎng)絡(luò)
- 檢查防火墻設(shè)置,確認(rèn)TCP/UDP 端口6030-6039 是打開的
- 對(duì)于Linux上的JDBC(ODBC, Python, Go等接口類似)連接, 確保libtaos.so在目錄/usr/local/lib/taos里, 并且/usr/local/lib/taos在系統(tǒng)庫函數(shù)搜索路徑LD_LIBRARY_PATH里
- 對(duì)于windows上的JDBC, ODBC, Python, Go等連接,確保driver/c/taos.dll在你的系統(tǒng)搜索目錄里 (建議taos.dll放在目錄 C:\Windows\System32)
- 如果仍不能排除連接故障,請(qǐng)使用命令行工具nc來分別判斷指定端口的TCP和UDP連接是否通暢 檢查UDP端口連接是否工作:nc -vuz {hostIP} {port} 檢查服務(wù)器側(cè)TCP端口連接是否工作:nc -l {port} 檢查客戶端側(cè)TCP端口鏈接是否工作:nc {hostIP} {port}
2. 雖然語法正確,為什么我還是得到 "Invalid SQL" 錯(cuò)誤
如果你確認(rèn)語法正確,請(qǐng)檢查SQL語句長度是否超過64K。如果超過,也會(huì)返回這個(gè)錯(cuò)誤。
3. 為什么我刪除超級(jí)表總是失敗?
請(qǐng)確保超級(jí)表下已經(jīng)沒有其他表,否則系統(tǒng)不允許刪除該超級(jí)表。
4. 是否支持validation queries?
TDengine還沒有一組專用的validation queries。然而建議你使用系統(tǒng)監(jiān)測(cè)的數(shù)據(jù)庫”log"來做。
5. 我可以刪除或更新一條記錄嗎?
不能。因?yàn)門Dengine是為聯(lián)網(wǎng)設(shè)備采集的數(shù)據(jù)設(shè)計(jì)的,不容許修改。但TDengine提供數(shù)據(jù)保留策略,只要數(shù)據(jù)記錄超過保留時(shí)長,就會(huì)被自動(dòng)刪除。
6. 我怎么創(chuàng)建超過250列的表?
TDengine最大允許創(chuàng)建250列的表。但是如果確實(shí)超過,我們建議按照數(shù)據(jù)特性,邏輯地將這個(gè)寬表分解成幾個(gè)小表。
7. 最有效的寫入數(shù)據(jù)的方法是什么?
批量插入。每條寫入語句可以一張表同時(shí)插入多條記錄,也可以同時(shí)插入多張表的記錄。
8. windows系統(tǒng)下插入的nchar類數(shù)據(jù)中的漢字被解析成了亂碼如何解決?
windows下插入nchar類的數(shù)據(jù)中如果有中文,請(qǐng)先確認(rèn)系統(tǒng)的地區(qū)設(shè)置成了中國(在Control Panel里可以設(shè)置),這時(shí)cmd中的taos客戶端應(yīng)該已經(jīng)可以正常工作了;如果是在IDE里開發(fā)Java應(yīng)用,比如Eclipse, Intellij,請(qǐng)確認(rèn)IDE里的文件編碼為GBK(這是Java默認(rèn)的編碼類型),然后在生成Connection時(shí),初始化客戶端的配置,具體語句如下:
Class.forName("com.taosdata.jdbc.TSDBDriver");
Properties properties=new Properties();
properties.setProperty(TSDBDriver.LOCALE_KEY, "UTF-8");
Connection=DriverManager.getConnection(url, properties);
總結(jié)
TDengine是國人開發(fā)的大數(shù)據(jù)平臺(tái)框架,希望TDengine以后做的和Spark,Hadoop一樣優(yōu)秀,甚至更好。