PLAID Engineer Blog

PLAID Engineer Blog


KARTEを提供する株式会社プレイドのエンジニアブログです。プレイドのエンジニアのユニークなパーソナリティを知ってもらうため、エンジニアメンバーたちが各々執筆しています。

PLAID Engineer Blog

Analytics

6,000スロットを使うBigQueryのリソース配分最適化への挑戦

※ 2020-04-09 追記本記事に「スロット消費は実行時のサービスアカウントに紐づく」という内容で一部実際の仕様とは異なる・誤解をまねく内容があったため、一部内容を修正・加筆しました。(修正後は「スロット消費はデータのあるプロジェクトと別にできる」という見出しになっています) こんにちは。エンジニアのg0eです。 今回は、6,000スロットを使うBigQueryのリソース配分最適化への挑戦と題して、Google BigQueryの主にスロット周りの話について書いてみたいと思います。 背景当社ではプロダクトの中でBigQueryをかなりヘビーに活用しています。どのような使い方をしているか、どのような工夫をしているか、については「プレイドのCTOが登壇しました! 〜G…

g0eg0e

Bit Matrixを使って超高速にアグリゲーションする

プレイドの @nashibao です。 弊社は大量のログデータを収集し、人軸で解析するサービスを展開しています。収集したデータの利用方法には様々な目的と様々な手法がありますが、そのうちの大きな一つに、中・大規模のデータに対して、アドホックなクエリをインタラクティブにかけアグリゲーション結果を得る というものがあります。 このようなアグリゲーションの問題において、クエリの自由度 x データ規模 x レイテンシーを共存するのはなかなか難しい問題になります。(1) 元ネタは結構有名かと思いますが、Square が開発している、CrossfilterGitHub - crossfilter/crossfilter: Fast n-dimensional filtering…

Naoki ShibayamaNaoki Shibayama

Bigqueryの内部処理について徹底解剖してみた

プレイドの @nashibao です。 弊社では結構BigQueryを使い倒させていただいていて、社内向けのバッチ解析やChartIO/ModeAnalytics等を介した社外向けのレポーティングとしての利用だけでなく、ABテストなどの集計系では(Query数のコントロールのためにキャッシュは介していますが)ほぼ直接アプリケーションのバックエンドとして利用しています。 またStreaming Insertが思ったより安定しているので、ニアリアルタイムにイベントを反映することができ、適当なQueryを投げ込んでPBの集計を気軽にやって、数百万使って唖然としてとりあえず寝て忘れる、みたいなことをしています。 先日も"GCP NEXT World Tour in…

Naoki ShibayamaNaoki Shibayama