2022年12月28日
【Google Cloud】Vertex AI WorkbenchからBigQueryのデータを取得してみた
-
- Category Google Cloud

私の記事ではGCP上でのデータ分析のやり方について調べていこうと思います。
今回は、Vertex AI WorkbenchのNotebookを使用してBigQueryのデータを取得したことを紹介します。
私は以前からデータ分析に興味があり、何かしらのデータ分析をやってみたいと思っていましたが、中々取り組めずにいました。そのためデータ分析を始めるために、まずは分析環境作成やデータ取得をやってみようと思いました。システムサポートはGoogle CloudのPartnerであるため、GCPを使いやすい環境があり、私と同じGCPの分析初心者の方に何か情報を共有しようと思ったことが、この記事の作成理由です。
なお当社、システムサポートは、Google Cloudの導入・移行・運営支援を行っています。
Google Cloudに関してのご用命の際は弊社「クラウド導入支援サービス for Google Cloud」へご連絡ください。
Vertex AI Workbenchとは?
公式ページによると、Vertex AI Workbenchとは「データサイエンスワークフロー全体に対応する単一の開発環境」と記載されていました。このサービスを利用することで、GCP上で開発環境を簡単に構築でき、他のBigQueryなどのGoogle Cloudのサービスと接続し、学習したモデルのデプロイなどをWorkbench上から行うことが可能なようです。
より詳しく知りたい方は、公式ページやドキュメントを確認してみてください。
Notebookの起動
それではVertex AI WorkbenchのNotebookを起動してみます。(下記の手順ではWorkbenchの表記を「ワークベンチ」とします)
1.GCPのナビゲーションメニューで、[Vertex AI] > [ワークベンチ]をクリックします。
2.私の環境では「NOTEBOOKS APIを有効にする」と表示があったので、クリックして有効にします。
3.「新しいノートブック」をクリックし、[TensorFlow Enterprise]>[TensorFlow Enterprise 2.10]>[Without GPUs]をクリックします。
4.ノートブック名を「test-notebook」と入力して「作成」をクリックします。
(リージョンやゾーンは各自設定を行い、必要に応じてNotebook propertiesから「マシンの構成」などの設定を行ったほうが良いかもしれません。)
5.作成ボタンから数分後に、[ワークベンチ]ページ上に[JUPYTERLAB を開く]が表示されるのでクリックします。
6.[JUPYTERLAB]ページが開くので、Notebookより[Python3]をクリックします。
7. Notebookが起動します。
BigQueryデータの取得
次にNotebook上でBigQueryのデータ取得をしてみます。
1.Notebookに下記コマンドを入力します。こちらのコマンドはBigQueryからデータを取得するためのPythonのライブラリのインストールです。入力後にキーボードのShift + Enterボタンを押して実行します。
!pip install google-cloud-bigquery==1.25.0
!pip install --upgrade google-cloud-bigquery-storage
2.1.の実行後、kernelを再起動します。
3.Notebookに下記を入力し実行します。これによってBigQuery API からメッセージの送信および受信ができます。
from google.cloud import bigquery
client = bigquery.Client()
4.今回はBiqQueryの出生データのサンプルデータの一部を取得するために、Notebookに下記を入力し実行します。(その他のサンプルデータはこちらから確認できます。)
sql = """
SELECT
*
FROM
`bigquery-public-data.samples.natality`
LIMIT
1000
"""
df = client.query(sql).to_dataframe()
df.head()
5.BigQueryからデータが取得できました!(下記は取得データの一部のみ表示)
まとめ
今回はVertex AI WorkbenchのNotebookからBigQueryのデータを取得してみました。
分析環境やデータ取得方法が準備ができたので、次回はNotebookから分析を行ってみようと思います!