您可以透過兩種方式,從 BigQuery 資料表建立資料儲存庫:
一次性擷取:將資料從 BigQuery 資料表匯入資料儲存庫。除非手動重新整理資料,否則資料存放區中的資料不會變更。
定期擷取:從一或多個 BigQuery 資料表匯入資料,並設定同步頻率,決定資料存放區更新 BigQuery 資料集最新資料的頻率。
下表比較了將 BigQuery 資料匯入 Gemini Enterprise 資料儲存庫的兩種方式。
單次擷取 | 定期擷取 |
---|---|
正式發布 (GA)。 | 公開預先發布版。 |
資料必須手動重新整理。 | 資料會每 1、3 或 5 天自動更新一次。資料無法手動重新整理。 |
Gemini Enterprise 會從 BigQuery 中的一個資料表建立單一資料儲存庫。 | Gemini Enterprise 會為每個指定的資料表建立 BigQuery 資料集的資料連接器,以及資料儲存庫 (稱為實體資料儲存庫)。每個資料連結器的資料表必須具有相同的資料類型 (例如結構化),且位於相同的 BigQuery 資料集中。 |
如要將多個資料表的資料合併到一個資料儲存庫,請先從一個資料表擷取資料,然後從另一個來源或 BigQuery 資料表擷取更多資料。 | 由於系統不支援手動匯入資料,實體資料儲存庫中的資料只能來自一個 BigQuery 資料表。 |
支援資料來源存取控管。 | 不支援資料來源存取控管。匯入的資料可能包含存取權控管機制,但系統不會採用這些機制。 |
您可以使用Google Cloud 控制台或 API 建立資料儲存庫。 | 您必須使用控制台建立資料連接器及其實體資料儲存庫。 |
符合 CMEK 規定。 | 符合 CMEK 規定。 |
從 BigQuery 匯入一次
如要從 BigQuery 資料表擷取資料,請按照下列步驟,使用 Google Cloud 控制台或 API 建立資料儲存庫並擷取資料。
匯入資料前,請先參閱「為資料擷取作業做準備」。
控制台
如要使用 Google Cloud 控制台擷取 BigQuery 資料,請按照下列步驟操作:
前往 Google Cloud 控制台的「Gemini Enterprise」頁面。
前往「Data Stores」(資料儲存庫) 頁面。
點選「Create Data Store」(建立資料儲存庫)。
在「Select a data source」(選取資料來源) 頁面中,選取「BigQuery」。
選取要匯入的資料類型。
按一下「一次性」。
在「BigQuery 路徑」欄位中,按一下「瀏覽」,選取您準備用於擷取的資料表,然後按一下「選取」。 或者,直接在「BigQuery 路徑」欄位中輸入資料表位置。
按一下「繼續」。
如果只匯入一次結構化資料:
將欄位對應至主要屬性。
如果結構定義缺少重要欄位,請使用「新增欄位」新增。
詳情請參閱「關於自動偵測和編輯」。
按一下「繼續」。
選擇資料儲存庫的區域。
輸入資料儲存庫的名稱。
點選「建立」。
接著需要檢查擷取狀態,請前往「Data stores」(資料儲存庫) 頁面,點按資料儲存庫名稱,即可在相應的「Data」(資料) 頁面查看該儲存庫的詳細資料。「Activity」(活動) 分頁的狀態欄從「In progress」(進行中) 變為「Import completed」(匯入完成) 時,表示擷取作業已完成。
視資料大小而定,可能需要數分鐘至數小時才能擷取完畢。
REST
如要使用指令列建立資料存放區,並從 BigQuery 匯入資料,請按照下列步驟操作。
建立資料儲存庫。
curl -X POST \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json" \ -H "X-Goog-User-Project: PROJECT_ID" \ "https://discoveryengine.googleapis.com/v1/projects/PROJECT_ID/locations/global/collections/default_collection/dataStores?dataStoreId=DATA_STORE_ID" \ -d '{ "displayName": "DATA_STORE_DISPLAY_NAME", "industryVertical": "GENERIC", "solutionTypes": ["SOLUTION_TYPE_SEARCH"] }'
更改下列內容:
PROJECT_ID
:專案 ID。DATA_STORE_ID
:要建立的資料儲存庫 ID。這個 ID 只能包含小寫英文字母、數字、底線和連字號。DATA_STORE_DISPLAY_NAME
:要建立的資料存放區顯示名稱。
選用:如果您要上傳非結構化資料,並想設定文件剖析或開啟 RAG 的文件分塊功能,請指定
documentProcessingConfig
物件,並將其納入資料儲存庫建立要求。如果擷取的是掃描的 PDF,建議設定 PDF 適用的 OCR 剖析器。如要瞭解如何設定剖析或分塊選項,請參閱「剖析及分塊文件」。從 BigQuery 匯入資料。
如果您已定義架構,請確認資料符合該架構。
curl -X POST \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json" \ "https://discoveryengine.googleapis.com/v1/projects/PROJECT_ID/locations/global/collections/default_collection/dataStores/DATA_STORE_ID/branches/0/documents:import" \ -d '{ "bigquerySource": { "projectId": "PROJECT_ID", "datasetId":"DATASET_ID", "tableId": "TABLE_ID", "dataSchema": "DATA_SCHEMA", "aclEnabled": "BOOLEAN" }, "reconciliationMode": "RECONCILIATION_MODE", "autoGenerateIds": "AUTO_GENERATE_IDS", "idField": "ID_FIELD", "errorConfig": { "gcsPrefix": "ERROR_DIRECTORY" } }'
更改下列內容:
PROJECT_ID
:專案 ID。DATA_STORE_ID
:資料儲存庫的 ID。DATASET_ID
:BigQuery 資料集的 ID。TABLE_ID
:BigQuery 資料表的 ID。- 如果 BigQuery 資料表不在
PROJECT_ID
下方,您需要為服務帳戶service-<project number>@gcp-sa-discoveryengine.
授予 BigQuery 資料表的「BigQuery 資料檢視者」權限。舉例來說,如果您要將來源專案「123」的 BigQuery 資料表匯入目的地專案「456」,請為專案「123」下的 BigQuery 資料表授予service-456@gcp-sa-discoveryengine.
權限。
- 如果 BigQuery 資料表不在
DATA_SCHEMA
:選用。值為document
和custom
。預設值為document
。document
:您使用的 BigQuery 資料表必須符合「準備要擷取的資料」一文提供的預設 BigQuery 結構定義。您可以自行定義每份文件的 ID,同時將所有資料包裝在 jsonData 字串中。custom
:系統接受任何 BigQuery 資料表結構定義,且 Gemini Enterprise 會自動為匯入的每份文件產生 ID。
ERROR_DIRECTORY
:選用。Cloud Storage 目錄,用於存放匯入作業的錯誤資訊,例如gs://<your-gcs-bucket>/directory/import_errors
。Google 建議將這個欄位留空,讓 Gemini Enterprise 自動建立臨時目錄。RECONCILIATION_MODE
:選用。值為FULL
和INCREMENTAL
。預設值為INCREMENTAL
。指定INCREMENTAL
會導致系統將 BigQuery 資料增量重新整理至資料存放區。這會執行 upsert 作業,新增文件並以 ID 相同的更新文件取代現有文件。指定FULL
會導致資料儲存庫中的文件完全重新基準化。換句話說,系統會將新文件和更新的文件新增至資料存放區,並從資料存放區中移除不在 BigQuery 中的文件。如果您想自動刪除不再需要的檔案,FULL
模式會很有幫助。AUTO_GENERATE_IDS
:選用。指定是否要自動產生文件 ID。如果設為true
,系統會根據酬載的雜湊值產生文件 ID。請注意,多次匯入時,產生的文件 ID 可能不一致。如果您在多次匯入時自動產生 ID,Google 強烈建議將reconciliationMode
設為FULL
,確保文件 ID 一致。只有在
bigquerySource.dataSchema
設為custom
時,才指定autoGenerateIds
。否則,系統會傳回INVALID_ARGUMENT
錯誤。如未指定autoGenerateIds
或將其設為false
,則必須指定idField
。否則文件無法匯入。ID_FIELD
:選用。指定哪些欄位是文件 ID。如果是 BigQuery 來源檔案,idField
表示 BigQuery 資料表中包含文件 ID 的資料欄名稱。只有在 (1)
bigquerySource.dataSchema
設為custom
,且 (2)auto_generate_ids
設為false
或未指定時,才需要指定idField
。否則會傳回INVALID_ARGUMENT
錯誤。BigQuery 資料欄名稱的值必須為字串類型,長度必須介於 1 至 63 個字元之間,且必須符合 RFC-1034。否則文件無法匯入。
連結至 BigQuery 並定期同步
匯入資料前,請先參閱「為資料擷取作業做準備」。
以下程序說明如何建立 BigQuery資料儲存庫,並定期從 BigQuery 資料集同步處理資料。如果資料集有多個資料表,您可以將這些資料表新增至您要建立的 BigQuery 資料存放區。您新增的每個資料表都稱為實體。Gemini Enterprise 會為每個實體建立個別的資料儲存庫。因此,使用 Google Cloud 控制台建立資料儲存庫時,您會取得代表這些擷取資料實體的資料儲存庫集合。
資料集中的資料會定期同步至實體資料儲存庫。您可以指定每日、每三天或每五天同步一次。
控制台
如要建立資料儲存庫,並定期將 BigQuery 資料集的資料同步至 Gemini Enterprise,請按照下列步驟操作:
前往 Google Cloud 控制台的「Gemini Enterprise」頁面。
點按導覽選單中的「Data Stores」(資料儲存庫)。
點選「Create Data Store」(建立資料儲存庫)。
在「來源」頁面中,選取「BigQuery」。
選取要匯入的資料類型。
按一下「週期性」。
選取「同步頻率」,設定 Gemini Enterprise 連接器與 BigQuery 資料集同步的頻率。日後可以變更頻率。
在「BigQuery dataset path」(BigQuery 資料集路徑) 欄位中,按一下「Browse」(瀏覽),然後選取包含您準備要擷取的資料表。或者,您也可以直接在「BigQuery 路徑」欄位中輸入資料表位置。路徑格式為
projectname.datasetname
。在「Tables to sync」(要同步處理的資料表) 欄位中,按一下「Browse」(瀏覽),然後選取包含資料儲存庫所需資料的資料表。
如果資料集中還有其他要用於資料儲存區的資料表,請按一下「新增資料表」並指定這些資料表。
按一下「繼續」。
選擇資料儲存庫的區域,輸入資料連接器的名稱,然後按一下「Create」(建立)。
您已建立資料連接器,該連接器會定期與 BigQuery 資料集同步處理資料。您已建立一或多個實體資料儲存庫。資料儲存庫的名稱與 BigQuery 資料表相同。
如要檢查擷取狀態,請前往「Data Stores」(資料儲存庫) 頁面,點按資料連接器名稱,即可在相應的「Data」(資料) 頁面查看該資料連接器的詳細資料 > 點按「Data ingestion activity」(資料擷取活動) 分頁標籤。「Activity」(活動) 分頁的狀態欄從「In progress」(進行中) 變為「succeeded」(成功) 時,表示首次擷取作業已完成。
視資料大小而定,可能需要數分鐘至數小時才能擷取完畢。
設定資料來源並首次匯入資料後,資料儲存庫會按照您在設定期間選取的頻率,從該來源同步資料。建立資料連接器後約一小時,系統就會進行首次同步。下一次同步處理會在 24 小時、72 小時或 120 小時後進行。