読者の皆様へ: 皆様のご要望にお応えするべく、ノイズを削減する機能セットを開発しました。皆様が関心をお持ちのトピックを、EメールとWeb通知で受け取ることができます。新機能をぜひお試しください。
PayPalではデータエンジニア、アナリスト、データ科学者らが、さまざまなデータソースや計算エンジン、言語、実行モデル(ストリーム、バッチ、インタラクティブ)を用いて開発を行なっている。結果としてエンジニアは、これらさまざまなデータソースの管理に多くの時間を費やしており、製品の市場投入時間にも影響を与えている。
PayPalデータチームがGimelという新しい分析プラットフォームを開発した。あらゆるデータストアに対して、単一のデータAPIとSQLを用いたデータアクセスと、一元化されたデータカタログを提供する。
PayPalのRomit Mehta氏とDeepak Chandramouli氏は、先日のQCon.aiカンファレンスで、Gimelプラットフォームと、同プラットフォームを用いたデータアクセスのコモディティ化について講演した。講演の内容は、Gimelのコンポーネント — Compute Platform、Data API、PCatalog、GSQL、Notebookに関するものだ。合わせて氏らは、同フレームワークのオープンソース版についても発表した。
Mehta、Chandramouli両氏に、Gimelデータプラットフォームのセキュリティ面のサポート、データのバージョニング、将来的なロードマップについて話を聞いた。
InfoQ: トランザクションと分析のユースケースで、データカタログ(PCatalog)の管理方法に違いはありますか?
Mehta & Chandramouli: Gimel APIとSQLの現在の実装では、分析プラットフォームを重視しています。ストレージタイプがKafkaやNoSQL、リレーショナル、あるいはドキュメントベースであってもAPIは同じで、SQLが言語抽象化を提供します。PayPal内では、これと同じような抽象レイヤが、オンラインシステムやライブシステムからも要求されています。現在は同様のレイヤを、サブ秒レベルのレスポンスが必要なオンラインシステムに導入する方法を検討中です。
InfoQ: Gimelプラットフォームでは、データアクセスのセキュリティやアクセス管理といった要件に対しては、どのように取り組んでいるのでしょう?
Mehta & Chandramouli: クエリはすべて、ログインしているユーザの権限で基盤となるシステムに送信されます。クエリの実行もその基盤システムが行いますから、既存のセキュリティポリシとコントロールがそのまま適用されることになります。
さらにGimelは、ロギングフレームワークを通じて、実行したすべてのクエリのログを保持します。ログにはクエリ自体とローカルへのデータのダウロードの有無が含まれる他、将来的には機密データがアクセスされた場合のタグ付けも行う予定です。
PayPalでのGimelはRangerのポリシを尊重するとともに、Kerberos化されたクラスタとも密に連携しています。
InfoQ: データストアのバージョンはどのように管理していますか?
Mehta & Chandramouli: PayPalのストレージ管理者と連携して、インフラチームがサポートするストレージのバージョンをAPIでフルサポートできるようにしています。それに加えて、ストレージチームに新たな機器などのニーズがある場合には、同じものをAPIにも接続して、すべてのクライアントが実装を透過的に継承できるようにしています。これによってバージョンのアップグレードが行われても、ほとんどの場合、クライアント側でコードを変更する必要はありません。
InfoQ: GSQLクエリ言語について教えてください。Spark SQLやNeo4jのCypherなど、同種のフレームワークとはどのように違うのでしょう?
Mehta & Chandramouli: 現在のGSQLは簡易的な実装で、ユーザSQLをインターセプトしてGimelデータセット用の対応するデータAPIコードを生成し、それをSpark SQLインタープリタに渡す仕組みになっています。長期的には、KafaとHiveとHBaseを結合した結果をElasticに書き込むというような、複数のストレージタイプからのデータをブレンドないし結合するSQLに、プッシュダウン最適化を追加する作業に取り組んでいます。
ロードマップに関しては、段階的な機能追加やアップデートに加えて、以下のような計画が挙げられている。
- クエリの最適化
- オープンソース版PCatalog (メタデータサービス、ディスカバリーサービス、カタログUIを含む)
- Pythonサポートの追加 — 現在はScalaがサポートされている
- JupyterとLivyに追加された機能をオープンソースとしてリリース
Gimelプラットフォームについてさらに詳しく知りたい場合、あるいは機能に関する疑問については、資料やSlackチャネル、ユーザフォーラム、開発者フォーラムをチェックしてほしい。こちらのインストラクションに従って、Gimelを試してみることも可能だ。
この記事を評価
- 編集者評
- 編集長アクション