プログラマティック分析ツール

このドキュメントでは、BigQuery で管理されるデータを分析するための、さまざまなコードの記述方法について説明します。

SQL は強力なクエリ言語ですが、Python、Java、R などのプログラミング言語では、特定の種類のデータ分析に役立つ構文や、組み込みの統計関数が提供されています。

同様に、スプレッドシートは広く使用されていますが、ノートブックなどのプログラミング環境では、複雑なデータ分析や探索のためのフレキシブル環境が提供される場合があります。

Jupyter ノートブック

Jupyter は、ライブコード、テキスト記述、可視化を含むノートブックを公開するオープンソースのウェブ アプリケーションです。データ サイエンティスト、機械学習の専門家、学生がこのプラットフォームを、データの消去と変換、数値シミュレーション、統計モデル、データの可視化、機械学習などに利用しています。

Jupyter ノートブックは、BigQuery と直接対話できる強力な対話型シェルである IPython カーネル上に構築されています。これは BigQuery 用 IPython マジックを使用して BigQuery を直接操作できます。また、利用可能な BigQuery クライアント ライブラリをインストールして、Jupyter ノートブック インスタンスから BigQuery にアクセスすることも可能です。Jupyter ノートブックで GeoJSON 拡張機能を使用して、BigQuery GIS データを可視化できます。BigQuery の統合の詳細は、Jupyter ノートブックでの BigQuery データの可視化に関するチュートリアルを参照してください。

BigQuery GIS データの可視化を示す Jupyter ノートブックのチャート。

JupyterLab は、Jupyter ノートブック、テキスト エディタ、ターミナル、カスタム コンポーネントなどのドキュメントやアクティビティを管理するウェブベースのインターフェースです。JupyterLab では、複数のドキュメントやアクティビティを、タブと分割線を使って、作業領域に配置できます。

JupyterLab: 複数のドキュメントやアクティビティをタブと分割線で並べて作業領域に配置。

Google Cloud に Jupyter ノートブックと JupyterLab 環境をデプロイするには、次のいずれかのプロダクトを使用します。

Apache Zeppelin

Apache Zeppelin は、データ分析にウェブベースのノートブックを提供するオープンソース プロジェクトです。Zeppelin のオプション コンポーネントをインストールすることにより、Dataproc に Apache Zeppelin のインスタンスをデプロイできます。デフォルトでは、ノートブックは Dataproc ステージング バケット内の Cloud Storage に保存されます。保存先バケットは、クラスタの作成時にユーザーが指定するか、指定がなければ自動作成されます。ノートブックの場所は、クラスタの作成時に zeppelin:zeppelin.notebook.gcs.dir というプロパティを追加して変更できます。Apache Zeppelin のインストールと構成の詳細については、Zeppelin コンポーネント ガイドをご覧ください。例については、Apache Zeppelin 向け BigQuery Interpreter インタープリタを使用した BigQuery データセットの分析をご覧ください。

Zeppelin に表示されるテーブルデータの SQL 分析。

Apache Hadoop、Apache Spark、Apache Hive

データ分析パイプラインの移行の一環として、データ ウェアハウスから直接データを処理する必要がある以前の Apache HadoopApache SparkApache 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 のサーバーレス アプローチは、パフォーマンス、スケーリング、可用性、セキュリティ、コンプライアンスに自動的に対処することによって、運用上のオーバーヘッドを取り除きます。つまり、ユーザーはサーバー クラスタの管理ではなく、プログラミングに専念できるということです。

複合変換(MakeMapView)が展開された実行グラフ。副入力を作成するサブ変換(CreateDataflowView)が選択されていて、[ステップ] タブに、そのサブ変換での副入力の指標が表示されています。

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 と対話できる DBIdplyr バックエンドを提供します。このパッケージを使用すると、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 コマンドライン ツールを使用します。