タグ

datastoreに関するimai78のブックマーク (45)

  • 図解 インデックス爆発 - 後ろ回しゲロ

    Google App EngineのDatastoreにはインデックス爆発という現象があります。 こちらで公式に説明されているのですが、 http://code.google.com/intl/ja/appengine/docs/java/datastore/queriesandindexes.html#Big_Entities_and_Exploding_Indexes 自分にとってはすごく分かりにくく、理解するのにとても苦労しましたので、自分なりにメモを残しておきます。 まず2,3の前提を。 基的な事ですが用語が統一されてなくて惑わされましたw 複合インデックス=カスタムインデックス=コンポジットインデックス です。 またGoogle App Engine for Javaでは WEB-INF/appengine-generated/datastore-indexes-auto.xm

    図解 インデックス爆発 - 後ろ回しゲロ
  • Googleの巨大分散データストアBigtableとDatastoreを理解する

    今回は、米Googleのクラウド環境に存在するデータベースBigtableとDatastoreサービスを紹介します。「巨大分散」という新たなデータベースの地平を切り開くためにどのような工夫をしているか、じっくり見ていきましょう。 「Bigtable」は、Googleの主要なサービスを支える独自の巨大分散データストアです*1。Bigtableは、2005年4月から格的な運用(プロダクション利用)が開始されたもので、Googleの検索サービスをはじめ、Gmail、YouTube、Google Maps、Google日本語入力、そしてApp Engineなど、70以上のプロジェクトで利用されています。その規模は、数P(ペタ)バイト~数十Pバイトに達しているでしょう。 Bigtableは、Google検索サービスにおける膨大なコンテンツやインデックスを保持し、高速に検索するための専用データストア

    Googleの巨大分散データストアBigtableとDatastoreを理解する
  • 「データのライフ・サイクル」で考えるHadoopの使いどころ

    前回は、Hadoopがどのような仕組みでスケール・アウト性を実現しているのかを述べました。また、Hadoopが基的に、バッチ処理のスループットの向上を目的にしていることを指摘しました。 Hadoopには、「できること」と「できないこと」があります。処理の性質によっては、既存のリレーショナル・データベース管理システム(RDBMS)や、最近注目されているKey-Value Store(KVS)型データベースなどが適していることもあります。 今回は、RDBMSが果たしている役割とニーズの変化を踏まえながら、「データのライフ・サイクル」に着目して、RDBMS、Hadoop、KVSの3者をどのように使い分けていくべきかを解説します。 RDBMSが果たしている役割 RDBMSは、米IBMの研究所に勤務していたエドガー・F・コッドが1970年に発表した、「関係モデル」というデータ・モデルを採用したデー

  • 台頭するキー・バリュー型データベース

    データを「キー」と「バリュー(値)」の組み合わせとして保存する「キー・バリュー型データストア」は、クラウド時代におけるデータベース技術の主流になろうとしている。20年以上にわたって主流であったリレーショナルデータベース管理システム(RDBMS)と仕組みを比較しながら、向く用途、向かない用途を考察しよう。 「RDBMSはクラウドで役割を減らしつつある」―。米IBMの「DB2」や米マイクロソフトの「SQL Server」のアーキテクトだったジェームズ・ハミルトン氏(現在の所属は米アマゾン・ウェブ・サービシズ)が、中国・上海で3月に開催された「SMDB 2009」(自己管理型データベースシステムに関するワークショップ)で発表した資料のタイトルだ。 ハミルトン氏がRDBMSに代わる存在として挙げるのは、米グーグルの「MapReduce」やそのオープンソース版「Hadoop」、アマゾンの「Simpl

    台頭するキー・バリュー型データベース
  • グリーの大規模分散ストレージ戦略(nanofs) | GREE Engineering

    はじめに はじめまして、グリー株式会社でエンジニアをしておりますkgwsと申します。今回は、グリー内で写真データの保存を行っている分散ストレージ(nanofs)を紹介させていただければと思います。 背景 弊社で運営させていただいている "GREE" ではユーザの写真や動画データを保存することができます。1億ユーザを目指すグリーは、ユーザの増加とともに写真や動画データは上限なしに増加していきます。またユーザの皆様の大切なデータを失うことは許されませんし、サービスを止めることも許されません。そんな状況の中、様々な技術や仕組みを使いサービスを運営してまいりました。 グリーのストレージの歴史は大きく分けて3世代がありました。 第一世代 第一世代ではアプリケーションサーバからNFSサーバをマウントし画像データを保存しておりました。簡単に導入できることと高価なサーバを使用すれば信頼性や安定性も保たれる

    グリーの大規模分散ストレージ戦略(nanofs) | GREE Engineering
  • 各種OSに対応したデータベース·PortaBase MOONGIFT

    PortaBaseはWindows/Mac OSX/Linux向けのオープンソース・ソフトウェア。メモやタスク管理、アドレス帳などコンピュータでは蓄積系のデータを扱うことが多々ある。それ専用のソフトウェアも多いが、ほんのちょっと自分好みでない場合も多い。 データ定義 そんな時には自作してみるのも手だろう。もちろん一から全て作成するのではあまりに手間がかかってしまう。ただデータを蓄積するだけであれば、PortaBaseを使ってみると良いだろう。PortaBaseは汎用的なデータベースソフトウェアだ。 PortaBaseは一つのテーブルを扱うデータベースソフトウェアで、項目は文字列/整数/真偽/ノート/日付/時刻/計算値/画像などが扱える。デフォルト値を付けることも可能だ。定義が終われば後は実際にデータを登録していくだけだ。フィールドの定義によってカレンダーが出たり、ファイル選択ダイアログが表

    各種OSに対応したデータベース·PortaBase MOONGIFT
  • Hadoopは企業のための新たな情報分析プラットフォームとなる、とCloudera

    グーグルが大規模分散システムのために用いているMapReduceという技術を、オープンソースとして実装したJavaベースのソフトウェア「Hadoop」です。 Hadoopは当初、Yahoo!やFacebook、Facebookといったネット企業が数テラバイト、ペタバイトにおよぶ大規模なログなどを分析するのに利用していましたが、現在ではVISAやJP Morgan Chase、China Moblieなど一般の企業でも大規模なデータ処理にHadoopを用いています。多くの処理がネットで行われるにつれ、「Big Data」と呼ばれる大規模データは処理のニーズはさまざまな企業に広がっています。 Hadoopは新しいデータ分析プラットフォームになる Hadoopの商用ディストリビューションを提供する「Cloudera」は、Hadoopをあらゆる企業、組織の情報分析プラットフォームにするというビジョ

    Hadoopは企業のための新たな情報分析プラットフォームとなる、とCloudera
  • クラウド上のリレーショナルデータベースはなぜ難しいのか? BASEとCAP定理について

    今週18日からマイクロソフトがラスベガスで「MIX09」を開催します。Windows 7やWindows Azureが発表された昨年秋のPDC(Professional Developers Conference)とは異なり、MIXはWebデザイナーとWebデベロッパー向けのイベントです。 ところで、デザイナーとデベロッパー向けのイベントといえばアドビシステムズのイベントが有名。その名称はたしか「MAX」ですよね......。 さて。MIX09ではWindows Azureの料金体系の発表があるかもしれないといわれています。もし発表されれば、IT系メディアのヘッドラインを飾ることでしょう。 僕が注目しているのは、先日「マイクロソフトがクラウドでリーダーシップを握る可能性が高まる」で書いた、SQL Server完全互換の「SQL Data Services」(SDS)についての具体的な内容の

    クラウド上のリレーショナルデータベースはなぜ難しいのか? BASEとCAP定理について
  • Song of Cloud: Slim3 Datastoreに乗り換える(2)

    前回は思想ばかり書いたので、今回はSlim3 Datastoreの導入手順などを書いてみようかと思います。 Mavenizeされたプロジェクト構成はまだ敷居が高いうえに、エントリがかぶりそうなのでEclipseのGoogle Pluginを使った方法を紹介していきます。 なお、導入手順としてはSlim3家サイトのほうが楽です。どちらかというと、これまでに作成したプロジェクトをマイグレーションするひと向けになりそうです。 App Engineに対応したプロジェクトの作成 Google Plugin for Eclipse の使用という家ページを参考しにしてEclipseプロジェクトを作成してください。 ただ、エントリを書いているタイミングではEclipse 3.5に関する情報が書いていなかったため、英語版も参考になると思います。 ちなみに、紙媒体のものでは第3章あたりを参考にするとよいか

  • クラウド向け分散データベースの事例

    はじめに 連載ではクラウドコンピューティングで利用される分散データベースの技術について紹介しています。第1回はクラウドコンピューティングの技術について概説し、その環境に対応するための新たな分散データベースの必要性について述べました。 今回はクラウド向け分散データベースの具体的な事例として、Googleの「BigTable」とAmazonの「Dynamo」について紹介したいと思います。少し耳慣れない言葉も出てくるかと思いますが、最後までお付き合いいただけると幸いです。 一般にハイスループット(高効率)とローレイテンシー(低遅延)がトレードオフの関係にあることはよく知られていますが、クラウドシステムもその例外ではありません。これらは最近でも、クラウド技術のシステム特性を理解する上で欠かせないトピックですが、分散データベースに関しては、ハイスループット重視のBigTableに対し、ローレイテン

  • 大量データのバッチ処理を高速化するHadoop

    Hadoopというソフトウエアが、いま注目を集めています。米Googleが発表した論文のアイディアをオープンソース・モデルで実装したソフトウエアです。膨大な量のデータを処理する必要に迫られた企業や研究組織が、続々とHadoopを実際に活用しはじめています。 私たちの研究グループでは、Wikipediaなどの巨大なテキスト・データを解析するために、2007年頃からHadoopを利用しはじめましたが、日国内でも2009年あたりからHadoopを使った事例を多く見聞きするようになりました。国内で初めてのHadoop関連イベントが2009年11月に東京で開催され、オライリー・ジャパンから2010年1月にHadoopの邦訳が出版されるなど、Hadoopが多くの開発者の注目を浴びています。 しかしながら、「Hadoopは何となくすごそうなんだけど、複雑だし、どんなソフトなのかいまいち分からないんだ

  • グーグルによるMapReduceサービス「BigQuery」が登場。SQLライクな命令で大規模データ操作

    「数兆件のデータも対話的に、高速に分析できる」。グーグルは5月19日にこのような表現で新しいサービス「BigQuery」の登場を紹介するエントリを、ブログにポストしています。 グーグルが公開したBigQueryは、Hadoopやデータウェアハウスなどを用いて多くの企業が行おうとしている大規模データ(いわゆる「Big Data」)の分析を、グーグルのクラウドで可能にします。利用者はGoogle Storage経由で大規模データを転送し、SQLライクな命令によって抽出や分析を行います。 まるでグーグルが大規模データ処理のMapReduceをホスティングし、その機能をサービスとして提供するようなものがBigQueryといえます(ただし公開された「BigQuery」の説明には、内部でMapReduceを利用しているのかどうかの記述はないのため、MapReduce「的」なサービスと表現すべきかもしれ

    グーグルによるMapReduceサービス「BigQuery」が登場。SQLライクな命令で大規模データ操作
  • 第1回 RDBMSとNoSQLデータベース | gihyo.jp

    はじめに NoSQL(Not Only SQL)という言葉が注目を集めています。これは「RDBMSが得意なことはRDBMSで、不得意なところにはRDBMSにこだわらず、用途に合ったデータストアを使いましょう』という考え方です。最近では、いわゆるNoSQLデータベース (⁠key-valueストアや各種データベース⁠)⁠ が次々と登場してきています。 そこで今回から数回に渡り、それぞれのNoSQLデータベースの特徴や具体的な使い方について紹介していきます。 RDBMSの強みとは そもそも、MySQLやPostgreSQLなどのRDBMSの弱みを補うため、様々なNoSQLデータベースが登場してきたわけですが、RDBMSにはたくさんの強みがあることも忘れてはいけません。 RDBMSの強み データの一貫性 (⁠トランザクション) 更新時のコストが少ない(JOINが前提でテーブルが正規化されている)

    第1回 RDBMSとNoSQLデータベース | gihyo.jp
  • ここまでできる! CouchDBパワーアップ作戦

    これまでの連載を通して、CouchDBの基的な概念と使い方、アプリケーションの作成方法までを解説してきました。ここからはさらに一歩踏み込んで、CouchDBDBサーバやAPサーバとして実際に運用するときに役に立つ機能を紹介していきます。具体的には、次の3つのテーマを取り扱います。 全文検索を導入すれば、CouchDB内にあるすべてのドキュメントを対象に、特定のキーワードを指定して検索できます。ユーザー認証では、例えばDBの管理者権限を特定のユーザーのみに付与できます。ユーザー認証はまだ充実しているとはいえないレベルですが、現時点ではどのような選択肢があるかを紹介していきたいと思います。最後にCouchDBへの負荷を分散させる方法として、CouchDBのインスタンスをノードとして複数用意し、各ドキュメントを分散して配置するやり方を紹介します。これらの手段を目的に応じて生かすことができれば

    ここまでできる! CouchDBパワーアップ作戦
  • Not Only NoSQL!! 驚異的なまでにWRITE性能をスケールさせるSPIDERストレージエンジン

    Webサービスでは、世界中からのトラフィックを捌く必要があるため、いくらチューニングしようとも一台のRDBMSでは捌ききることが出来ないのが常だ。MySQLは最初からマスター・スレーブ型のレプリケーション機能が搭載されており、スレーブをたくさんぶら下げることによって参照の負荷をスレーブに割り振るというスケールアウトによってその問題に対処してきた。スレーブによるスケールアウトは、参照(=PV)が多いWebサイトと非常に相性が良く、幾多のWebサイトにおいて実績を作ってきているし、まだまだ利用されている。 しかしながら、サイトのトラフィックが劇的に増加してくるようになると、レプリケーションによる負荷分散では追いつかなくなってきた。そこで人々がとった選択肢は、memcachedを利用することである。memcachedはインメモリ型の高速なKVSであり、参照・更新性能はMySQLより格段に高い。M

    Not Only NoSQL!! 驚異的なまでにWRITE性能をスケールさせるSPIDERストレージエンジン
  • Java Cloud Meeting Fukuoka2010に参加してきた

    2/20(土)に クラウドで変わるJava開発 – Java Cloud Meeting Fukuoka 2010 というイベントがSeasarFoundationより開催されました。 今回はGoogle App Engine Javaがメイン、という事でスピーカーとして声をかけていただけたのでスピーカーとして参加してきました。 私は「Google App Engine Java プラットーフォームの勘所」と言うことで、「プラットフォームの説明」「各サービス(機能)の説明」、サービスに付いてはDatastoreサービスを重点的に説明するという事を目的にしました。さらに、Datastoreサービスでは「そろそろJDOを公にDISっても言い時期かな」という判断で、思いっ切りDISる事にしました。今まで勉強会などで発表をするときは、できるだけ「LLAPI, JDO, Slim3」どれを選ぶかは好

  • Google App Engine上のベスト・プラクティス、その1: Datastore

    Google App Engine上でアプリを作りはじめて約二ヶ月。いろいろと分かって来たこともあるので、自分へのメモも含めてまとめてみる。まずは、Datastoreの話から。 なによりも大切なのはデータベースの設計 あたりまえと言えばあたりまえの話だが、App Engine上でアプリを作る上でもっとも大切なこと(=頭を使うべきところ)は、データベースの設計である。特にリレーショナル・データベース(RDB)上でのアプリ作りに慣れた人には、大きな「発想の転換」が必要なので、ここは注意が必要。 特に絶対にやっては行けないのは、 将来RDB上へ移行できるようにレイヤーを作って、その上にアプリを作る RDB上に作ったアプリをデータモデルを大幅に変更せずにApp Engine上に移植する RDBを前提に設計されたフレームワークをApp Engine上に載せて、その上にアプリを作る など。App En

  • https://memcachedb.org/

  • インデックステーブルについてMLで聞いてみた - スティルハウスの書庫の書庫

    App Engineのインデックステーブルについて、いまいち理解できてない部分や細かな疑問がいくつかあったのでMLで聞いてみました。 インデックステーブルの各行はどう構成されてる? How Entities and Indexes are Storedで説明されているEntitiesByProperty ASC/DESCテーブルは、実際には キー:"アプリID/カインド名/プロパティ名/プロパティ値" 値:エンティティのキー という構成か?それとも、 キー:"アプリID/カインド名/プロパティ名/プロパティ値/エンティティキー" という構成で、値はとくに無いのか? という質問に対し、Nickさんは 「後者で正しい」(インデックス行のキーにエンティティキーが含まれる構成) と返答してくれました。 また、インデックスについて詳しくはGoogle I/O 2008のUnder the Cover

    インデックステーブルについてMLで聞いてみた - スティルハウスの書庫の書庫
  • kumofsはなぜスケールするか - Blog by Sadayuki Furuhashi

    先日、分散Key-valueストア kumofs を公開しました。 多く方から反響とフィードバックをいただいています。ありがとうございます。 今回は、kumofs はなぜスケールするのか、なぜスケールすると言えるのかーということについて紹介したいと思います。 ところでスケーラビリティとは何か? スケーラビリティとは、利用者や仕事の増大に適応できる能力・度合い とされています(端的!)*1 。Scalability を日語にすると、拡張性 と訳されるようです。 ただ一口でスケーラビリティと言っても、様々な側面があります。ITシステムでは主には処理性能と運用に関することを指す場合が多いと思いますが*2、その中にも様々な側面があります。 なぜスケーラビリティが必要か スケーラビリティは システムなどが持つべき望ましい特性 であって、高いに越したことはありません。しかし、高いスケーラビリティはタ

    kumofsはなぜスケールするか - Blog by Sadayuki Furuhashi