对 Azure Cosmos DB 进行调查

在物联网 (Internet of Things, IoT) 系统中,需要处理从各种传感器中以毫秒级周期获取的大量时序数据。为了存储这种数据,需要时序数据库系统。因此,我们总结了 Azure Cosmos 能够处理时序数据的相关信息,包括操作环境、许可等基本信息,以及支持的编程语言、可用性、可扩展性等功能信息以及安全性等方面。

Azure Cosmos DB = Azure 余晖数据库

Azure Cosmos DB可以弹性地独立扩展吞吐量和存储。通过弹性扩展吞吐量和存储,并使用首选的API(如SQL、MongoDB、Cassandra、Tables和Gremlin),您可以实现数毫秒(一位)的快速数据访问。 Cosmos DB提供了全面的服务级别协议(SLA)来保证吞吐量、延迟、可用性和一致性。

基本信息

項目           内容URLhttps://azure.microsoft.com/ja-jp/services/cosmos-db/データモデルCosmos DBは、「データの保存方式とAPIを選べる」分散データベース基盤である。この特徴をマルチモデル、マルチAPIと表現しています。
保存方式は、Document、Graph、Key-Valueの3つのNoSQLデータモデルから選択できます。そして、それぞれのデータモデルで利用できるAPIを提供しています。DocumentではDocumentDB APIとオープンソースのMongoDB API、GraphではオープンソースのGremlin API、Key-ValueではTable APIに対応します。動作環境Cosmos DBは CPUやメモリのような物理リソースではなく、RUという単位の割り当てを行う考え方をします。RUはスループットの単位で、 1 RUは、1 KBのドキュメントを取得するスループットに相当します。
コンテナまたはデータベースあたり 最低 400 RU/秒から設定でき、100 RU/秒単位でスケールアップ可能です。
参照 : Azure Cosmos DB の価格, Azure Cosmos DB FAQ実装言語C++ライセンス製品ライセンス主なバージョン(2019-05-15) : 強化された SQL API クエリ機能, アップグレード済み Gremlin API 機能
(2018-12-04) : CORS (クロスオリジン リソース共有) サポートを提供
(2018-09-24) : Cassandra API の GA, マルチマスター・サポート開発元Microsoft開発体制不明活動状況年間26件のAzure Cosmos DB の更新情報がアナウンスされいます。
また、CosmosDB は OSS として公開していないが、関連ツールを公開しています。
https://github.com/CosmosDB国内サポート体制日本マイクロソフトが国内のAzureをサポートします。Azure サポート・オプションが用意されています。
参照 : Azure のサポート プランその他Azure Cosmos DBはフルマネージドサービスなので、拡張性、高可用性においてユーザが管理する必要がありません。

功能信息

項目           内容対応プログラム言語.NET, Java, Javascrit(Node.js), Python, Go, Xamarin
参照 : Azure Cosmos DB のドキュメントクエリ言語データのアクセスとクエリ実行には SQL、MongoDB、Cassandra、Gremlin、Etcd、Table 用の API を使用して、世界規模の運用分析を実行するには Apache Spark を使用します。
参照 : Azure Cosmos DBデータ圧縮未サポートデータ自動集計SQL API 使用時、トリガーを JavaScript で記述できます。
参照 : ストアド プロシージャ、トリガー、およびユーザー定義関数期限解放機能Azure Cosmos DBは、Time to Live (TTL)を使用して、一定の期間が経過したらアイテムをコンテナーから自動的に削除する機能を提供します。TTL に基づいた項目の削除は無料です。
参照 : Azure Cosmos DB の Time to Live (TTL)時系列分析関数集計演算関数(COUNT, SUM, MIN, MAX, AVG)、日付と時刻関数(GETCURRENTDATETIME、GETCURRENTTIMESTAMP)が利用可能です。
参照 : Azure Cosmos DB の集計関数システム関数インデックスAzure Cosmos DBでは、範囲インデックスと空間インデックス 2種類のインデックスをサポートします。
コンテナー内のすべての項目のすべてのプロパティに自動的にインデックスが作成します。
参照 : Azure Cosmos DB のインデックス作成トランザクションCosmos DB内のDBエンジンでは、スナップショット分離を使用して ACID(原子性、一貫性、分離、持続性)への完全準拠のトランザクションがサポートしています。
参照 : トランザクションとオプティミスティック同時実行制御ストアドプロシジャSQL API 使用時、ストアド プロシージャを JavaScript で記述できます。
参照 : ストアド プロシージャ、トリガー、およびユーザー定義関数トリガーSQL API 使用時、トリガーを JavaScript で記述できます。
参照 : ストアド プロシージャ、トリガー、およびユーザー定義関数dockerコンテナdockerhub で Cosmos DB Emulator の Docker Container イメージが公開されています。あくまでもエミュレータなので、開発とテストを目的としています。
https://hub.docker.com/r/microsoft/azure-cosmosdb-emulator/性能拡張Azure Cosmos DB では、パーティション分割を使用して、データベースの個別のコンテナをスケールアウトします。論理パーティションの物理パーティションへの配置が透過的かつ自動的に管理され、コンテナーのスケーラビリティとパフォーマンスのニーズが効率的に満たされます。
参照 : Azure Cosmos DB でのパーティション分割高可用性単一リージョンのデータベースに対して 99.99% 以上の可用性を、複数リージョンのデータベースに対しては 99.999% 以上の可用性を保証し、Azure Cosmos DB での要求の処理や操作の実行を問題なく行えるようにします。
参照 : Azure Cosmos DB の SLA運用Azure Cosmos DB では、データのバックアップが一定の間隔で自動的に取得されます。 自動バックアップは、データベース操作のパフォーマンスや可用性に影響を与えずに取得されます。
参照 : Azure Cosmos DB でのオンライン バックアップとオンデマンドのデータ復元出来ないことAzureのフルマネージド・サービスであるため、オンプレミス環境での動作は出来ません。動作確認用のエミュレータは存在します。

安全

項目           内容通信暗号化クライアントからのすべての通信は、SSL/TLS 1.2に対応しています。DB格納領域の暗号化Cosmos DB の保存時の暗号化のリリースにより、すべてのデータベース、メディア添付ファイル、バックアップが暗号化されます。認証機能2 種類(マスターキー、リソース トークン)のキーを使用してユーザーを認証し、そのデータとリソースへのアクセスを提供しています。権限管理ユーザ追加とロールの割り当てでアクセス管理を行います。DB監査監査ログとアクティビティ ログを使用することで、正常なアクティビティと異常なアクティビティを監視できます。

参考:Azure Cosmos DB的安全性-概述

总结

由于它是托管服务,可用性和操作性非常强大。由于它是多功能数据库,我对其时间序列功能仍有疑问。此外,没有数据压缩功能会如何影响速度性能是我关注的重点。

以上内容是由东芝数字创新技术中心和软件技术中心提供的观点。我们欢迎广泛意见和评论。

另外,如果有任何描述错误或您有任何疑虑,请在编辑请求或评论中提供反馈,我将感激不尽。

广告
将在 10 秒后关闭
bannerAds