當前位置:首頁 » 編程語言 » sql解析器開源
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

sql解析器開源

發布時間: 2022-07-11 01:57:12

Ⅰ 技術解析Transwarp Inceptor是怎樣煉成的

技術解析Transwarp Inceptor是怎樣煉成的
當前Hadoop技術蓬勃發展,用於解決大數據的分析難題的技術平台開始涌現。Spark憑借性能強勁、高度容錯、調度靈活等技術優勢已漸漸成為主流技術,業界大部分廠商都提供了基於Spark的技術方案和產品。根據Databricks的統計,目前有11個商業的Spark版本。
在使用Spark作出計算平台的解決方案中,有兩種主流編程模型,一類是基於SparkAPI或者衍生出來的語言,另一種是基於sql語言。SQL作為資料庫領域的事實標准語言,相比較用API(如MapReceAPI,SparkAPI等)來構建大數據分析的解決方案有著先天的優勢:一是產業鏈完善,各種報表工具、ETL工具等可以很好的對接;二是用SQL開發有更低的技術門檻;三是能夠降低原有系統的遷移成本等。因此,SQL語言也漸漸成為大數據分析的主流技術標准。本文將深入解析Inceptor的架構、編程模型和編譯優化技術,並提供基準測試在多平台上的性能對比數據。
1.Inceptor架構
TranswarpInceptor是基於Spark的分析引擎,如圖1所示,從下往上有三層架構:最下面是存儲層,包含分布式內存列式存儲(TranswarpHolodesk),可建在內存或者SSD上;中間層是Spark計算引擎層,星環做了大量的改進保證引擎有超強的性能和高度的健壯性;最上層包括一個完整的SQL99和PL/SQL編譯器、統計演算法庫和機器學習演算法庫,提供完整的R語言訪問介面。
TranswarpInceptor可以分析存儲在HDFS、HBase或者TranswarpHolodesk分布式緩存中的數據,可以處理的數據量從GB到數十TB,即使數據源或者中間結果的大小遠大於內存容量也可高效處理。另外TranswarpInceptor通過改進Spark和YARN的組合,提高了Spark的可管理性。同時星環不僅僅是將Spark作為一個預設計算引擎,也重寫了SQL編譯器,提供更加完整的SQL支持。
同時,TranswarpInceptor還通過改進Spark使之更好地與HBase融合,可以為HBase提供完整的SQL支持,包括批量SQL統計、OLAP分析以及高並發低延時的SQL查詢能力,使得HBase的應用可以從簡單的在線查詢應用擴展到復雜分析和在線應用結合的混合應用中,大大拓展了HBase的應用范圍。
2.編程模型
TranswarpInceptor提供兩種編程模型:一是基於SQL的編程模型,用於常規的數據分析、數據倉庫類應用市場;二是基於數據挖掘編程模型,可以利用R語言或者SparkMLlib來做一些深度學習、數據挖掘等業務模型。
2.1SQL模型
TranswarpInceptor實現了自己的SQL解析執行引擎,可以兼容SQL99和HiveQL,自動識別語法,因此可以兼容現有的基於Hive開發的應用。由於TranswarpInceptor完整支持標準的SQL 99標准,傳統資料庫上運行的業務可以非常方便的遷移到Transwarp Inceptor系統上。此外Transwarp Inceptor支持PL/SQL擴展,傳統數據倉庫的基於PL/SQL存儲過程的應用(如ETL工具)可以非常方便的在Inceptor上並發執行。另外Transwarp Inceptor支持部分SQL 2003標准,如窗口統計功能、安全審計功能等,並對多個行業開發了專門的函數庫,因此可以滿足多個行業的特性需求。
2.2數據挖掘計算模型
TranswarpInceptor實現了機器學習演算法庫與統計演算法庫,支持常用機器學習演算法並行化與統計演算法並行化,並利用Spark在迭代計算和內存計算上的優勢,將並行的機器學習演算法與統計演算法運行在Spark上。例如:機器學習演算法庫有包括邏輯回歸、樸素貝葉斯、支持向量機、聚類、線性回歸、關聯挖掘、推薦演算法等,統計演算法庫包括均值、方差、中位數、直方圖、箱線圖等。TranswarpInceptor可以支持用R語言或者SparkAPI在平台上搭建多種分析型應用,例如用戶行為分析、精準營銷、對用戶貼標簽、進行分類。
3.SQL編譯與優化
TranswarpInceptor研發了一套完整的SQL編譯器,包括HiveQL解析器、SQL標准解析器和PL/SQL解析器,將不同的SQL語言解析成中間級表示語言,然後經過優化器轉換成物理執行計劃。SQL語言解析後經過邏輯優化器生成中間級表示語言,而中間表示語言再經過物理優化器生成最終的物理執行計劃。從架構上分,邏輯優化器和物理優化器都包含基於規則的優化模塊和基於成本的優化模塊。
為了和Hadoop生態更好的兼容,Inceptor為一個SQL查詢生成MapRece上的執行計劃和Spark上的執行計劃,並且可以通過一個SET命令在兩種執行引擎之間切換。
3.1SQL編譯與解析
TranswarpInceptor的SQL編譯器會根據輸入的SQL查詢的類型來自動選擇不同的解析器,如PL/SQL存儲過程會自動進入PL/SQL解析器並生成一個SparkRDD的DAG從而在Spark平台上並行計算,標准SQL查詢會進入SQL標准解析器生成Spark或MapRece執行計劃。由於HiveQL和標準的SQL有所出入,為了兼容HiveQL,Transwarp Inceptor保留了HiveQL解析器,並可以對非標准SQL的Hive查詢生成Spark或者Map Rece執行計劃。
3.1.1SQL標准解析器
TranswarpInceptor構建了自主研發的SQL標准解析器,用於解析SQL99& SQL 2003查詢並生成Spark和Map Rece的執行計劃。詞法和語法分析層基於Antlr語法來構建詞法範式,通過Antlr來生成抽象語義樹,並會通過一些上下文的語義來消除沖突並生成正確的抽象語義樹。語義分析層解析上層生成的抽象語義樹,根據上下文來生成邏輯執行計劃並傳遞給優化器。首先Transwarp Inceptor會將SQL解析成TABLE SCAN、SELECT、FILTER、JOIN、UNION、ORDER BY、GROUP BY等主要的邏輯塊,接著會根據一些Meta信息進一步細化各個邏輯塊的執行計劃。如TABLE SCAN會分成塊讀取、塊過濾、行級別過濾、序列化等多個執行計劃。
3.1.2PL/SQL解析器
PL/SQL是Oracle對SQL語言的模塊化擴展,已經在很多行業中有大規模的應用,是數據倉庫領域的重要編程語言。
為了讓存儲過程在Spark上有較好的性能,PL/SQL解析器會根據存儲過程中的上下文關系來生成SQLDAG,然後對各SQL的執行計劃生成的RDD進行二次編譯,通過物理優化器將一些沒有依賴關系的RDD進行合並從而生成一個最終的RDDDAG。因此,一個存儲過程被解析成一個大的DAG,從而stage之間可以大量並發執行,避免了多次執行SQL的啟動開銷並保證了系統的並發性能。
解析並生成SQL級別的執行計劃
3.2SQL優化器
TranswarpInceptor使用Spark作為默認計算引擎,並且開發了完善的SQL優化器,因此在大量的客戶案例性能測試中,TranswarpInceptor的性能領先MapRece 10-100倍,並超越部分開源MPP資料庫。SQL優化器對平台性能的提升居功至偉。
3.2.1基於規則的優化器(RuleBasedOptimizer)
目前為止,TranswarpInceptor共實現了一百多個優化規則,並且在持續的添加新的規則。按照功能劃分,這些規則主要分布在如下幾個模塊:
文件讀取時過濾
在文件讀取時過濾數據能夠最大化的減少參與計算的數據量從而最為有效的提高性能,因此TranswarpInceptor提供了多個規則用於生成表的過濾條件。對於一些SQL中的顯示條件,TranswarpInceptor會盡量將過濾前推到讀取表中;而對於一些隱式的過濾條件,如可以根據joinkey生成的過濾規則,Inceptor會根據語義保證正確性的前提下進行規則生成。
過濾條件前置
TranswarpInceptor能夠從復雜的組合過濾條件中篩選出針對特定表的過濾規則,然後通過SQL語義來確定是否能將過濾條件前推到盡量早的時候執行。如果有子查詢,過濾條件可以遞歸前推入最低層的子查詢中,從而保證所有的冗餘數據被刪除。
超寬表的讀取過濾
對一些列超多的表進行處理的時候,TranswarpInceptor首先會根據SQL語義來確定要讀取的列,並在讀取表的時候進行跨列讀取減少IO和內存消耗。而如果表有過濾條件,Inceptor會做進一步優化,首先只讀取過濾條件相關的列來確定該行記錄是否需要被選擇,如果不是就跳過當前行的所有列,因此能夠最大程度上的減少數據讀取。在一些商業實施中,這些優化規則能夠帶來5x-10x的性能提升。
Shuffle Stage的優化與消除
Spark的shuffle實現的效率非常低,需要把結果寫磁碟,然後通過HTTP傳輸。TranswarpInceptor添加了一些shuffle消除的優化規則,對SQL的DAG中不必要或者是可以合並的shufflestage進行消除或者合並。對於必須要做Shuffle的計算任務,Inceptor通過DAGScheler來提高shuffle的效率:MapTask會直接將結果返回給DAGScheler,然後DAGScheler將結果直接交給Rece Task而不是等待所有Map Task結束,這樣能夠非常明顯的提升shuffle階段的性能。
Partition消除
TranswarpInceptor提供單一值Partition和RangePartition,並且支持對Partition建Bucket來做多次分區。當Partition過多的時候,系統的性能會因為內存消耗和調度開銷而損失。因此,Inceptor提供了多個規則用於消除不必要的Partition,如果上下文中有隱式的對Partition的過濾條件,Inceptor也會生成對partition的過濾規則。
3.2.2基於成本的優化器(CostBasedOptimizer)
基於規則的優化器都是根據一些靜態的信息來產生的,因此很多和動態數據相關的特性是不能通過基於規則的優化來解決,因此TranswarpInceptor提供了基於成本的優化器來做二次優化。相關的原始數據主要來自Meta-store中的表統計信息、RDD的信息、SQL上下文中的統計信息等。依賴於這些動態的數據,CBO會計算執行計劃的物理成本並選擇最有效的執行計劃。一些非常有效的優化規則包括如下幾點:
JOIN順序調優
在實際的案例中,join是消耗計算量最多的業務,因此對join的優化至關重要。在多表JOIN模型中,TranswarpInceptor會根據統計信息來預估join的中間結果大小,並選擇產生中間數據量最小的join順序作為執行計劃。
JOIN類型的選擇
TranswarpInceptor支持Left-mostJoinTree 和 Bush Join Tree,並且會根據統計信息來選擇生成哪種Join模型有最佳性能。此外,Transwarp Inceptor會根據原始表或者中間數據的大小來選擇是否開啟針對數據傾斜模型下的特殊優化等。此外,針對HBase表是否有索引的情況,Transwarp Inceptor會在普通Join和Look-up Join間做個均衡的選擇。
並發度的控制
Spark通過線程級並發來提高性能,但是大量的並發可能會帶來不必要的調度開銷,因此不同的案例在不同並發度下會有最佳性能。TranswarpInceptor通過對RDD的一些屬性進行推算來選擇最佳並發控制,對很多的案例有著2x-3x的性能提升。
4.TranswarpHolodesk內存計算引擎
為了有效的降低SQL分析的延時,減少磁碟IO對系統性能的影響,星環科技研發了基於內存或者SSD的存儲計算引擎TranswarpHolodesk,通過將表數據直接建在內存或者SSD上以實現SQL查詢全內存計算。另外TranswarpHolodesk增加了數據索引功能,支持對多個數據列建索引,從而更大程度的降低了SQL查詢延時。
4.1存儲格式
TranswarpHolodesk基於列式存儲做了大量的原創性改進帶來更高的性能和更低的數據膨脹率。首先數據被序列化後存儲到內存或SSD上以節省者資源佔用。如圖3所示,每個表的數據被存儲成若干個Segment,每個Segment被劃分成若干個Block,每個Block按照列方式存儲於SSD或內存中。另外每個Block的頭部都加上Min-MaxFilter和BloomFilter用於過濾無用的數據塊,減少不必要的數據進入計算階段。
TranswarpHolodesk根據查詢條件的謂詞屬性對每個數據塊的對應列構建數據索引,索引列採用自己研發的Trie結構進行組織存儲,非索引列採用字典編碼的方式進行組織存儲。Trie不僅能對具有公共前綴的字元串進行壓縮,而且可以對輸入的字元串排序,從而可以利用二分查找快速查詢所需數據的位置,從而快速響應查詢需求。
HDFS2.6支持StorageTier讓應用程序可以選擇存儲層為磁碟或者SSD,但是沒有專用的存儲格式設計是無法有效利用SSD的讀寫吞吐量和低延,因此現有的Text以及行列混合(ORC/Parquet)都不能有效的利用SSD的高性能。為此驗證存儲結構對性能的影響,我們將HDFS構建在SSD上並選用某基準測試來做了進一步的性能對比,結果如圖4所示:採用文本格式,PCI-ESSD帶來的性能提升僅1.5倍;採用專為內存和SSD設計的Holodesk列式存儲,其性能相比較SSD上的HDFS提升高達6倍。
4.2性能優勢
某運營商客戶在12台x86伺服器上搭建了TranswarpInceptor,將TranswarpHolodesk配置在PCIE-SSD上,並與普通磁碟表以及DB2來做性能對比測試。最終測試數據如圖5所示:
在純粹的count測試一項,Holodesk性能相對於磁碟表最高領先32倍;對於join測試一項,TranswarpHolodesk最高領先磁碟表多達12倍;在單表聚合測試中,Holodesk提升倍數達10~30倍。另外TranswarpHolodesk在和DB2的對比中也表現優秀,兩個復雜SQL查詢在DB2資料庫中需要運行1小時以上,但是在使用TranswarpHolodesk均是分鍾級和秒級就返回結果。
內存的價格大約是同樣容量SSD的十倍左右,為了給企業提供更高性價比的計算方案,TranswarpHolodesk針對SSD進行了大量的優化,使得應用在SSD上運行具有與在內存上比較接近的性能,從而為客戶提供了性價比更高的計算平台。
在對TPC-DS的IO密集型查詢的測試中,無論上構建在PCI-ESSD還是內存上,Holodesk對比磁碟表有一個數量級上的性能提升;而SSD上的Holodesk性能只比內存差10%左右。
5.穩定的Spark執行引擎
企業目前應用開源Spark的主要困難在穩定性、可管理性和功能不夠豐富上。開源Spark在穩定性上還有比較多的問題,在處理大數據量時可能無法運行結束或出現Outofmemory,性能時快時慢,有時比Map/Rece更慢,無法應用到復雜數據分析業務中。
TranswarpInceptor針對各種出錯場景設計了多種解決方法,如通過基於成本的優化器選擇最合適的執行計劃、加強對數據結構內存使用效率的有效管理、對常見的內存出錯問題通過磁碟進行數據備份等方式,極大提高了Spark功能和性能的穩定性,上述問題都已經解決並經過商業案例的考驗。TranswarpInceptor能穩定的運行7*24小時,並能在TB級規模數據上高效進行各種穩定的統計分析。
6.SQL引擎效能驗證
TPC-DS是TPC組織為DecisionSupportSystem設計的一個測試集,包含對大數據集的統計/報表生成/聯機查詢/數據挖掘等復雜應用,測試用的數據有各種不同的分布與傾斜,與真實場景非常接近。隨著國內外各代表性的Hadoop發行版廠商以TPC-DS為標准測評產品,TPC-DS也就逐漸成為了業界公認的Hadoop系統測試准則。
6.1驗證對比的平台和配置
我們搭建了兩個集群分別用於TranswarpInceptor與ClouderaDataHub/Impala的測試。
6.2TranswarpInceptorVS Cloudera Impala
TranswarpInceptor由於有完善的SQL支持,能夠運行全部所有的99個SQL查詢。而由於Cloudera官方發布的TPC-DS測試集只包含19個SQL案例,因此我們只能運行這19個SQL,實驗證明這部分查詢在Impala上全部正常運行完成。
6.3TranswarpInceptorVS Map Rece
我們使用了同樣的硬體和軟體配置完成和開源的Hive執行效率相比,TranswarpInceptor能夠帶來10x-100x的性能提升。圖8是TPC-DS的部分SQL查詢在Inceptor和CDH5.1Hive的性能提升倍數,其中最大的提升倍數竟可達到123倍。
7.結語
隨著在大數據領域國內外開始處於同一起跑線,我們相信像星環科技這樣國內具有代表性的Hadoop發行版廠商將在中國的廣闊市場空間中獲得長足發展,並且由於中國市場激烈的競爭與磨練,逐步打磨出超越國外先進廠商的技術與實力。
劉汪根。2013年加入星環,作為早期員工參與了星環大數據平台的構建,現擔任數據平台部研發經理,主要負責與管理星環大數據平台數據平台的研發工作,如SQL編譯器,Spark執行引擎等工作,產品涵括TranswarpInceptor/TranswarpStream等軟體。
【編者按】星環科技從2013年6月開始研發基於Spark的SQL執行引擎,在2013年底推出TranswarpInceptor1.0,並落地了國內首個7x24小時的商用項目。經過1年多的持續創新與改進,星環已經在國內落地了數十個Inceptor的商用項目。這是一篇星環Spark解決方案的技術解析,也是Spark用戶可以效仿的優化之道。

Ⅱ 有沒有好用的開源sql語法分析器

開源報表的話有jasperreport、BIRT、jasperreport,但是貌似都不是怎麼發展了

Ⅲ 全球四個最大的四個開源庫

開源資料庫MySQLMySQL是一個開放源碼的小型關聯式資料庫管理系統,開發者為瑞典MySQL AB公司。目前MySQL被廣泛地應用在Internet上的中小型網站中。由於其體積小、速度快、總體擁有成本低,尤其是開放源...開源資料庫MySQLMySQL是一個開放源碼的小型關聯式資料庫管理系統,開發者為瑞典MySQL AB公司。目前MySQL被廣泛地應用在Internet上的中小型網站中。由於其體積小、速度快、總體擁有成本低,尤其是開放源碼這一特點,許多中小型網站為了降低網站總體擁有成本而選擇了MySQL作為網站資料庫。盤點:開源社區那些免費的資料庫軟體MySQL為多種編程語言提供了API,包括C、C++、C#、Delphi、Eiffel、Java、Perl、PHP、Python、Ruby和Tcl等。而其自身是採用C和C++編寫的,使用了多種編譯器進行測試,所以,MySQL能夠保證源代碼具有很強的可移植性。這樣的一款資料庫,自然能夠支持幾乎所有的操作系統,從Unix、Linux到Windows,具體包括AIX、BSDi、FreeBSD、HP-UX、Linux、Mac OS、Novell Netware、NetBSD、OpenBSD、OS/2 Wrap、Solaris、SunOS、Windows等多種操作系統。最重要的是,它是一個可以處理擁有上千萬條記錄的大型資料庫。與此同時,MySQL也產生了很多分支版本的資料庫也非常值得推薦。首先是MariaDB,它是一個採用Maria存儲引擎的MySQL分支版本,是由原來MySQL的作者 Michael Widenius創辦的公司所開發的免費開源的資料庫伺服器。與MySQL相比較,MariaDB更強的地方在於它擁有更多的引擎,包括Maria存儲引擎、PBXT存儲引擎、XtraDB存儲引擎、FederatedX存儲引擎,它能夠更快的復制查詢處理、運行的速度更快、更好的功能測試以及支持對Unicode的排序等。其次是rcona,它為MySQL資料庫伺服器進行了改進,在功能和性能上較MySQL有著很顯著的提升。該版本提升了在高負載情況下的InnoDB的性能,同時,它還為DBA提供一些非常有用的性能診斷工具,並且提供很多參數和命令來控制伺服器行為。第三是Percona Server,它使用了諸如google-mysql-tools、Proven Scaling和 Open Query對MySQL進行改造。並且,它只包含MySQL的伺服器版,並沒有提供相應對 MySQL的Connector和GUI工具進行改進。非關系型資料庫NoSQL從NoSQL的字面上理解,NoSQL就是Not Only SQL,被業界認為是一項全新的資料庫革命性運動,早期就有人提出,發展至2009年趨勢越發高漲。NoSQL的擁護者們提倡運用非關系型的數據存儲,相對於目前鋪天蓋地的關系型資料庫運用,這一概念無疑是一種全新的思維的注入。盤點:開源社區那些免費的資料庫軟體當然,NoSQL也是隨著互聯網Web2.0網站的興起才能取得長足的進步。關鍵的需求在於,傳統的關系資料庫在應付Web2.0網站,特別是超大規模和高並發的SNS類型的web2.0純動態網站顯得力不從心,暴露了很多難以克服的問題,而非關系型的資料庫則由於其本身的特點得到了非常迅速的發展。首先推薦的是Oracle NoSQL Database,這是一個社區版。Oracle的這個NoSQL Database, 是在10月4號的甲骨文全球大全上發布的Big Data Appliance的其中一個組件,Big Data Appliance是一個集成了Hadoop、NoSQL Database、Oracle資料庫Hadoop適配器、Oracle資料庫Hadoop裝載器及R語言的系統。其次推薦的是Membase。Membase是NoSQL家族的一個新的重量級的成員。Membase是開源項目,源代碼採用了Apache2.0的使用許可。該項目託管在GitHub.Source tarballs上,目前可以下載beta版本的Linux二進制包。該產品主要是由North Scale的memcached核心團隊成員開發完成,其中還包括Zynga和NHN這兩個主要貢獻者的工程師,這兩個組織都是很大的在線游戲和社區網路空間的供應商。並且,Membase容易安裝、操作,可以從單節點方便的擴展到集群,而且為memcached(有線協議的兼容性)實現了即插即用功能,在應用方面為開 發者和經營者提供了一個比較低的門檻。做為緩存解決方案,Memcached已經在不同類型的領域(特別是大容量的Web應用)有了廣泛的使用,其中 Memcached的部分基礎代碼被直接應用到了Membase伺服器的前端。通過兼容多種編程語言和框架,Membase具備了很好的復用性。在安裝和配置方面,Membase提供了有效的圖形化界面和編程介面,包括可配置 的告警信息。Membase的目標是提供對外的線性擴展能力,包括為了增加集群容量,可以針對統一的節點進行復制。 另外,對存儲的數據進行再分配仍然是必要的。第三推薦的是Hibari。Hibari在日語中意思為「雲雀」,它是一個專為高可靠性和大數據存儲的資料庫引擎,可用於雲計算環境中,例如 webmail、SNS和其他要求T/P級數據存儲的環境中。同時,Hibari也支持Java,C/C++,Python,Ruby和Erlang語言的客戶端。第四推薦的是memcachedb。這是一個由新浪網的開發人員開放出來的開源項目,給memcached分布式緩存伺服器添加了Berkeley DB的持久化存儲機制和非同步主輔復制機制,讓memcached具備了事務恢復能力、持久化能力和分布式復制能力,非常適合於需要超高性能讀寫速度,但是 不需要嚴格事務約束,能夠被持久化保存的應用場景,例如memcachedb被應用在新浪博客上面。第五推薦的是Leveldb。這是一個Google實現的非常高效的kv資料庫,目前的版本1.2能夠支持billion級別的數據量了。 在這個數量級別下還有著非常高的性能,主要歸功於它的良好的設計,特別是LSM演算法。LevelDB是單進程的服務,性能非常之高,在一台4個Q6600的CPU機器上,每秒鍾寫數據超過40w,而隨機讀的性能每秒鍾超過10w。XML資料庫的優勢XML資料庫是一種支持對XML格式文檔進行存儲和查詢等操作的數據管理系統。在系統中,開發人員可以對資料庫中的XML文檔進行查詢、導出和指定格式的序列化。目前XML資料庫有三種類型:XMLEnabledDatabase(XEDB),即能處理XML的資料庫;NativeXMLDatabase(NXD),即純XML資料庫;HybridXMLDatabase(HXD),即混合XML資料庫。關系資料庫中的第一代XML支持是切分(或分解)文檔,以適應關系表格或將文檔原封不動地存儲為字元或二進制大對象(CLOB 或 BLOB)。這兩個方法中的任一種都嘗試將XML模型強制轉換成關系模型。然而,這兩種方法在功能和性能上都有很大的局限性。混合型模型將XML存儲在類似於DOM的模型中。XML數據被格式化為緩沖數據頁,以便快速導航和執行查詢以及簡化索引編制。在這里,首要要推薦的XML資料庫是Sedna。它號稱是一款原生態的XML資料庫,提供了全功能的核心資料庫服務,包括持久化存儲、ACID事務、索引、安全、熱備、UTF8等。實現了 W3C XQuery 規范,支持全文搜索以及節點級別的更新操作。第二款XML資料庫是BaseX。這款資料庫用來存儲緊縮的XML數據,提供了高效的 XPath和XQuery的實現,同時,它還提供一個前端操作界面。盤點:開源社區那些免費的資料庫軟體第三款推薦的是XMLDB。這款資料庫使用了關系型資料庫來存儲任意的XML文檔,因為所採用的存儲機制,所以文檔的搜索速度特別快,同時執行XSL轉換也相當快。XMLDB同時還提供了一個PHP的模塊,可以應用在Web應用中。第四塊推薦的是X-Hive/DB。它是一個為需要高級XML數據處理和存儲功能的軟體開發者設計的強大的專屬XML資料庫。X-Hive/DB Java API包含存儲、查詢、檢索、轉換和發表XML數據的方法。與傳統關系型資料庫相比,XML資料庫具有以下優勢:第一,XML資料庫能夠對半結構化數據進行有效的存取和管理。如網頁內容就是一種半結構化數據,而傳統的關系資料庫對於類似網頁內容這類半結構化數據無法進行有效的管理。第二,提供對標簽和路徑的操作。傳統資料庫語言允許對數據元素的值進行操作,不能對元素名稱操作,半結構化資料庫提供了對標簽名稱的操作,還包括了對路徑的操作。第三,當數據本身具有層次特徵時,由於XML數據格式能夠清晰表達數據的層次特徵,因此XML資料庫便於對層次化的數據進行操作。XML資料庫適合管理復雜數據結構的數據集,如果己經以XML格式存儲信息,則XML資料庫利於文檔存儲和檢索;可以用方便實用的方式檢索文檔,並能夠提供高質量的全文搜索引擎。另外XML資料庫能夠存儲和查詢異種的文檔結構,提供對異種信息存取的支持。

Ⅳ 現在最成熟的開源nosql是什麼分別有什麼優缺點

NoSQL,泛指非關系型的資料庫。隨著互聯網web2.0網站的興起,傳統的關系資料庫在應付web2.0網站,特別是超大規模和高並發的SNS類型的web2.0純動態網站已經顯得力不從心,暴露了很多難以克服的問題,而非關系型的資料庫則由於其本身的特點得到了非常迅速的發展。NoSQL資料庫的產生就是為了解決大規模數據集合多重數據種類帶來的挑戰,尤其是大數據應用難題。

雖然NoSQL流行語火起來才短短一年的時間,但是不可否認,現在已經開始了第二代運動。盡管早期的堆棧代碼只能算是一種實驗,然而現在的系統已經更加的成熟、穩定。不過現在也面臨著一個嚴酷的事實:技術越來越成熟——以至於原來很好的NoSQL數據存儲不得不進行重寫,也有少數人認為這就是所謂的2.0版本。這里列出一些比較知名的工具,可以為大數據建立快速、可擴展的存儲庫。

NoSQL(NoSQL = Not Only SQL ),意即「不僅僅是SQL」,是一項全新的資料庫革命性運動,早期就有人提出,發展至2009年趨勢越發高漲。NoSQL的擁護者們提倡運用非關系型的數據存儲,相對於鋪天蓋地的關系型資料庫運用,這一概念無疑是一種全新的思維的注入。

NoSQL資料庫在以下的這幾種情況下比較適用:1、數據模型比較簡單;2、需要靈活性更強的IT系統;3、對資料庫性能要求較高;4、不需要高度的數據一致性;5、對於給定key,比較容易映射復雜值的環境。

Ⅳ 開源怎麼愛都不夠 微軟這次讓SQL Server和Linux在一起了

是說的這個文章吧:
自從納德拉掌權,在「雲為先」的指導方針下,Microsoft Azure牽引著微軟內部很多相對封閉的傳統強勢產品,帶它們一步一步走向開放,融入開源社區。前有讓企業版紅帽Linux入駐Azure,今逢SQL Server和Linux聯姻。

微軟雲計算和企業業務負責人Scott Guthrie稱,SQL Server
Linux版有本地和雲計算兩個不同平台的版本,但目前新特性里只會包含SQL Server 2016中的Stretch
Database功能,目的也很明確,就是為Azure
SQL的數據分層存儲服務,把冷熱數據對接起來,過時和不活躍的數據歸檔轉移到廉價介質上,頻繁訪問到數據就留在內部資料庫里,Stretch
Database能讓這些數據被視作是處在同一個資料庫中。SQL Server
Linux版會不會包含更多新功能微軟並未透露,不過紅帽的產品技術總裁Paul
Cormier對其還是比較信任,表示會在企業版紅帽Linux里提供SQL Server,而另一個Linux分支Ubuntu也對SQL
Server示好了。

SQL
Server作為微軟在伺服器資料庫行業里的一個拳頭產品,一向是不離Windows系統和.Net平台半步,但隨著雲計算市場近年來迅猛發展,也親眼目
睹Linux在這個過程中所扮演的重要角色,微軟肯定會認為自己應該更加主動參與進去,以期獲得名利雙收的效果。雖說還有所保留,但以往那個一直唱開源反
調的微軟,反派形象確確實實變得有些模糊了。

Ⅵ sql server r services 和開源r的異同

布,其所帶的新功能已經是大家關注的焦點,特別是在數據分析領域與時俱進,集成擴展了當今在高級數據分析領域最為流行的程序語言——R,在銷售預測、反欺詐和預見性維護等方面,無論對於使用T-SQL與SQL Server數據進行交互的數據科學家還是進行數據管理和分析的DBA或者是Developer來講,都提供了更大范圍和更加靈活的探索、預測和可視化數據的方法,並且還將可以將分析庫擴展到微軟的Azure市場

Ⅶ sql解析緩存是什麼 xcache APC又是什麼

是一個開源的 opcode 緩存器/優化器, 這意味著他能夠提高您伺服器上的 PHP 性能. 他通過把編譯 PHP 後的數據緩沖到共享內存從而避免重復的編譯過程, 能夠直接使用緩沖區已編譯的代碼從而提高速度. 通常能夠提高您的頁面生成速率 2 到5 倍, 降低伺服器負載.

Ⅷ sql server 有沒有什麼開源的全文檢索引擎

SQL Server中沒有開源的全文檢索引擎。SQL Server 中的全文搜索為用戶和應用程序提供了對 SQL Server 表中基於字元的數據運行全文查詢的功能。 在可以對某一表運行全文查詢之前,資料庫管理員必須對該表創建全文索引。 全文索引包括表中一個或多個基於字元的列。 這些列可以具有下列任何一種數據類型:char、varchar、nchar、nvarchar、text、ntext、image、xml 或 varbinary(max) 和 FILESTREAM。 每個全文索引都對表中的一個或多個列創建索引,並且每個列都可以使用特定語言。

參考文檔:
https://msdn.microsoft.com/zh-cn/library/ms142571.aspx

Ⅸ 有沒有好用的開源sql語法分析器

ue,editplus 都可以的