プログラマティック分析ツール
このドキュメントでは、BigQuery で管理されるデータを分析するための、さまざまなコードの記述方法について説明します。
SQL は強力なクエリ言語ですが、Python、Java、R などのプログラミング言語では、特定の種類のデータ分析に役立つ構文や、組み込みの統計関数が提供されています。
同様に、スプレッドシートは広く使用されていますが、ノートブックなどのプログラミング環境では、複雑なデータ分析や探索のためのフレキシブル環境が提供される場合があります。
Jupyter ノートブック
Jupyter は、ライブコード、テキスト記述、可視化を含むノートブックを公開するオープンソースのウェブ アプリケーションです。データ サイエンティスト、機械学習の専門家、学生がこのプラットフォームを、データの消去と変換、数値シミュレーション、統計モデル、データの可視化、機械学習などに利用しています。
Jupyter ノートブックは、BigQuery と直接対話できる強力な対話型シェルである IPython カーネル上に構築されています。これは BigQuery 用 IPython マジックを使用して BigQuery を直接操作できます。また、利用可能な BigQuery クライアント ライブラリをインストールして、Jupyter ノートブック インスタンスから BigQuery にアクセスすることも可能です。Jupyter ノートブックで GeoJSON 拡張機能を使用して、BigQuery GIS データを可視化できます。BigQuery の統合の詳細は、Jupyter ノートブックでの BigQuery データの可視化に関するチュートリアルを参照してください。
JupyterLab は、Jupyter ノートブック、テキスト エディタ、ターミナル、カスタム コンポーネントなどのドキュメントやアクティビティを管理するウェブベースのインターフェースです。JupyterLab では、複数のドキュメントやアクティビティを、タブと分割線を使って、作業領域に配置できます。
Google Cloud に Jupyter ノートブックと JupyterLab 環境をデプロイするには、次のいずれかのプロダクトを使用します。
- Vertex AI Workbench インスタンスは、ML デベロッパーとデータ サイエンティストが、最新のデータ サイエンスと ML フレームワークを利用できる、統合 JupyterLab 環境を提供するサービスです。Vertex AI Workbench は、BigQuery などの他の Google Cloud データ プロダクトと統合されているため、データの取り込みから前処理、探索、そして最終的にモデルのトレーニングとデプロイまで、スムーズに進めることができます。詳細については、Vertex AI Workbench インスタンスの概要をご覧ください。
- Dataproc は、Apache Spark と Apache Hadoop のクラスタを簡単かつ低コストで実行できる、高速で使いやすいフルマネージド サービスです。Jupyter のオプション コンポーネントを使用して Dataproc クラスタに、Jupyter ノートブックと JupyterLab をインストールできます。このコンポーネントには、PySpark コードを実行する Python カーネルが用意されています。デフォルトでは、Dataproc はノートブックを自動的に Cloud Storage に保存するように構成して、同じノートブック ファイルを他のクラスタからアクセスできるようにします。既存のノートブックを Dataproc に移行する場合、移行するノートブックの依存関係が、サポートされている Dataproc バージョンの対象となるかを確認するにはこちらをご覧ください。カスタム ソフトウェアをインストールする必要がある場合は、独自の Dataproc イメージを作成する、独自の初期化アクションを作成する、またはカスタム Python パッケージの要件を指定するオプションを検討してください。まず、Dataproc クラスタで Jupyter ノートブックをインストールして実行するチュートリアルを参照してください。
Apache Zeppelin
Apache Zeppelin は、データ分析にウェブベースのノートブックを提供するオープンソース プロジェクトです。Zeppelin のオプション コンポーネントをインストールすることにより、Dataproc に Apache Zeppelin のインスタンスをデプロイできます。デフォルトでは、ノートブックは Dataproc ステージング バケット内の Cloud Storage に保存されます。保存先バケットは、クラスタの作成時にユーザーが指定するか、指定がなければ自動作成されます。ノートブックの場所は、クラスタの作成時に zeppelin:zeppelin.notebook.gcs.dir
というプロパティを追加して変更できます。Apache Zeppelin のインストールと構成の詳細については、Zeppelin コンポーネント ガイドをご覧ください。例については、Apache Zeppelin 向け BigQuery Interpreter インタープリタを使用した BigQuery データセットの分析をご覧ください。
Apache Hadoop、Apache Spark、Apache Hive
データ分析パイプラインの移行の一環として、データ ウェアハウスから直接データを処理する必要がある以前の Apache Hadoop、Apache Spark、Apache Hive ジョブを移行することもできます。たとえば、ML ワークロードの機能を抽出できます。
Dataproc を使用すると、フルマネージドの Hadoop クラスタと Spark クラスタを効率的かつコスト効果の高い方法でデプロイできます。Dataproc は、オープンソースの BigQuery コネクタと統合されています。これらのコネクタは BigQuery Storage API を使用し、gRPC を介して BigQuery から直接並列でデータをストリーミングします。
既存の Hadoop ワークロードと Spark ワークロードを Dataproc に移行する場合、移行するワークロードの依存関係が、サポートされている Dataproc バージョンの対象となるかを確認するにはこちらをご覧ください。カスタム ソフトウェアをインストールする必要がある場合は、独自の Dataproc イメージを作成する、独自の初期化アクションを作成する、またはカスタム Python パッケージの要件を指定するオプションを検討してください。
ご利用にあたっては、Dataproc クイックスタート ガイドと BigQuery コネクタのコードサンプルをご覧ください。
Apache Beam
Apache Beam は、ウィンドウ処理とセッション分析のプリミティブが豊富に用意されているだけでなく、ソースとシンクのコネクタからなるエコシステムも提供しているオープンソース フレームワークです。これには BigQuery 用のコネクタも含まれます。Apache Beam を使用して、ストリーミング(リアルタイム)モードのデータとバッチ(履歴)モードのデータを同等の信頼性と明瞭度で変換、拡充できます。
Dataflow は、Apache Beam ジョブを大規模に実行するためのフルマネージド サービスです。Dataflow のサーバーレス アプローチは、パフォーマンス、スケーリング、可用性、セキュリティ、コンプライアンスに自動的に対処することによって、運用上のオーバーヘッドを取り除きます。つまり、ユーザーはサーバー クラスタの管理ではなく、プログラミングに専念できるということです。
Dataflow ジョブは、コマンドライン インターフェース、Java SDK または Python SDK のいずれかを使用してさまざまな方法で送信できます。
データクエリとパイプラインを他のフレームワークから Apache Beam と Dataflow に移植するには、Apache Beam プログラミング モデルの詳細を確認して、公式の Dataflow ドキュメントをご覧ください。
RStudio
データ サイエンティストは、多くの場合 R プログラミング言語を使用して、データ分析ツールや統計アプリを開発しています。RStudio では、チームが業務を拡大し、共有するために、R およびエンタープライズ対応のプロフェッショナル プロダクトの無料オープンツールを開発できます。RStudio Server Pro などの RStudio 製品は、R によるデータ分析を簡素化し、パブリッシュと共有に役立つ強力なツールを提供します。
RStudio Server Pro は、オンデマンドで、商用ライセンスが付与された統合開発環境(IDE)です。人気の RStudio オープンソース IDE の機能とターンキーの利便性、強化されたセキュリティ、複数の R バージョンとセッションを管理する機能などを提供します。
Cloud Marketplace から RStudio Server Pro for Google Cloud コンポーネントをデプロイできます。このバージョンは、RStudio Server Pro と同じですが、複数バージョンの R と一般的なシステム ライブラリのプリインストールなど、データ サイエンティストにとっての利便性が向上しています。これには bigrquery という R 用の BigQuery パッケージも含まれています。これは、低レベルの SQL または高レベルの dplyr 動詞を使用して BigQuery と対話できる DBI と dplyr バックエンドを提供します。このパッケージを使用すると、BigQuery テーブルをクエリして、プロジェクト、データセット、テーブル、ジョブのメタデータを取得することで、BigQuery に格納されたデータの処理が簡単になります。詳しくは、RStudio Server Pro for Google Cloud のスタートガイドと RStudio Server Pro for Google Cloud に関するよくある質問をご覧ください。
Dataproc クラスタに RStudio Server のオープンソース バージョンをインストールすることもできます。Dataproc 上で RStudio を実行する利点は、Dataproc の自動スケーリングを利用できることです。自動スケーリングでは、SparkR ロジックの開発時に、クラスタの最小のサイズを設定できます。大規模な処理のためにジョブを送信した後、サーバーを変更する必要はありません。SparkR ジョブを RStudio に送信すると、Dataproc クラスタは、設定した間隔内でジョブのニーズに応じてスケーリングされます。RStudio と Dataproc の統合の詳細については、公式発表をご覧ください。
その他のリソース
BigQuery は、Java、Go、Python、JavaScript、PHP、Ruby などの複数のプログラミング言語で、多数のクライアント ライブラリを提供します。pandas などのデータ分析フレームワークでは、BigQuery と直接やり取りするプラグインを提供しています。実用的な例については、Jupyter ノートブックで BigQuery データを可視化するチュートリアルをご覧ください。
最後に、シェル環境でプログラムを作成する場合は、bq コマンドライン ツールを使用します。