いくつかの一般的に使用される非リレーショナルデータベース

データベースの管理と更新、情報が簡単にアクセスできるように整理され、情報の収集です。最も人気のNoSQLデータベースを取得する前に。あなたはのNoSQLデータベースを理解する必要があります。ほとんどのプログラマは、それが何の略かわかりません。これは、SQLないだけの略です。NoSQLデータベースを理解した後、我々は2019年に最も人気のNoSQLデータベースプログラマをご紹介します。

NoSQLデータベースとは何ですか?

NoSQLのデータベース(非リレーショナル・データベース)は、データを格納および検索するための非リレーショナル・データベース・システムです。今日の世界では、我々はすべてのデータを持っていないようにはなりません(固定表示されていない)ストアは固定パターンテーブル形式をあらかじめ定義。ユーザー生成データ、位置データと同様に、データを生成したものとして、ソーシャルグラフは、実世界のデータを指数関数的成長の一例です。これらの大規模なデータは、処理の多くを必要とします。その後のNoSQLデータベースが登場しました。使用のNoSQLデータベースは、我々は、より簡単な文書、キー、グラフィックベースのデータを格納して引退することができます。私たちは、簡単に複雑なSQLの結合操作を回避することができます。実用的な問題(ウェブやエンタープライズビジネスアプリケーション)水平方向のスケーリングに使用NoSQLのDBのしやすさ。カルロ・ストロッツィのNoSQL用語は、1998年に導入されています。使用のNoSQLモチベーション - デザインのシンプルさ、水平マシンクラスタの拡張

NoSQLデータベースの種類

文書データベース - 通常、これらのデータベース文書と呼ばれる各キーペア複雑なデータ構造。主な文書であっても、ネストされた文書のキーと値のペアの配列を含むことができます。例:MongoDBのは、Apache CouchDBは、ArangoDB、Couchbaseの、コスモスDB、IBMのLotus Domino、MarkLogic、OrientDB。

キーと値のストア - 各アイテムは、キーと値のペアとして格納されます。NoSQLのキーと値のストアは、すべての最も単純なデータベースのデータベースです。例:Redisの、memcachedのは、ApacheのIgnite、Riakに。

 

ワイド列ストアは - 大規模データセットのクエリのためのデータベースのこれらのタイプではなく、ラインよりも、一緒に列ストアにデータを最適化。例:カサンドラ、HBaseの、スキュラ。

 

こうした社会的関係、ロードマップ、交通機関などのグラフィック、ウェブ、上の情報を格納する - グラフィックスメモリ。例:のNeo4j、AllegroGraph。

2019年ベストのNoSQLデータベース

MongoDBは:オープンソースのドキュメント指向のNoSQLデータベースです。MongoDBは、任意のデータを格納するようにJSONドキュメントを使用しています。それは、C ++で書かれています。

カサンドラ:Facebookの受信トレイ検索の開発があります。カサンドラは、構造化データを大量に処理するための分散データストレージシステムです。

Redisの:最も有名なのは、キーと値のストアです。Redisのは、C言語で書かれています。これはBSDライセンスに基づいています。

HBaseの:分散型非リレーショナルデータベースの設計のためのGoogleのBigTableのデータベースがあります。

Neo4j:それは効果的にストレージ層まで、図の属性モデルを実装しているため、図ネイティブデータベースは、と呼ばれます。

オラクルのNoSQL:不透明にユーザー定義のキー・データ項目からマッピングを実現します。

アマゾンDynamoDBの:NoSQLのは、データベースモデルを使用して、そのデータモデル間でドキュメント、グラフィックスおよび列を許可する、非リレーショナルです。

Couchbaseの:NoSQLのは、インタラクティブなWebアプリケーションのための文書データベースです。これは、安定したパフォーマンスを提供するために、拡張しやすい柔軟なデータモデルを、持っています。

memcachedの:データベースの負荷を低減することにより、動的なWebアプリケーションを高速化するために設計されたオープンソースの高性能、分散メモリキャッシュシステムです。

CouchDBの:クエリ言語としてJSON、JavaScriptを使用して情報を保存するために、オープンソースのNoSQLデータベースです。

1. MongoDBの

 

 

 MongoDBはNoSQLのデータベースは最も有名です。これは、オープンソースのデータベース指向の文書です。MongoDBは、スケーラブルでアクセス可能なデータベースです。これは、中にC ++です。MongoDBは、ファイルシステムとして使用することができます。MongoDBのでは、JavaScriptがクエリ言語として使用することができます。シャーディングMongoDBの水平方向のスケーリングを使用することにより。これは、人気のJavaScriptフレームワークのために非常に有用です。人々は本当に断片化、高度なテキスト検索、gridFSとマップ-軽減機能をお楽しみください。このNoSQLのデータベースを作るために驚くべき性能と新機能は私たちのリスト上で第一位。

特徴:高いパフォーマンスを提供することと、オートシート、複数のサーバ上で実行されている。マスターからの支援複製、文書の形式で保存されたJSONパターンデータ、任意のフィールドのインデックス文書、データは破片に置かれているので、それは自動を持っていますコンフィギュレーションをロードバランシングは、正規表現検索をサポートしています。障害が発生した場合には、管理しやすいです。

専門的なサポートを提供するために、MongoDBの株式会社; MongoDBのをインストールするには、簡単にアドホッククエリのサポート、高速データベース;無しパターンデータベース;規模データベースと、パフォーマンスは非常に高いです:長所。

短所:接続をサポートしていませんが、データが大きく、ネストされた文書は制限され、不要なメモリ使用量。

2.カサンドラ

 

 

 カサンドラは、Facebookの受信トレイ検索の開発です。カサンドラは、構造化データを大量に処理するための分散データストレージシステムです。一般的に、これらのデータは、多くのコモディティサーバに分散します。また、あなたは簡単にこのタスクを達成することができ、あなたの滞在オンラインサービスをするためにデータ記憶容量を追加することができます。クラスタ内のすべてのノードに対して同じので、したがって、それは複雑な構成を必要としません。カサンドラは、Javaで書かれています。カサンドラクエリ言語(CQL)は、類似したクエリカサンドラDatabase SQL言語です。したがって、カサンドラは最高のオープンソース・データベースで2位。いくつかのFacebookやTwitter、シスコ(シスコ)、Rackspaceの、イーベイ、ツイッター、ネットフリックスや他の大企業は、カサンドラを使用しています。

 

特徴:線形;;リトラクタブル保持速い応答時間、サポート原子性、一貫性、独立性および耐久性(ACID)のプロパティなど、ApacheのHadoopのサポートのMapReduceを用いて、割当データの最大の柔軟性、拡張性の高い、ピア・アーキテクチャ。

長所:拡張性の高い、単一障害点のない、マルチDCの複製、他のJVMベースのアプリケーションとの緊密な統合、マルチデータセンター展開、冗長性、フェイルオーバーおよび災害復旧のためのより適切な。

デメリット:重合のサポートが限定され、予測不可能なパフォーマンスは、特別なクエリをサポートしていません。

3. Redisの

 

 

 Redisのは、キーと値のストアです。また、それは最も有名なキーと値のストアです。Redisのは、というようにPHPやRuby、PythonやPerlやスカラ座のいくつかのC ++をサポートしています。Redisのは、C言語で書かれています。また、それが認可さBSDをベースにしています。

特徴:自動フェイルオーバー;メモリ内に完全にデータベースを保存するには、トランザクション、Luaのスクリプト、スレーブサーバの任意の数のデータをコピーし、限られた生涯キー、LRUの立ち退きキー;サポートパブリッシュ/サブスクライブ。

長所:サポート複数のデータ型を、簡単にインストールでき、非常に高速(実行100万約11台、毎秒81,000回程度行う);操作は原子であり、(多くのユースケースで使用される)多目的ツール。

短所:接続をサポートしていません。Luaの知識は、ストアドプロシージャを必要と、データ収集が良くメモリに適合させなければなりません。

4. HBaseの

 

 5.のNeo4j

 

それが効果的に記憶層まで、図属性モデルを実現しているため図のNeo4jネイティブデータベースをいいます。この手段は、ホワイトボードモードに完全に応じて格納されたデータは、ポインタのナビゲーションデータベースとグラフのトラバーサルを使用すること。コミュニティEditionとEnterprise Editionのデータベースを持っているのNeo4j。コミュニティ版Enterprise Editionは、すべての機能は、バックアップ、クラスタリングおよびフェイルオーバー機能などの追加的なビジネスニーズ、だけでなく、提供されなければならない含まれています。

 

特徴:それは唯一の制約をサポートしたJava API;のNeo4jは、完全なACID(原子性、一貫性、独立性および耐久性)のルールをサポートしています。サイファーのAPIとネイティブのJava APIを、ApacheのLucenceインデックスを使用して、簡単なクエリ言語のNeo4j CQL。 Neo4jデータブラウザを:UIは、CQLを実行するためのコマンドが含まれています。

 

長所:接続またはインデックスすることなく、近隣諸国や関係の詳細を取得するのは簡単、非常に簡単に半構造化データを表し、データを取得するための複雑な接続を;のNeo4j CQLクエリ言語のコマンドを学習しやすいリアルタイムの高大企業向けアプリケーション可用性、チューニングを簡略化します。

 

短所:断片化をサポートしていません。

 

 

原创梦想天空分外蓝_§ 最后发布于2019-08-18 14:11:10 阅读数 277  收藏展开

数据库是一组信息的集合,这些信息被组织起来以便于访问、管理和更新。在开始介绍最流行的NoSQL数据库之前。您必须了解NoSQL数据库。大多数程序员不知道它代表什么。它的全称是Not Only SQL。在了解了NoSQL数据库之后,我们将介绍2019年最受程序员欢迎的NoSQL数据库。
 
什么是NoSQL数据库?
NoSQL数据库(非关系型数据库)是用于存储和检索数据的非关系数据库系统。在当今世界,我们不应该只以没有预定义固定模式的表格式存储所有数据(固定没有列)。像用户生成的数据、地理位置数据、物联网生成的数据一样,社交图是真实世界数据呈指数级增长的例子。这些庞大的数据也需要大量的处理。这时NoSQL数据库就出现了。使用NoSQL数据库,我们可以存储和退休的文件,键值,图形为基础的数据容易和更快。我们可以很容易地避免复杂的SQL连接操作。易于使用NoSQL DBs对实际问题(web和企业业务应用程序)进行水平伸缩。Carlo Strozzi是在1998年引入NoSQL术语的。使用NoSQL的动机——设计的简单性、对机器集群的水平扩展。
 
NoSQL数据库类型
文档数据库——这些数据库通常将每个键与称为文档的复杂数据结构配对。文档可以包含键数组对、键值对甚至嵌套文档。示例:MongoDB、Apache CouchDB、ArangoDB、Couchbase、Cosmos DB、IBM Domino、MarkLogic、OrientDB。
键值存储——每个单独的项都存储为键值对。键值存储是所有NoSQL数据库中最简单的数据库。示例:Redis, Memcached, Apache Ignite, Riak。
宽列存储——这些类型的数据库针对大型数据集上的查询进行了优化,它们将数据列存储在一起,而不是行。示例:Cassandra,Hbase,Scylla。
图形存储——这些存储关于图形、网络的信息,例如社会关系、路线图、交通链接。示例:Neo4j,AllegroGraph。
2019最佳NoSQL数据库
MongoDB:是一个面向文档的开源NoSQL数据库。MongoDB使用JSON之类的文档来存储任何数据。它是用c++写的。
Cassandra:是Facebook为收件箱搜索开发的。Cassandra是一个用于处理大量结构化数据的分布式数据存储系统。
Redis:是最著名的键值存储。Redis是用C语言编写的。它是根据BSD授权的。
HBase:是谷歌为BigTable数据库设计的分布式非关系数据库。
Neo4j:称为原生图数据库,因为它有效地实现了属性图模型,一直到存储层。
Oracle NoSQL:实现了从用户定义的键到不透明数据项的映射。
Amazon DynamoDB:使用了一个NoSQL数据库模型,它是非关系型的,允许文档、图形和列在它的数据模型之间。
Couchbase:是一个用于交互式web应用程序的NoSQL文档数据库。它具有灵活的数据模型,易于扩展,提供一致的高性能。
Memcached:是一个开源、高性能、分布式内存缓存系统,旨在通过减少数据库负载来加速动态web应用程序。
CouchDB:是一个开源的NoSQL数据库,使用JSON存储信息,JavaScript作为查询语言。
 
1. MongoDB
 


MongoDB是最著名的NoSQL数据库。它是一个面向文档的开源数据库。MongoDB是一个可伸缩和可访问的数据库。它在c++中。MongoDB同样可以用作文件系统。在MongoDB中,JavaScript可以作为查询语言使用。通过使用sharding MongoDB水平伸缩。它在流行的JavaScript框架中非常有用。人们真的很享受分片、高级文本搜索、gridFS和map-reduce功能。惊人的性能和新特性使这个NoSQL数据库在我们的列表中名列第一。
特点:提供高性能;自动分片;运行在多个服务器上;支持主从复制;数据以JSON样式文档的形式存储;索引文档中的任何字段;由于数据被放置在碎片中,所以它具有自动负载平衡配置;支持正则表达式搜索;在失败的情况下易于管理。
优点:易于安装MongoDB;MongoDB Inc.为客户提供专业支持;支持临时查询;高速数据库;无模式数据库;横向扩展数据库;性能非常高。
缺点:不支持连接;数据量大;嵌套文档是有限的;增加不必要的内存使用。
 
2. Cassandra


Cassandra是Facebook为收件箱搜索开发的。Cassandra是一个用于处理大量结构化数据的分布式数据存储系统。通常,这些数据分布在许多普通服务器上。您还可以添加数据存储容量,使您的服务保持在线,您可以轻松地完成这项任务。由于集群中的所有节点都是相同的,因此不需要处理复杂的配置。Cassandra是用Java编写的。Cassandra查询语言(CQL)是查询Cassandra数据库的一种类似sql的语言。因此,Cassandra在最佳开源数据库中排名第二。Facebook、Twitter、思科(Cisco)、Rackspace、eBay、Twitter、Netflix等一些最大的公司都在使用Cassandra。
特点:线性可伸缩;;保持快速响应时间;支持原子性、一致性、隔离性和耐久性(ACID)等属性;使用Apache Hadoop支持MapReduce;分配数据的最大灵活性;高度可伸缩;点对点架构。
优点:高度可伸缩;无单点故障;Multi-DC复制;与其他基于JVM的应用程序紧密集成;更适合多数据中心部署、冗余、故障转移和灾难恢复。
缺点:对聚合的有限支持;不可预知的性能;不支持特别查询。
 
3. Redis


Redis是一个键值存储。此外,它是最著名的键值存储。Redis支持一些c++、PHP、Ruby、Python、Perl、Scala等等。Redis是用C语言编写的。此外,它是根据BSD授权的。
特点:自动故障转移;将其数据库完全保存在内存中;事务;Lua脚本;将数据复制到任意数量的从属服务器;钥匙的寿命有限;LRU驱逐钥匙;支持发布/订阅。
优点:支持多种数据类型;很容易安装;非常快(每秒执行约11万组,每秒执行约81000次);操作都是原子的;多用途工具(在许多用例中使用)。
缺点:不支持连接;存储过程所需的Lua知识;数据集必须很好地适应内存。
 
4. HBase


HBase是谷歌为BigTable数据库设计的分布式非关系数据库。HBase的主要目标之一是托管数十亿行X数百万列。您可以随时添加服务器来增加容量。多个主节点将确保数据的高可用性。HBase是用Java 8编写的。它是在Apache下授权的。Hbase还简单地利用Java API进行客户访问。
特点:支持自动故障;线性可伸缩;提供了数据复制;与Hadoop集成,作为源和目标。
优点:为较大的表提供快速查找;提供对来自数十亿条记录的单行的低延迟访问;简单的Java API为客户端;自动分片;License-free;处理HDFS文件存储之上的大型数据集;灵活的模式设计;高速。
缺点:不支持事务;没有权限或内置身份验证;仅按键索引和排序;单点故障(当只使用一个HMaster时);不支持SQL结构;集群上的内存问题。
 
5. neo4j


Neo4j被称为原生图数据库,因为它有效地实现了属性图模型,一直到存储层。这意味着数据完全按照白板的方式存储,数据库使用指针导航和遍历图。Neo4j有数据库的社区版和企业版。企业版包括Community Edition必须提供的所有功能,以及额外的企业需求,如备份、集群和故障转移功能。
特点:它支持唯一的约束;Neo4j支持完整的ACID(原子性、一致性、隔离性和持久性)规则;Java API: Cypher API和本机Java API;使用Apache Lucence索引;简单查询语言Neo4j CQL;包含用于执行CQL命令的UI: Neo4j Data Browser。
优点:容易检索其相邻节点或关系细节,无需连接或索引;易于学习Neo4j CQL查询语言命令;不需要复杂的连接来检索数据;非常容易地表示半结构化数据;大型企业实时应用程序的高可用性;简化的调优。
缺点:不支持分片。
 
6. Oracle NoSQL


Oracle刚刚用Oracle NoSQL启动了NoSQL数据库。它在2018年变得流行起来。与MongoDB和Casandra数据库相比,它不那么流行。Oracle NoSQL数据库实现了从用户定义的键到不透明数据项的映射。尽管它记录了键/值对的内部版本号,但是它只维护存储中的最新版本。Oracle的12c版本是为云而设计的,可以托管在一台服务器或多台服务器上,并支持管理包含数十亿条记录的数据库。Oracle最新版本的一些特性包括网格框架以及物理和逻辑结构的使用。Oracle Database 18c现在为客户提供了一个高性能、可靠和安全的平台,使他们的事务和分析工作负载(无论是在云环境中,还是在本地环境中,或者在混合云配置中)更容易、更经济地实现现代化。
特点:Oracle NoSQL数据库处理大数据;支持SQL,可以从Oracle关系数据库访问它;Oracle NoSQL数据库使用Java/C API读写数据;分布式数据库;通过节点为请求的密钥提供对数据的访问。
优点:基于PL/SQL编程结构;对等社区有助于解决所有问题;Oracle数据库是安全的,并确保不会通过提示更新篡改用户数据。
缺点:小型组织的高成本;安装需要大量的资源;甚至可能需要硬件升级才能实现Oracle;占用了很多空间。
 
7. Amazon DynamoDB


DynamoDB使用了一个NoSQL数据库模型,它是非关系型的,允许文档、图形和列在它的数据模型之间。每个DynamoDB查询由用户标识的主键执行,主键唯一标识每个项。它还减轻了客户操作和扩展分布式数据库的负担。因此,硬件供应、设置、配置、复制、软件补丁、集群扩展等都由Amazon管理。
特点:高可伸缩性;用于索引值范围的散列范围;将数据存储在分区中;使用JSON作为传输协议,而不是存储格式。
优点:易于设置;提供底层AWS DynamoDB API;自动伸缩;降低管理高可用性和高峰使用时间伸缩的复杂性;静止加密;DynamoDB的安全性由AWS标识控制。
缺点:不免费备份您的表;大小限制。
 
8. Couchbase


重点是易用性,包括web。它是一个NoSQL文档存储数据库。Couchbase Server是一个用于交互式web应用程序的NoSQL文档数据库。它具有灵活的数据模型,易于扩展,提供一致的高性能。Couchbase Server、JSON文档用于表示应用程序对象和对象之间的关系。
特点:与Kubernetes一起大规模自动故障转移部署和管理Couchbase;索引分区;通过N1QL查询本地支持JSON数据;数据压缩;事件服务。
优点:综合优化;降低网络、内存和存储的成本;极棒的管理面板,提供了大量关于您的集群如何执行的见解。
缺点:Couchbase不是开源的。
 
9. Memcached


Memcached是一个开源、高性能的分布式内存缓存系统,旨在通过减少数据库负载来加速动态web应用程序。它是存储在内存中的字符串、对象等的键值字典,由数据库调用、API调用或页面呈现生成。它现在被Netlog、Facebook、Flickr、Wikipedia、Twitter和YouTube等网站使用。
特点:通过TCP或UDP的客户机-服务器应用程序;减少数据库负载;Memcached服务器是一个大哈希表;高效的网站与高数据库负荷;根据Berkeley Software Distribution license进行分发;将内存缓存合并到逻辑池中。
优点:安装快;广泛记录在一个巨大的社区中。
缺点:只支持Linux操作系统和类似于BSD的系统;不支持数据冗余;不支持锁、通读、CAS。
 
10. CouchDB


CouchDB是一个开源的NoSQL数据库,它使用JSON存储信息,JavaScript作为查询语言。它采用了一种多版本控制系统,避免了DB文件在写入过程中被阻塞。Erlang。它是在Apache下授权的。它在2016年最受欢迎的NoSQL数据库中排名第一。
特点:Map/Reduce列表和显示;提供数据库级安全;身份验证像web应用程序一样通过会话cookie打开;JSONP是免费的;按照文档存储;支持ACID属性;提供最简单的复制形式;基于浏览器的GUI来处理数据、权限和配置。
优点:Map/Reduce,查询数据在某种程度上与数据本身是分离的;存储任何JSON数据。
缺点:任意查询都很昂贵;使用CouchDB需要额外的空间;不支持XML。————————————————版权声明:本文为CSDN博主「梦想天空分外蓝_§」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。原文链接:https://blog.csdn.net/a605079206/article/details/99704187

おすすめ

転載: www.cnblogs.com/jerryliuxin/p/12194613.html