您可能需要從一個 Looker (Google Cloud Core) 執行個體匯出 Looker (Google Cloud Core) 執行個體資料 (包括建立的內容和 Looker (Google Cloud Core) 執行個體的內部資料),然後將該資料匯入另一個 Looker (Google Cloud Core) 執行個體。您可能會基於下列幾種原因而匯出及匯入資料:
- 您想升級或降級至其他版本的 Looker (Google Cloud Core)。
- 您想新增只能在建立執行個體時啟用的設定,例如 Private Service Connect 或 CMEK。
- 您想移至其他專案中的 Looker (Google Cloud Core) 執行個體。
- 您想遷移至其他區域的 Looker (Google Cloud Core) 執行個體。
- 您想將非實際工作環境執行個體的資料匯出至實際工作環境執行個體。
一次性匯出作業會匯出執行個體中的所有資料、設定和內容 (包括 BigQuery 資料),但下列項目除外:
- 系統不會匯出 數據分析 報表。
- 任何 Google Cloud 控制台設定 (必須在每個執行個體的控制台中進行) 都不會匯出。 Google Cloud 不過,Looker (Google Cloud Core) 應用程式中 Looker 管理面板的設定會匯出。
- 系統不會匯出執行個體中儲存的任何 OAuth 權杖。如果 OAuth 用於個別資料庫連線,匯入後,每位使用者都必須重新登入,並更新使用 OAuth 的資料庫連線權杖。
- Looker 應用程式 API 金鑰不會匯出。由於 API 金鑰不會匯入套件,所有使用者都將無法存取現有的 API 金鑰。
- 如果匯出後匯入的 Looker (Google Cloud Core) 執行個體,與建立匯出內容的執行個體使用不同的網路設定,您可能需要以不同方式設定與外部服務的連線。
- 如果從某個 Google Cloud 專案的執行個體匯出的內容移至其他專案的執行個體,則必須在新專案中設定 IAM 權限,才能授予使用者執行個體存取權。
排定的匯出工作執行期間,無法進行一次性資料匯出和匯入作業。如要瞭解排定匯出工作,請參閱「為 Looker (Google Cloud Core) 執行個體建立排定匯出工作」說明文件頁面。
Looker (Google Cloud Core) 匯入和匯出功能不支援將資料從不符合 FIPS 規範的執行個體移至符合 FIPS 規範的執行個體。
必要的角色
如要取得匯入或匯出 Looker (Google Cloud Core) 執行個體資料所需的權限,請要求管理員授予您下列 IAM 角色和權限:
執行個體建立所在專案的 Looker 管理員 (
roles/looker.admin) IAM 角色。匯出作業建立所在的 Cloud Storage bucket 的
storage.buckets.getIamPolicy和storage.buckets.setIamPolicy權限。「Storage 管理員」 (roles/storage.admin) 或「Storage Legacy Bucket Owner」 (roles/storage.legacyBucketOwner) 角色也具備這些權限,因此您也可以要求獲派其中一個角色。
如要進一步瞭解如何授予角色,請參閱「管理專案、資料夾和機構的存取權」。
將 Looker (Google Cloud Core) 執行個體資料匯出至 Cloud Storage bucket
以下各節說明如何匯出執行個體資料。
匯出至 Cloud Storage bucket 時所需的物件和權限
以下列出匯出至 Cloud Storage 值區時所需的物件和權限:
- Looker 服務帳戶。如果您使用 Google Cloud CLI、Terraform 或 API 建立 Looker (Google Cloud Core) 執行個體,但尚未建立 Looker 服務帳戶,請建立一個。
Cloud Storage bucket,並為 Looker 服務帳戶指派下列 IAM 權限:
storage.objects.create權限 - 儲存空間物件建立者 (roles/storage.objectCreator) IAM 角色包含這項權限,因此您也可以將該角色指派給 Looker 服務帳戶。storage.buckets.getIamPolicy和storage.buckets.setIamPolicy權限:儲存空間管理員 (roles/storage.admin) 或儲存空間舊版 Bucket 擁有者 (roles/storage.legacyBucketOwner) 角色也包含這些權限,因此您也可以要求獲派其中一個角色。
客戶自行管理的加密金鑰 (CMEK)。這個 CMEK 專用於匯出和匯入程序,與用於加密執行個體資料的 CMEK 不同。必須將 CMEK
cloudkms.cryptoKeyVersions.useToEncrypt權限指派給 Looker 服務帳戶。Cloud KMS CryptoKey Encrypter (roles/cloudkms.cryptoKeyEncrypter) 角色包含這項權限,因此您也可以將該角色指派給 Looker 服務帳戶。
匯出至 Cloud Storage bucket
如要匯出資料,請選取下列其中一個選項:
主控台
前往 Google Cloud 控制台的 Looker 頁面。
在頁面頂端的「Select organization」(選取機構) 下拉式清單中,選取要匯出資料的 Looker (Google Cloud Core) 執行個體所屬的機構資源。
按一下要匯出資料的執行個體名稱。
按一下 [匯出]。
展開「單次匯出」分頁。
在「Export Bucket」(匯出值區) 欄位中,指定要建立匯出構件的值區位置。您可以在輸入欄位中輸入路徑 (如
<bucket_name>/<folder_name>),或瀏覽並選取 bucket 中的適當位置。在「選取 Cloud KMS 金鑰」欄位中,選取用於加密匯出構件的 CMEK。
按一下 [匯出]。
gcloud
gcloud looker instances export INSTANCE_NAME \ --target-gcs-uri='gs://BUCKET_NAME/FOLDER_NAME' \ --kms-key=KMS_KEY_ID
更改下列內容:
INSTANCE_NAME:Looker (Google Cloud Core) 執行個體的名稱,與執行個體網址無關BUCKET_NAME:要建立匯出構件的 Cloud Storage bucket 位置FOLDER_NAME:您希望匯出構件放置在 Cloud Storage bucket 內的資料夾KMS_KEY_ID:匯入和匯出專用 CMEK 金鑰 ID 的完整路徑
將資料從 Cloud Storage 儲存區匯入 Looker (Google Cloud Core) 執行個體
以下各節說明如何匯入執行個體資料。
從 Cloud Storage bucket 匯入資料時的必要權限
以下列出從 Cloud Storage bucket 匯入資料時所需的權限:
- Looker 服務帳戶。如果您使用 Google Cloud CLI、Terraform 或 API 建立 Looker (Google Cloud Core) 執行個體,且尚未建立 Looker 服務帳戶,請建立一個。
在匯出檔案所在的 Cloud Storage bucket 中,授予 Looker 服務帳戶下列 IAM 權限:
storage.objects.get- Storage 物件檢視者 (roles/storage.objectViewer) IAM 角色包含這項權限,因此您也可以將該角色指派給 Looker 服務帳戶。storage.buckets.getIamPolicy和storage.buckets.setIamPolicy權限:儲存空間管理員 (roles/storage.admin) 或儲存空間舊版 Bucket 擁有者 (roles/storage.legacyBucketOwner) 角色也包含這些權限,因此您也可以要求獲派其中一個角色。
必須將
cloudkms.cryptoKeyVersions.useToDecrypt權限指派給 Looker 服務帳戶。Cloud KMS CryptoKey 解密者 (roles/cloudkms.cryptoKeyDecrypter) 角色包含這項權限,因此您也可以將該角色指派給 Looker 服務帳戶。
從 Cloud Storage bucket 匯入
如要匯入資料,請選取下列其中一個選項:
主控台
前往 Google Cloud 控制台的 Looker 頁面。
在頁面頂端的「Select organization」(選取機構) 下拉式清單中,選取要匯入資料的 Looker (Google Cloud Core) 執行個體所屬的機構資源。
按一下要匯入資料的執行個體名稱。
按一下「匯入」。
在「匯入 Bucket」欄位中,輸入路徑或瀏覽至匯出資料的 Cloud Storage 位置。選取含有
metadata.json檔案和其他檔案的資料夾。按一下「匯入」。
gcloud
gcloud looker instances import INSTANCE_NAME \ --source-gcs-uri='gs://BUCKET_NAME/FOLDER_NAME'
更改下列內容:
INSTANCE_NAME:Looker (Google Cloud Core) 執行個體的名稱,與執行個體網址無關BUCKET_NAME:metadata.json檔案和其他檔案所在的 Cloud Storage bucket 位置FOLDER_NAME:包含metadata.json檔案和其他檔案的資料夾
匯入後,系統會提示 Looker (Google Cloud Core) 使用者重新驗證,以連線至任何使用 OAuth 進行個別使用者驗證的 BigQuery 或 Snowflake 資料庫。這是因為 Looker (Google Cloud Core) 匯出作業不會保留個別使用者資料庫連線的 OAuth 存取權或重新整理權杖。
使用者可以透過下列任一方法重新驗證資料庫:
如果自動排程或快訊是由單一使用者擁有,且參照 OAuth 連線,則該使用者必須使用 OAuth 憑證登入,這些排程或快訊才會正常運作。
排解 Looker (Google Cloud Core) 資料匯出或匯入作業的問題
本節說明如何修正可能導致匯出或匯入程序失敗的錯誤情況。
匯出時發生的錯誤
確認您已將
storage.objects.create權限或 Storage 物件建立者 (roles/storage.objectCreator) IAM 角色授予 Cloud Storage bucket 的 Looker 服務帳戶。請確認您已將 Looker 服務帳戶的
cloudkms.cryptoKeyVersions.useToEncrypt權限或 Cloud KMS CryptoKey Encrypter (roles/cloudkms.cryptoKeyEncrypter) 角色授予您建立的客戶自行管理的加密金鑰 (CMEK)。匯出資料前,請確認指定的 Cloud Storage 位置沒有先前匯出作業的任何檔案。如有任何現有檔案,請先移除。
匯入作業錯誤
確認您已授予 Looker 服務帳戶 Cloud Storage bucket 的
storage.objects.get權限或 Storage 物件檢視者 (roles/storage.objectViewer) IAM 角色。請確認您已將
cloudkms.cryptoKeyVersions.useToDecrypt權限或「Cloud KMS CryptoKey 解密者 (roles/cloudkms.cryptoKeyDecrypter)」角色授予 Looker 服務帳戶,以存取您建立的客戶自行管理的加密金鑰 (CMEK)。如果目標執行個體和匯出執行個體之間版本不相容,匯入作業可能會失敗,原因如下:
- 目標執行個體的 Looker 子版本低於匯出資料的 Looker 版本。舉例來說,目標執行個體使用 Looker 23.5.X,但匯出作業是從 Looker 23.6.X 版的執行個體建立。
- 建立匯出資料的執行個體子版本,比目標執行個體的 Looker 版本落後超過一個版本。舉例來說,目標執行個體使用 Looker 23.6.X,但匯出作業是從 Looker 23.4.X 版的執行個體建立。
在這種情況下,請升級匯出執行個體或目標執行個體,讓兩個執行個體都執行相同版本的 Looker。