すべてのエンジニアが知っておくべき分析エンジニアリングツール5選

分析エンジニアリングの分野に足を踏み出そうとしていますか。分析エンジニアは、データチームの中でも比較的新しい役割です。データエンジニアとデータアナリストの間に位置します。分析エンジニアの特徴として、技術とビジネスに精通し、学習意欲が旺盛なことが挙げられます。主な役割は、最新のデータツールを学んでデータスタックに導入することです。

データスタックは、データの取り込み、変換、オーケストレーション、ビジュアライゼーションといった、さまざまなツールで構成されます。 

どのツールから始めるべきかを判断するのは大変です。まだ右も左もわからないときは特にそうですが、ほとんどの場合、1つの種類のツールを覚えてしまえば、他のツールにも簡単に順応して覚えることができます。一番重要なのは、何かを学び始めることです。とはいえ、データスタックの各レイヤーには主要な役割があるため、そこから始めることをおすすめします。ほとんどのデジタルネイティブ企業でこれらのツールが使用されているため、習得すれば分析エンジニアの役職に応募しやすくなります。 

まずは、どのクラウドデータプラットフォームソリューションを学習するかを決める必要があります。特におすすめなのはSnowflakeです。使いやすく、この分野で大きく成長しているためです。しかも、すばらしい無料トライアルが利用できます。 

2番目に行うことは、クラウドデータプラットフォームにデータを取り込む方法を決めることです。オープンソースツールのAirbyteを使えば、さまざまなプラットフォームからご自身のデータプラットフォームにデータを取り込めます。 

3番目に行うことは、データプラットフォームに取り込んだデータを変換する方法を検討することです。dbtはデータ変換処理に優れています。このツールを使えば、データモデルを整理して効率的に実行しやすくなります。 

次に、これらのデータモデルを本番環境にデプロイする方法を学ぶ必要があります。おすすめはPrefectです。Pythonで記述された使いやすいオーケストレーションツールです。 

最後に、すべての分析結果をビジュアル化して、ビジネスチームがデータから簡単にインサイトを引き出せるようにすることが重要です。ThoughtSpotは、検索機能とAIを活用して、対話型のダッシュボードと視覚的要素を作成します。 

ここからはそれぞれのツールについて解説し、分析エンジニアを目指す場合にこれらのツールを習得することが重要になる理由を説明します。

  1. Snowflake

クラウドデータプラットフォームの使い方を学ぶことは不可欠です。モダンデータスタックにおいて非常に重要だからです。クラウドデータプラットフォームはすべてのツールの中心に位置し、どのツールも何らかの方法でデータプラットフォームに接続されます。データが取り込まれ、変換され、共有される場所であるだけでなく、信頼できる唯一の情報源でもあります。チームがデータの正確性を信頼できる唯一の場所なのです。 

私はこのツールの大ファンです。最近ラスベガスで開催されたSnowflake Summitに参加したほどです。AzureやRedshiftといった他のクラウドデータプラットフォームも使ったことがありますが、Snowflakeほど使いやすいものはありません。Snowflakeが前年度に対して101%の成長を遂げていることも納得です。 

それだけでなく、Snowflakeは30日間のトライアルと$400の無料クレジットを提供しています。これを利用すれば、データプラットフォームの仕組みを体験しながら学習できます。おすすめしたいのは、データベース、スキーマ、テーブル、ビュー、ウェアハウスなどの各種リソースを作成するコマンドに慣れ親しんでおくことです。クエリーを実行する以外にも、分析エンジニアにはデータプラットフォームのアーキテクチャーを構築することが求められます。ユーザーと役割がどのように機能するかを学び、各役割にさまざまな権限を割り当てることもできます。 

Snowflake以外のクラウドデータプラットフォームでは、DatabricksGoogle BigQueryも便利な機能や高いパフォーマンスを備えています。これらにも無料トライアルがあるため、スキルを習得できます。

  1. Airbyte

Airbyteは、オープンソースの優れたデータコネクターです。外部APIに接続して、データをデータプラットフォームに取り込むことができます。オープンソースなので取り込みストリームの設定には若干の手作業が必要ですが、アカウント設定を適切に構成するために外部APIのドキュメントを読むことは本当に勉強になります。これはエンジニアにとって重要なスキルです。いつ外部APIとの連携が必要になるかわかりませんから。 

Airbyteは、Facebook、Google広告、PostgreSQL、Shopify、SurveyMonkeyなどのさまざまなデータコネクターを提供します。これらの主要プラットフォームへの接続方法を学ぶことは、分析エンジニアリングのどの役割においても重要になるでしょう。Airbyteはオープンソースなので、手頃な価格でこれらのプラットフォームへの接続を構成できます。エンジニアリングのスキルを学び始めたばかりの人に最適です。

会社に予算がある場合は、データ取り込みのツールとしてFivetranMatillionStitchも検討することを強くおすすめします。

  1. dbt

dbtは、他に類のないデータ変換ツールです。このオープンソースツールを使えば、分析エンジニアはSQLデータモデルを作成し、テストし、文書化できます。豆知識になりますが、分析エンジニアリングという分野を作ったのはdbtです。dbtは非常に強力なツールです。反復可能なコーディングの量を減らし、より高速でクリーンなデータモデルが可能になります。dbtを日常的に使っていない分析エンジニアを見つけることはほぼ不可能でしょう。

dbtを使用すると、データモデルをさまざまなSQLファイルに整理し、それらすべてを相互に参照させることができます。そのようなSQLファイルでは、マクロ、パッケージ、テストなどのさまざまな機能を活用して、コードをクリーンで読みやすくすることができます。マクロは、SQLコード内の任意の場所に適用可能な関数として機能し、モデル内で冗長になる可能性があるコードを自動化します。テスト機能では、列やデータモデルにデータ品質チェックを適用して、実行時の特定の条件をテストできます。 

dbtは、分析エンジニアの重要なスキルであるSQLを活用します。そのため、dbtとSQLの両方を習得する方法を学ぶことで、分析エンジニアになるための大きな一歩を踏み出すことができます。dbtと共に集計関数やウィンドウ関数などの各種のSQL関数を使いこなせるようになれば、準備は万端です。dbtはJinjaというテンプレート言語も使用します。dbtのマクロやテスト、そして全般的な構文に慣れてくると、Jinjaも徐々にわかってきます。dbtのコースをぜひ確認してみてください。dbtプロジェクトの作成について詳細に学ぶことができます。

  1. Prefect

Prefectは人気上昇中のデータパイプラインツールです。あまりご存知ないかもしれませんが、PerfectはオープンソースのPythonフレームワークで、「タスク」を使用してデータパイプラインのデプロイと自動化を行います。Pythonで記述されているため、他の一般的なツールより使いやすいというメリットがあります。分析エンジニアになるためにPythonを知っている必要はありませんが、オーケストレーションに取り組む際に役立ちます。また、JavaScriptなどの他の言語よりも読みやすく、習得しやすいです。 

Prefectは管理が簡単なため、分析エンジニアにとって優れたパイプラインソリューションです。小規模なチームで複数の役割を担っている人にとって、データ処理に対応するインフラストラクチャーの構築に時間を割くことは望ましくありません。そのような手間のかかる作業を代わりに引き受けてくれるソリューションが必要です。Prefectは、Pythonの基本知識がいくらかあれば、他の市販ツールより簡単に設定できます。また、Snowflake、Airbyte、dbtといった、前述のすべてのツールとも連携できます。 

Prefectでは、分析エンジニアが引き続きコードを管理するため、どのようなデータチームでもセキュリティを確保できます。一方で、データパイプラインの実行に使用するインフラストラクチャーは、データチームが管理します。つまり、両方の強みを活かせます。Prefectは比較的時間をかけずに習得できるため、最初のオーケストレーションツールとして最適です。慣れてきたら、必要に応じてAirflowDagsterなどの他の人気ツールに学習を進めることもできます。

  1. ThoughtSpotおよび/またはLooker

最後は、データをインサイトに変換するうえで鍵を握るビジュアライゼーションツールです。私はデータエンジニアから分析エンジニアに転身したため、ビジネスインテリジェンスツールの使用経験はあまりありません。私の現在の役職では、取り込みからオーケストレーションまでのデータパイプラインを担当し、データのビジュアル化についてはチームのデータアナリストが担当しています。会社の同僚や他の分析エキスパートに話を聞いたところ、モダンデータスタックで特に人気があるビジュアライゼーションツールはThoughtSpotとLookerの2つであり、どちらにも長所と短所があることがわかりました。

ThoughtSpotはクラウドエコシステムと完全に連携するため、ユーザーは対話型のLiveboardsと視覚的要素を作成できます。ThoughtSpotではセルフサービス分析が可能です。これは、データチームとビジネスチームの間にシンクロニシティー(共時性)を起こすための鍵となります。ThoughtSpotのようなセルフサービスプラットフォームを使用すると、分析エンジニアやアナリストは偶発的なリクエストを抑え、より複雑な取り組みに注力できます。 

Prefectと同様に、ThoughtSpotは環境内の他のデータスタックと簡単に連携できる点が優れています。また、dbtのモデルやSnowflakeのデータプラットフォームに直接接続できます。ThoughtSpot Modeling Language(TML)を使用すると、分析エンジニアはデータモデル、クエリー、Liveboardsをオープンソースのコードにパッケージ化し、再利用可能なアプリを作成できます(Mimoune Djouallah氏のFirst Lookをご覧ください)。 

Lookerは、クラウドデータプラットフォーム向けの歴史のあるビジュアライゼーションツールです。Lookerモデリング言語のLookMLが分析エンジニアから支持されています。しかし、2019年にGoogleに買収されてからイノベーションのスピードが落ちたと感じるユーザーもいます。dbtと連携していませんが、これは分析エンジニアにとって大きなデメリットです。Tableauも特に人気が高いビジュアライゼーションツールですが、Tableauもdbtと連携していません。デスクトップの依存関係があり、高度な分析を行うには、通常、データを独自のインメモリーエンジンに複製する必要があります。

ThoughtSpotだけが、直感的なユーザーエクスペリエンス、自然言語検索、自動生成インサイト、クラウドデータプラットフォームに保管されたライブデータに対するパフォーマンスをすべて兼ね備えています。 

何はともあれ、ThoughtSpotを学ぶことは重要です。なぜなら、ツールにベストプラクティスが組み込まれているためです。分析エンジニアにとって重要なのは、モデルが常に最高品質のデータを使用し、ソフトウェアエンジニアリングのベストプラクティスに従っているようにすることです。ThoughtSpotは、品質上の問題に対してデータを自動分析するだけでなく、コードの移植性、再利用性、バージョン管理を維持します。キャリアの始めからこれらのベストプラクティスを実践していけば、より複雑な問題に対応していく過程で習慣にすることができるでしょう。 

私は今後もThoughtSpotについてさらに学習し、ThoughtSpotの機能を活用できるようになるつもりです。私にとって、ThoughtSpotは一般的なビジネスインテリジェンスツールよりも一歩進んだ高度で強力なツールです。私にとってThoughtSpotについて学ぶことは、ビジュアライゼーションのスキルとエンジニアリングのベストプラクティスの向上につながるだけでなく、ビジネスのコンテキストにおける自動化と機械学習を学ぶのにも役立ちます。  

モダンデータスタックに関するスキルを身に付ける

分析エンジニアにとって重要なのは、モダンデータスタックの主要レイヤーのそれぞれについて、少なくとも1つのツールに習熟することです。データスタックの中心では、Snowflakeによって信頼できる唯一の信頼源がビジネスに生まれます。Snowflakeはクラウドデータプラットフォームへの入門として最適です。データ取り込みレイヤーでは、Airbyteでさまざまな外部プラットフォームの使い方と、主要なドキュメントの読み方を学べます。データ変換レイヤーでは、dbtを使用して複雑なSQL変換を記述し、コードの冗長性を減らせます。データを次のレイヤーにオーケストレートする際は、Prefectで時間とリソースを節約するパイプラインを作成できます。分析エンジニアはそのパイプラインを簡単に管理できます。最後に、エクスペリエンスレイヤーでは、ThoughtSpotによりデータ品質チェックと対話型ダッシュボードを使用したセルフサービス分析が実現します。

これらのツールを組み合わせることで、分析エンジニアになるために必要なスキルの数々を学ぶことができるのです。これらの学習で得られた経験は、モダンデータスタックの分野で他のツールを学習する際にも応用できます。皆さまのご健闘をお祈りします。