クラウドコンピューティングは、燃料と非リレーショナルデータベースレディ(転載)

要約:彼らはルールの多くを無視することができ、そしてこれらのルールは、豊富な経験蓄積したデータベース管理者の深遠な教訓であるため、非リレーショナルデータベースが注目されています。すべてのWebアプリケーションの設計者は、複数のマシンを実行するために、アプリケーション構築の夢それを行うためには、すべてのユーザーのために、すべてのデータを保存し、古いルールの一部は避ける必要がある、あるいは壊れました。

 

あなたは、データを格納する必要がある場合、古い時代には、管理ソリューションは単純です:正式なデータベースをインストールし、データ入力を使用すると、管理を分類するシステムのヘルプを聞かせて、中に保存する必要がありますし、あなただけの選択に時間を取る必要がありますホームデータベースプロバイダ。今、そうではない、新しいデータベース・ツールのいくつかは、従来のリレーショナルモデルデータベースを壊し、これらの言葉より意味の「データベース」は、与えられた、洪水を始めました。経験豊富なデータベース管理者は、彼らは非常に深刻な脅威を持っていることを「おもちゃ」と呼ばれ、脅威はこれらのデータベースから浮上しています。新興データベースのためのいくつかの傲慢な男が脅威の費用を設定し、その手のニーズを満たすために、高速で、便利です。

彼らはルールの多くを無視することができますので、非リレーショナルデータベースが注目されており、これらのルールは、豊富な経験蓄積し、データベース管理者深遠なレッスンです。問題は今、これらのルールのすべての道路区間が制約になるデータベース・システムは、複数のコンピュータで実行するように、それは難しい、本当に強いを作成することができたということです。すべてのWebアプリケーションの設計者はそれを行うためには、複数のマシンを実行するすべてのユーザーのために、すべてのデータを保存するアプリケーションの構築を夢見ているので、古いルールの一部は避ける必要がある、あるいは壊れました。

矛先事は古いがJOIN操作放棄することであるクマ。学生は、テーブルには多くの部分に分割されますどのように標準化されたデータ、宿題の要件に厳密に従っています。当時非常に高価なディスク、データの標準化は、余分な重要なようです。問題のデータが異なるマシンに分散されたときにすると、本当にそう非常にゆっくりと操作を登録しよう。ディスク容量は、データモデルの多くは、データの標準化の恩恵を受け、その操作が簡単に放棄することができます参加しません、今安いです。

すぐに一貫性と結果整合性の違いがするデータの重要性に依存しています。新しいデータベースは、彼らが一日の終わりの後に必ず冊のバランスを作りたい、それらの保守派は、心臓の薬は通常、銀行のプログラマーである取る聞こえます。結局のところ、銀行のリーダーシップが原因のエラーにつながった失敗したデータベーストランザクションアカウントに立つことはできません。

トランザクションを実行することはできませんので、しかし、多くの近代的なWebサイトが失敗しません。私はFacebookが頻繁に不具合がありました。データは上失われていないので、コメントの一部を実行することはできません。これらのサイトは、銀行などの口座の注目決済を要求として、彼らは、リレーショナルデータベースのすべての機能を必要としないではありません。(一部の人々は、銀行が取引はお金の損失が生じ、操作に失敗したため、Oracleのライセンスはそれらの人々を補償するための基金を設定するためにお金を考え出す買うべきだと冗談。)

より良いこれらの層は非リレーショナルデータベースを拡張理解するために、私はいくつかのテストは、いくつかのテストアプリケーションを構築して拾いました。挿入、更新、削除します。彼らは主に3つを超えないコマンド操作で発見されました。いくつかのクラスタを提供し、一部にのみサービスを提供することができ、他のAJAXツールデータベースよりいくつかの優れたサーバ全体のスタックを、引き継ぐと言うためにいくつかの誇張があります。しかし、それらのどれもフィット、彼らは銀行のために使用することはできません。

彼らは少数であるため、本論文では、私は、いくつかの他の興味深いデータベース、1件の紙面の都合の記事、第二を導入していない、と私は下記の大きな違いはありません。たとえば、Sun社は、リレーショナルデータベースを構築して、Java仮想マシンと組み合わせて使用​​ダービーは、と呼ばれます。Oracleはまた、独自の組み込みデータベースを持っているのBerkeley DBと呼ばれるが、今のOracle組込みデータベースと呼ばれています。一部のプログラマーでも、オブジェクトがディスクに直接書き込まれ、低コストのプログラムライブラリを作成しました。これらの製品は、これらの言葉「データベース」の意味を拡張するが、私はここに記載して設定するつもりはありません。

アマゾンのSimpleDBデータベース

Amazon SimpleDBは、クラウド技術の部品のような最先端かつ最もに計画を推進するクラウド・コンピューティング・サービスの1つです。WebサービスXMLファイルあなたがアクセスパスワードを取得するために、Amazonの雇用サービスにサインしたら、限り、あなたは支払うことを続けて、それはあなたのために、これらのデータを格納されている、行くのSimpleDBにロードされたキー値が含まれていることができるようになります。あなたは、任意のアプリケーションをインストールするか、どのようなバックアップを検討する必要はありません。壁にAmazonのWebサービス、それはあなたのためにすべてのこの仕事を隠された後。

SimpleDBは二層構造です。トップレベルは、第二段階は、「アイテム」で、「ドメイン」です。あなたがドメイン名と項目を選択したら、キーを作成します。SimpleDBは、比較的豊富なAPIを持つデータをソートする機能を持ち、さらにはクエリ結果に一致する項目の数を計算する能力を持っています。あなたも、あなたはそれらの値が特定の文字列から開始されません確認することができ、クエリを書くことができます。そして、私たちが使用し、おそらくSQLとOracleのデータは非常に異なっているが、これらの低家賃のデータベースには、独自の欠点を持っている、でも結果セットをソートしません。

SimpleDBは設計されており、AmazonのSimple Storage Service(S3)を一緒に使用されるが、各キー値の大きさは1024バイトに制限されています。これは、文字列がたくさんある、それは十分ですが、Content Engineは、多くののために十分ではありません。ですから、データS3へのポインタに格納されています。

今、複数の呼び出しを必要とするいくつかの制限が存在する。このような操作をJOINを使用。各クエリは、5秒間だけ実行することができます。結果ホルダー250項目だけ。各項目のための唯一の250。限定されている多くの一般的な操作がありますが、一部の人々は便利やトラブル私たちの生活にもたらされるのSimpleDBを考えるようになりました。

Amazonは、より多くの、より良い認証を取得しようとする試みをAPIを書き換えるようになりました。2009年9月に、全体のSSLは、セキュリティと認証を提供し、コールを実行します。Amazonはまた、より多くの要求を詰めるために、より洗練されたハッシュアルゴリズムを使用して、セキュリティ・メカニズムを増加させました。これらは、Amazonが買収だけ小さな改善されています。

同社はまた、サービスの利用を簡単にするために、複数のライブラリを作成しました。そこに多くのソフトウェアパッケージがあり、主流だけでなく、いくつかのまれな言語の組み合わせを使用します。ドキュメントはかなり、広範見つけるのは簡単です。通常、あなたはすぐに、あなたの仕事を開始する短縮された時間内に使用されるデータの格納を開始することができます。

今、価格も非常に適切です。Amazonは最近、$ 1.50〜Gバイトあたり25セントに価格に保存されています。同社は、それが彼らの支出予算を計画するユーザーを奨励することを目指し、透明性を充電します。

Amazonは人生の問題に対処するための高度なフォームのセット。あなたが発生する可能性のある問題に対処するための多くの規定がありますが、私の注意を引いたものもあります。例えば、Amazonは述べ、「我々は6ヶ月間アクセスしていないのSimpleDBの最近のプレゼンスの内容を削除することがありますが、一切の責任を負いません。」これは受け入れることは非常に容易であるテストシステムを行う人々を与えることだけです。ビューの文言からは、Amazonの動きがうまく実行されているデータセンターを維持するために頭にあります。

他の問題があります。例えば、用語を使用した規定は、このような「人種、性別、宗教、国籍、身体障害、性的指向、年齢」差別が禁止されているとのデータ「を、違法行為を奨励する」として禁止データの長いリストが含まれています。これが問題です。ウェブサイトを実行するために、教会のために抗同性結婚を実施した場合を想像してみてください。あなたが性的指向の差別を持っているようですね。あなたは同性愛者の結婚をキャンペーンを実施するためにしている場合は、これらの教会に対して、あなたはそれで、これらの基本的な宗教的差別することをこの時点で言うことができるのですか?

私は弁護士が後悔これらの苦情に対処するために分析されているものに言うが、彼らは、これらのデータが何らかの理由で削除されたか理由もなくできることを知っているので、少なくとも彼らは、簡単に休むことができます。あなただけの無料サービスを使用する場合は、Amazonはあなたに予告を与えることはありません、それはあなたのデータを削除しますが、顧客を払っている場合は、60日リマインダー通知を約束した、期間内にあなたのデータを処理することができるようになります良いです。

 

Google App Engineの

Google App Engineの上で本質的データベースではありません。彼は、分散Pythonアプリケーションのためのクラウド技術の一種であり、それはデータベース内のどこかに隠された、独自に取り組んでいます。まず、ないことは、アプリケーション層を介してデータベースにアクセスすることはできません。しかし、データベースコマンドやデータフォーマットが要求されたパッケージは、したがって、我々はApp Engineはデータベースですが、データベースが組み込まれたPython言語手順書に添付されていることを言うことができ、難しいことではありません。

カスタマイズのこの追加の層は非常に便利です。多くは、右の結果を見つけることができない原因と不足しているデータベース操作の周りに他の「おもちゃ」に文句を言います。あなたがここにデータベースのいくつかの機能を追加したい場合は、自分自身の外に開発されたPython言語を使用することができます。あなたが操作をJOINを持っているしたい場合は、Pythonで書かれた自分のことができますが、また、両方のメモリバッファをカスタマイズします。それらのユーザーは、Webアプリケーションでそのデータを保存するため、これは特に便利です。あなたはセキュリティ権限の制御を増やす必要がある場合は、彼らが表示されるはずですものを見るために、各ユーザーを制限し、あなたはまた、Python言語を実装することができます。

AmazonのSimpleDBは、その構造的なPythonオブジェクトモデルからの大部分よりも構造的なApp Engineのデータストア構造。キーと値のペアは、あなたのストレージではなく、SQLモードと非常によく似として定義されているPythonオブジェクト、。あなたは、あなたが各列のデータ型を設定する必要がある列の間にインデックスをすることができます。各トランザクションが実際にPythonの関数であるため、トランザクションの仕組みとPythonも深く、リンクされました。だから、理由はPythonの関数や(のみ更新することができ、このような各データ項目など)の制約の一連の、いくつかの単純化し過ぎがあります。良いニュースは、Googleが特別なデータ項目のトランザクションメソッド、抽象的(例えば、「作成」または「更新」ラインなど)いくつかの一般的な振る舞いを作成しています。

意図的に取得するためのSQLクエリは、実際には、同様の作られた、Googleは独自のSQLに似た言語、GQLを提供します。使用すると、GQLクエリがに解析されます。App Engineは、データの収集と処理のクエリに基づく方法論のパイソンのセット、メソッドと一緒に縛ら。あなたは、クエリの分析期間を無駄にする必要はありません。

これは、Pythonのスタックは、データベースの最高の機能の一部が利用できない含まれていることを言及する価値があります。そこの画像ファイルを操作するためのライブラリがあり、切断してGoolgeユニークな「私はラッキーだと思う」画像修復機能。また、Goolgeの文書、スプレッドシート、カレンダーアイテムなどのデータを保存することができます。App Engineは、最初はただのデータベースのように見えますが、あなたは簡単にGoogleのスタック内のデータを抽出することができます。

数週間前までは、App Engineはまだベータ版では、自由に使用できます。限り、基本の限度内の空間の使用として、それはまだ無料です。また、GoogleやAmazonはメカニズムが非常に似て充電されています。アマゾン(Gバイトヶ月あたり12セント)よりも安い価格ストアド、帯域幅は同じ電荷(10セントなしGバイト)です。

用語の説明責任のGoogleの使用は、Amazonは異なっています。あなたは、あなたのユーザーのデータを保護するために、プライバシーポリシーを開発する必要があります。著作権法規に違反し、ユーザーは、あなたがDMCA(デジタルミレニアム著作権法)に対応しなければならない場合は、あなたがこれをしない、Googleがあなたのためにそれを行います。Googleは予約何らかの理由で任意の時点でコンテンツを削除する権利を留保します。「あなたは、Googleが、格納されたコンテンツの損失を削除し、裁判がどんな責任を負うことなく通信を維持するコンテンツ提供に同意します。」

これらの規定もっと注意を。今、Googleは償却するアカウントを決定する前に、サーバーから削除してデータを作るために脇に90日を設定することを約束しています。多くの人が困惑しますDMCAの問題に関するその他の引当金の懸念。

あなたがGoogleやGoogleがあなたを手放す残すことを決定した場合行うにはどのような問題が、あります。Googleはあなたが簡単にローカルマシン上でアプリケーションをテストすることを可能にする優れた開発ツールをリリースしました。あなたのマシン上でテストするためにこれらのツールを使用して、あなたはクラスのクラウド技術の機能をサポートしていない場合を除き、技術的な問題ではありません。自分自身をテストするなど、データストレージには、自動的に他の機能を実行することができる自分自身を複製するが、そのローカルマシン上ではありません。「ライセンスの唯一の目的は、使用してサービスを提供することの利点を享受できるようにすることです。」ので、以前のように、いくつかの法的な問題があります

ApacheのCouchDBのデータベース

我々はこれらの新しいサービスを享受するために、クラウドを使用する必要があることは間違いありません。CouchDBのは、多くのオープンソースプロジェクトの一つのキーと値のペアを格納するためのデータベースを構築するためのプロジェクトです。このプロジェクトは、Apache Software FoundationでサポートされているのErlang言語を使用しています。あなたは、任意のマシンのインストール上のソースファイルをダウンロードし、コンパイルして実行することができます。あなたがサーバーを購入するためにお金を費やす必要があることを除いて、それを使用する手数料はかかりません。

CouchDBのとAmazonのツールは似ていますが、それはいくつかの特別な機能を備えています。あなたはまだ行のキーと値のペアを格納するが、これらのキーと値のペアは、ブール、数値タイプなどの任意の標準的なJSON(JavaScriptオブジェクト表記)データ型とすることができます。値の範囲は、1024バイトの長い文字列に限定されるものではなく、許可された値を格納するための長い道のり、であってもパターンがあります。JavaScriptにすべてのフォーマットされた要求と応答。XMLベースのWebサービスのない、唯一のJSONありません。

最大の違いは、クエリを書かれています。CouchDBのマップ機能が書かれており、一人ではJavaScriptを経由しての機能を削減することができます。単純なクエリでは、データが特定の値より大きいか小さいテストするための「IF」句で、おそらくちょうどmap関数です。クエリが使用されるマップ関数から統計を計算しようとしている場合にのみ機能を減らします。マップ機能ではJavaScriptだけを書き込むことができるので、計算行の数が行うことは非常に簡単であることがわかったが、いくつかの他のクールな機能が欠けていてもよいです。私は試合の計算された数に加えて、私はまだ持っている他の非学術目的を把握することがわかりました。ドキュメントには、統計をマージし、むしろ印象的なリダクション機能が含まれていますが、CouchDBのは、この種のものを処理するための適切なツールであれば、私は本当に知らないあなたはより洗練された統計情報が必要な場合は、それは伝統的なの適切な使用を主張することですデータベース、統計レポートへのアクセス。

 

このプロジェクトのいくつかの制限があります。一部のマニュアルは、分散取得することはありません介入と耐障害性のない「分散、フォールトトレラント、無料のドキュメント指向データベースモデル」と呼ばれるホームプロジェクト。CouchDBのフォームを使用して、データベースをコピーできるようにするためのフォームを含んで、格好良いAJAXのユーザーインターフェイスを備えています。しかし、それは自動ではありません。

CouchDBのプロジェクトは、APIには表示されませんでした、アクセス制御やセキュリティモデルを増加しますが、文書の形で表示されません。彼らは、本来の意図は、それは良いアイデアだ、またはドキュメントを読むために失われた許可を得ることはありません、あなたは結果や真偽を返すためにJavaScript関数を書くことができ、SQL、または他の言語を置き換えるために、純粋なJavaScriptを使用することです設計されています。

純粋なJavaScriptを使用することは悪いことではありません。私はこれらのデータベースを使用する場合、私はすぐに誰かがいくつかの良い暗号化技術を使用して、クライアント上のセキュリティモデル層を開発できることを発見しました。クライアントのセキュリティコントロールを強化し、サーバーが作業を減らすことができるようになります、私は、資料の「半透明データベース」内のいくつか紹介しています。

この機能は、全体のCouchDBサーバスタックとしていくつかの極端なユーザーによって駆動されています。J.クリス・アンダーソン、主要なプロジェクトの一つが、必要とされるすべてのCouchDBのアプリケーションサーバであることを証明するために記事を書きました。ビジネスロジックとJavaScriptで書かれた表示とのデータの相互作用は、CouchDBのがJSONであるパケットからダウンロードされます。

アンダーソンの目には、すべての機能は、サーバー上のRubyを使用して、JavaScriptを使用して実装することができたときに、PythonやJavaは、PHPは、任意の大きな意味ではありません。このビューは常にいくつかのケースが発生しますので、クライアントマシンが正しく、いくつかの機能の実現を保証することはできません、少し極端かもしれないが、私たちが知っているものよりもクライアントの顧客に少ないです。CouchDBのようなこの軽量ツールは、人々は、コードが本当に必要とされているジョブを完了する方法について考え始めることができます。

データベースの辛抱

一見すると、他のほとんどのデータベースと同じように頑張れデータベース。入るための鍵は、それが保存されます。しかし、これは始まりに過ぎません。ユーザは、前世代の従来のデータベース形式よりも、データベースにさらに構造を追加できるように頑張れは、完全なオブジェクト階層を提供します。辛抱JavaScriptオブジェクトのためのより多くのバックエンド・ストレージ・デバイスであることが示され、JavaScriptのオブジェクトが道場AJAXツールキットなどによって作成されます。

その「スキーマフリー」、他のデータベースから、それは非常に違う機能を誇りに辛抱。頑張れは、任意の増加スキーマにことができます。頑張れは、階層の最上位ではないドメイン(SimpleDBにはいわゆる)と呼ばれ、ドキュメント(CouchDBのがいわゆる)、それを呼び出すことはありません、頑張れは、それもあなたがオブジェクトのサブクラスを作成することができます、オブジェクトと呼ばれます。あなたが規則に違反する場合は、また、特定のタイプを使用して特定のフィールドを主張することができますが、これは推奨されません。スキーマのルールはオプションです。

頑張れは密接に道場に接続しているので、頑張れは、接続の多くを提供しています。あなたは木のウィジェットは、それが直接JsonRestStoreにリンクして、グリッドを作成することができ、ウィジェットを使用すると、データを編集してみましょう。あなたは、リモートでJavaScriptコードの20行を介してデータベースにアクセスすることができます。

私はこれらの誤用が原因の経験ではなく潜在的なバグよりも、につながるの私の不足のためであってもよいし、小さな誤用の多くに会いました。私は正確に行う方法を見つけ出すときの操作の一部が正常に起動します。それ自体は辛抱が特に知っている必要はありませんが、AJAXフレームワークが直接あなたの顔です。道場AJAXフレームワークからドキュメントは、ほとんどのよりも優れているが、あなたは、問題の頑張れの表面電位複雑さの背後に隠さ把握するために、道場を学ぶためにいくつかの時間を費やす必要があります。

クラウドとクラスタ

誰かがそれらを呼び出すしなければならない理由は、これらのデータベースを試した後、私が見ることができる「おもちゃ。」その限られた機能、そこに新しい機能がありますが、これらの新機能は、お好みに拘束されることになる場合でも。何度も私はSQL標準的な機能の世界は生活を楽にすることを実現しました。そのようなレポートエンジンなど、多くの標準的なSQLベースのツールは、これらの新しいデータベースを接続することはできません。多くの重要な機能を達成するためにこれらを使用してMySQLやOracleデータベース。

しかし、これは将来的には私のプロジェクトは、私はこれらの新しいデータベースを使用しないことを意味するものではありません。彼らは非常に密接に開発が容易になり、AJAXと統合し、ソリッド・ステート・データ記憶されています。また、ほとんどのWebサイトは、JOINフリーモードでは、まだ多くの関係、1・リレーショナル・データ、あるいは外部キーを含む多くの一般的なデータ構造のために有用である、MySQLやOracleのすべての機能を必要としません。

もう一つの問題は、クラウド技術を使用するか、または独自のクラスタを構築するかどうかです。GoogleとAmzonはCouchDBのと頑張れが一致しないことができ、複数のマシンのサービスのコミットメントを提供します。チームは辛抱することは、将来的に拡大すると言います。しかし、GoogleとAmazonはどのように良い約束を予測することは困難です。AmazonやGoogleがどのようにするか?彼らが行うにはどのようにラックを紛失した場合、ハードディスクを失った場合は?彼らは非常に明確な約束と責任寿命を行っていません。

例えば、繰り返し文に何回のAmazonの用語は:「私たちはあなたのコンテンツ、アプリケーションのいずれかのアクセス、変更、削除、損傷、損失を許可、または無責任されているデータサービスのアカウントを提出しています。」

誰もが負の失われたトランザクションのために最終的に責任を負わなければならない人を知らないので、私は、アマゾンやGoogleを非難するとは言いませんよ。プログラマのいずれかがあるかもしれません、実際に破壊された者を決定することは困難です。しかし、我々はより多くの情報が優れていることを知っています。SimpleDBのデータは、ハリケーンや火災?オンラインバックアップコミュニティがこのようなサービスの詳細を提供する準備ができているとき、他の領域は、バックアップを行う一方で、地震が同じ領域で発生した場合は?RAIDディスクに保存されているが、何の計画雲が存在しませんそうするために。

すべてのこれらの懸念は、我々は明らかにアプリケーションデータの消失が適切で耐えることができる人のために、従来のデータベースのルールを破る、彼らはまだおもちゃのデータベースであることを認識しています。彼らは、あなたが選択したデータベース・プロバイダーに焦点を当てることができない、価格の面で、楽しく速く、そして非常に適切だが、むしろ問題を解決する方法については、JOIN操作を行う方法ではありません。

 

 

 

ます。https://www.cnblogs.com/licheng/archive/2010/09/09/1822091.htmlで再現

おすすめ

転載: blog.csdn.net/weixin_34346099/article/details/92626975