Aerospike NoSQLの成功事例

Aerospikeは、行指向データベースです。クライアント・サーバソリューションであり、Aerospikeが提供するライブラリを使用し、TCP経由でデータベースクラスタに接続するアプリケーションサーバ群を構築できます。Aerospikeが非常に適しているNoSQLの事例は数多くあります。

null

キーバリュー型データベース

多くのインターネットアプリケーションは、大規模で高速なキーバリューストアを基軸として設計されています。Twitter、Weibo、Uber、Pinterestなどのインターネットアプリケーションは、主にSQLではなく大規模なキーバリューシステムで構築されています。キーバリューは予測可能であり、Redisのようなインメモリシステムは非常に高速です。

Twitterのようなアプリケーションにはユーザーレコードがあり、各ユーザーレコードにはフォローしている人やフォロワーのリストが含まれる場合があります。各ユーザーは作成したメッセージのリストを持っており、読むべき広告メッセージのリストも持っている場合があります。NoSQLプログラミングモデルでは、アプリケーションを別の視点から考える必要がありますが、スピードとスケールのメリットが得られます。

大規模なインターネットアプリケーションの場合、キーバリューデータベースには、永続性、シャーディング、リストやマップ操作などのオブジェクト操作、そして優れた操作特性が必要です。様々なアプリケーション言語をサポートする必要があります。ほとんどの企業は、JavaやNodeだけでなく、Python、Ruby言語に加えてCやGoのコンポーネントを組み合わせて使用しています。

キーバリューストアとは?

Aerospikeをキーバリューストアとして使用しているいくつかの企業の事例を読む

null

キャッシュ置換

Aerospikeはレイテンシが低くスループットが高いため、キャッシュの代替として優れています。キャッシュは、静的なデータがある場合に最適です。ただし、データが動的に変化する場合は、キャッシュとデータベースの間の不整合に対処するか、書き込みの際にデータベースに負荷をかけざるを得ません。

また、MemcacheやRedisと比較すると、Aerospikeにはクラスタリング機能が組み込まれており、高性能なフラッシュストレージ(SSD)を使用できます。ベンチマークによると、Aerospikeの単一サーバの速度はRedisやMemcacheの両方に匹敵することが示されていますが、Aerospikeには自動クラスタリングと透過的なリシャーディングの機能が含まれています。これにより、ノードを起動するだけで容量を追加できます。継続的なデフラグとデータ消去、Memcacheのようなチェック&セット操作により、使い慣れた、かつ、必要な機能が提供されます。

Aerospikeには、クエリ、アグリゲーション、データベース内計算などの複雑な操作がありますが、高性能な「単一ビン」モードも備えており、RAMのみの単一データ・モード用にも設定できます。より信頼性の高いキャッシュが必要な場合は、データレプリケーションをオンにできますが、この設定は必須のものではありません。

キャッシュとしてキーバリューストアを使用する

賢い出張や旅行を支援するKAYAKの事例を読む

null

ユーザープロファイル・ストア

広告やマーケティングアプリケーションを構築する場合、ユーザープロファイルを保存する必要があります。多くの場合、これらのプロファイルには、ユーザーの最近の行動、分析システムから読み込まれたセグメント情報、パートナーのクッキー、その他のさまざまなデータが含まれます。プロファイル毎に1KB~10KBなどの小さいサイズであることがほとんどです。純粋なプロファイルの他にも、クッキーのマッチング、キャンペーン予算やステータス、その他のフロントエンドのデータが必要です。

Aerospikeはこのような事例では非常に優れており、AppNexus、Nielsen、The Trade Desk、Adformなど、成功している多くの広告会社の核となるユーザーストアを形成しています。Aerospikeはフラッシュ(SSD)に最適化されており、他のデータベースよりもテラバイト規模といった大容量での運用をはるかに安価に行えます。データの有効期限設定、サービスのダウンタイムを発生させずにメンテナンスを行う「ローリングアップデート」、ダウンタイム無しで何年間もサービス実行できるなどの重要な機能を備えています。

パーソナライゼーションのためのデータ格納

インターネット広告のリーダー企業がどのようにAerospikeを広告ユーザーストアとして利用しているか読む

null

レコメンデーション・エンジン

レコメンデーション・エンジンは、革新的な計算技術とドメイン固有の知識を組み合わせて、オンラインでの顧客との交流を高めます。レコメンデーション・エンジンを設計する場合、システムが進化するに伴って、より高いスループットやより多くのデータが必要になるため、レコメンデーション毎に複数のリクエストをサポートする高速で柔軟なデータレイヤが必要になります。データサイエンティストからデータのETL(抽出・変換・格納)を行う場合や、アプリケーションが使用する顧客の最近の挙動を記録する場合には、高い書き込みスループットをサポートするソリューションが必要です。

Aerospikeは、レコメンデーション・エンジンのための優れたデータベースです。主な機能としては、大規模なリスト(動作を効率的に記録するためのもの)、テラバイトからペタバイトまでのデータセットを処理するために最適化されたフラッシュ(SSD)のサポート、リアルタイムレポート用のクエリとアグリゲーション、PythonやGoなどの言語の強力なサポートなどがあります。開発の手始めとなるべく、Aerospikeは最新のコサイン類似度を利用したリアルタイムの挙動エンジンをオープンソース化しました。

null

不正検知と対策

金銭が関わる際はいつでも、不正行為を検知し、できれば対策を取るが必要となります。広告など一部の業界では、最も効果的なアルゴリズムは非常にシンプルなものです。すなわち、最近掲載された広告を記録し、その広告のクリックに対して一度だけ料金を支払うというものです。このような単純なケースでも、直近の数時間に配信された広告、高い読み書きスピード、正確性が必要となります。金融サービスでは、データ分析によって作成されたルールを巨大なSQLシステムで実行し、「不正スコア」を作成します。その結果を利用して、高いレベルの検証を起動できます。

機械学習のようなより高度なアルゴリズムを使用する場合は、さらに高度なライブラリを含む、最高の技術の組み合わせが必要となります。ここでは、SQLデータベースに計算処理を行うことはできません。SQL自体が妨げになるからです。Spark、Impala、Storm、Akkaのようなストリーミングフレームワークには、最近の挙動の共有データストアが必要です。Aerospikeは、これらのプロジェクトに最適なデータベースです。

ForensIQが、Aerospikeを使用して、どのようにインターネット広告不正と戦い、ビジネスの急激な成長を成し遂げたかについて読む