JSON 文件映射至物件,這是大多數程式設計語言中常見的資料類型。建置應用程式時,開發人員可靈活地直接從程式碼建立和更新文件。這意味著前期建立
資料模型
花費的時間更少。因此,應用程式開發更快捷快、更有效率。
靈活的結構描述
以文件為導向的資料庫可讓您在同一集合中,建立具有不同欄位的多個文件。在存放電子郵件或社交媒體張貼等非結構化資料時,這可能很方便。但是,某些文件資料庫提供結構描述驗證,因此,您可以對結構施加一些限制。
文件資料庫提供內建的分散功能。您可以在多個伺服器上水平擴展,而不會影響效能,這也具有成本效益。此外,文件資料庫透過內建複寫來提供容錯能力和可用性。
文件資料庫非常適合用於部落格和影片平台等內容管理應用程式。有了文件資料庫後,應用程式所追蹤的每個實體都能以單一文件的形式儲存。隨著資料需求不斷演變,文件資料庫能方便開發人員以直覺的方式更新應用程式。此外,開發人員如果需要變更資料模型,僅需更新受影響的文件即可。不需要更新結構描述,也不用讓資料庫停機以進行變更。
文件資料庫能有效地存放目錄資訊並發揮高效率。舉例來說,在電子商務應用程式中,不同產品屬性數目通常都不同。在
關聯式資料庫
中管理上千個屬性效率不佳,而且讀取效能也會受到影響。若使用文件資料庫,各項產品屬性皆能以單一文件的形式描述,如此管理起來更加容易,讀取速度也更快。變更其中一個產品的屬性也不會影響其他產品。
感應器管理
得益於
物聯網 (IoT)
,組織可定期從感應器和儀表等智慧型裝置收集資料。感應器資料通常會以變數值的連續串流形式輸入。由於延遲問題,某些資料物件可能不完整、重複或遺失。此外,您必須收集大量資料,再篩選或彙總以進行分析。
在這種情況下,文件存放區更方便。您可以快速地以原樣存放感應器資料,而無需將其清除或使其符合預先確定的結構描述。您還可以視需要進行擴展,並在分析完成後刪除整個文件。
物件是鍵值對的集合。基本上,JSON 文件允許開發人員內嵌物件並建立巢狀對。例如,{"address": {"country": "USA","state": "Texas"}}。
JSON 文件範例
在以下範例中,類似 JSON 的文件描述了一個電影資料集。
"year" : 2013,
"title" : "Turn It Down, Or Else!",
"info" : {
"directors" : [ "Alice Smith", "Bob Jones"],
"release_date" : "2013-01-18T00:00:00Z",
"rating" : 6.2,
"genres" : ["Comedy", "Drama"],
"image_url" : "http://ia.media-imdb.com/images/N/O9ERWAU7FS797AJ7LU8HN09AMUP908RLlo5JF90EWR7LJKQ7@@._V1_SX400_.jpg",
"plot" : "A rock band plays their music at high volumes, annoying the neighbors.",
"actors" : ["David Matthewman", "Jonathan G. Neff"]
"year": 2015,
"title": "The Big New Movie",
"info": {
"plot": "Nothing happens at all.",
"rating": 0
Code snippet copied
您可以觀察到 JSON 文件非常靈活地保存簡單的值、陣列和物件。您甚至可以設置包含 JSON 物件的陣列。因此,以文件為導向的資料庫可讓您建立內嵌式 JSON 物件的無限層級階層。這完全取決於您要提供文件存放區的結構描述。
文件資料庫操作
您可以建立、讀取、更新和刪除存放在資料庫中的整個文件。文件資料庫提供查詢語言或 API,允許開發人員執行下列操作:
您可以在資料庫中建立文件。每個文件都有一個用做索引鍵的不重複識別符。
您可以使用 API 或查詢語言來讀取文件資料。您可以使用欄位值或索引鍵來執行查詢。您還可以將索引新增至資料庫,以提高讀取效能。
您可以靈活地更新現有文件。您可以重寫整個文件或更新個別值。
文件資料庫與鍵值存放區之間有何差異
鍵值資料庫
是一種 NoSQL 資料庫,其使用簡單的鍵值方法來存放資料。這種資料庫將資料儲存為鍵值組集合,而其中的鍵做為唯一識別碼。索引鍵和值不限種類,從簡單物件到複雜的複合物件皆可。
以文件為導向的資料庫是一種特殊類型的鍵值存放區,其中索引鍵只能是字串。此外,該文件使用 JSON 等標準或 XML 等相關語言編碼。您還可以將 PDF、影像檔案或文字文件直接做為值來存放。
查詢文件存放區時,您可以讀取值或值的一部分,如果值是另一個 JSON 物件時尤其如此。例如,您可以使用 {"book": {"id": 1,"price": $10}},然後查詢 book.price,資料庫將傳回值 10。鍵值資料庫總是傳回整個值且帶有 ID 和價格資訊。
AWS 如何支援您的文件資料庫要求
Amazon DocumentDB (with MongoDB compatibility)
是一種全受管、原生 JSON 文件資料庫服務,可支援包括 MongoDB、工作負載在內的文件。開發人員可以使用相同的 MongoDB 應用程式程式碼、驅動程式和工具在 Amazon DocumentDB 上執行、管理和擴展工作負載。您可以享受提升的效能、可擴展性和可用性,無需擔心管理底層基礎設施。藉由 Amazon DocumentDB,您可以︰
在使用
Amazon DocumentDB Elastic 叢集
時,擴展至每秒數百萬次讀取和寫入請求,對效能的影響很小或幾乎沒有,並且無需對底層基礎設施進行管理。
分離儲存與運算,因此您可以憑藉多達 15 個共用相同底層儲存的讀取複本,而無需在複本節點執行寫入,藉此來提高讀取效能。
在無需支付授權費用的情況下,自動執行無差異化的手動資料庫管理任務,包括硬體佈建、修補、設定等等。
透過
Amazon DocumentDB 全球叢集
,實現 99.99% 的增強高可用性,適用於支援快速本機讀取效能的全球分散式應用程式。
透過自動複寫、持續備份和嚴格的網路隔離,實現 99.99% 的耐久性。
高度可靠且耐用,具有容錯和自我修復的儲存、時間點復原、持續備份等。Amazon DocumentDB 透過複寫六種新的寫入方式,同時只需為一份副本付費,讓您在區域內三個可用區域中的資料持久耐用。
藉由預設靜態加密、網路隔離和進階稽核來實現高度安全性,同時能夠透過精細存取來控制資源層級的許可。
廣泛的合規範覆蓋範圍,包括 SOC (1、2 和 3)、PCI DSS、HIPAA 認證。
立即
建立免費帳戶
,開始使用 AWS 上的文件資料庫。
AWS 對 Internet Explorer 的支援將於 07/31/2022 結束。支援的瀏覽器包括 Chrome、Firefox、Edge 和 Safari。
進一步了解 »