Services(AWS)は次々と新しいサービスを世の中に出して,クラウド・コンピューティングの可能性を広げていっています。Redshiftは,そのパフォーマンスや驚異的な低コストのため,発表当時から大変な反響を呼んできました。Redshiftの解説をして行きたいと思います。Redshiftとは何なのか,その概要から説明します。Redshiftです。この製品はデータウェアハウスでありながら,従来の製品よりもテラバイトあたりの価格が10分の1以下であり,さらにクラウド上に構築されるためメンテナンスコストなどの追加費用が必要ないとあって,大変注目を集めました。加えて,最低2TBから最大1.6PBまでスケールでき,通常のPostgreSQL用ドライバやJDBC/ODBCで接続することができるので,既存の資産を利用することも可能とのことで,ビッグデータ関係者が色めきたったものです。一般公開がまだ先ということもあって,その時点ではニュースとしては大きく取り上げられましたが,まだ全貌が見えていなかったことは確かです。その後,2013年2月に一般に公開された後,少しずつその内容が明らかになって来ました。実は,筆者が所属するHapyrusでは,一般公開前にAmazonのRedshiftチームと共同で,プレビューベータの製品を検証していたので,公開と同時にいくつかのベンチマークを公開しました。AirBnBというシェアハウスの時間貸しビジネスで大きくなった会社のエンジニアも,同じビッグデータテクノロジーであるHadoopのSQLコンポーネントであるHiveとの比較ブログを公開するなど,いくつかの記事をネット上で見ることができます。Redshiftの特徴このように断片的な情報はニュースなどで伝わっていますが,そもそもデータウェアハウスとはどのようなシステムなのでしょうか。Intelligence:BI⁠)⁠,システムの効率化用のデータを取得したりします。その性質上,レコードの更新や削除はほとんど行われません。分析用の計算(OLAP)を行い,専用のハードウェア(アプライアンス)や特殊なソフトウェアとして提供されることが多いので,価格は一般的に高価になります。Verticaなどがあります。Redshiftにもそのほとんどの主要な機能が搭載されています。Redshiftの大きな特徴は,これらのデータウェアハウスと比べて,年額の費用が10倍から多い時には1000倍も低くできることです。Redshiftは最低金額が年に$2,000から利用できます(3年リザーブド・インスタンスで2TBストレージの場合⁠)⁠。機能スペック的にはそれほど違いがなく,唯一の大きな違いはクラウド上にあるかどうか,ということです。Redshiftは最初の選択肢になるでしょう。クラウドを使っていない場合でも,このためにクラウド環境を検討する価値があるかもしれません。Redshiftの主な機能は,以下のようなものです。順番に見て行きましょう。カラムナーデータベースデータウェアハウスは主にSQLを用いて大規模なデータに対する集計処理を行うので,カラムに対する集計関数(合計や平均など)の実行が基本になります。そこで,カラムごとにデータをブロック化するという手法が有効だということで,このカラムナー(列指向)データベースというものが生まれました。逆に,通常のデータベースは行指向データベースとも呼ばれ,ランダムアクセス(ある特定の行を取得する)に向いています。カラムナーデータベースと行指向データベースさらに,同じカラムは同じデータの繰り返しが多く起こりやすいので,圧縮が効きやすく,より少ない容量で大きなデータを表すことができます。AAAABBCCCAABという12文字のデータは,(⁠順番を無視すると)A6B3C3という6文字のデータに置き換えられるわけです。同じ種類のデータが多い(カーディナリティが低いとも言います)と,より圧縮効率が良いというわけです。圧縮効率が良いと何が良いかというと,データを小さくすることができるためデータベース処理スピードの一番のボトルネックである,ディスクからの入出力を減らすことができます。メモリに乗せることもできる可能性も上がり,パフォーマンスに大きな影響を与えます。このように,カラムナーデータベースは,特に大きなデータの集計処理には優れたパフォーマンスを発揮するのです。Redshiftは9種類の圧縮エンコーディングに対応しています(2013/4/4現在⁠)⁠。dictionaryやDelta,Mostlynなどと呼ばれるものです。それぞれ独自のアルゴリズムがありますが,どれを適用するのが一番良いかは,全体のデータの内容に依存するため,判断するのが難しいでしょう。そのため,RedshiftにはCOPYコマンドという,バッチインポート用のコマンドを初回に実行した時や,その時点で格納されているデータを元にANALYZEコマンドを実行した時に,一番有効なエンコーディングを自動で決定してくれる機能があります。Processing)通常のデータベースの場合,クラスタ化しスケールさせた場合でもシェアード・ナッシング(リソースを共有しないことにより線形スケールを可能にするアーキテクチャ)にならないので,台数を増やすごとに性能を向上させるのは難しいといわれています。RedshiftはこのMPPという機構を用いてシェアード・ナッシングを実現し,線形スケールを実現しています。インスタンスを追加するたびにデータ容量だけでなく,処理性能も向上していくということになります。これは,次回比較するHadoopなどと同じ構造であり,ビッグデータ処理の上では必須の機能と言えるでしょう。Node(スケールする,実際に計算・データ保持するノード)に分かれていて,適切にデータを保持したり,クエリ処理を分散させたりという仕組みが内部的に動いています。この中身はブラックボックスになっていて,基本的にAmazonが管理しているので,ユーザは気にする必要がありません。Hadoopとよく似ていますが,誰が管理するか,というところが大きな違いだと思います(Hadoopクラスタの管理は大変です...⁠)⁠。簡単にインスタンス追加ハードウェア・アプライアンスはもとより,通常のデータウェアハウス・ソフトウェア製品であっても,データ容量が足りなくなったり,思ったようなパフォーマンスが出なくなったりするときにインスタンスを追加するという選択肢がありますが,実際にそうするのは大変です。追加には多額の費用と1ヵ月くらいの日数は必要でしょう。Redshiftはほんの数クリックで,自由にインスタンスを追加することができます。Redshiftですが,それでは具体的なメリットやデメリットにはどのようなものがあるのか,またHadoopやNoSQLデータベースなど既存のビッグデータ技術の利用法と比較して,どのような違いがあるのかを次回で見て行きたいと思います。Redshiftを提供しています。お問い合わせください。JAPANに買収された後は,エンジニアとしてYahoo!モバイルを開発。アジャイル開発コンサルやデリバティブ取引システムなどの開発経験を経て,シリウステクノロジーズでテクニカルマネージャ&夜はIPA未踏人材育成事業でHadoopのミドルウェア開発プロジェクト。日本JRubyユーザグループ発起人。Inc.(旧社名Hapyrus)をUSにて起業。カリフォルニアSunnyvale在住。2019」を開催しました。DAY1・DAY2の様子を注目セッションとともにお伝えします。LINEのエンジニア3名がイベントに先駆けて見どころを紹介します。コードの安全性・安定性を高める開発サイクル~テスト管理の効率を上げ,脆弱性診断を自動で行う~本連載では,連載「業務を改善する情報共有の仕掛け」を受けつつ,安全性・安定性を加えた開発サイクルについて考えていきます。若者世代から圧倒的な人気を誇るライブ配信&動画投稿コミュニティアプリ「MixChannel」(ミクチャ)の裏側(レコメンドシステムやサーバサイド開発など)について解説していきます。その他の連載CSS3アニメーションでつくるインターフェイス表現CSS3によるアニメーション表現を紹介していきます。その中でも,幅広い読者に応用してもらえるだろうインターフェイスを主なお題とします。MySQL道普請便り本連載では,MySQLを使ったアプリ開発・運用に関するノウハウをご紹介していきます。RecipeUbuntuの強力なデスクトップ機能を活用するための,いろいろなレシピをお届けします。JavaScriptセキュリティの基礎知識JavaScriptに関するセキュリティ上の問題はどこで発生し,どうすれば防ぐことができるのか?について解説していきます。〜システムをきちんと運用するための基礎知識システムは「作って終わり」ではなく,運用の中でさまざまな問題が発生します。問題の発生に備えて事前にどのような対応をしておくべきなのか,問題発生時に何をしなければならないのか,ポイントを解説していきます。きたみりゅうじの聞かせて珍プレーソフトウェア開発の現場で体験したトホホな失敗,思わずうなる珍プレーをきたみりゅうじ氏が四コママンガで紹介。Linuxのメンテナンスの傍ら,Linuxやオープンソースソフトと日々を過ごす著者が,その魅力とつきあい方を,エッセイ風味でお届けします。PRESS特別編集部員,さわやか笑顔のスーパーハカーはまちちゃんとネット大好き14歳わかばちゃんが,毎号,読者の皆さんから寄せられたおたよりを紹介します。皆さんの日頃の悩みにも答えちゃいますよ。]メールでのお知らせメールで次の案内をお送りしております。メールの配信を希望する方は,利用したい項目をチェックしてメールアドレスを入力し,[登録]ボタンをクリックしてください。UPDATES[ほぼ週間に1回]新刊メールマガジン[ほぼ週間に1回]電脳会議の各号案内[ほぼ1ヵ月半に1回]※変更する場合や停止する場合は,登録情報変更ページをご覧ください。※登録いただいたメールアドレスには,そのお知らせ以外,配信いたしません。Ltd.ページ内容の全部あるいは一部を無断で利用することを禁止します。個別にライセンスが設定されている記事等はそのライセンスに従います。