この記事は機械翻訳されたものです。

働くプログラマ:

Cassandra NoSQL データベース: 入門 (機械翻訳)

Ted Neward

 

Ted Neward古代のギリシア人、カサンドラ、プリアモス王と女王ヘカベーのトロイの娘の話。 彼女は彼女の世代の最も美しい女性の 1 つだった。 彼女はすぐに受け入れ、ギリシャ神アポロの予言者のギフトを提供したが彼女は後で彼の怒悪口を言われたとき、アポロは常に真実を知っているし、は決してによって信じられる彼女に呪われたに誰が彼女にそれを話した。 彼女の贈り物の予言のおかげでカサンドラ、トロイの木馬によって提示トラップを予見したが彼女の呪い不信のおかげで、トロイの彼女に警告を聞くでしょう。 彼らは、馬、城壁内をもたらしたし、知らずトロイの秋につながった市にそこに隠されたギリシャ語の兵士たちを招待します。 カサンドラ戦争賞としては戻ってギリシャにどこで彼女は再び未来を予見したのアガメンノンによって撮影されました:彼 (彼女) 死、再び疑っただったが — は、案の定、彼も彼女に殺されました。

現代のコンピューター科学オタク言うカサンドラの話は少し違う、Apache カサンドラ、「NoSQL」データベースの別の — と人気の 1 つで、— でよく知られているインターネット ベースの企業 (YouTube、Netflix その他)、と、おそらく 1 つのレポートは額面で撮影実際には、さまざまな使用。 (カサンドラの別の有名な予言者、デルフォイのしゃれがうわさ。)

開発者には、カサンドラ、ソフトウェア カサンドラのトロイの木馬としてように混乱することができます。 それが「オープン ソース アマゾンのダイナモと Google の Bigtable 上データ モデルに基づいてその分布設計分散分散、弾性拡張性、高可用性、フォールト トレラント、tuneably 一貫した、カラム指向のデータベース」(ソース。「カサンドラ:決定的なガイド、"米オライリー メディア社、2010 年、p。 14).

ギリシア神話私の業界よりももっと意味をなすと思う時。

すべてが分解、我々 を参照してください。

  • カサンドラ (垂直方向ではなく、水平方向のスケーリングの) ロットとロットとたくさん (数百テラバイト、よく引用例らしい) データの内「大きなボックスを購入」を言うリレーショナル データベース思考傾向ではなく、リングで配置されたマシンのさまざまな格納するために構築されています。
  • カサンドラは、リレーショナル データベースのデータ モデルの表面のようなそれの議論の列、列の家族と名前付きの値に聞こえるよう何もな行為は実際にはように、データ モデルがあります。

この議論に関連のある、カサンドラ、開発者コミュニティ内でカラム指向のデータベースに私たちの集団柱状視線を有効にするには良いアイデアのように思えたので、ツールボックスは価値のあるツールとして勢いを増しています。 (しゃれ意図)

概念の概要

カサンドラ「列型」という用語の使用にもかかわらず、リレーショナル データ ストアではないです。実際には、それは本当にすべてで、リレーショナル データベースのような何かを見ていません。 保証のさまざまな行のテーブル内のデータがすべて似ているスキーマは、例えばではなくカサンドラ「列の家族」"keyspaces"に格納します。キースに行政の絶縁バリアでは実際にはリレーショナル データベースのインスタンスから別の 1 つ、同じサーバー上で区切らが列の家族は完全に別の獣、ほとんど同じ方法でです。 各列の家族「はキーで識別行」が、行内の任意の数の名前/値ペア (列) が存在することができますな各行列ファミリ内の他の行からのまったく異なるデータ要素を含めることができます。

実用的な用語では、我々 カサンドラの人のコレクションを格納するために使用するいると仮定しましょう。 キーストア内「地球」我々 順番次のような行が「人」と呼ばれる列家族があるでしょう。

RowKey: tedneward
  ColumnName:"FirstName", ColumnValue:"Ted"
  ColumnName:"LastName", ColumnValue:"Neward"
  ColumnName:"Age", ColumnValue:41
  ColumnName:"Title", ColumnValue:"Architect"
RowKey: rickgaribay
  ColumnName:"FirstName", ColumnValue:"Rick"
  ColumnName:"LastName", ColumnValue:"Garibay"
RowKey: theartistformerlyknownasprince
  ColumnName:"Identifier", ColumnValue: <image>
  ColumnName:"Title", ColumnValue:"Rock Star"

見ることができますが、各行に概念的に類似のデータ (分散が大きすぎて場合、開発者が使用して複雑になる可能性があります) すべての行が同じデータが使用されます。 ここでは、ペットを格納はたとえばはおそらくあまりにも多くの混乱を作成します。 アプリケーションは可能性が数十または数百の家族の別の列を使用するは、このためです。

名前/値のペアの行が成り立っていることを言うとき、(わずかに) にうそ; それは実際に名前/値/タイムスタンプ三つ子がドキュメント、かなりトリプレットのタイムスタンプの一部だけの競合検出を決して、アプリケーション ロジックの一部として使用するだとはっきりカサンドラので構成されます。 ほとんどのカサンドラの記事は本質的にそれを無視する新しいカサンドラ開発者を教えてください。

動作の確認したらこのすべてはもっと意味をなします、それではカサンドラの実行を取得します。

入門 (機械翻訳)

カサンドラの何でもすることができます前に、それをインストール、する必要があるし、最初のハードルをそこにあります。カサンドラは、オープン ソースのプロジェクトの宣伝として、多くのオープン ソース プロジェクトのようです、それは、Microsoft .net Framework の言語で書かれていません。 代わりに、カサンドラは Java で書かれているなど比較的モダンな Java ランタイムを実行するためにあなたのマシンにインストールする必要があります。 カサンドラは Java 6 をうまく実行されます (そして、実際には、対象のブログの記事のほとんどがそれを提案する) が必要がありますだけでなく、タッチではない場合を実行を高速化が最も最近リリース Java 7。

(、決して前にあなたのマシン上の Java をインストールした場合は、ちょうどあなたの検索エンジンのいずれか 32 ビットまたは 64 ビット Windows の選択と必要なインストーラーをプルダウンに「Java ランタイム環境 6 (7) ダウンロード」をターゲットの OS に応じてプラグインです。 という Java ランタイム環境 (JRE) のインストール ディレクトリをポイントする JAVA_HOME 環境変数が設定されている他のことを行う必要がありますのみについて — デフォルトのインストールでは、これは c:\program files Files\Java\jre6 になります — と JRE の"bin"サブディレクトリのパスがない場合)。

次に、Cassandra バイナリ カサンドラ ホームページからダウン プルします。 残念ながら私たちは Windows の人々 は、それとしては、。 tar.gz ファイルは、箱から Windows を何を行うには確認されていません。 ツールの多数は展開した利用は。 いくつかの Unix のフー Windows ボックスの練習を開始する場合は、Cygwin で"gunzip"と"tar"のコマンド ライン ユーティリティを含む tar.gz ファイル。 カサンドラ ダウンロード (これを書いては、最新バージョン) C:\Prg\apache-cassandra-1.1.0 などの便利なディレクトリの内容をダンプします。 Java プロジェクトの共通であるので、必要カサンドラのインストール ディレクトリのルートにポイントする環境変数を作成、ので C:\Prg\apache-cassandra-1.1.0 に (私の場合) をポイント、CASSANDRA_HOME 環境変数を作成します。

原始の条件でここでは少し愕然としたなら、Java プロジェクト (つまり私たちは、すべてのプラットフォームに共通のメカニズムを使用する必要があるし、はい、環境変数がどこでも人造人間です)、複数のプラットフォームで動作するようなことを覚えています。 これの正の側は、カサンドラとをこれまで、Windows 以外のプラットフォームで機能する場合は、あなたと同じセットアップ手順することがありますです。Java、カサンドラ取得、展開したし、環境変数を設定します。 残念ながら、それは我々 それ以外の場合に使用されるかもしれないと当社の金型かなりとして空想と GUI ベースはないということ。

私たちの O の予言者に話す !

発射カサンドラ手段を言えばホッピング カサンドラ インストール ディレクトリとバッチ ファイル"cassandra.bat"を"bin"サブディレクトリにオフに蹴る。 「カサンドラ – f として」起動は (、"-f"フォア グラウンドで実行されます)、とのような何かを参照くださいする必要があります図 1.

Installing Cassandra with the Cassandra.bat File
図 1 インストール カサンドラ Cassandra.bat ファイル

既定では、カサンドラ データをダンプしてログ Java「c:\」として解釈されます、ファイル ・ システムのルートから"var"ディレクトリにコミットするように構成。 これより Unix-ism ので、簡単に"conf/cassandra.yaml"の構成ファイルに異なる構成します。

(便利なメモ。DataStax 株式会社という会社 カサンドラ サーバーおよび JRE との両方は無料ダウンロードとして利用できる、HTML ベースのオペレーション センター製品を含む all 1 つのインストーラーを提供しています。 すべての設定のそれを得る問題を抱えている場合は、あなたが代わりにみます。)

カサンドラ サーバ 9160 ポートでの着信接続を期待して、Java の Windows Management Instrumentation に相当であるその Java 管理拡張機能監視用ポート 7199 を使用します。 両方のポート最終的には、それぞれクライアント ・ アプリケーションとカサンドラ監視ユーティリティにアクセスできるようにします。

カサンドラが稼働しているあなたの箱を一度は、私たち"カサンドラ-cli.bat、"を実行することによって開始したカサンドラのコマンド ライン インターフェイスを使用して実行中のインスタンスに再びカサンドラの"bin"ディレクトリから接続できます (を参照してください図 2)。

Connecting to a Running Cassandra Instance
図 2 は実行カサンドラのインスタンスに接続します。

キース TestKS (これは一意の名前をする必要があります)""を作成する鍵空間を作成するには、使用、および列の家族は、鍵空間内を作成するには、最初のタイプ「<keyspace> を使用する」、「列の家族 <name> の作成」他のスキーマ定義は必要ありません — 列家族から名前/値ペアのコレクションは、覚えています。

列の家族にデータを挿入するには、("TestCF") を挿入列の家族の名前を必要とする「設定」コマンドを使用してこの行 ("TestKey") を格納するこの値 (「列」) は、値の名前として使用する列の家族内の列に使用するキーがある (「値」)。 ただし、カサンドラ データをバイナリ値として格納されるため、行キー、列名と列の値"ascii"の組み込み関数を使用して ASCII 値として解釈するカサンドラを指示する必要があります。 つまり、全体の「セット」はこのようになります。

set TestCF[ascii('TestKey')][ascii('column')]=ascii('value');

データの取得は、基本的にこのような"get"コマンドを使用して同じ運動です:

get TestCF[ascii("TestKey")];

このような何かが返されます。

(column=636f6c756d6e, value=76616c7565, timestamp=1338798419726000)

これは、カサンドラ実際、ちんぷんかんぷん話す、ことを示します (少なくとも、私たち人間に — 注意深く見れば、これらのバイナリ値が「列」と「値」の ASCII 値をそれぞれです)。

最も困難な部分が行われます

われわれは時間のうち、カサンドラのみインストールされています。 具体的には、単一ノード カサンドラ クラスターを運用され何も行われているまだそれに対してプログラム。 幸いにも、カサンドラを開始、最も困難な部分が完成しました。 次の分割払いでは、.net ライブラリを使用して、.net アプリケーションは、それに戻ると 3 つのノード クラスターの設定し、それを取得する方法を示すプルから一部のデータを格納するためにそれを得るにカサンドラの話をして、実行を開始します。

今のところ、しかし、幸せなコーディング !

Ted Neward Neudesic LLC、建築コンサルタントです。 彼が 100 以上の記事を書かれてあり、作成または「プロ F c# 2.0」を含む、数十本を共著 (Wrox、2010年)。彼は、F c# MVP と Java を指摘する専門家と Java と .net の両方の会議は世界中で話します。彼は相談を行い、定期的にメンター — 彼に到達 ted@tedneward.com 、彼に来てあなたのチームとの仕事に興味を持っている場合。彼のブログで blogs.tedneward.com と twitter で続くことができる Twitter.com/tedneward

この記事のレビュー、技術スタッフのおかげで:ケリー ・ ソマーズ