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


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

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

目標

  • BigQuery でクエリを作成して実行する。
  • ノートブックでクエリ結果を調べる。

費用

このチュートリアルでは、Google Cloud 一般公開データセット プログラムを通じて提供されているデータセットを使用します。Google では、これらのデータセットの保存費用を負担しており、データへの公開アクセスを提供しています。データに対して実行するクエリに対して料金が発生します。詳細については、BigQuery の料金をご覧ください。

始める前に

  1. Google Cloud Console の [プロジェクト セレクタ] ページで、Google Cloud プロジェクトを選択または作成します。

    プロジェクト セレクタに移動

  2. Google Cloud プロジェクトで課金が有効になっていることを確認します

  3. BigQuery API を有効にします。

    API を有効にする

    新しいプロジェクトでは、BigQuery が自動的に有効になります。

BigQuery Studio を有効にする

アセット管理に関する BigQuery Studio を有効にするの手順に沿って、コードアセット(ノートブックなど)のバージョンを保存、共有、管理します。

必要な権限

ノートブックを作成して実行するには、次の 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 データから線形回帰モデルを作成します。

# 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)

クリーンアップ

このチュートリアルで使用したリソースについて、Google Cloud アカウントに課金されないようにするには、リソースを含むプロジェクトを削除するか、プロジェクトを維持して個々のリソースを削除します。

課金を停止する最も簡単な方法は、チュートリアル用に作成した Google Cloud プロジェクトを削除することです。

  1. In the Google Cloud console, go to the Manage resources page.

    Go to Manage resources

  2. In the project list, select the project that you want to delete, and then click Delete.
  3. In the dialog, type the project ID, and then click Shut down to delete the project.

次のステップ