Cơ sở dữ liệu phụ trợ nào phù hợp để triển khai IoT


15

Tôi phải cung cấp dịch vụ IoT cho khách hàng của mình. Các thành phần MQTT, Kafka và Rest Services sẽ được sử dụng để nhập dữ liệu từ các thiết bị vào cơ sở dữ liệu. Tôi cần thực hiện một số phân tích về dữ liệu trong phần phụ trợ. Kích thước dữ liệu sẽ là 135 byte / thiết bị và 6000 thiết bị / giây. Tôi đã chia sẻ kiến ​​trúc ở đây để hiểu các yêu cầu và các thành phần.

nhập mô tả hình ảnh ở đây

Tôi đã điều tra về các cửa hàng dữ liệu (MongoDB, Postgresql (TimescaleDB), Redis, Neo4j, Cassandra) và mọi nhà cung cấp đã chứng minh rằng cơ sở dữ liệu của họ phù hợp với trường hợp sử dụng IoT. Tôi đã nhầm lẫn về việc sử dụng cơ sở dữ liệu đã được chứng minh / đáng tin cậy nhất / có thể mở rộng cho IoT.

Điều gì có thể là cơ sở dữ liệu phù hợp nhất để nhập nhiều dữ liệu này và thực hiện phân tích?

Có bất kỳ điểm chuẩn đã được chứng minh cho cơ sở dữ liệu phù hợp cho IoT không?

Hãy cho những suy nghĩ và đề xuất của bạn.


Tôi đã sử dụng ElasticSearch cho một trường hợp sử dụng tương tự gần đây. Nhưng tôi không thể nói tại sao nó tốt hơn những người khác, phần đó chủ yếu dựa trên ý kiến. Tôi thực sự đã sử dụng Kafka để kết nối các cảm biến với DB. Có những thư viện đẹp hỗ trợ xử lý luồng Kafka với
Elaticsearch

2
Trường hợp sử dụng IoT của FTT quá rộng để xếp hạng triển khai. Mỗi người đều có điểm mạnh và điểm yếu riêng.
Gilles 'SO- ngừng trở thành ác quỷ'

1
Không phải lĩnh vực của tôi, nhưng tôi sẽ ngạc nhiên nếu bất kỳ db hiện đại nào trông giống như một sự phù hợp xấu ở đây. Sử dụng những gì bạn quen thuộc hoặc có công cụ tốt nhất.
Sean Houlihane

Câu trả lời:


4

Bạn bị giới hạn ở cơ sở dữ liệu NoQuery, bởi vì bất kỳ cơ sở dữ liệu SQL nào sẽ không cho phép bạn 6K TPS trực tiếp trên máy chủ cũng như bạn không thể sử dụng bất kỳ dịch vụ hoặc nền tảng đám mây SaaS nào chuyên về loại hoạt động đó - ví dụ: nhận dữ liệu viễn thông qua MQTT / Kafka, tách nó ra và lưu trữ cho 6000 thiết bị này và cung cấp API REST đơn giản để truy cập dữ liệu từ xa. Giống như flespi hoặc bất cứ điều gì tương tự.


có quan điểm của bạn và cảm ơn. Bạn có thể cho tôi biết cơ sở dữ liệu NoQuery nào phù hợp nhất cho trường hợp sử dụng của tôi không?
Đám tang Khan

Nó thực sự phụ thuộc vào kinh nghiệm và môi trường thời gian chạy của bạn. Đối với AWS / GoogleCloud, đây sẽ là một lựa chọn, đối với cài đặt cục bộ tôi muốn giới thiệu cho LevelDB hoặc bất kỳ đối thủ nào của nó, chỉ cần tìm kiếm levelDB trên google và bạn sẽ thấy danh sách đầy đủ về chúng. Trong bất kỳ biến thể nào, bạn sẽ cần triển khai API trung gian giữa ứng dụng web và cơ sở dữ liệu, do đó, nó cũng phụ thuộc vào loại phụ trợ bạn đang sử dụng cho việc này. Chính xác trường hợp của bạn được mô tả trong bài viết này , khi bạn điền dữ liệu bằng mqtt và truy cập nó và lịch sử từ web.
shal

1
btw, tôi đã thử trong 15 năm qua nhiều cơ sở dữ liệu NoQuery này. Bắt đầu từ Berkeley DB ở độ tuổi sớm. Cuối cùng, khi bạn cần toàn bộ sức mạnh và hiệu suất trong các ứng dụng của mình và cố gắng nén từ IOP và thông lượng tối đa của cơ sở dữ liệu, tôi không tìm thấy cách nào khác, ngoài việc phát triển công cụ cơ sở dữ liệu riêng, nhắm mục tiêu cụ thể vào các yêu cầu và trường hợp sử dụng viễn thông (IoT). Nhưng đó là kinh nghiệm của tôi +)
shal

"6K TPS" ?? 6tB / giây?
Mawg nói rằng phục hồi Monica

6.000 giao dịch / giây
Shal

4

IoT là dữ liệu chuỗi thời gian khá nhiều. Có một vài TSDB ngoài kia: InfluxDB, OpenTSDB, GridDB, v.v ... Tất cả chúng đều có phiên bản cộng đồng / oss để bạn có thể xem nó có phù hợp với nhu cầu của bạn không. InfluxDB là một phổ biến nhưng lưu ý rằng phân cụm chỉ có sẵn cho phiên bản trả phí. OpenTSD hoàn toàn là oss và GridDB nói rằng nó là định hướng IoT và nhanh hơn InfluxDB. Tùy thuộc vào nhu cầu của bạn, có thể bạn muốn tìm kiếm một thứ có tốc độ ăn nhanh.


2

Timescaledb, một phần mở rộng postgres được tùy chỉnh cho bộ dữ liệu thời gian hoạt động thực sự tốt. Và bạn có được các tính năng cơ sở dữ liệu quan hệ thông thường, sử dụng SQL, độ tin cậy, chỉ mục, khả năng mở rộng.


1

Câu hỏi rất rộng và không có câu trả lời chính xác nào, nhưng những liên kết này có thể giúp:

http://outlyer.com/blog/top10-open-source-time-series-database/ nhập mô tả hình ảnh ở đây

Theo dõi với điểm chuẩn: http://outlyer.com/blog/time-series-database-benchmark/

So sánh khác: https://gist.github.com/sacreman/00a85cf09251147175241d334aafa798

Tôi đặt một số quy tắc để cố gắng giới hạn phạm vi nếu không blog này sẽ không bao giờ kết thúc.

Chỉ có cơ sở dữ liệu chuỗi thời gian miễn phí và nguồn mở và các tính năng của chúng đã được so sánh. Vì vậy, có ai đó hỏi rằng bạn đã thử Kdb + và Informix chưa? Câu trả lời sẽ là không. Họ có lẽ là tuyệt vời mặc dù.

Danh sách này sẽ chỉ bao gồm các cơ sở dữ liệu tự phân loại chúng trong tài liệu tiếp thị của chúng theo chuỗi thời gian hoặc đã được viết bởi một công ty tuyệt vời như một thứ mà chúng đang sử dụng cho dữ liệu chuỗi thời gian.

Những gì đã được thực hiện là đọc các tài liệu chính thức, đọc StackOverflow, xem qua các vấn đề và mã của Github và nói chung là hack thông tin cùng nhau. Với điều này trong tâm trí một số sự thật có thể không chính xác.

Nếu bất cứ ai phát hiện ra bất cứ điều gì sai thực tế xin vui lòng cho tôi biết và tôi sẽ cập nhật blog.

Điểm chuẩn đã được dựa trên các tuyên bố và ước tính tiếp thị. Tại sao? Bởi vì điểm chuẩn là một phần lớn của công việc và dễ bị lỗi. Bạn luôn luôn nhận được những gì bạn nên điều chỉnh thiết lập không có giấy tờ đặc biệt này. Các số được liệt kê là rất thuận lợi cho hầu hết các cơ sở dữ liệu. Chúng là những con số được viết về hoặc tuyên bố trên Twitter tại một thời điểm trong quá khứ. Nếu bạn cảm thấy bất kỳ số nào sai, hãy cho tôi biết và tôi sẽ cập nhật chúng.


0

Ngoài các câu trả lời trước, tôi cũng khuyên bạn nên xem Tarantool , ClickHouseScyllaDB . Những giải pháp này là quá đủ cho hầu hết các trường hợp.

Ngoại trừ trong một số tình huống, đặc biệt là để nhúng, MDBX (hoặc một cái gì đó tương tự) có thể hữu ích.


2
Bạn có muốn giải thích lý do tại sao bạn đề nghị những điều này?
Helmar
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.