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