![]() |
|---|
| 使用 NoSQL 數據 - 速記筆記由 @nitya 提供 |
數據並不限於關聯式數據庫。本課程重點介紹非關聯式數據,並涵蓋電子表格和 NoSQL 的基礎知識。
電子表格是一種流行的數據存儲和探索方式,因為它需要較少的設置工作即可開始使用。在本課程中,您將學習電子表格的基本組成部分,以及公式和函數。示例將以 Microsoft Excel 為例,但大多數部分和主題在其他電子表格軟件中名稱和步驟相似。
電子表格是一個文件,可以在電腦、設備或基於雲的文件系統中訪問。軟件本身可能是基於瀏覽器的,也可能是需要安裝在電腦上的應用程序或下載的應用。 在 Excel 中,這些文件也被定義為 工作簿,本課程其餘部分將使用此術語。
工作簿包含一個或多個 工作表,每個工作表都由標籤標記。在工作表中有稱為 儲存格 的矩形,儲存格中包含實際數據。儲存格是行和列的交叉點,其中列用字母標記,行用數字標記。一些電子表格會在前幾行中包含標題,以描述儲存格中的數據。
了解了 Excel 工作簿的這些基本元素後,我們將使用 Microsoft 模板 中的庫存示例來演示電子表格的一些其他部分。
名為 "InventoryExample" 的電子表格文件是一個格式化的庫存項目表,包含三個工作表,標籤分別為 "Inventory List"、"Inventory Pick List" 和 "Bin Lookup"。Inventory List 工作表的第 4 行是標題,描述了標題列中每個儲存格的值。
有些情況下,儲存格的值依賴於其他儲存格的值來生成。在庫存列表電子表格中,我們記錄了庫存中每件物品的成本,但如果我們需要知道整個庫存的價值呢?公式 是對儲存格數據執行操作的工具,用於計算庫存的成本。在此示例中,電子表格使用公式在 "Inventory Value" 列中計算每件物品的價值,方法是將 "QTY" 標題下的數量與 "COST" 標題下的成本相乘。雙擊或高亮顯示儲存格即可查看公式。您會注意到公式以等號開頭,後面是計算或操作。
我們可以使用另一個公式將 "Inventory Value" 的所有值相加以獲得總價值。這可以通過逐個添加每個儲存格來計算,但這樣做可能會非常繁瑣。Excel 提供了 函數,即預定義的公式,用於對儲存格值進行計算。函數需要參數,即執行計算所需的值。如果函數需要多個參數,則需要按特定順序列出,否則函數可能無法計算正確的值。此示例使用 SUM 函數,並使用 "Inventory Value" 的值作為參數來生成總價值,列於第 3 行,第 B 列(也稱為 B3)。
NoSQL 是一個涵蓋不同方式存儲非關聯式數據的術語,可以解釋為 "非 SQL"、"非關聯式" 或 "不僅僅是 SQL"。這類數據庫系統可以分為四種類型。
鍵值 數據庫將唯一鍵(唯一標識符)與值配對。這些配對使用 哈希表 和適當的哈希函數存儲。
來源:Microsoft
圖形 數據庫描述數據中的關係,並以節點和邊的集合表示。節點表示實體,即現實世界中存在的事物,例如學生或銀行賬單。邊表示兩個實體之間的關係。每個節點和邊都有屬性,提供有關節點和邊的額外信息。
列式 數據存儲以列和行的形式組織數據,類似於關聯式數據結構,但每列被分為稱為列族的組,其中一列下的所有數據都是相關的,可以作為一個單元檢索和更改。
文檔 數據存儲基於鍵值數據存儲的概念,由一系列字段和對象組成。本節將使用 Cosmos DB 模擬器探索文檔數據庫。
Cosmos DB 數據庫符合 "不僅僅是 SQL" 的定義,其中 Cosmos DB 的文檔數據庫依賴 SQL 來查詢數據。上一課 涵蓋了 SQL 的基礎知識,我們可以在此處將一些相同的查詢應用於文檔數據庫。我們將使用 Cosmos DB 模擬器,它允許我們在本地電腦上創建和探索文檔數據庫。更多關於模擬器的信息請參閱 此處。
文檔是字段和對象值的集合,其中字段描述對象值的含義。以下是一個文檔示例。
{
"firstname": "Eva",
"age": 44,
"id": "8c74a315-aebf-4a16-bb38-2430a9896ce5",
"_rid": "bHwDAPQz8s0BAAAAAAAAAA==",
"_self": "dbs/bHwDAA==/colls/bHwDAPQz8s0=/docs/bHwDAPQz8s0BAAAAAAAAAA==/",
"_etag": "\"00000000-0000-0000-9f95-010a691e01d7\"",
"_attachments": "attachments/",
"_ts": 1630544034
}此文檔中的關鍵字段包括:firstname、id 和 age。其餘帶下劃線的字段由 Cosmos DB 自動生成。
您可以 在此處下載並安裝 Windows 版模擬器。有關如何在 macOS 和 Linux 上運行模擬器的選項,請參閱 此文檔。
模擬器會啟動一個瀏覽器窗口,其中的 Explorer 視圖允許您探索文檔。
如果您正在跟隨教程,請點擊 "Start with Sample" 生成一個名為 SampleDB 的示例數據庫。如果您點擊箭頭展開 SampleDB,您會看到一個名為 Persons 的容器,容器包含一系列項目,即容器中的文檔。您可以探索 Items 下的四個單獨文檔。
我們還可以通過點擊 "New SQL Query" 按鈕(第二個按鈕)來查詢示例數據。
SELECT * FROM c 返回容器中的所有文檔。讓我們添加一個 where 子句,查找年齡小於 40 的人。
SELECT * FROM c where c.age < 40
查詢返回了兩個文檔,注意每個文檔的年齡值都小於 40。
如果您熟悉 JavaScript Object Notation (JSON),您會注意到文檔看起來與 JSON 類似。此目錄中有一個 PersonsData.json 文件,包含更多數據,您可以通過模擬器中的 Upload Item 按鈕將其上傳到 Persons 容器。
在大多數情況下,返回 JSON 數據的 API 可以直接轉移並存儲到文檔數據庫中。以下是另一個文檔,它表示從 Microsoft Twitter 帳戶檢索的推文,使用 Twitter API 獲取,然後插入到 Cosmos DB 中。
{
"created_at": "2021-08-31T19:03:01.000Z",
"id": "1432780985872142341",
"text": "Blank slate. Like this tweet if you’ve ever painted in Microsoft Paint before. https://t.co/cFeEs8eOPK",
"_rid": "dhAmAIUsA4oHAAAAAAAAAA==",
"_self": "dbs/dhAmAA==/colls/dhAmAIUsA4o=/docs/dhAmAIUsA4oHAAAAAAAAAA==/",
"_etag": "\"00000000-0000-0000-9f84-a0958ad901d7\"",
"_attachments": "attachments/",
"_ts": 1630537000此文檔中的關鍵字段包括:created_at、id 和 text。
目錄中有一個 TwitterData.json 文件,您可以將其上傳到 SampleDB 數據庫。建議您將其添加到一個單獨的容器中。操作步驟如下:
- 點擊右上角的 "New Container" 按鈕
- 選擇現有數據庫 (SampleDB),為容器創建一個容器 ID
- 將分區鍵設置為
/id - 點擊 OK(可以忽略此視圖中的其他信息,因為這是一個小型數據集,運行在您的本地機器上)
- 打開新容器,使用
Upload Item按鈕上傳 Twitter Data 文件
嘗試運行一些 SELECT 查詢,查找 text 字段中包含 Microsoft 的文檔。提示:嘗試使用 LIKE 關鍵字。
-
本課程未涵蓋電子表格中的一些額外格式和功能。如果您有興趣了解更多,Microsoft 提供了 大量文檔和視頻 關於 Excel 的內容。
-
此架構文檔詳細介紹了不同類型非關聯式數據的特徵:非關聯式數據與 NoSQL
-
Cosmos DB 是一個基於雲的非關聯式數據庫,也可以存儲本課程中提到的不同 NoSQL 類型。了解更多內容,請參閱此 Cosmos DB Microsoft Learn 模塊。
免責聲明:
此文件已使用人工智能翻譯服務 Co-op Translator 翻譯。我們致力於提供準確的翻譯,但請注意,自動翻譯可能包含錯誤或不準確之處。應以原始語言的文件作為權威來源。對於關鍵資訊,建議尋求專業人工翻譯。我們對因使用此翻譯而引起的任何誤解或錯誤解讀概不負責。









