個人財務 開発者がNoSQLを愛する10の理由 - ダミー

開発者がNoSQLを愛する10の理由 - ダミー

目次:

Anonim

NoSQLデータベースの人気は、それらを使用することに興奮している膨大な数の開発者から生じます。開発者はNoSQLを有効化および解放の技術と見なします。従来のリレーショナル・アプローチとは異なり、NoSQLは、リレーショナル・データ・モデルよりもアプリケーションに近いデータを扱う方法を提供します。

開発者は多くの理由でNoSQLテクノロジを採用していますが、その一部はここで強調表示されています:

<! SQLを書く必要はありません - SQLを書く - それをうまくやることは、多くのエンタープライズ開発者の存在の悩みです。この痛みは、関連するテーブル間で複数の結合を持つ非常に複雑なクエリを書くのは簡単ではないためです。さらに、時間の経過とともにデータベースが定期的に変更されることを考慮して、複雑なクエリコードを維持することは、それ自体の仕事です。

エンタープライズ開発者はSQLの作成を避けるためにいくつかの方法を考案しました。最も一般的な方法の1つは、オブジェクト・リレーショナル・マッピング(ORM)ライブラリ、Hibernateを使用する方法です。 Hibernateは設定ファイルと1つまたは複数のオブジェクトをとり、開発者がそれを使用する必要がないように不快なSQLを抽象化します。これはもちろん、パフォーマンス面ではコストがかかりますが、すべてのクエリの使用例を解決するわけではありません。場合によっては、SQLにフォールバックする必要があります。

<! - 2 - >

NoSQLデータベースは、独自のクエリ言語を提供します。クエリ言語は、データベースおよび開発者が最も頻繁に実行する操作によってデータが管理される方法に合わせて調整されます。このアプローチは、ネストされたSQL文が行うよりも簡単な問合せメカニズムを提供します。

NoSQLデータベースの中には、開発者がSQLの習慣を壊すことができない場合に備えて、NoSQLデータベースを照会するためのSQLインターフェイスも用意されています。

スキーマを設計するのに何ヶ月も費やす必要はありません

<! - 3 - >

NoSQLデータベースのスキンアグノスティックスを使用すると、何カ月にもわたってリレーショナル・スキーマを作成しなくても、データをすばやくロードできます。 NoSQLに格納する必要があるすべてのデータ項目を、RDBMSと同様に分析する必要はありません。

データ変換コード(ETL)の削減

前向きスキーマ設計によるリレーショナル・データベースの一般的な問題は、非リレーショナル・データを行と列に強制しなければならないことです。このシュレッディングメカニズムは、格納のために情報を前処理して取り出し用に後処理する他のコードメソッドとともに、

extract、transform、およびload(ETL)

と呼ばれます。 このコードは、開発者に素晴らしい光沢のあるオブジェクトとドキュメントモデルを採用し、最後のすべての要素を保存するコードを作成するよう強制します。そうすることは厄介であり、パフォーマンスの低い、配慮のつかない配管コードを書いている高度に熟練した開発者にもつながります。 NoSQLデータベースを使用すると、格納されたデータ構造を元の形式に近づけることができます。システム間を流れるデータは通常XML形式ですが、Webアプリケーションの場合はデータはJSON形式でフォーマットされます。ネイティブにJSONを保存、管理、検索できることは、アプリケーション開発者にとって大きなメリットです。

コードを簡単に保守する

書くコードはすべて維持する必要があります。データベース構造をアプリケーションコードのデータ形式に近づけておくことで、コードの量を最小限に抑えることができます。これにより、時間とともに実行する必要のあるコードと回帰テストのメンテナンスが最小限に抑えられます。

RDBMSでデータ構造が変更された場合、変更されたテーブルを使用する可能性のあるすべてのSQLコードを確認する必要があります。 NoSQLでは、単に新しい要素のサポートを追加するか、単に無視します。 NoSQLデータベースのスキーマに依存しない性質のおかげで、維持管理が非常に簡単になりました。

最高のパフォーマンスを得るためにデータに近い実行コード

RDBMSは、データベースサーバー上でコードを実行するためのストアドプロシージャを提供します。このコードは1か所で実行されます。この便利なアプローチは、多くの分析および複雑なデータ管理アプリケーションの基礎となります。

多くのNoSQLデータベースでは、関連するデータを格納するすべてのサーバーにこのタイプのコードを配布することができ、作業負荷の並列化が可能になりました。このアプローチは、処理が必要なデータを大量に取得したり、クエリ時に複雑な集計分析を行う場合に特に重要です。

さまざまなNoSQLデータベースのユーザー定義関数(UDF)とサーバー側スクリプティングが、この分散機能を提供します。 UDFはHadoopのMapReduce機能と似ていますが、UDFはバッチモードではなくリアルタイムで実行され、Hadoopとデータベースに必要なインフラストラクチャに同じ経費を必要としません。

多くのオープンソースオプション

多くのエンタープライズソフトウェア分野では、オープンソースのソリッドソリューションの選択肢が欠けています。 1つまたは2つの広範なオプションしか存在しない可能性があります。スキルと現地サポートの入手可能性はさらに大きな問題です。

しかし、無数のオープンソースのNoSQLデータベースがあります。これらの多くは、サポートを提供し、世界的に拠点を持つ本格的な営利企業を持っています。したがって、サポートや機能が必要な場合は、最終的にこれらのバージョンに移行することができます。

これにより、NoSQLテクノロジを採用するコストが削減され、「購入する前に試してみる」ことができます。 「このオープンソースの選択肢が利用できるようになったことで、NoSQLの商用企業は、ソフトウェアの機能は無料だが、機能の豊富なバージョンを提供したり、小規模な組織に特別なスタートアップライセンスを提供したりしている。

容易な拡張性

SQLをリファクタリングしてマテリアライズド・ビューを作成してNoSQLシステムから1インチのパフォーマンスを引き出すために、コストのかかるDBAを取得する必要はありません。

キーバリューストアは、サーバーごとに数十万の操作を処理できます。すべてのタイプのNoSQLは、比較的安価なコモディティサーバー間で水平方向に拡張できます。したがって、従来のリレーショナルデータベースよりもNoSQLでデータベースクラスタを拡張する方がはるかに簡単です。

また、規模の拡大が可能であるため、NoSQLデータベースはパブリッククラウドとプライベートクラウドにも適しています。 NoSQLデータベースは、アプリケーションの変更に応じて柔軟に拡張および縮小するように設計されています。この能力は、しばしば

弾力性

と呼ばれる。 最終的な一貫性データモデル ミッションクリティカルなケースではACID準拠が必要ですが、すべてのアプリケーションでACIDを準拠させる必要はありません。非常に大規模なクラスタ間で整合性を緩和できることは、一部のアプリケーションでは有効です。

NoSQLデータベースを使用すると、これらの制約を緩和したり、異なるレコードタイプに対して、同じデータベース内に強い整合性と弱い整合性を混在させて一致させることができます。

非言語サポート

JavaやC#などの主要なプログラミング言語をサポートするデータベースはほとんどすべてです。ネット。多くのデータベースは、PHP、Python、Ruby on Railsなどのデータベースをサポートしています。

NoSQLには、さらに広範囲のプログラミング言語用の言語ドライバが豊富に用意されています。組織にドメイン固有の言語がある場合は、NoSQLデータベースでその言語のサポートを見つけることができます。

JavaScriptのエンドツーエンド

JavaScriptの使用は近年爆発的に増加しています。これは、WebとNodeのおかげで便利なスクリプト言語です。 jsをサーバー側で使用します。

多くのNoSQLデータベースは、完全なエンドツーエンドのJavaScript開発をサポートしています。つまり、組織では、Webアプリケーションや中間層のデータAPIやビジネスロジックを作成するために同じプログラミング言語スキルのプールを使用できるようになり、データの隣にバックエンドデータベーストリガーとMapReduceベースの分析処理を処理できます。

その結果、他のデータベース技術と比較して、NoSQLの総所有コスト(TCO)は低くなります。

開発者がNoSQLを愛する10の理由 - ダミー

エディタの選択

IOSアプリケーション開発の既存クラスにメソッドを追加する方法 - ダミー

IOSアプリケーション開発の既存クラスにメソッドを追加する方法 - ダミー

Objective-Cでは、作成していないクラスであっても、iOSアプリケーションの既存のクラスに独自のメソッドを追加できます。クラスにメソッドを追加することは、特定の状況でのみ新しい動作が使用される場合に便利です。たとえば、特定のアプリケーション...

IOSアプリケーション開発の既存クラスにメソッドを追加する方法 - ダミー

IOSアプリケーション開発の既存クラスにメソッドを追加する方法 - ダミー

IOSアプリケーションの開発では、Objective-Cを使用すると、自分が作成していないクラスであっても、既存のクラスに独自のメソッドを追加することができます。クラスにメソッドを追加することは、特定の状況でのみ新しい動作が使用される場合に便利です。たとえば、特定のアプリケーション(たとえば、...

In App Purchase機能がiPadアプリで動作する仕組み

In App Purchase機能がiPadアプリで動作する仕組み

Apple App App Purchase機能を提供します。これにより、アプリユーザーはアプリ内から仮想アイテムを直接購入することができます。複数のレベルや環境、または仮想プロパティを持つゲームアプリケーションを開発する場合は、アプリケーションにIn App Purchase機能を追加して、レベル、環境、またはプロパティをさらに販売することを検討してください。 App Purchaseで...

エディタの選択

効果的なホームビジネスWebサイトを作成する方法 - ダミー

効果的なホームビジネスWebサイトを作成する方法 - ダミー

素晴らしいかもしれませんが、製品やサービスをさらに販売するのに役立たない場合は、時間とお金の無駄です。自宅のビジネスにとって本物の資産であるWebサイトを構築するための、実証済みの方法をいくつか試してみましょう。難しいことではありません...

マスターCSSファイルを作成する方法 - ダミー

マスターCSSファイルを作成する方法 - ダミー

多くのデザイナーがマスターHTMLコードのCSSファイルを作成し、個々のサイトのニーズに合わせて、最初からウェブサイトを構築するプロセスをスピードアップします。あなたがより多くのウェブサイトを構築するにつれて、いくつかのスタイルは標準的なデザインプラクティスの標準的な部分になります。 ...

MSN adCenterのウェブマーケティングキャンペーンのアカウントを作成する方法 - ダミー

MSN adCenterのウェブマーケティングキャンペーンのアカウントを作成する方法 - ダミー

Bing検索結果と並んでクリック単価(PPC)広告はMSN adCenterを通じて提供されます。 adCenterを使用して、Webマーケティングのニーズに合わせてアカウントとキャンペーンを作成できます。 Microsoftは、Bing Travel、adCenter Desktopなどのプログラムを追加することで、PPCサービスのインターフェース、ツール、検索品質、およびボリュームを向上させるために歩み続けています。...

エディタの選択

地中海ダイエットレシピ:フルーツサラダ - ダミー

地中海ダイエットレシピ:フルーツサラダ - ダミー

果実は地中海で豊富に生育し、地中海沿岸に沿って、アメリカ人より一般的に果実を多く食べるため、地中海の高レベルの疾病予防に貢献しています。あなたの次の食事やパーティーのために健康的なサイドディッシュのフルーツサラダを作るには、いくつかの方法があります。果物は地中海で豊富に生育し、地中海沿岸に住む人々は一般にアメリカ人よりも多くの果実を食べるため、地中海の高レベルの疾病予防に寄与します。

地中海料理ダイスレシピ:クラシックジャイロとピタ - ダミー

地中海料理ダイスレシピ:クラシックジャイロとピタ - ダミー

ジャイロとピタサンドイッチは一般的なカジュアルな食品です地中海でピザや他の地中海のサンドイッチと同じように、今日はピタサンドイッチとジャイロのさまざまなバージョンが存在します。ピタスは蒸気で作られた中央のポーチ付きの丸いパンです。