分類您的資料

已完成

線上零售商務可能有不同類型的資料。 每種資料類型都可能受益於不同的儲存體解決方案。

應用程式資料能以下列三種方式之一來分類:結構化、半結構化和非結構化。 在此,您將了解如何將資料分類,以便針對資料類型選擇適當的儲存體解決方案。

將資料儲存在雲端中的方法

下列影片介紹將資料儲存在雲端中的選項:

結構化資料

在結構化資料 (有時稱為「關聯式資料」) 中,所有資料都有相同的欄位或屬性。 所有資料都有相同的組織與形式或「結構描述」。 共用的結構描述可以透過使用如結構化查詢語言 (SQL),輕鬆地搜尋此資料類型。 這個功能使得這個資料樣式非常適合用於 CRM 系統、保留和庫存管理等應用程式。

結構化資料通常儲存在具有資料列和資料行的資料庫資料表中。 在資料表中,索引鍵資料行會指出資料表中一個資料列與另一個資料表中另一個資料列的資料關聯方式。 在下圖中,具有成績資料的資料表使用索引鍵資料行,從學生名稱的資料表和班級資料的資料表取得資料。

圖表顯示兩個結構化資料表和一個關聯式資料表,其中有資料將這些資料表繫結在一起。

結構化資料相當簡單,輕鬆就能輸入、查詢及分析。 所有資料的格式皆相同。 然而,強制執行一致的結構也意味著資料的發展更加困難。 如果您新增或移除資料欄位,您必須更新每筆記錄以符合新結構。

半結構化資料

半結構化資料的組織程度不如結構化資料。 半結構化資料不會以關聯式格式儲存,因為欄位無法整齊地放入資料表、資料列和資料行。 半結構化資料包含可讓資料組織和階層清楚顯示的標記。 其中一個範例是機碼/值組。 半結構化資料也稱為非關聯式或「不只是 SQL (NoSQL)」資料。

資料序列化語言會定義半結構化資料。 在資料分類中,「序列化」是將資料轉換成可傳輸或可儲存格式的程序。

軟體開發人員使用資料序列化語言,將儲存在記憶體中的資料寫入檔案,然後資料即可傳送至另一個系統、剖析和讀取。 傳送者和接收者不需要知道另一個系統的詳細資料。 如果使用相同的序列化語言,這兩個系統都可以理解資料。

常見的序列化語言

三種常見的序列化語言為 XML、JSON 和 YAML。

XML

「可延伸標記語言 (XML)」是首先開始被廣泛使用的資料語言之一。 XML 以文字為基礎,使得此語言容易進行人工判讀和電腦判讀。 XML 剖析器幾乎適用於所有熱門的開發平台。

您可以使用 XML 來表示關聯性。 XML 具有結構描述、轉換,甚至是在 Web 上顯示的標準。

以下是以 XML 表示人員名稱、年齡和嗜好的範例:

<Person Age="23">
    <FirstName>Quinn</FirstName>
    <LastName>Anderson</LastName>
    <Hobbies>
        <Hobby Type="Sports">Golf</Hobby>
        <Hobby Type="Leisure">Reading</Hobby>
        <Hobby Type="Leisure">Guitar</Hobby>
   </Hobbies>
</Person>

XML 使用以角括號括住定義的「標記」表示資料形式。 標記有兩種形式:「元素」 (例如 <FirstName>),以及可以使用文字表示的「屬性」 (如 Age="23")。 元素可以使用子元素表示關聯性。 例如,<Hobbies> 標記表示 Hobby 元素的集合。

XML 具有彈性並可輕易地表示複雜的資料。 然而,這卻容易過於冗長,以致於比較大而不易儲存、處理以及透過網路傳遞。 因此,其他格式會變得較為熱門。

JSON

「JavaScript 物件標記法 (JSON)」有輕量型的規格,並使用大括弧表示資料結構。 比起 XML,JSON 較不繁瑣,而且容易進行人工判讀。 Web 服務經常使用 JSON 來傳回資料。

以下是以 JSON 表示相同人員名稱、年齡和嗜好的範例:

{
    "firstName": "Quinn",
    "lastName": "Anderson",
    "age": "23",
    "hobbies": [
        { "type": "Sports", "value": "Golf" },
        { "type": "Leisure", "value": "Reading" },
        { "type": "Leisure", "value": "Guitar" }
    ]
}

JSON 格式不像 XML 一樣正式。 其比較接近機碼/值組模型,而不是正式的資料表達方式。 就像您可能從名稱猜到,JavaScript 程式設計語言內建支援此格式,因而其常用於網頁程式開發。 如同 XML,其他語言具有剖析器,可讓您用來處理此資料格式。 JSON 的缺點是通常比較是以程式設計師為導向,因此非技術人員比較難以判讀和修改。

YAML

「YAML 不是標記語言 (YAML)」是最近開發的資料序列化語言。 使用 YAML 的優點之一是,比起其他程式設計語言,人工更加容易判讀。 行分隔和縮排會定義資料結構。 YAML 格式可以減少對括弧、逗號和中括弧等結構化字元的相依性。

以下是以 YAML 表示的同一份資料:

firstName: Quinn
lastName: Anderson
age: 23
hobbies:
    - type: Sports
      value: Golf
    - type: Leisure
      value: Reading
    - type: Leisure
      value: Guitar

此格式比 JSON 更容易閱讀。 由人員撰寫但由程式剖析的組態檔是常見的用途。 YAML 是這些資料格式中最新的資料格式。

它通常用於由人員所撰寫,但由程式剖析的組態檔。

什麼是半結構化資料或 NoSQL 資料?

下列影片說明半結構化資料和 NoSQL 資料儲存體選項:

非結構化資料

非結構化資料的組織未定義。 非結構化資料通常會以檔案格式 (例如相片或視訊檔案) 傳遞。 視訊檔案本身可能有整體結構並隨附半結構化中繼資料,但構成視訊本身的資料是非結構化的。 因此,相片、視訊與其他類似檔案會歸類為非結構化資料。

非結構化資料的範例包括:

  • 媒體檔案,例如相片、視訊和音訊檔案。
  • Microsoft 365 檔案,例如 Word 文件。
  • 文字檔。
  • 記錄檔。

資料分類:評估您的資料類型

資料能以下列三種方式之一來分類:結構化、半結構化和非結構化。 請了解其中的差異,如此一來您可以將您自己的資料分類,協助您選擇正確的儲存體解決方案。

結構化資料是可以整齊放入資料的資料表或資料行的組織化資料。 半結構化資料仍保持組織化並有清楚的屬性和值,但資料種類繁多。 非結構化資料無法整齊放入資料表或資料行中,而且沒有統一的結構描述。

讓我們看看線上零售企業中使用的資料集,然後將這些資料集加以分類。

產品類別目錄資料

線上零售企業的產品類別目錄資料本質上是半結構化的。 每個產品都有產品 SKU、描述、數量、價格、大小選項、色彩選項、相片,也可能有影片。 此資料一開始就是關聯式,因為所有資料都有相同的結構。 不過,當您引進新產品或不同類型的產品時,您可以新增資料欄位。 例如,您將要經銷的新網球鞋支援藍牙,可將感應器資料從鞋子轉送至使用者手機上的健身應用程式。 此功能似乎是不斷增長的趨勢,因此您想要讓客戶能夠選擇篩選「支援藍牙」的鞋子。 您不想使用支援藍牙的屬性更新所有現有的鞋子資料。 您只想將這個新屬性新增至新的鞋子。

透過新增支援藍牙的屬性,您的鞋子資料不再是同質性。 您已在結構描述中引進差異。 如果此變更是您預期會遇到的唯一例外,您可以將現有的資料標準化,讓所有產品都包含 [支援藍牙] 欄位,維持結構化、關聯性的組織。 不過,如果這只是您想像未來會支援的許多特殊欄位之一,則此資料的分類是半結構化。 標籤會組織資料,但類別目錄中每個產品可包含唯一的欄位。

產品類別目錄資料的分類是「半結構化」的

相片與影片

顯示在產品頁面上的相片和影片是非結構化資料。 雖然媒體檔案可能包含中繼資料,但媒體檔案的主體是非結構化的。

相片和影片的資料分類是「非結構化」的。

商務資料

商務分析師想要實作商業智慧,以執行庫存管線評估和銷售資料審查。 為執行這些作業,必須彙總多個月份的資料,再進行查詢。 由於彙總類似資料的需求,此資料必須是結構化的,才能比較前後月份。

商務資料的分類是「結構化」的。

檢定您的知識

1.

JSON 檔案是哪種資料類型?

2.

影片是哪種資料類型?