在 BigQuery 中分析多模態資料

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

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

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

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

優點

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

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

ObjectRef 個值

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

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

在 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 函數會產生 Vertex AI 費用。
  • 在 BigQuery DataFrames 中使用 BigQuery Python UDF,以及多模態 DataFrame 和物件轉換方法,會產生 Python UDF 費用。

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

後續步驟