第一個斷言是文檔樣式nosql數據庫(如MarkLogic和Mongo)應將每條信息存儲在嵌套/複雜對象中。針對支持ODBC的NoSQL文檔存儲的關係行爲
考慮下面的模型
<patient>
<patientid>1000</patientid>
<firstname>Johnny</firstname>
<claim>
<claimid>1</claimid>
<claimdate>2015-01-02</claimdate>
<charge><amount>100</amount><code>374.3</code></charge>
<charge><amount>200</amount><code>784.3</code></charge>
</claim>
<claim>
<claimid>2</claimid>
<claimdate>2015-02-02</claimdate>
<charge><amount>300</amount><code>372.2</code></charge>
<charge><amount>400</amount><code>783.1</code></charge>
</claim>
</patient>
在關係世界中,這將被模擬爲病人表,索賠表,要求收費表。
我們的主要願望是同時向下遊應用程序提供這些數據,並對其執行分析。由於我們不想爲每一項措施編寫複雜的程序,因此我們應該能夠在此之上放置一個工具。例如,Tableau聲稱與通過ODBC的MarkLogic具有本地連接。
當我們在文檔模型上使用範圍索引創建視圖時,MarkLogic中的SQL會針對它返回過多的重複結果。費用數字也用總和函數重複計算。這是行不通的。
思想是通過MarkLogic的這些索引,視圖和可能的片段技術,我們可以定義一個類似於關係結構的語義層。
文檔提示您應該爲每個表創建1個對象,但這似乎違背了首選文檔db結構。
什麼是數據建模和應用程序模式來存儲大量的文檔數據,然後提供一個交鑰匙分析工具的頂部?
如果ODBC連接總是返回錯誤的數據而不知道關係,那麼聲明對NoSQL具有ODBC支持的所有工具都是不正確的。
參考
https://docs.marklogic.com/guide/sql/setup
https://docs.marklogic.com/guide/sql/tableau
http://www.marklogic.com/press-releases/marklogic-and-tableau-build-connection/
https://developer.marklogic.com/learn/arch/data-model
我想澄清這個聲明,因爲它也在他們的網站上,正確的「每個文檔一個記錄」。這意味着每個患者的文件都包含其患者屬性,以及每個包含其索賠屬性的索賠文件。 – Walt