IoT 구현에 적합한 백엔드 데이터베이스


15

고객에게 IoT 서비스를 제공해야합니다. MQTT, Kafka 및 Rest Services 컴포넌트는 디바이스에서 데이터베이스로 데이터를 수집하는 데 사용됩니다. 백엔드의 데이터에 대한 분석을 수행해야합니다. 데이터 크기는 135 바이트 / 장치 및 6000 개의 장치 / 초입니다. 요구 사항과 구성 요소를 이해하기 위해 아키텍처를 공유했습니다.

여기에 이미지 설명을 입력하십시오

나는 데이터 저장소 (MongoDB, Postgresql (TimescaleDB), Redis, Neo4j, Cassandra)에 대해 조사했으며 모든 공급 업체는 데이터베이스가 IoT 사용 사례에 적합하다는 것을 입증했습니다. IoT에 입증되고 가장 신뢰할 수 있고 확장 가능한 데이터베이스를 사용하는 것에 대해 혼란 스러웠습니다.

이 많은 양의 데이터를 수집하고 분석하는 데 가장 적합한 데이터베이스는 무엇입니까?

IoT에 적합한 데이터베이스에 대한 입증 된 벤치 마크가 있습니까?

당신의 생각과 제안을 해주세요.


최근에 유사한 사용 사례에 ElasticSearch를 사용했습니다. 그러나 왜 그것이 다른 사람들보다 낫다고 말할 수는 없습니다. 말 그대로 Kafka를 사용하여 센서를 DB에 연결했습니다. Elasticsearch와 함께 Kafka의 스트림 처리를 지원하는 멋진 라이브러리가 있습니다
atakanyenel

2
"IoT 사용 사례"는 구현 범위를 평가하기에는 너무 광범위합니다. 각각의 장점과 단점이 있습니다.
Gilles 'SO- 악한 중지'

1
내 분야는 아니지만, 현대의 DB가 여기에 적합하지 않은 것처럼 보일 경우 놀랄 것입니다. 익숙하거나 가장 빛나는 툴링을 사용하십시오.
Sean Houlihane

답변:


4

SQL 데이터베이스는 서버에서 직접 6K TPS를 허용하지 않거나 이러한 종류의 작업에 이미 특화된 SaaS 클라우드 서비스 또는 플랫폼을 사용할 수 있기 때문에 NoSQL 데이터베이스로 제한됩니다 (예 : MQTT / Kafka를 통해 텔레매틱스 데이터 수신, 이 6000 개 장치를 분리하여 저장하고 원격 분석 데이터에 액세스 할 수있는 간단한 REST API를 제공하십시오. flespi 또는 이와 유사한 것을 좋아 하십시오 .


당신의 요점과 감사를 얻었습니다. 사용 사례에 가장 적합한 NoSQL 데이터베이스를 알려 주시겠습니까?
Mourish Khan

실제로는 경험과 런타임 환경에 따라 다릅니다. AWS / GoogleCloud의 경우 하나의 선택이 될 것입니다. 로컬 설치의 경우 LevelDB 또는 경쟁 업체에게 권장합니다 .Google에서 levelDB를 검색하면 전체 목록이 표시됩니다. 어떤 변형에서든 웹 응용 프로그램과 데이터베이스간에 중간 API를 구현해야하므로이를 위해 사용중인 백엔드 유형에 따라 다릅니다. mqtt로 데이터를 채우고 웹에서 히스토리에 액세스 할 때이 기사에 설명 된 정확한 사례.

1
btw, 지난 15 년 동안이 NoSQL 데이터베이스를 많이 사용해 보았습니다. 초기 버클리 DB에서 시작했습니다. 결국, 응용 프로그램에서 완전한 성능과 성능이 필요하고 데이터베이스 최대 IOP 및 처리량을 짜려고 할 때 다른 방법은 없지만, 특히 텔레매틱스 (IoT) 사용 사례 및 요구 사항을 대상으로하는 자체 데이터베이스 엔진을 개발하는 것입니다. 그러나 그것은 나의 경험이었다. +)
shal

"6K TPS"?? 6tB / 초?
Mawg는 모니카 복원

6.000 거래 / 초
shal

4

IoT는 거의 시계열 데이터입니다. InfluxDB, OpenTSDB, GridDB 등의 TSDB가 몇 가지 있습니다. 모두 커뮤니티 / OS 버전이 있으므로 필요에 맞는지 확인할 수 있습니다. InfluxDB는 널리 사용되지만 클러스터링은 유료 버전에서만 사용할 수 있습니다. OpenTSD는 순수한 OS이며 GridDB는 IoT 지향적이며 InfluxDB보다 빠릅니다. 필요에 따라 섭취 속도가 빠른 것을 찾고 싶을 수도 있습니다.


2

시계열 데이터 세트에 맞게 사용자 정의 된 postgres 확장 인 Timescaledb는 실제로 잘 작동합니다. 그리고 일반적인 관계형 데이터베이스 기능, SQL 사용, 안정성, 인덱스, 확장 성을 얻을 수 있습니다.


1

질문은 광범위하고 정확한 답변을 제공 할 수 없지만 다음 링크가 도움이 될 수 있습니다.

http://outlyer.com/blog/top10-open-source-time-series-databases/ 여기에 이미지 설명을 입력하십시오

벤치 마크를 사용한 후속 조치 : http://outlyer.com/blog/time-series-database-benchmarks/

다른 비교 : https://gist.github.com/sacreman/00a85cf09251147175241d334aafa798

범위를 제한하기 위해 몇 가지 규칙을 설정했습니다. 그렇지 않으면이 블로그가 끝나지 않습니다.

무료 및 오픈 소스 시계열 데이터베이스와 해당 기능 만 비교되었습니다. 따라서 누군가“Kdb +와 Informix를 사용해 보셨습니까?”라고 묻습니까? 그들은 아마 굉장 할 것이다.

이 목록에는 마케팅 자료에 시계열로 분류되거나 멋진 회사가 블로그에 시계열 데이터에 사용하는 것으로 작성된 데이터베이스 만 포함됩니다.

수행 된 작업은 공식 문서를 읽고, StackOverflow를 읽고, Github 문제와 코드를 살펴보고 일반적으로 정보를 해킹하는 것입니다. 이를 염두에두고 몇 가지 사실이 잘못되었을 수 있습니다.

누군가가 실제로 잘못된 것을 발견하면 알려 주시면 블로그를 업데이트하겠습니다.

벤치마킹은 마케팅 클레임 및 추정을 기반으로합니다. 왜? 벤치마킹은 상당한 작업 덩어리이며 오류가 발생하기 쉽습니다. 항상 "이 문서화되지 않은 특수 설정을 조정해야합니다"라는 메시지가 나타납니다. 나열된 숫자는 대부분의 데이터베이스에 매우 유리합니다. 과거에 블로그에서 블로그에 올렸거나 청구 된 숫자입니다. 숫자가 잘못되었다고 생각되면 알려 주시면 업데이트하겠습니다.


0

이전 답변 외에도 Tarantool , ClickHouseScyllaDB 를 보는 것이 좋습니다 . 이러한 솔루션은 대부분의 경우 충분합니다.

일부 상황에서, 특히 내장과 관련하여 MDBX (또는 이와 유사한 것)가 유용 할 수 있습니다.


3
추천하는 이유 를 자세히 설명 하시겠습니까 ?
Helmar
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.