Airpal

PrestoDB用Web UI
2,759
作成者James Mayfield

Airbnbは、データ分析を容易にするためにFacebookのPrestoDBを活用した、Webベースのクエリ実行ツールであるAirpalのリリースを発表できることを嬉しく思います。

SQLを使って探索や調査に時間を費やす人は、ワークフローが必ずしもスムーズではないことを知っています。クエリの書き方を覚えたり、コマンドラインからコピー&ペーストしたり、複数のターミナルウィンドウを実行したりすることは、分析を遅らせ、イライラの原因となる可能性があります。さらに、さまざまなチームが分析にSQLを使用する場合、初心者にとっては学習曲線が急峻になる可能性があるため、優れたUIツールは導入を促進し、知識の共有を促進するのに役立ちます。

Airbnbでは、約1年前に社内でAirpalをリリースし、現在では全従業員の3分の1以上がこのツールを通じてクエリを発行しています。これは驚くべき統計であり、Prestoが当社のデータインフラストラクチャにとって不可欠であることを示しています。

現在、約1.5ペタバイトのデータをHDFS内のHive管理テーブルとして保持しており、重要な「core_data」テーブルの比較的小さなデータサイズにより、Prestoを分析のデフォルトのクエリエンジンとして使用できます。アドホッククエリを実行し、分析の手順を反復処理する場合、Prestoは従来のマップリデュースジョブよりもはるかに高速で応答性が高くなります。ただし、Prestoをインフラストラクチャスタックに追加する最大のメリットは、「対話型」クエリを可能にするために追加の複雑さを加える必要がないことです。当社は1つの中央のHiveデータウェアハウスに対してクエリを実行しているため、別のストレージ/クエリレイヤーへの大規模なコピーなしに「単一の信頼できる情報源」を維持できます。さらに、速度向上のためにデータストレージタイプをRC形式から変更する必要がないという事実は、Prestoを当社のインフラストラクチャにとって素晴らしい選択肢にしています。

このツールをオープンソースコミュニティと共有できることを嬉しく思っており、他の人にも同様の有用性を提供できることを願っています。

Airpalの主な機能

  • ユーザー向けのオプションのアクセス制御
  • テーブルを検索および発見する機能
  • メタデータ、パーティション、スキーマ、およびサンプル行を表示
  • 読みやすいエディターでクエリを作成
  • Webインターフェイスを通じてクエリを送信
  • クエリの進行状況を追跡
  • 結果をCSVとしてブラウザ経由で取得
  • クエリの結果に基づいて新しいHiveテーブルを作成
  • 作成したクエリを保存
  • ツール内で実行されたすべてのクエリの検索可能な履歴

Prestoの精神に沿って、オーバーヘッドやコストなしで試してみたい人のためにローカルストレージオプションを提供することで、Airpalのインストールを簡単にするように努めてきました。詳細については、こちらからGitHubページにアクセスしてください:https://github.com/airbnb/airpal

Airpalの注目すべき技術的機能のいくつかを紹介します

  1. JavaでRESTサービスを提供する簡単な方法としてDropwizardを使用
  2. サーバーからクライアントにメッセージをプッシュするためにSSE(Server Sent Events)を採用
  3. フロントエンドJavaScriptはreact.jsを使用

最後に、Hiveの元の開発者であり、ビッグデータへの簡単なアクセスを促進するためのUIツールを構築した先駆者として、Facebookが提供した素晴らしい方向性について言及しないわけにはいきません。私たちは巨人の肩の上に立ってこのツールを作成し、Facebookのデータインフラストラクチャチームとデータツールチームが提供できた影響とインプットに感謝しています。

世界クラスのデータツールスイートの構築に興味がある場合は、このオープンな求人ポジションを確認してください:https://www.airbnb.com/jobs/departments/position/48112