在 BigQuery 中分析多模態資料

本文說明如何使用 BigQuery 功能建立及分析多模態資料。您可以在 BigQuery 中使用 GoogleSQL,以及透過 BigQuery DataFrames 使用 Python,存取這些功能。

BigQuery 的多模態資料功能可讓您執行下列工作:

  • 將儲存在 Cloud Storage 中的非結構化資料,以 ObjectRef 值的形式,整合到標準 BigQuery 資料表,與結構化資料並列為另一個資料欄。
  • 使用 BigQuery ML 生成式 AI 函式和 Gemini 模型,從多模態資料產生註解、嵌入和純量值。
  • 在 BigQuery DataFrames 中建立多模態 DataFrame,並使用 Python 程式庫,從多模態資料生成註解、嵌入和純量值。

如需使用 Google Cloud 控制台的逐步教學課程,請參閱「使用 SQL 和 Python 分析多模態資料」。

優點

BigQuery 的多模態資料功能提供下列優點:

  • 可組合性:您可以使用 ObjectRef 值,在同一個標準資料表列中儲存及管理結構化和非結構化資料。舉例來說,您可以在同一列中儲存產品圖片和其餘產品資訊。您可以使用標準 SQL 函式建立及更新包含 ObjectRef 值的資料欄,也可以建立 ObjectRef 值,做為物件轉換動作的輸出內容。
  • 在生成式 AI 提示中新增多個非結構化資料:將多個 ObjectRef 值新增為生成式 AI 函式的輸入內容。舉例來說,您可以從同一個資料表產生圖片和文字資料的嵌入內容。如要生成文字和純量值,您也可以在傳送至模型的提示詞中參照多個物件。舉例來說,您可以建立提示,要求模型根據產品圖片和屬性生成產品說明。
  • 保留區塊順序:您可以將物件分塊,然後將區塊儲存為標準資料表資料欄中的 ObjectRef 值陣列,藉此保留區塊順序。舉例來說,您可以剖析影片中的圖片,然後將這些圖片儲存為 ObjectRef 值陣列,讓圖片維持在原始影片中的顯示順序。

ObjectRef 個值

ObjectRef 值是使用ObjectRef 結構定義的 STRUCT 值。您可以建立使用此格式的 STRUCTARRAY<STRUCT> 欄,將 Cloud Storage 物件中繼資料和相關聯的授權者儲存在 BigQuery 標準資料表中。授權者值會識別 BigQuery 用來存取 Cloud Storage 物件的雲端資源連線。如果將授權者設為 NULL,BigQuery 會使用您的使用者憑證。

如要將非結構化資料整合到標準資料表中,請使用 ObjectRef 值。舉例來說,在產品資料表中,您可以新增包含 ObjectRef 值的資料欄,將產品圖片與其餘產品資訊儲存在同一列。

使用下列 GoogleSQL 函式建立及更新 ObjectRef 值:

  • OBJ.MAKE_REF: 建立包含 Cloud Storage 物件中繼資料的 ObjectRef 值。
  • OBJ.FETCH_METADATA:擷取部分填入 uriauthorizer 值的 ObjectRef 值的 Cloud Storage 中繼資料。

詳情請參閱「使用 ObjectRef 值」。

ObjectRefRuntime 個值

ObjectRefRuntime 值是使用ObjectRefRuntime 架構JSON 值。ObjectRefRuntime 值包含用於建立該值的 ObjectRef 值中的 Cloud Storage 物件中繼資料、相關聯的授權者和存取網址。您可以使用存取網址讀取或修改 Cloud Storage 中的物件。

在分析和轉換工作流程中,使用 ObjectRefRuntime 值處理物件資料。ObjectRefRuntime 值中的存取網址最多會在 6 小時後過期,但您可以設定較短的到期時間。如果您在工作流程中將 ObjectRefRuntime 值保留在任何位置,請定期重新整理這項資料。如要保留物件中繼資料,請改為儲存 ObjectRef 值,然後在需要時使用這些值產生 ObjectRefRuntime 值。除非 Cloud Storage 中的基礎物件經過修改,否則不需要重新整理 ObjectRef 值。

使用 OBJ.GET_ACCESS_URL 函式建立 ObjectRefRuntime 值。

生成式 AI 功能

使用 Gemini 模型搭配下列生成式 AI 函式,根據 ObjectRef 輸入內容生成文字、嵌入和純量值:

在 Python 中處理多模態資料

您可以使用 BigQuery DataFrames 類別和方法,在 Python 中分析多模態資料。

多模態 DataFrame

使用 read_gbq 方法建立整合結構化和非結構化資料的多模態 DataFrame:從物件資料表建立多模態 DataFrame。

如要試用,請參閱 GitHub 上的多模態 DataFrame 教學課程

生成式 AI 方法

使用下列方法,對多模態資料執行生成式 AI 任務:

物件資料表

您建立的任何新物件資料表都會有 ref 欄,其中包含指定物件的 ObjectRef 值。建立物件資料表時使用的連線,會用於填入 ref 欄中的 authorizer 值。您可以使用 ref 欄,在標準資料表中填入及重新整理 ObjectRef 值。

儲存空間分析資料集

儲存空間分析資料集是連結的 BigQuery 資料集,您可以查詢該資料集,分析及以圖表呈現 Cloud Storage 資料。ref包含 ObjectRef 值,可用於分析物件資料和中繼資料

限制

BigQuery 多模態資料功能有下列限制:

  • 如果您未在 ObjectRef 值的 authorizer 欄位中明確指定包含連線的專案名稱,則連線必須存在於包含儲存連線的物件資料表的專案中,或存在於執行參照 ObjectRef 值的查詢的專案中。
  • 在查詢以 ObjectRef 值存取物件資料的專案和區域中,Cloud 資源連線不得超過 20 個。
  • 除了執行查詢的專案外,您最多可以參照五個專案的 ObjectRef 值。

費用

使用多模態資料時,適用下列費用:

  • 在標準資料表中以 ObjectRef 值形式儲存物件中繼資料,會增加資料表的 BigQuery 儲存費用。
  • ObjectRef 值執行的查詢會產生 BigQuery 運算費用。
  • 從物件轉換建立的新物件會產生 Cloud Storage 費用。
  • 您在 BigQuery 中建立及保留的新資料會產生 BigQuery 儲存費用。
  • 使用生成式 AI 功能會產生 Gemini Enterprise Agent Platform 費用。
  • 在 BigQuery DataFrames 中使用 BigQuery Python UDF,以及多模態 DataFrame 和物件轉換方法,會產生 Python UDF 費用。

詳情請參閱下列定價頁面:

後續步驟