2017-10-05 98 views
1

我已經創建了一個XML Schema來支持關係數據庫的元數據管理。該場景涉及多個操作系統,一個操作數據存儲和一個數據倉庫,它們都通過ETL進程連接。我還生成了一個XML文件,其中包含一些使用模式驗證的虛擬元數據。我是MarkLogic的新手,但我確信能夠將XML Schema和XML數據文件加載到MarkLogic中,並且能夠創建用於分析的XQuery代碼等。使用XQuery瀏覽XML文檔中的內容

但我不確定我是否能夠使用此方法實現關鍵需求,即用戶需要能夠瀏覽元數據。例如,單擊一個數據庫並查看錶的列表,單擊其中一個表並查看列的列表,然後單擊列並獲取其數據類型,定義,關鍵信息等。我可以使用XQuery,或者我需要使用Node.js還是其他工具?

我將着手收集這些系統上的真實元數據並且在並行工作中開展MarkLogic開發,並且我想更確定我正朝着正確的方向前進。

在此先感謝您的任何建議。

+2

關閉選民的注意事項:所問的問題似乎很清楚(至少有兩個人已經發現它足夠清楚地提供答案)。如果關於系統體系結構的所有問題都過於寬泛,不足以作爲關於編程的問題,那麼這個世界就註定要(甚至更多)構建嚴重的系統。這個話題是高層次的,並不寬泛;它們不是同一件事。 –

回答

1

像Node.js這樣的客戶端最終最終會對MarkLogic函數庫(在XQuery和服務器端JavaScript中均公開)執行服務器端調用。

因此,根據定義,服務器端代碼可以完成客戶端代碼可以執行的超集。

要確定要採取的方法,請確定您需要在後端執行哪些查詢以支持哪些視圖。匹配的文檔集和提取文檔部分的組合非常靈活。

最好的方法是爲每個有凝聚力的實體建模一個文檔。

對於驅動查詢並返回響應的UI,可以在服務器上實現,但更爲典型的方法是在查詢MarkLogic的Node.js或Java中間層中提供UI(或更復雜數據處理)在MarkLogic上執行服務器端代碼。

希望有所幫助,您的任何意見

+0

感謝您的深思。好主意。我將把它們融入到我的解決方案中,讓你知道它是如何發展的。 –

0

感謝。

閱讀了一下RESTful設計原理;你對可瀏覽性的渴望是一個很好的匹配。 REST風格的設計原則對於您的描述最爲突出:您希望用戶能夠查看的每件事物都應該有一個URI。用戶應該能夠看到表格列表?爲表列表指定一個URI。表格的選擇應該取決於這條或那條信息?參數化URI。該列表應該允許用戶查看一個表的元數據?爲每個表的元數據指定一個URI;使表的列表包括(誰會想到它?!)到該URI的鏈接。

在過去幾年出現的關於RESTful設計的小型雪崩書籍中,我可以推薦Richardson和Ruby的RESTful Web服務(O'Reilly);毫無疑問,其他人也很好。

我在使用XQuery後端實現這種設計時遇到的唯一缺點是查詢總是如此簡單以至於感覺好像我沒有充分利用服務器的功能。我一直擔心XQuery引擎會感到無聊。

+0

我很想鑽研我的XQuery引擎。到目前爲止,它似乎比無聊更困惑。 :D感謝您的深思熟慮的回覆。你的建議是在我的能力範圍內。我會給它一個鏡頭。 –