Việc lựa chọn (các) nền tảng cơ sở dữ liệu phù hợp cho các giải pháp IoT là khá khó khăn. Một thách thức là vị trí — các giải pháp IoT có thể được phân phối trên các vùng địa lý. Trái ngược với cách tiếp cận dựa trên cloud tập trung, nhiều giải pháp đang áp dụng sự kết hợp của cả điện toán sương mù ở biên và điện toán cloud.
Các ứng dụng quan trọng thu thập khối lượng lớn dữ liệu và dựa vào độ trễ thấp đang ngày càng được đẩy mạnh, tuy nhiên, cần phải kết nối các máy chủ biên với cloud. Do đó, các nền tảng cơ sở dữ liệu phải cung cấp tính linh hoạt để xử lý dữ liệu ở biên và đồng bộ hóa giữa các máy chủ biên và cloud.
Một thách thức khác là sự đa dạng của các tính năng cần thiết để hỗ trợ các trường hợp sử dụng IoT. Các khả năng bạn muốn trong cơ sở dữ liệu của mình có thể từ truyền dữ liệu thời gian thực; lọc và tổng hợp dữ liệu; hoạt động đọc độ trễ gần bằng không; phân tích tức thì; tính khả dụng cao; phân phối địa lý; tính linh hoạt của lược đồ, v.v. Bài viết này hướng dẫn bạn qua bốn bước để chọn nền tảng cơ sở dữ liệu phù hợp cho Giải pháp IoT của bạn:
1. Xác định nhu cầu dữ liệu cho giải pháp của bạn,
2. Chia nhỏ giải pháp của bạn thành các dịch vụ độc lập và liệt kê các nhu cầu dữ liệu của chúng.
3. Nhóm các dịch vụ của bạn theo yêu cầu dữ liệu của chúng và chọn (các) cơ sở dữ liệu phù hợp,
4. Đánh giá hiệu quả chi phí và nguồn lực.
Xác định nhu cầu dữ liệu cho giải pháp của bạn
Một giải pháp IoT hoàn chỉnh không chỉ đơn giản là kết nối một thiết bị với internet. Các giải pháp IoT phụ thuộc vào việc thu thập và xử lý dữ liệu từ các thiết bị được kết nối, đưa ra các quyết định thông minh như kích hoạt thông báo hoặc hành động, tính toán phân tích thời gian thực, thu thập các mẫu từ dữ liệu lịch sử, v.v.
Để đơn giản hóa cuộc thảo luận của chúng ta, hãy giả sử một giải pháp IoT chung 1 mẫu. Trong giải pháp của chúng ta , chúng ta có các cảm biến và thiết bị truyền động được lắp đặt trong toàn doanh nghiệp. Hàng ngàn cảm biến và thiết bị truyền động kết nối với một máy chủ biên. Giải pháp IoT thu thập dữ liệu từ tất cả các cảm biến một cách liên tục và đưa ra các quyết định theo thời gian thực để điều khiển các cảm biến và thiết bị truyền động, cảnh báo các giám sát hệ thống về hoạt động bất thường và cung cấp cái nhìn lịch sử về số liệu phân tích cho người dùng cuối.
Trước khi bạn quyết định về các dịch vụ và cơ sở dữ liệu đi kèm với chúng, bạn cần phải biết rõ bạn đang làm gì với dữ liệu của mình và ở đâu. Những câu hỏi này giúp bạn hiểu và ưu tiên nhu cầu dữ liệu của mình:
- Cấu trúc liên kết của các máy chủ biên là gì? Cấu hình hệ thống của máy chủ biên là gì — có bao nhiêu RAM và bộ nhớ?
- Xử lý dữ liệu và ra quyết định nào được giao cho các máy chủ biên?
- Giải pháp cloud được triển khai trong một khu vực hay phân tán trên nhiều khu vực?
- Cấu hình hệ thống của máy chủ cloud là gì?
- Khối lượng dữ liệu được truyền từ thiết bị đến máy chủ biên và từ máy chủ biên đến máy chủ trung tâm là bao nhiêu? Ước tính cho khối lượng cao nhất là bao nhiêu?
- Các định dạng khác nhau của dữ liệu đến từ các thiết bị và các kỹ thuật chuẩn hóa, dịch và lọc được áp dụng trên dữ liệu là gì?
- Giải pháp IoT có kiểm soát các thiết bị hoặc bộ truyền động không? Nếu có, những tính năng thiết bị nào được kiểm soát bởi giải pháp IoT? Họ có yêu cầu phản hồi thời gian thực không?
- Thời gian quay vòng dự kiến để phản ứng với bất kỳ sự kiện quan trọng nào?
- Phân tích thời gian thực được tính toán từ dữ liệu đến là gì?
- Thông tin chi tiết về doanh nghiệp thu được từ dữ liệu lịch sử là gì?
- Các dịch vụ bên ngoài phụ thuộc vào dữ liệu là gì?
Chia nhỏ giải pháp của bạn thành các dịch vụ phần mềm độc lập
Bước trước đó tập trung vào các câu hỏi liên quan đến “cái gì” và “ở đâu” của giải pháp của bạn. Bây giờ bạn sẽ trả lời làm thế nào. Trong bước này, bạn sẽ thiết kế các dịch vụ hoặc thành phần phần mềm thực hiện các tác vụ độc lập, cụ thể.
Khi bạn chia nhỏ giải pháp IoT mẫu được mô tả trước đó thành các dịch vụ độc lập, bạn có thể nhận được thiết kế như trong Hình 2. Bản thân giải pháp IoT được phân phối theo địa lý, nơi một số thành phần được triển khai trên mạng biên và những thành phần khác ở vị trí tập trung .
Nhóm các dịch vụ của bạn theo nhu cầu dữ liệu của chúng và chọn cơ sở dữ liệu phù hợp
Bây giờ bạn đã chia nhỏ giải pháp của mình thành các dịch vụ phần mềm và xác định nhu cầu dữ liệu của chúng, bước tiếp theo sẽ là chọn (các) cơ sở dữ liệu phù hợp. Trước khi bạn quyết định cơ sở dữ liệu, hãy vẽ biểu đồ tốc độ thời gian cho dữ liệu của từng dịch vụ. Trục thời gian cho bạn biết dữ liệu ở trong cơ sở dữ liệu không thay đổi trong bao lâu và trục tốc độ biểu thị tốc độ đọc / ghi dữ liệu theo yêu cầu của dịch vụ.
Khi chúng ta vẽ biểu đồ cho ví dụ IoT của mình và đính kèm các dịch vụ vào biểu đồ, biểu đồ sẽ giống như bên dưới. Ví dụ: dữ liệu liên tục đến và đi từ Máy chủ nhập dữ liệu. Do đó, dữ liệu sẽ nằm trong cơ sở dữ liệu trong một khoảng thời gian rất ngắn. Đồng thời, dữ liệu có thể đến với khối lượng và tốc độ cao. Do đó, chúng ta cần một cơ sở dữ liệu tốc độ cao với độ trễ thấp để giữ dữ liệu cho dịch vụ nhập. Công cụ phân tích đọc luồng dữ liệu liên tục, đưa ra quyết định theo thời gian thực và thực hiện các sửa đổi liên quan đối với cơ sở dữ liệu trên cơ sở liên tục. Mặt khác, dịch vụ tình báo kinh doanh dựa trên dữ liệu lịch sử.
Khi bạn đã hoàn thành với biểu đồ tốc độ thời gian, bước tiếp theo là nhóm các dịch vụ có đặc điểm truy cập dữ liệu tương tự. Việc nhóm các dịch vụ dựa trên nhu cầu dữ liệu của chúng giúp bạn giới hạn số lượng cơ sở dữ liệu trong môi trường của mình, giảm chi phí hoạt động. Quá trình này cũng giúp bạn loại bỏ các cơ sở dữ liệu không phù hợp với yêu cầu của bạn.
Trong giải pháp ví dụ của chúng tôi, chúng tôi nhóm các dịch vụ của mình thành hai cơ sở dữ liệu chính: cơ sở dữ liệu nóng và cơ sở dữ liệu lạnh. Kiến trúc cuối cùng, bao gồm các cơ sở dữ liệu, sẽ giống như Hình 4.
Các cơ sở dữ liệu, đặc biệt là những cơ sở dữ liệu lưu trữ dữ liệu nóng, được triển khai gần với các thiết bị để giảm thiểu độ trễ của mạng. Các lựa chọn cơ sở dữ liệu cho dữ liệu nóng và lạnh:
Cơ sở dữ liệu nóng
Do chi phí của RAM trở nên hợp lý hơn, cơ sở dữ liệu trong bộ nhớ thường là một lựa chọn tốt. Cơ sở dữ liệu trong bộ nhớ cung cấp khả năng đọc và ghi dữ liệu với độ trễ thấp nhất. Khi chọn một cơ sở dữ liệu nóng, bạn nên xem xét các khả năng sau để giúp bạn thu hẹp các tùy chọn cơ sở dữ liệu của mình:
1. Tính linh hoạt với các định dạng dữ liệu: Nếu bạn cần hỗ trợ nhiều loại thiết bị, thì bạn sẽ buộc phải hỗ trợ nhiều định dạng dữ liệu và giao tiếp. Tìm kiếm một cơ sở dữ liệu có thể hỗ trợ nhiều định dạng dữ liệu khác nhau.
2. Khả năng truy vấn: Giải pháp của bạn, đặc biệt là công cụ phân tích, sẽ truy vấn cơ sở dữ liệu để tính toán và suy luận thêm thông tin. Bạn nên xác minh tất cả các tính năng liên quan đến truy vấn, lập chỉ mục và tổ chức dữ liệu (ví dụ: cách tổ chức dữ liệu chuỗi thời gian).
3. Nhắn tin và hàng đợi : Bạn cần một giải pháp nhắn tin và hàng đợi mạnh để kết nối tất cả các dịch vụ trải dài khắp các vùng địa lý. Cơ sở dữ liệu hỗ trợ các luồng sẽ giúp bạn nhắn tin và hàng đợi cùng với việc chuyển đổi, phân tích và lọc dữ liệu — tất cả đều trong thời gian thực. Với mô hình xuất bản / đăng ký (thường được gọi là pub / sub), bạn có thể tách nhà sản xuất và người tiêu dùng, đồng thời xây dựng giải pháp IoT phân tán có tính linh hoạt cao.
4. Sự lan tỏa và mở rộng dữ liệu: Đối với nhiều giải pháp (cụ thể là các giải pháp IoT), dữ liệu phát triển rất nhanh. Khi bạn thiết kế dung lượng cho bộ lưu trữ nóng, bạn nên xem xét các tùy chọn loại bỏ và tràn. Nói cách khác, bạn nên có một kế hoạch cho những gì bạn sẽ làm nếu RAM của bạn đầy. Kiểm tra xem cơ sở dữ liệu tốc độ cao có cung cấp “quyền truy cập bộ nhớ theo cấp độ” hay không, trong đó bộ nhớ flash hoặc đĩa có thể được sử dụng làm bộ mở rộng RAM.
5. Tính khả dụng cao và khả năng phục hồi sau thảm họa: Giảm thiểu thời gian chết là điều cần thiết đối với hầu hết các doanh nghiệp. Phổ biến cơ sở dữ liệu trong bộ nhớ cung cấp tính khả dụng cao thông qua phân nhóm, sao chép trong bộ nhớ và phát hiện lỗi tự động, cũng như hỗ trợ khôi phục thảm họa thông qua tính bền bỉ và nhân rộng trên các trung tâm dữ liệu, vùng và khu vực.
6. Phân phối theo địa lý: Nếu mạng IoT của bạn được phân phối theo địa lý và nếu kiến trúc của bạn yêu cầu một số dịch vụ của bạn phải ở gần các thiết bị của bạn, thì bạn có thể cần một cơ sở dữ liệu hỗ trợ phân phối theo địa lý.
7. Két an toàn nhị phân: Các giải pháp IoT thường lưu trữ dữ liệu nhị phân (video từ camera quan sát chẳng hạn). Giải pháp của bạn có yêu cầu lưu trữ và truy cập dữ liệu nhị phân không? Nếu có, thì bạn cần chọn một cơ sở dữ liệu là an toàn nhị phân.
Cơ sở dữ liệu lạnh
Dữ liệu lịch sử cho các giải pháp IoT có thể tăng lên nhiều terabyte, thậm chí vượt quá một petabyte trong một số trường hợp. Các lựa chọn phổ biến để lưu trữ dữ liệu lịch sử bao gồm các giải pháp lưu trữ trên phần cứng hàng hóa. Các truy vấn thường tuân theo mô hình thu nhỏ bản đồ. Thông thường, dữ liệu lịch sử cũng được lập chỉ mục trong công cụ tìm kiếm để đối sánh mẫu và tổng hợp dữ liệu. Nếu bạn đang lưu trữ dữ liệu trên cloud, hãy kiểm tra với nhà cung cấp dịch vụ cloud của bạn để xác định giải pháp lưu trữ dữ liệu nào hiệu quả nhất về chi phí trong khu vực của bạn.
Đánh giá chi phí và hiệu quả tài nguyên
Việc phân loại cơ sở dữ liệu thành hai loại — nóng và lạnh — không phải lúc nào cũng có nghĩa là bạn chỉ nên có hai cơ sở dữ liệu, nhưng làm như vậy có thể giúp bạn thu hẹp các lựa chọn cơ sở dữ liệu của mình. Đối với hầu hết các trường hợp sử dụng IoT, một cơ sở dữ liệu tốc độ cao có thể đáp ứng tất cả các yêu cầu cho cơ sở dữ liệu nóng của bạn.
Nếu bạn cần một cơ sở dữ liệu nóng thứ hai chuyên biệt, thì bạn chỉ nên đưa ra quyết định sau khi đánh giá kỹ lưỡng. Về lưu trữ lạnh, các tùy chọn có thể bao gồm từ cơ sở dữ liệu quan hệ đến hồ dữ liệu. Một sai lầm mà các kiến trúc sư mắc phải là tạo ra một kiến trúc đa ô với một cơ sở dữ liệu chuyên biệt cho từng dịch vụ. Điều này không chỉ làm tăng độ phức tạp của ngăn xếp ứng dụng mà còn cả chi phí và chi phí hoạt động.
Tổng chi phí sở hữu một cơ sở dữ liệu là một phép tính với nhiều yếu tố. Bản thân chi phí của cơ sở dữ liệu chỉ là một phần nhỏ trong tổng chi phí. Phần lớn chi phí liên quan đến việc sở hữu và vận hành cơ sở dữ liệu đến từ chi phí tính toán, mạng và tài nguyên lưu trữ, cũng như chi phí hoạt động. Một yếu tố quan trọng khác cần xem xét là chi phí mất dữ liệu và khả năng nó có thể xảy ra.
1. Chi phí License cơ sở dữ liệu: Chi phí cơ sở dữ liệu phụ thuộc vào mô hình định giá của nhà cung cấp. Chi phí có thể là một hàm của số lượng CPU; số lượng mảnh trong cụm; kích thước cơ sở dữ liệu; thông lượng (số lượng hoạt động tối đa mỗi giây); khoảng thời gian (hàng năm, hàng tháng, hàng giờ, v.v.); các tính năng cho tính khả dụng và phục hồi cao; tính khả dụng trong các vùng nhiều tầng của cloud; v.v … Nếu bạn đang sử dụng cơ sở dữ liệu có sẵn dưới dạng phần mềm nguồn mở và tùy thuộc vào loại giấy phép bạn sử dụng, chi phí cơ sở dữ liệu thậm chí có thể là con số không.
2. Chi phí tài nguyên tính toán: Bạn có các lựa chọn hạn chế để mở rộng khả năng tính toán của các máy chủ biên trong môi trường sương mù, vì vậy bạn cố gắng điều chỉnh cơ sở dữ liệu mang lại cho bạn hiệu suất tốt nhất cho cấu hình phần cứng của bạn. Bạn có thể được yêu cầu đầu tư nhiều hơn vào RAM để có được (các) cơ sở dữ liệu nóng của mình hoạt động tốt hơn.
Về tài nguyên điện toán cloud, chi phí của bạn chủ yếu phụ thuộc vào mức độ hiệu quả của cơ sở dữ liệu của bạn trong việc sử dụng tài nguyên. Ví dụ, một cơ sở dữ liệu nhẹ, an toàn theo luồng có thể thực hiện một triệu thao tác đọc / ghi mỗi giây chỉ với hai máy chủ hàng hóa, trong khi một số cơ sở dữ liệu truyền thống có thể yêu cầu hàng chục nếu không phải hàng trăm máy chủ để thực hiện cùng một số lượng hoạt động mỗi giây.
Ngoài hiệu quả cơ sở dữ liệu, chi phí đầu tư phần cứng của bạn là một chức năng của thông lượng, số lượng CPU, RAM, bộ nhớ flash, card mạng, v.v. Kiến trúc cơ sở dữ liệu để có tính sẵn sàng cao cũng đóng một vai trò. Ví dụ: kiến trúc chuyển đổi dự phòng dựa trên túc số sẽ chỉ yêu cầu một bản sao của máy chủ phụ, trong khi kiến trúc không dựa trên túc số sẽ cần hai bản sao dữ liệu để tránh bị phân chia.
3. Chi phí mất dữ liệu: Có một số điều bạn cần cân nhắc khi tính toán chi phí mất dữ liệu:
a. Doanh nghiệp của bạn phải chịu tổn thất gì nếu bạn làm mất dữ liệu trong cơ sở dữ liệu của mình?
b. Khả năng mất mát có thể xảy ra là gì?
c. Chi phí khôi phục dữ liệu là bao nhiêu?
d. SLA của nhà cung cấp của bạn có bao gồm chi phí không?
Có bảo hiểm thích hợp để chống lại việc mất dữ liệu là cực kỳ quan trọng, đặc biệt là đối với các giải pháp IoT thương mại. Câu trả lời cho câu hỏi đầu tiên (“Doanh nghiệp của bạn phải chịu tổn thất gì nếu bạn mất dữ liệu trong cơ sở dữ liệu của mình?”) Là hoàn toàn cụ thể cho doanh nghiệp của bạn — chỉ bạn mới có thể xác lập chi phí tổn thất kinh doanh.
Phần còn lại của các câu hỏi phụ thuộc vào sự lựa chọn và kiến trúc cơ sở dữ liệu của bạn. Một kiến trúc phù hợp sẽ đảm bảo rằng việc mất dữ liệu ít có khả năng xảy ra hơn. Nếu bạn đang mua cơ sở dữ liệu từ một nhà cung cấp, hãy xác minh thỏa thuận hỗ trợ và SLA của bạn. Nếu cơ sở dữ liệu thuộc về một cộng đồng mã nguồn mở, hãy đánh giá mức độ tích cực của cộng đồng và loại cộng đồng hoặc hỗ trợ thương mại nào bạn nhận được cho cơ sở dữ liệu của mình.
4. Chi phí hoạt động: Đây là một chức năng cho biết bạn cần bao nhiêu giờ người hoặc sức người để vận hành cơ sở dữ liệu của mình. Tự động hóa là câu thần chú để thành công. Cơ sở dữ liệu cung cấp các điều khiển tự động hóa để triển khai, phân vùng provi, chuyển đổi dự phòng, mở rộng quy mô, phân vùng dữ liệu, sao lưu, phục hồi, giám sát và cảnh báo, sẽ giúp bạn hoạt động hiệu quả.
Để đánh giá chi phí hoạt động dài hạn, bạn nên đánh giá chi phí khóa nhà cung cấp cloud. Nếu cơ sở dữ liệu của bạn bị ràng buộc với một nhà cung cấp cloud, thì sự gắn bó của bạn với nhà cung cấp của bạn sẽ phát triển khi dữ liệu của bạn phát triển. Cơ sở dữ liệu bất khả tri cloud sẽ cho phép bạn chọn nhà cung cấp cloud hiệu quả về chi phí nhất mà không phải chịu thêm chi phí di chuyển dữ liệu trong tương lai.
Kết Luận
Khi nói đến việc chọn cơ sở dữ liệu phù hợp cho giải pháp IoT thế hệ tiếp theo của bạn, bạn khá dễ bị lạc trong vô số cơ sở dữ liệu hiện có ngày nay. Tuy nhiên, nếu bạn chia giải pháp của mình thành các dịch vụ thành phần và hiểu nhu cầu cơ sở dữ liệu của chúng, bạn có thể thu hẹp các lựa chọn cơ sở dữ liệu của mình một cách hiệu quả. Hầu hết các giải pháp IoT có thể phụ thuộc vào dữ liệu nóng