Amethystはなぜ高速なのか

こんにちは、今年のAdvent Calendar2回目の登場です。Amethystテックリードの大井です。
今回は、Amethyst、特にSearch Analyticsが(従来手法のLooker Studioと比べて)高速に動作するかをご説明します。

この記事は、JADE Advent Calendar 19日目の記事(遅刻)です。

また、Amethystは、特に大規模サイトのSEOをサポートするためのツールです。 ja.dev

Search Analyticsとは

Amethystには、Search Analyticsという機能があります。
これは、Search Consoleの「検索アナリティクス」の便利バージョンです。
ただ、Search Console上で扱える情報には限りがあるので、Search Console APIやBigQuery Exportを活用して、Looker Studioなどで独自のダッシュボードを作っている方もいらっしゃるのではないでしょうか。

しかし、Looker Studioでの独自ダッシュボードは、テーブルの規模が大きくなってくると読み込みがどんどん遅くなっていき、最終的には使うことができなくなります。 Amethystなら、快適に動作すると内外からご好評を頂いています(上記ページの下の方にお客様の声があります)。

最適化されたクエリ

Looker Studioは、皆さんご存じの通り、極めて高い汎用性を持っています。
様々なデータソースからデータを集め、自由自在に組み合わせて、好きなようにグラフや表を作ることができます。
しかし、これを実現するためには複雑なクエリや計算が必要となり、速度はある程度犠牲になってしまいます。

一方で、AmethystはJADEのコンサルタントの意見を取り入れたSEOのための問い合わせに特化しています。
経験豊富なコンサルタントの、「この機能があれば十分!」という内容に向けてクエリの最適化に取り組んでいるため、Looker Studioとは比べものにならないほど高速に動作します。

この画面では、クエリグループやURLグループの割り当てを重視

キャッシュ機構

Amethyst開発チームは現在、年始のリリースに向けて、Search Analyticsをより高速化するキャッシュ機構のテストを行っています。
アクセス頻度が高いと考えられる問い合わせを高速に処理するため、アクセスの少ない時間帯にあらかじめ必要な計算を済ませておき、本番のアクセス時には計算を不要にしています。
また、事前に計算できなかった問い合わせについても、一度アクセスされたときに行った計算結果を記憶することによって、次回以降の高速な出力を実現しています。

この機能によって、1日当たりのインプレッションが1億件近くになるようなサイトに対しても、Search Analyticsは高い可用性を実現できるようになります。
従来は毎回数分かかっていたビュー一覧画面の表示が、一度計算すれば数秒で済むようになりました。

ビュー一覧画面。こういうカードが10個あっても、数秒で表示

今後はより多くの対象にたいしてキャッシュを適用しさらなる高速化を目指していきます。

終わりに

短い記事となりましたが、お読みいただきありがとうございました。
Amethyst開発チームは、SEOに関わる皆さんが快適に仕事ができるサービスを目指して、来年もどんどん開発を行っていきます!

明日は、日西さんの「 【2023年】JADEブログ年間ランキング」です!お楽しみに!