16 KiB
Làm việc với dữ liệu: Dữ liệu phi quan hệ
![]() |
---|
Làm việc với dữ liệu NoSQL - Sketchnote của @nitya |
Câu hỏi trước bài giảng
Dữ liệu không chỉ giới hạn trong cơ sở dữ liệu quan hệ. Bài học này tập trung vào dữ liệu phi quan hệ và sẽ giới thiệu các khái niệm cơ bản về bảng tính và NoSQL.
Bảng tính
Bảng tính là một cách phổ biến để lưu trữ và khám phá dữ liệu vì nó yêu cầu ít công việc để thiết lập và bắt đầu. Trong bài học này, bạn sẽ học các thành phần cơ bản của một bảng tính, cũng như công thức và hàm. Các ví dụ sẽ được minh họa bằng Microsoft Excel, nhưng hầu hết các phần và chủ đề sẽ có tên và bước tương tự so với các phần mềm bảng tính khác.
Một bảng tính là một tệp và sẽ được truy cập trong hệ thống tệp của máy tính, thiết bị hoặc hệ thống tệp dựa trên đám mây. Phần mềm có thể dựa trên trình duyệt hoặc là một ứng dụng phải được cài đặt trên máy tính hoặc tải xuống dưới dạng ứng dụng. Trong Excel, các tệp này cũng được định nghĩa là workbooks và thuật ngữ này sẽ được sử dụng trong phần còn lại của bài học.
Một workbook chứa một hoặc nhiều worksheets, nơi mỗi worksheet được gắn nhãn bằng các tab. Trong một worksheet có các hình chữ nhật gọi là cells, nơi chứa dữ liệu thực tế. Một cell là giao điểm của một hàng và một cột, nơi các cột được gắn nhãn bằng các ký tự chữ cái và các hàng được gắn nhãn bằng số. Một số bảng tính sẽ chứa tiêu đề trong vài hàng đầu tiên để mô tả dữ liệu trong một cell.
Với các yếu tố cơ bản này của một workbook Excel, chúng ta sẽ sử dụng một ví dụ từ Microsoft Templates tập trung vào một kho hàng để đi qua một số phần bổ sung của bảng tính.
Quản lý kho hàng
Tệp bảng tính có tên "InventoryExample" là một bảng tính được định dạng của các mục trong kho hàng, chứa ba worksheet, nơi các tab được gắn nhãn "Inventory List", "Inventory Pick List" và "Bin Lookup". Hàng 4 của worksheet Inventory List là tiêu đề, mô tả giá trị của mỗi cell trong cột tiêu đề.
Có những trường hợp một cell phụ thuộc vào giá trị của các cell khác để tạo ra giá trị của nó. Bảng tính Inventory List theo dõi chi phí của mỗi mục trong kho hàng, nhưng nếu chúng ta cần biết giá trị của toàn bộ kho hàng thì sao? Công thức thực hiện các hành động trên dữ liệu cell và được sử dụng để tính toán chi phí của kho hàng trong ví dụ này. Bảng tính này sử dụng một công thức trong cột Inventory Value để tính giá trị của mỗi mục bằng cách nhân số lượng dưới tiêu đề QTY và chi phí của nó dưới tiêu đề COST. Nhấp đúp hoặc làm nổi bật một cell sẽ hiển thị công thức. Bạn sẽ nhận thấy rằng các công thức bắt đầu bằng dấu bằng, theo sau là phép tính hoặc thao tác.
Chúng ta có thể sử dụng một công thức khác để cộng tất cả các giá trị của Inventory Value lại với nhau để có tổng giá trị. Điều này có thể được tính bằng cách cộng từng cell để tạo ra tổng, nhưng đó có thể là một nhiệm vụ tẻ nhạt. Excel có hàm, hoặc các công thức được định nghĩa trước để thực hiện các phép tính trên giá trị cell. Hàm yêu cầu các tham số, là các giá trị cần thiết để thực hiện các phép tính này. Khi hàm yêu cầu nhiều hơn một tham số, chúng cần được liệt kê theo thứ tự cụ thể hoặc hàm có thể không tính toán đúng giá trị. Ví dụ này sử dụng hàm SUM, và sử dụng các giá trị của Inventory Value làm tham số để cộng và tạo ra tổng được liệt kê dưới hàng 3, cột B (còn được gọi là B3).
NoSQL
NoSQL là một thuật ngữ bao quát cho các cách khác nhau để lưu trữ dữ liệu phi quan hệ và có thể được hiểu là "không phải SQL", "phi quan hệ" hoặc "không chỉ SQL". Các hệ thống cơ sở dữ liệu loại này có thể được phân loại thành 4 loại.
Nguồn từ Blog của Michał Białecki
Cơ sở dữ liệu key-value ghép cặp các khóa duy nhất, là một định danh duy nhất liên kết với một giá trị. Các cặp này được lưu trữ bằng bảng băm với một hàm băm phù hợp.
Nguồn từ Microsoft
Cơ sở dữ liệu đồ thị mô tả mối quan hệ trong dữ liệu và được biểu diễn dưới dạng một tập hợp các nút và cạnh. Một nút đại diện cho một thực thể, thứ tồn tại trong thế giới thực như một sinh viên hoặc bản sao kê ngân hàng. Các cạnh đại diện cho mối quan hệ giữa hai thực thể. Mỗi nút và cạnh có các thuộc tính cung cấp thông tin bổ sung về mỗi nút và cạnh.
Cơ sở dữ liệu dạng cột tổ chức dữ liệu thành các cột và hàng giống như cấu trúc dữ liệu quan hệ nhưng mỗi cột được chia thành các nhóm gọi là nhóm cột, nơi tất cả dữ liệu dưới một cột có liên quan và có thể được truy xuất và thay đổi trong một đơn vị.
Kho dữ liệu tài liệu với Azure Cosmos DB
Cơ sở dữ liệu tài liệu xây dựng trên khái niệm kho dữ liệu key-value và được tạo thành từ một loạt các trường và đối tượng. Phần này sẽ khám phá cơ sở dữ liệu tài liệu với trình giả lập Cosmos DB.
Cơ sở dữ liệu Cosmos DB phù hợp với định nghĩa "Không chỉ SQL", nơi cơ sở dữ liệu tài liệu của Cosmos DB dựa vào SQL để truy vấn dữ liệu. Bài học trước về SQL đã giới thiệu các khái niệm cơ bản của ngôn ngữ này, và chúng ta sẽ có thể áp dụng một số truy vấn tương tự vào cơ sở dữ liệu tài liệu ở đây. Chúng ta sẽ sử dụng trình giả lập Cosmos DB, cho phép chúng ta tạo và khám phá cơ sở dữ liệu tài liệu cục bộ trên máy tính. Đọc thêm về trình giả lập tại đây.
Một tài liệu là một tập hợp các trường và giá trị đối tượng, nơi các trường mô tả giá trị đối tượng đại diện cho điều gì. Dưới đây là một ví dụ về tài liệu.
{
"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
}
Các trường quan tâm trong tài liệu này là: firstname
, id
, và age
. Các trường còn lại với dấu gạch dưới được tạo bởi Cosmos DB.
Khám phá dữ liệu với trình giả lập Cosmos DB
Bạn có thể tải xuống và cài đặt trình giả lập cho Windows tại đây. Tham khảo tài liệu này để biết các tùy chọn về cách chạy trình giả lập cho macOS và Linux.
Trình giả lập mở một cửa sổ trình duyệt, nơi chế độ xem Explorer cho phép bạn khám phá các tài liệu.
Nếu bạn đang làm theo, hãy nhấp vào "Start with Sample" để tạo một cơ sở dữ liệu mẫu có tên SampleDB. Nếu bạn mở rộng SampleDB bằng cách nhấp vào mũi tên, bạn sẽ tìm thấy một container có tên Persons
, một container chứa một tập hợp các mục, là các tài liệu trong container. Bạn có thể khám phá bốn tài liệu riêng lẻ dưới Items
.
Truy vấn dữ liệu tài liệu với trình giả lập Cosmos DB
Chúng ta cũng có thể truy vấn dữ liệu mẫu bằng cách nhấp vào nút SQL Query mới (nút thứ hai từ bên trái).
SELECT * FROM c
trả về tất cả các tài liệu trong container. Hãy thêm một mệnh đề where và tìm tất cả mọi người dưới 40 tuổi.
SELECT * FROM c where c.age < 40
Truy vấn trả về hai tài liệu, lưu ý giá trị age của mỗi tài liệu nhỏ hơn 40.
JSON và tài liệu
Nếu bạn quen thuộc với JavaScript Object Notation (JSON), bạn sẽ nhận thấy rằng các tài liệu trông giống JSON. Có một tệp PersonsData.json
trong thư mục này với nhiều dữ liệu hơn mà bạn có thể tải lên container Persons trong trình giả lập qua nút Upload Item
.
Trong hầu hết các trường hợp, các API trả về dữ liệu JSON có thể được chuyển trực tiếp và lưu trữ trong cơ sở dữ liệu tài liệu. Dưới đây là một tài liệu khác, nó đại diện cho các tweet từ tài khoản Twitter của Microsoft được truy xuất bằng API Twitter, sau đó được chèn vào 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
Các trường quan tâm trong tài liệu này là: created_at
, id
, và text
.
🚀 Thử thách
Có một tệp TwitterData.json
mà bạn có thể tải lên cơ sở dữ liệu SampleDB. Khuyến nghị rằng bạn thêm nó vào một container riêng biệt. Điều này có thể được thực hiện bằng cách:
- Nhấp vào nút container mới ở góc trên bên phải
- Chọn cơ sở dữ liệu hiện có (SampleDB), tạo một id container cho container
- Đặt khóa phân vùng thành
/id
- Nhấp OK (bạn có thể bỏ qua phần thông tin còn lại trong chế độ xem này vì đây là một tập dữ liệu nhỏ chạy cục bộ trên máy của bạn)
- Mở container mới của bạn và tải lên tệp Twitter Data bằng nút
Upload Item
Hãy thử chạy một vài truy vấn select để tìm các tài liệu có từ Microsoft trong trường text. Gợi ý: thử sử dụng từ khóa LIKE
Câu hỏi sau bài giảng
Ôn tập & Tự học
-
Có một số định dạng và tính năng bổ sung được thêm vào bảng tính này mà bài học không đề cập. Microsoft có một thư viện lớn về tài liệu và video về Excel nếu bạn muốn tìm hiểu thêm.
-
Tài liệu kiến trúc này chi tiết các đặc điểm trong các loại dữ liệu phi quan hệ khác nhau: Dữ liệu phi quan hệ và NoSQL
-
Cosmos DB là một cơ sở dữ liệu phi quan hệ dựa trên đám mây cũng có thể lưu trữ các loại NoSQL khác nhau được đề cập trong bài học này. Tìm hiểu thêm về các loại này trong Module học Microsoft Cosmos DB
Bài tập
Tuyên bố miễn trừ trách nhiệm:
Tài liệu này đã được dịch bằng dịch vụ dịch thuật AI Co-op Translator. Mặc dù chúng tôi cố gắng đảm bảo độ chính xác, xin lưu ý rằng các bản dịch tự động có thể chứa lỗi hoặc không chính xác. Tài liệu gốc bằng ngôn ngữ bản địa nên được coi là nguồn tham khảo chính thức. Đối với các thông tin quan trọng, nên sử dụng dịch vụ dịch thuật chuyên nghiệp từ con người. Chúng tôi không chịu trách nhiệm cho bất kỳ sự hiểu lầm hoặc diễn giải sai nào phát sinh từ việc sử dụng bản dịch này.