在筆記本中探索查詢結果

您可以使用 BigQuery Colab Enterprise 筆記本中的 SQL 儲存格或程式碼儲存格,探索查詢結果。

在本教學課程中,您將查詢 BigQuery 公開資料集中的資料,並在筆記本中探索查詢結果。

目標

  • 在 BigQuery 中建立及執行查詢。
  • 使用 SQL 儲存格和程式碼儲存格,在筆記本中探索查詢結果。

費用

本教學課程使用的資料集可透過Cloud de Confiance by S3NS 公開資料集計畫取得。Google 會支付這些資料集的儲存費用,並提供資料的公開存取權。對資料執行查詢時,系統會向您收取費用。詳情請參閱「BigQuery 定價」一文。

事前準備

  1. 在 Cloud de Confiance 控制台的專案選取器頁面中,選取或建立 Cloud de Confiance 專案。

    選取或建立專案所需的角色

    • 選取專案:選取專案時,不需具備特定 IAM 角色,只要您在專案中獲派角色,即可選取該專案。
    • 建立專案:如要建立專案,您必須具備專案建立者角色 (roles/resourcemanager.projectCreator),其中包含 resourcemanager.projects.create 權限。瞭解如何授予角色。

    前往專案選取器

  2. 確認 Cloud de Confiance 專案已啟用計費功能。

  3. 啟用 BigQuery API (如果尚未啟用)。

    啟用 API 所需的角色

    如要啟用 API,您必須具備 serviceusage.services.enable 權限。如果您建立了專案,可能已透過擁有者角色 (roles/owner) 取得這項權限。否則,您可以透過服務使用情形管理員角色 (roles/serviceusage.serviceUsageAdmin) 取得這項權限。瞭解如何授予角色。

    啟用 API

    新專案會自動啟用 BigQuery。

設定程式碼資產的預設區域

Cloud de Confiance 專案中的所有新程式碼資產都會使用預設區域。資產建立後,就無法變更區域。

如要設定新程式碼資產的預設區域,請按照下列步驟操作:

  1. 前往「BigQuery」頁面

    前往「BigQuery」

  2. 在左側窗格中,按一下「 Files」(檔案),開啟檔案瀏覽器:

    按一下「Files」(檔案) 開啟檔案瀏覽器。

  3. 按一下專案名稱旁的 「View files panel actions」(查看檔案面板動作) >「Switch code region」(切換程式碼區域)。

  4. 選取要設為預設值的程式碼區域。

  5. 按一下 [儲存]。

如要查看支援的地區清單,請參閱「BigQuery Studio 位置」。

所需權限

如要建立及執行筆記本,您必須具備下列 Identity and Access Management (IAM) 角色:

在筆記本中開啟查詢結果

您可以執行 SQL 查詢,然後使用筆記本探索資料。如果您想先修改 BigQuery 中的資料再使用,或只需要資料表中的部分欄位,這個方法就很實用。

  1. 前往 Cloud de Confiance 控制台的「BigQuery」頁面。

    前往「BigQuery」

  2. 點選左側窗格中的 「Explorer」。

  3. 前往 bigquery-public-data 專案,按一下 「Toggle node」(切換節點) 展開專案,然後按一下「Datasets」(資料集)。「Details」(詳細資料) 窗格中會開啟新的分頁,顯示專案中所有資料集的清單。

  4. 在 「Filter」(篩選器) 方塊中,選擇「Dataset ID」(資料集 ID),然後輸入 ml_datasets。

    「資料集」頁面上的「篩選器」欄位

  5. 在「資料集」頁面,依序點選 「ml_datasets」 > 「penguins」。

  6. 按一下「 查詢」。

  7. 在產生的查詢中,加入星號 (*) 來選取欄位,如下例所示:

    SELECT * FROM `bigquery-public-data.ml_datasets.penguins` LIMIT 1000;
  8. 按一下「 執行」。

  9. 在「Query results」(查詢結果) 部分,依序點選「Open in」(開啟方式) 和「Notebook」。

準備使用筆記本

連線至執行階段並設定應用程式預設值,準備使用筆記本。

  1. 在筆記本標頭中,按一下「Connect」(連線),連線至預設執行階段。

  2. 在「Setup」程式碼區塊中,按一下 「Run cell」。

探索資料

  1. 依序點選「 插入程式碼儲存格 選項」 > 「新增 SQL 儲存格」。

    「插入程式碼儲存格」選單中的「新增 SQL 儲存格」選項

  2. 在 SQL 儲存格中輸入下列查詢:

    SELECT * FROM `bigquery-public-data.ml_datasets.penguins` LIMIT 1000;
    
  3. 按一下「執行儲存格」圖示 。

    查詢結果會顯示在 BigQuery DataFrame 中。

  4. 或者,如要使用先前在查詢編輯器中執行的查詢工作,將查詢結果載入 BigQuery DataFrame,請按照下列步驟操作:

    1. 前往「Result set loaded from BigQuery job as a DataFrame」(從 BigQuery 工作載入為 DataFrame 的結果集) 專區。

    2. 在程式碼區塊中,按一下 「Run cell」(執行儲存格)。

      查詢結果會顯示在 BigQuery DataFrame 中。

  5. 如要取得資料的描述性指標,請按照下列步驟操作:

    1. 前往「Show descriptive statistics using describe()」部分。

    2. 在程式碼區塊中,按一下 「Run cell」(執行儲存格)。

      結果會顯示在 BigQuery DataFrame 中。

  6. 選用:使用其他 Python 函式或套件探索及分析資料。

下列範例使用 bigframes.pandas 分析資料,並使用 bigframes.ml 根據 BigQuery DataFrame 中的 penguins 資料建立線性迴歸模型。這個範例會計算模型的 R2 分數,並以統計指標表格的形式傳回。不會生成圖表。

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)

清除所用資源

為避免因為本教學課程所用資源,導致系統向 Google Cloud 帳戶收取費用,請刪除含有相關資源的專案,或者保留專案但刪除個別資源。

如要避免付費,最簡單的方法就是刪除您為了本教學課程所建立的 Cloud de Confiance 專案。

  1. 前往 Cloud de Confiance 控制台的「Manage resources」(管理資源) 頁面。

    前往「Manage resources」(管理資源)

  2. 在專案清單中選取要刪除的專案,然後點選「Delete」(刪除)。
  3. 在對話方塊中輸入專案 ID,然後按一下 [Shut down] (關閉) 以刪除專案。

後續步驟