ノートブックでクエリ結果を調べる

BigQuery の Colab Enterprise ノートブックを使用して、BigQuery のクエリ結果を調べることができます。

このチュートリアルでは、BigQuery 一般公開データセットのデータをクエリし、その結果をノートブックで確認します。

必要な権限

ノートブックを作成して実行するには、次の Identity and Access Management(IAM)ロールが必要です。

ノートブックでクエリ結果を開く

SQL クエリを実行した後、ノートブックを使用してデータを調べることができます。この方法は、データを操作する前に BigQuery でデータを変更する場合や、テーブル内のフィールドのサブセットのみが必要な場合は便利です。

  1. Google Cloud コンソールで、[BigQuery] ページに移動します。

    [BigQuery] に移動

  2. [検索語句を入力] フィールドに「bigquery-public-data」と入力します。

    プロジェクトが表示されない場合は、検索フィールドに「bigquery」と入力し、[検索範囲をすべてのプロジェクトに広げます] をクリックして、既存のプロジェクトと一致する検索文字列を入力します。

  3. [bigquery-public-data] > [ml_datasets] > [penguins] の順に選択します。

  4. penguins テーブルで、 [アクションを表示] をクリックし、[クエリ] をクリックします。

  5. 生成されたクエリにフィールド選択用のアスタリスク(*)を追加して、次の例のようになります。

    SELECT * FROM `bigquery-public-data.ml_datasets.penguins` LIMIT 1000;
  6. [実行] をクリックします。

  7. [クエリ結果] セクションで、[データを探索] をクリックして、[Python ノートブックで探索] をクリックします。

ノートブックを使用できるように準備する

ランタイムに接続し、アプリケーションのデフォルト値を設定して、ノートブックを使用できるように準備します。

  1. ノートブックのヘッダーで [接続] をクリックして、デフォルトのランタイムに接続します。
  2. [設定] コードブロックで、 [セルを実行] をクリックします。

データを表示

  1. 次のようにして、penguins データを BigQuery の DataFrame に読み込み、結果を表示するには、[BigQuery ジョブから DataFrame として読み込まれた結果セット] セクションのコードブロックで [セルを実行] をクリックします。
  2. データの説明的な指標を取得するには、[describe() を使用して記述統計を表示] セクションのコードブロックで [セルを実行] をクリックします。
  3. 省略可: 他の Python 関数またはパッケージを使用して、データの探索と分析を行います。

次のコードサンプルは、bigframes.pandas を使用してデータを分析し、bigframes.ml を使用して BigQuery の DataFrame で penguins データから線形回帰モデルを作成します。

import bigframes.pandas as bpd

# Load data from BigQuery
query_or_table = "bigquery-public-data.ml_datasets.penguins"
bq_df = bpd.read_gbq(query_or_table)

# Inspect one of the columns (or series) of the DataFrame:
bq_df["body_mass_g"]

# Compute the mean of this series:
average_body_mass = bq_df["body_mass_g"].mean()
print(f"average_body_mass: {average_body_mass}")

# Find the heaviest species using the groupby operation to calculate the
# mean body_mass_g:
(
    bq_df["body_mass_g"]
    .groupby(by=bq_df["species"])
    .mean()
    .sort_values(ascending=False)
    .head(10)
)

# Create the Linear Regression model
from bigframes.ml.linear_model import LinearRegression

# Filter down to the data we want to analyze
adelie_data = bq_df[bq_df.species == "Adelie Penguin (Pygoscelis adeliae)"]

# Drop the columns we don't care about
adelie_data = adelie_data.drop(columns=["species"])

# Drop rows with nulls to get our training data
training_data = adelie_data.dropna()

# Pick feature columns and label column
X = training_data[
    [
        "island",
        "culmen_length_mm",
        "culmen_depth_mm",
        "flipper_length_mm",
        "sex",
    ]
]
y = training_data[["body_mass_g"]]

model = LinearRegression(fit_intercept=False)
model.fit(X, y)
model.score(X, y)