0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

濤思數(shù)據(jù)開源TDengine,10多萬行C代碼,登頂GitHub!

5RJg_mcuworld ? 來源:YXQ ? 2019-07-31 16:07 ? 次閱讀

7月28日周日下午,大暑剛過的北京,熱得愈加肆意。編者來到在濤思數(shù)據(jù)聯(lián)合CSDN舉辦的「TDengine 和他的小伙伴們」的Beijing Meetup現(xiàn)場時,陶建輝正在答觀眾問。

突然,編者被一位20來歲的小姑娘熱心提醒可以坐下聽。攀談幾句,得知姑娘是留學(xué)倫敦的電子工程畢業(yè)生,趁放暑假來這里做志愿者。

不僅志愿者很高大上,濤思數(shù)據(jù)的團隊也很“高配”:3位博士,4位海歸。他們最近斬獲超級喜訊一枚:僅有十人的濤思數(shù)據(jù)團隊,在GitHub開源的TDengine,連續(xù)數(shù)天雄踞榜首。

那么,這是怎樣的一個項目?又是怎樣的一個團隊?團隊背后的創(chuàng)始人有著怎樣的經(jīng)歷?創(chuàng)始人陶建輝親自撰寫本文,為你答疑解惑,趕快往下看吧!

7月12日,濤思數(shù)據(jù)宣布將TDengine開源,10多萬行C代碼,包括最核心的存儲引擎和計算引擎都上傳到了GitHub上。

整整兩周時間,GitHub上Star已經(jīng)超過7300,F(xiàn)ork數(shù)已經(jīng)超過1800,在開發(fā)者社區(qū)中獲得的反響遠(yuǎn)超預(yù)期。應(yīng)開發(fā)者要求,7月28日在北京進(jìn)行了一次線下交流,現(xiàn)場互動十分熱烈。

線下活動現(xiàn)場

很多人好奇,為什么一個從沒研發(fā)過大數(shù)據(jù),也沒研發(fā)過數(shù)據(jù)庫軟件的人,能研發(fā)物聯(lián)網(wǎng)大數(shù)據(jù)平臺軟件?

而且你怎么想到要開發(fā)這樣軟件的?你三次創(chuàng)業(yè),每次都在跨界,怎么能做到的?

7月28日,我把創(chuàng)業(yè)過程中的思考和分析分享出來,供在創(chuàng)業(yè)路上的朋友特別是技術(shù)型創(chuàng)業(yè)者參考。

2016年初,我上家創(chuàng)業(yè)公司快樂媽咪被收購,一下就輕松下來。但總有很多朋友拉我去看項目,有想讓我投資的,有想讓我加入團隊的。

因為我在智能硬件圈子里有一定名氣,因此看的最多的還是智能硬件、物聯(lián)網(wǎng)相關(guān)的項目?;俗约翰簧贂r間仔細(xì)琢磨的有好幾個項目。

第一個就是菜市場的智能秤,希望通過智能秤將菜市場的信息流完全打通,打造一個不亞于美團的平臺出來;

第二個就是養(yǎng)殖物聯(lián)網(wǎng),希望對投料機進(jìn)行自動控制,對養(yǎng)殖的魚塘的環(huán)境進(jìn)行監(jiān)測,通過物聯(lián)網(wǎng)將飼料、養(yǎng)殖、水產(chǎn)銷售打通,形成平臺;

第三個是電梯物聯(lián)網(wǎng),系統(tǒng)通過監(jiān)測,由按期保修變成按需保修,而且建立全國性的電梯維保平臺。

還有智能家居等好幾個,但最終沒有一個打動我,讓我投入進(jìn)去。因為我分析這些項目之后,發(fā)現(xiàn)他們成功的關(guān)鍵因素,都不是我或者現(xiàn)有團隊具備的。

但這些項目讓我看到了物聯(lián)網(wǎng)的前景,看到萬物互聯(lián)是不可阻擋的潮流,一定要抓住。我一個強技術(shù)背景,沒有多少行業(yè)資源的人,能在這股潮流里找到什么樣的機會?

我的第一反應(yīng)就是研發(fā)一個物聯(lián)網(wǎng)平臺,但仔細(xì)一看,從IT巨頭如微軟、IBM、 Oracle、亞馬遜,到工業(yè)巨頭如GE、Siemens等等,無不有自己的物聯(lián)網(wǎng)平臺,特別是仔細(xì)看完GE的Predix,發(fā)現(xiàn)自己能想到的東西都被它做了。

再看國內(nèi),做物聯(lián)網(wǎng)平臺的公司就更多了,海爾、三一、徐工、阿里、百度等等,就更不用提無數(shù)Startup了。心一下就涼了,這個物聯(lián)網(wǎng)平臺是絕不能做了,要做就是瞎折騰,唯一的可能性是緊靠一行業(yè)資源,靠行業(yè)特性和市場資源取勝,但我偏偏沒有多少行業(yè)背景和資源。

但在仔細(xì)看完很多物聯(lián)網(wǎng)平臺的資料后,終于發(fā)現(xiàn)了一絲曙光,那就是數(shù)據(jù)處理。物聯(lián)網(wǎng)平臺里模塊很多,但其中很重要的一塊就是數(shù)據(jù)處理,包括采集、存儲、查詢、分析和計算,是整個物聯(lián)網(wǎng)行業(yè)里面比較共性的部分,個性化程度不高。

再仔細(xì)一看,大部分物聯(lián)網(wǎng)平臺,尤其是國內(nèi)的,幾乎無一例外的用的是Hadoop生態(tài)搭建的,用的是互聯(lián)網(wǎng)行業(yè)流行的大數(shù)據(jù)架構(gòu),采集進(jìn)來的數(shù)據(jù)先進(jìn)Kafka, 然后分流進(jìn)HBase/Cassandra/MongoDB等做持久化存儲,進(jìn)Redis做緩存,進(jìn)Spark/Flink等做流式計算,后面再接應(yīng)用、大屏展示等等。

雖然我沒有真正接觸過大數(shù)據(jù)的處理,但了解這些通用的大數(shù)據(jù)框架后,我的第一反應(yīng)就是,Hadoop這套體系太重,至少對于物聯(lián)網(wǎng)大數(shù)據(jù)而言如此。

搭建一個平臺,居然要好多款開源軟件拼接在一起,研發(fā)、運維效率會很低,數(shù)據(jù)一致性很難保證,定位一個問題牽涉的環(huán)節(jié)太多,很不適合私有化部署。

將各種物聯(lián)網(wǎng)場景抽象出來,我總結(jié)出了物聯(lián)網(wǎng)數(shù)據(jù)的十二大特點:

  1. 數(shù)據(jù)是時序的,一定帶有時間戳;

  2. 數(shù)據(jù)是結(jié)構(gòu)化的;

  3. 數(shù)據(jù)極少有更新或刪除操作;

  4. 數(shù)據(jù)源是唯一的;

  5. 相對互聯(lián)網(wǎng)應(yīng)用,寫多讀少;

  6. 用戶關(guān)注的是一段時間的趨勢,而不是某一特點時間點的值;

  7. 數(shù)據(jù)是有保留期限的;

  8. 數(shù)據(jù)的查詢分析一定是基于時間段和地理區(qū)域的;

  9. 除存儲查詢外,還往往需要各種統(tǒng)計和實時計算操作;

  10. 流量平穩(wěn),可以預(yù)測;

  11. 往往需要有插值等一些特殊的計算;

  12. 數(shù)據(jù)量巨大,一天采集的數(shù)據(jù)就可以超過100億條。

總結(jié)出這些特點后,一下豁然開朗,覺得采用Hadoop這些開源軟件來處理物聯(lián)網(wǎng)數(shù)據(jù)完全是大錯特錯。

物聯(lián)網(wǎng)數(shù)據(jù)像日志數(shù)據(jù),幾乎沒有更新操作的可能,那數(shù)據(jù)庫中的事務(wù)處理的實現(xiàn)就完全多余;數(shù)據(jù)是時序的,時間戳自然可以作為主鍵,根本不需要復(fù)雜的索引結(jié)構(gòu);物聯(lián)網(wǎng)數(shù)據(jù)是結(jié)構(gòu)化的,像HBase、Cassandra那樣用Key-Value來存儲,計算效率和存儲效率大打折扣,應(yīng)該采用結(jié)構(gòu)化存儲才行;物聯(lián)網(wǎng)數(shù)據(jù)的冷熱程度是時間決定的,剛采集的數(shù)據(jù)是最熱的,而不是用戶點擊決定。

因此用簡單的先進(jìn)先出的內(nèi)存管理就能很好的實現(xiàn)高效的緩存,根本就不需要Redis;物聯(lián)網(wǎng)數(shù)據(jù)從一個設(shè)備來看,就是一個數(shù)據(jù)流,實現(xiàn)滑動窗口的流計算那不是一個最順其自然的事情,哪用得上Spark這么復(fù)雜的引擎;對于數(shù)據(jù)分區(qū),簡單的按設(shè)備分區(qū)按時間段分區(qū),就輕松解決,根本就不需要復(fù)雜的分區(qū)機制;物聯(lián)網(wǎng)數(shù)據(jù)流是相對平穩(wěn)的,而且物聯(lián)網(wǎng)設(shè)備本身一定有緩存能力,完全可以拋棄Kafka這些套件,實現(xiàn)一個簡單的消息隊列和數(shù)據(jù)訂閱來滿足需求。

隨后又發(fā)現(xiàn)有時序數(shù)據(jù)庫,馬上看他們文檔和代碼,發(fā)現(xiàn)他們利用了時序數(shù)據(jù)一些特點,但還是沒有充分利用,而且只是定位為一個數(shù)據(jù)庫。

后面又了解到工業(yè)界有實時數(shù)據(jù)庫,發(fā)現(xiàn)這些實時數(shù)據(jù)庫都是老古董產(chǎn)品了,基本上都還是Windows上研發(fā),價格貴,而且沒有標(biāo)準(zhǔn)SQL,水平擴展幾乎沒有,大數(shù)據(jù)分析能力幾乎沒有,完全沒有能力應(yīng)對日益增長的大數(shù)據(jù)量和大數(shù)據(jù)分析需求,遲早會被淘汰。

我做完分析后很興奮,覺得找到了一空白點。但我自己有沒有能力研發(fā)這產(chǎn)品?仔細(xì)一琢磨,還是興奮。

2008年,我創(chuàng)辦和信,推送平臺除推送之外,一個重要的模塊就是消息隊列。2009年,我們就研發(fā)了一個分布式高可靠、持久化存儲的消息隊列,每臺手機需要推送的消息就放在一個隊列里。消息隊列與物聯(lián)網(wǎng)的時序數(shù)據(jù)有區(qū)別嗎?本質(zhì)上沒有。

一個是非結(jié)構(gòu)化的,一個是結(jié)構(gòu)化的;一個是簡單的進(jìn)和出,但另外一個是需要有分析和計算的;兩者在系統(tǒng)的架構(gòu)設(shè)計上沒有大的不同。

考慮到必須設(shè)計成分布式系統(tǒng),因為多年通訊設(shè)備研發(fā)背景,對我那是輕車熟路。因此,我應(yīng)該具備所需要的知識儲備和技能,自己多年積累的研發(fā)經(jīng)驗全部能派上用場 。

因此我迅速定位了自己要做的產(chǎn)品,那就是物聯(lián)網(wǎng)大數(shù)據(jù)平臺,要把時序數(shù)據(jù)庫、緩存、消息訂閱、流式計算等系列功能融合在一起,一站式的解決物聯(lián)網(wǎng)大數(shù)據(jù)問題,這樣才能將系統(tǒng)研發(fā)、維護(hù)的復(fù)雜度與成本大幅降低。

前面兩次創(chuàng)業(yè),都是2C產(chǎn)品,讓我養(yǎng)成了追求簡單極致的習(xí)慣,馬上又定下采用SQL接口,能通過JDBC接口與眾多第三方工具無縫集成,安裝部署要一鍵搞定的策略,目的是要讓開發(fā)者用起來輕松,完全沒有學(xué)習(xí)成本。

研究物聯(lián)網(wǎng)數(shù)據(jù)的特點后,我想到了兩個技術(shù)創(chuàng)新點,一是“一臺設(shè)備一張表”的數(shù)據(jù)模型來極大提高單臺設(shè)備的數(shù)據(jù)插入和查詢效率, 二是給每張表打靜態(tài)標(biāo)簽,將靜態(tài)標(biāo)簽數(shù)據(jù)與采集的動態(tài)數(shù)據(jù)完全分開存儲,來解決多表聚合查詢問題。

想明白這些后,2016年底,接近50的我決定親自寫程序開干。為什么不找人呢?幾個原因:

  • 自己做技術(shù)多年,有個心結(jié),就是希望自己寫的代碼能被無數(shù)的人使用;

  • 開發(fā)難度大,特別是分布式,如果我自己不把主要框架搭完,把存儲引擎寫好,那團隊效率會很低;

  • 這個產(chǎn)品的核心是技術(shù),如果自己不重度參與研發(fā),那公司會很危險。

我準(zhǔn)備動手寫的時候,告訴太太,如果我寫的存儲引擎在數(shù)據(jù)插入、查詢速度上不比其他數(shù)據(jù)庫好五倍以上,就當(dāng)做我又寫了一段好玩的程序。

如果能達(dá)到五倍以上,那我就要再折騰一次。因為在我的眼里,技術(shù)型的產(chǎn)品,要打敗市場上現(xiàn)有的廠商,如果沒有五倍以上的優(yōu)勢,那完全沒有必要做,因為對方有人、有錢,有客戶群,你憑什么與對方開戰(zhàn)?

幸運的是,我2個月時間,寫完一萬八千多行代碼,完全證明憑借我的兩大創(chuàng)新,性能上可以秒殺市場上現(xiàn)有產(chǎn)品,因此就有了今天的TDengine。

濤思數(shù)據(jù)團隊,左三為陶建輝兒子(00后一枚),TDengine項目其亦有貢獻(xiàn)

研發(fā)底層基礎(chǔ)軟件,開發(fā)難,推廣更難。即使功能、性能比現(xiàn)有產(chǎn)品好一個數(shù)量級,客戶還是會以安全性和穩(wěn)定性為由拒絕你,因此我想到應(yīng)該用開源的方式,把最核心的代碼和詳細(xì)的設(shè)計都曬出來,讓更多的程序員參與進(jìn)來,將開發(fā)者社區(qū)建立起來。

活躍的開發(fā)者社區(qū)能讓所有大客戶都感覺到所選的技術(shù)不會被拋棄,不會有重大安全漏洞, 可放心使用。

另外一方面,很多中小企業(yè)客戶數(shù)據(jù)量不大,技術(shù)上有很多選擇,如果不開源,他們就會選擇一些其他的開源方案。

本來就賺不到他們的錢,那為何不開源給他們,讓他們免費用呢?不僅要讓大家免費用,我們還要組織一個不小的團隊來運營,與各種背景的開發(fā)者互動,回答他們的疑問,讓他們得到技術(shù)支持和幫助,更希望他們參與進(jìn)來,有榮譽感和自豪感,他們才可能發(fā)自內(nèi)心地傳播。

同時,通過開源,可以快速獲得市場對產(chǎn)品的反饋,了解市場的需求,這是一件多好的事情,因此毫無猶豫的決定開源。

大數(shù)據(jù)平臺、物聯(lián)網(wǎng)平臺和數(shù)據(jù)庫都已經(jīng)有很多主流產(chǎn)品,挑戰(zhàn)他們是一件困難的事情。而專為物聯(lián)網(wǎng)打造的大數(shù)據(jù)平臺,目前還沒有,TDengine在全球是第一家。

物聯(lián)網(wǎng)的市場在高速增長,采集的數(shù)據(jù)量更是指數(shù)式的上升,5年的時間,世界上90%的數(shù)據(jù)都會是物聯(lián)網(wǎng)類型的數(shù)據(jù),這個細(xì)分市場一定會成為一個主流市場。

只要濤思數(shù)據(jù)團隊繼續(xù)努力,抱著開放、合作的態(tài)度,充分利用開源打造出技術(shù)生態(tài),同時與全球的系統(tǒng)集成商、獨立軟件開發(fā)商、渠道等合作,積極的構(gòu)建出商業(yè)生態(tài),那TDengine一定有成為獨角獸的一天。

喜歡丘吉爾說的一句話,“Success is not final, failure is not fatal, it is the courage to continue that counts”,繼續(xù)奔跑吧,伙伴們!


聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 代碼
    +關(guān)注

    關(guān)注

    30

    文章

    4722

    瀏覽量

    68234
  • GitHub
    +關(guān)注

    關(guān)注

    3

    文章

    465

    瀏覽量

    16359

原文標(biāo)題:三次創(chuàng)業(yè),三次跨界,這次憑十萬行核心C代碼登上 GitHub Top 1!

文章出處:【微信號:mcuworld,微信公眾號:嵌入式資訊精選】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦

    GitHub Copilot引入模型支持

    近日,據(jù)外媒報道,GitHub正在為其代碼完成和編程工具Copilot引入模型支持。這一舉措將為開發(fā)者提供更加靈活和多樣化的選擇。 在近日舉辦的GitHub Universe大會上,
    的頭像 發(fā)表于 10-31 11:49 ?409次閱讀

    真格基金宣布捐贈開源AI項目vLLM

    個通用人工智能項目,Hugging Face 上有超過 40 個模型。每一周,有超過 100 萬行代碼開源 AI 領(lǐng)域中創(chuàng)建,開發(fā)者
    的頭像 發(fā)表于 09-24 16:13 ?302次閱讀

    上傳本地項目代碼github

    概述 GitHub是一個面向開源及私有軟件項目的托管平臺,因為只支持git 作為唯一的版本庫格式進(jìn)行托管,故名GitHub。本文主要講解如何將本地代碼上傳至
    發(fā)表于 09-11 16:33

    快訊 | 發(fā)展新質(zhì)生產(chǎn)力問道賽?賽如何下好“創(chuàng)新棋”?

    7月11日,南湖區(qū)委宣傳部、清華大學(xué)馬克主義學(xué)院共同帶隊一蒞臨賽圍繞時頻新質(zhì)生產(chǎn)力創(chuàng)新層面進(jìn)行實地調(diào)研,賽副總經(jīng)理田永和、對外合作部部長葉泂
    的頭像 發(fā)表于 07-12 13:31 ?444次閱讀
    賽<b class='flag-5'>思</b>快訊 | 發(fā)展新質(zhì)生產(chǎn)力問道賽<b class='flag-5'>思</b>?賽<b class='flag-5'>思</b>如何下好“創(chuàng)新棋”?

    400!深開鴻OpenHarmony主倉代碼貢獻(xiàn)量再創(chuàng)里程碑!

    2024年7月8日,據(jù)OpenAtomOpenHarmony(以下簡稱“OpenHarmony”)官網(wǎng)顯示,深開鴻在OpenHarmony社區(qū)主倉代碼貢獻(xiàn)總量超過400萬行,在華為以外的生態(tài)廠商中
    的頭像 發(fā)表于 07-09 08:33 ?304次閱讀
    400<b class='flag-5'>萬</b>!深開鴻OpenHarmony主倉<b class='flag-5'>代碼</b>貢獻(xiàn)量再創(chuàng)里程碑!

    快訊 | 熱烈歡迎嘉興市政協(xié)一領(lǐng)導(dǎo)蒞臨賽總部調(diào)研指導(dǎo)工作!

    近日,嘉興市政協(xié)一領(lǐng)導(dǎo)蒞臨賽總部調(diào)研指導(dǎo)工作,賽副總經(jīng)理王文、田永和全程陪同。嘉興市政協(xié)一領(lǐng)導(dǎo)蒞臨賽
    的頭像 發(fā)表于 05-17 13:22 ?460次閱讀
    賽<b class='flag-5'>思</b>快訊 | 熱烈歡迎嘉興市政協(xié)一<b class='flag-5'>行</b>領(lǐng)導(dǎo)蒞臨賽<b class='flag-5'>思</b>總部調(diào)研指導(dǎo)工作!

    MySQL單表數(shù)據(jù)量限制:為何2000萬行成為瓶頸?

    很多人認(rèn)為:數(shù)據(jù)量超過500萬行或2000萬行時,引起B(yǎng)+tree的高度增加,延長了索引的搜索路徑,進(jìn)而導(dǎo)致了性能下降。事實果真如此嗎?
    的頭像 發(fā)表于 02-27 10:38 ?5350次閱讀
    MySQL單表<b class='flag-5'>數(shù)據(jù)</b>量限制:為何2000<b class='flag-5'>萬行</b>成為瓶頸?

    [開源]界星空開源MES系統(tǒng),支持低代碼大屏設(shè)計

    界星空科技免費MES、開源MES、商業(yè)開源MES、商業(yè)開源代碼MES、市面上最好的開源MES
    的頭像 發(fā)表于 01-12 13:43 ?685次閱讀
    [<b class='flag-5'>開源</b>]<b class='flag-5'>萬</b>界星空<b class='flag-5'>開源</b>MES系統(tǒng),支持低<b class='flag-5'>代碼</b>大屏設(shè)計

    OpenHarmony社區(qū)運營報告(2023年12月)

    。 ? 2023 年 12 月新增 19 款產(chǎn)品通過兼容性測評,累計 467 款產(chǎn)品通過兼容性測評。 一、代碼貢獻(xiàn) 1、2023 年度,累計新增 1615 萬行代碼;華為貢獻(xiàn) 89%,余下貢獻(xiàn)者共建 132 個
    發(fā)表于 01-10 15:44

    百度發(fā)布Apollo開放平臺9.0

    在2023年的12月19日,百度正式發(fā)布了Apollo開放平臺的全新版本——Apollo開放平臺9.0。這一版本的推出,源于團隊在8.0至9.0的開發(fā)過程中,對12萬行代碼進(jìn)行了重構(gòu),并新增了20萬行
    的頭像 發(fā)表于 01-02 16:18 ?1135次閱讀

    GitHub入門與實踐

    GitHub 提供了一個方便的平臺,讓開發(fā)者能夠托管、分享和協(xié)作編寫代碼。通過 Git 版本控制系統(tǒng),可以有效地進(jìn)行團隊協(xié)作和版本管理。協(xié)作和社交: 用戶可以在 GitHub 上關(guān)注其他用戶、參與
    發(fā)表于 12-14 09:53 ?6次下載

    當(dāng)一名高職生成為開源代碼頂級貢獻(xiàn)者

    3萬行代碼,和華為的5名開發(fā)者一起登上由開放原子開源基金會OpenHarmony社區(qū)官方發(fā)布的頂級貢獻(xiàn)者榜單,在數(shù)千位代碼貢獻(xiàn)者中位列前10
    的頭像 發(fā)表于 12-13 08:14 ?558次閱讀
    當(dāng)一名高職生成為<b class='flag-5'>開源代碼</b>頂級貢獻(xiàn)者

    首屆Harmony班畢業(yè)生成為代碼頂級貢獻(xiàn)者!

    超過3萬行代碼,和華為的5名開發(fā)者一起登上由開放原子開源基金會OpenHarmony社區(qū)官方發(fā)布的頂級貢獻(xiàn)者榜單,在數(shù)千位代碼貢獻(xiàn)者中位列前10
    的頭像 發(fā)表于 12-11 17:47 ?376次閱讀
    首屆Harmony班畢業(yè)生成為<b class='flag-5'>代碼</b>頂級貢獻(xiàn)者!

    c語言怎么把代碼全部注釋掉

    要將C語言代碼全部注釋掉,即不讓代碼被編譯和執(zhí)行,可以使用注釋語句來實現(xiàn)。C語言提供兩種注釋方式:單行注釋和多行注釋。 單行注釋:使用雙斜杠(//)來注釋一
    的頭像 發(fā)表于 11-22 10:21 ?6409次閱讀

    TDengine 常用指令匯總

    最近公司正在啟用TDengine作為物聯(lián)網(wǎng)實時數(shù)據(jù)的存儲數(shù)據(jù)庫,但作為國產(chǎn)開源軟件的發(fā)光體,目前這個數(shù)據(jù)庫的使用方式,特此記錄和總結(jié)一些使用
    的頭像 發(fā)表于 11-17 09:55 ?2673次閱讀