您可能需要從一個 Looker (Google Cloud Core) 執行個體匯出 Looker (Google Cloud Core) 執行個體資料 (包括建立的內容和 Looker (Google Cloud Core) 執行個體的內部資料),然後將該資料匯入另一個 Looker (Google Cloud Core) 執行個體。您可能會基於下列幾種原因而希望匯出及匯入資料:
- 您想升級或降級至其他版本的 Looker (Google Cloud Core)。
- 您想移至其他專案中的 Looker (Google Cloud Core) 執行個體。
- 您想遷移至其他區域的 Looker (Google Cloud Core) 執行個體。
- 您想將非實際工作環境執行個體的資料匯出至實際工作環境執行個體。
匯出內容包含執行個體中的所有資料、設定和內容,但有以下例外狀況:
- 任何 Google Cloud 控制台設定 (必須在每個執行個體的控制台中進行) 都不會匯出。 Google Cloud 不過,Looker (Google Cloud Core) 應用程式中 Looker 管理面板的設定會匯出。
- 系統不會匯出執行個體中儲存的任何 OAuth 權杖。如果使用 OAuth 進行個別資料庫連線,匯入後,每位使用者都必須重新登入,並更新使用 OAuth 的資料庫連線權杖。
- 如果匯出後匯入的 Looker (Google Cloud Core) 執行個體,與建立匯出內容的執行個體使用不同的網路設定,您可能需要以不同方式設定與外部服務的連線。
- 如果將匯出內容從一個 Google Cloud 專案的執行個體移至另一個專案的執行個體,則需要在新專案中設定 IAM 權限,讓使用者存取執行個體。
必要角色
如要取得匯入或匯出 Looker (Google Cloud Core) 執行個體資料所需的權限,請要求管理員在建立執行個體的專案中,授予您 Looker 管理員 (roles/looker.admin
) IAM 角色。如要進一步瞭解如何授予角色,請參閱「管理專案、資料夾和機構的存取權」。
將 Looker (Google Cloud Core) 執行個體資料匯出至 Cloud Storage bucket
以下各節說明如何匯出執行個體資料。
匯出至 Cloud Storage bucket 時所需的物件和權限
- Looker 服務帳戶。如果您使用 Google Cloud CLI、Terraform 或 API 建立 Looker (Google Cloud Core) 執行個體,但尚未建立 Looker 服務帳戶,請建立一個。
- Cloud Storage 值區,並將
storage.objects.create
權限指派給 Looker 服務帳戶。儲存空間物件建立者 (roles/storage.objectCreator
) IAM 角色包含這項權限,因此您也可以將該角色指派給 Looker 服務帳戶。 - 客戶自行管理的加密金鑰 (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>
),也可以瀏覽並選取值區中的適當位置。在「選取客戶管理的金鑰」欄位中,選取用於加密匯出構件的 CMEK。
按一下 [Export] (匯出)。
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 匯入時的必要權限
- Looker 服務帳戶。如果您使用 Google Cloud CLI、Terraform 或 API 建立 Looker (Google Cloud Core) 執行個體,且尚未建立 Looker 服務帳戶,則需要建立一個。
- 將
storage.objects.get
權限授予 Looker 服務帳戶。Storage 物件檢視者 (roles/storage.objectViewer
) IAM 角色包含這項權限,因此您也可以將該角色指派給 Looker 服務帳戶。 - 必須將
cloudkms.cryptoKeyVersions.useToDecrypt
權限指派給 Looker 服務帳戶。Cloud KMS CryptoKey 解密者 (roles/cloudkms.cryptoKeyDecrypter
) 角色包含這項權限,因此您也可以將該角色指派給 Looker 服務帳戶。
從 Cloud Storage bucket 匯入
如要匯入資料,請選取下列其中一個選項:
主控台
前往 Google Cloud 控制台的 Looker 頁面。
在頁面頂端的「Select organization」(選取機構) 下拉式清單中,選取要匯入資料的 Looker (Google Cloud Core) 執行個體所屬的機構資源。
按一下要匯入資料的執行個體名稱。
按一下 [IMPORT] (匯入)。
在「匯入 Bucket」欄位中,輸入路徑或瀏覽至匯出資料的 Cloud Storage 位置。選取含有
metadata.json
檔案和其他檔案的資料夾。按一下 [IMPORT] (匯入)。
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 值區位置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 服務帳戶。請確認您已將
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
) 角色授予您建立的客戶管理加密金鑰 (CMEK) 的 Looker 服務帳戶。如果目標執行個體和匯出執行個體之間有版本不相容的問題,匯入作業可能會失敗,原因如下:
- 目標執行個體的 Looker 次要版本低於匯出資料的 Looker 版本。舉例來說,目標執行個體使用 Looker 23.5.X,但匯出作業是從 Looker 23.6.X 版本的執行個體建立。
- 建立匯出資料的執行個體次要版本,比目標執行個體的 Looker 版本落後超過一個版本。舉例來說,目標執行個體使用 Looker 23.6.X,但匯出作業是從 Looker 23.4.X 版的執行個體建立。
在這種情況下,請升級匯出執行個體或目標執行個體,確保兩個執行個體都執行相同版本的 Looker。