Looker(Google Cloud コア)に作成されたコンテンツと内部データを含む Looker(Google Cloud コア)インスタンス データを、ある Looker(Google Cloud コア)インスタンスからエクスポートし、そのデータを別の Looker(Google Cloud コア)インスタンスにインポートすることもできます。データをエクスポートしてインポートする理由はいくつかあります。
- Looker(Google Cloud コア)の別のエディションにアップグレードまたはダウングレードする場合。
- 別のプロジェクトの Looker(Google Cloud コア)インスタンスに移行する。
- 別のリージョンの Looker(Google Cloud コア)インスタンスに移行する。
- 非本番環境インスタンスから本番環境インスタンスにデータをエクスポートする。
エクスポートには、インスタンスのすべてのデータ、構成、コンテンツが含まれます。ただし、次の例外があります。
- Google Cloud コンソールの設定は、インスタンスごとに Google Cloud コンソールで行う必要があり、エクスポートされません。ただし、Looker(Google Cloud コア)アプリケーション内の Looker の [管理] パネルの設定はエクスポートされます。
- インスタンスに保存されている OAuth トークンはエクスポートされません。個々のデータベース接続に OAuth を使用している場合、インポート後に各ユーザーは、OAuth を使用するデータベース接続に対して再ログインし、トークンを更新する必要があります。
- Looker アプリケーションの API キーはエクスポートされません。既存の API キーはインポートされたパッケージに含まれないため、すべてのユーザーが既存の API キーにアクセスできなくなります。
- エクスポートを作成したインスタンスとは異なるネットワーク設定を使用する Looker(Google Cloud コア)インスタンスにエクスポートしてインポートする場合は、外部サービスへの接続を異なる方法で構成する必要がある場合があります。
- エクスポートを 1 つの Google Cloud プロジェクトのインスタンスから別のプロジェクトのインスタンスに移動する場合は、新しいプロジェクトで、ユーザーにインスタンスへのアクセス権を付与する IAM 権限を設定する必要があります。
必要なロール
Looker(Google Cloud コア)インスタンス データのインポートまたはエクスポートに必要な権限を取得するには、インスタンスが作成されたプロジェクトの Looker 管理者 (roles/looker.admin
)の IAM ロールを付与するように管理者に依頼してください。ロールの付与については、プロジェクト、フォルダ、組織に対するアクセス権の管理をご覧ください。
必要な権限は、カスタムロールや他の事前定義ロールから取得することもできます。
Looker(Google Cloud コア)インスタンス データの Cloud Storage バケットへのエクスポート
次のセクションでは、インスタンス データをエクスポートする方法について説明します。
Cloud Storage バケットにエクスポートするために必要なオブジェクトと権限
- Looker サービス アカウント。Google Cloud CLI、Terraform、または API を使用して Looker(Google Cloud コア)インスタンスを作成し、Looker サービス アカウントをまだ作成していない場合は、アカウントを作成する必要があります。
storage.objects.create
権限が Looker サービス アカウントに割り当てられている Cloud Storage バケット。Storage オブジェクト作成者(roles/storage.objectCreator
)ロールにはこの権限が含まれているため、代わりにそのロールを Looker サービス アカウントに割り当てることもできます。- 顧客管理の暗号鍵(CMEK)。この CMEK は、エクスポートとインポートのプロセスに固有のものであり、インスタンス データの暗号化に使用される CMEK とは異なります。CMEK の
cloudkms.cryptoKeyVersions.useToEncrypt
権限が Looker サービス アカウントに割り当てられている必要があります。Cloud KMS CryptoKey の暗号化(roles/cloudkms.cryptoKeyEncrypter
)のロールにはこの権限が含まれているため、代わりにそのロールを Looker サービス アカウントに割り当てることができます。
Cloud Storage バケットへのエクスポート
データをエクスポートするには、次のいずれかのオプションを選択します。
Console
Google Cloud コンソールの [Looker] ページに移動します。
ページの上部にある [組織の選択] プルダウン リストで、データをエクスポートする Looker(Google Cloud コア)インスタンスを含む組織リソースを選択します。
データをエクスポートするインスタンスの名前をクリックします。
[エクスポート] をクリックします。
[バケットのエクスポート] フィールドに、エクスポート アーティファクトを作成するバケットのロケーションを指定します。入力フィールドに
<bucket_name>/<folder_name>
としてパスを入力するか、参照してバケット内の適切な場所を選択します。[顧客管理の暗号鍵を選択] フィールドで、エクスポート アーティファクトの暗号化に使用する 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 コア)インスタンスの名前。インスタンス URL には関連付けられていません。BUCKET_NAME
: エクスポート アーティファクトを作成する Cloud Storage バケットのロケーション。FOLDER_NAME
: Cloud Storage バケット内の、エクスポート アーティファクトを配置するフォルダ。KMS_KEY_ID
: インポートとエクスポートに固有の CMEK 鍵 ID の完全パス
Cloud Storage バケットから Looker(Google Cloud コア)インスタンスへのデータのインポート
次のセクションでは、インスタンス データをインポートする方法について説明します。
Cloud Storage バケットからのインポートに必要な権限
- Looker サービス アカウント。Google Cloud CLI、Terraform、または API を使用して Looker(Google Cloud コア)インスタンスを作成し、Looker サービス アカウントをまだ作成していない場合は、アカウントを作成する必要があります。
- Looker サービス アカウントに
storage.objects.get
権限を付与します。Storage オブジェクト閲覧者(roles/storage.objectViewer
)IAM ロールにはこの権限が含まれているため、代わりにそのロールを Looker サービス アカウントに割り当てることもできます。 cloudkms.cryptoKeyVersions.useToDecrypt
権限は Looker サービス アカウントに割り当てる必要があります。Cloud KMS CryptoKey の復号(roles/cloudkms.cryptoKeyDecrypter
)のロールにはこの権限が含まれているため、代わりにそのロールを Looker サービス アカウントに割り当てることができます。
Cloud Storage バケットからのインポート
データをインポートするには、次のいずれかのオプションを選択します。
Console
Google Cloud コンソールの [Looker] ページに移動します。
ページの上部にある [組織の選択] プルダウン リストで、データをインポートする Looker(Google Cloud コア)インスタンスを含む組織リソースを選択します。
データをインポートするインスタンスの名前をクリックします。
[インポート] をクリックします。
[バケットのインポート] フィールドにパスを入力するか、データをエクスポートした Cloud Storage のロケーションを参照します。
metadata.json
ファイルなどのファイルを含むフォルダを選択します。[インポート] をクリックします。
gcloud
gcloud looker instances import INSTANCE_NAME \ --source-gcs-uri='gs://BUCKET_NAME/FOLDER_NAME'
以下を置き換えます。
INSTANCE_NAME
: Looker(Google Cloud コア)インスタンスの名前。インスタンス URL には関連付けられていません。BUCKET_NAME
:metadata.json
ファイルと他のファイルが配置されている Cloud Storage バケットのロケーション。FOLDER_NAME
:metadata.json
ファイルと他のファイルが配置されているフォルダ。
インポート後、Looker(Google Cloud コア)ユーザーは、個々のユーザー認証に OAuth を使用する BigQuery または Snowflake データベース接続に対して再認証を求められます。これは、Looker(Google Cloud コア)のエクスポートでは、個々のユーザーのデータベース接続の OAuth アクセス トークンまたは更新トークンが保持されないためです。
ユーザーは、次のいずれかの方法でデータベースを再認証できます。
- 個々の OAuth データベース接続を使用する Explore またはダッシュボードを表示したときに表示される [ログイン] プロンプトに従います。
- [アカウント] ページに移動し、[OAuth 接続認証情報] という見出しの下にある各データベースの [ログイン] を選択します。
単一のユーザーが所有し、OAuth 接続を参照する自動スケジュールまたはアラートは、そのユーザーが OAuth 認証情報でログインするまで機能しません。
Looker(Google Cloud コア)データのエクスポートまたはインポートのトラブルシューティング
このセクションでは、エクスポートまたはインポート プロセスの失敗の原因となるエラー条件を修復する方法について説明します。
エクスポート中のエラー
Looker サービス アカウントに Cloud Storage バケットに対する
storage.objects.create
権限またはストレージ オブジェクト作成者(roles/storage.objectCreator
)の IAM ロールが付与されていることを確認します。Looker サービス アカウントに顧客管理の暗号鍵(CMEK)に対する
cloudkms.cryptoKeyVersions.useToEncrypt
権限または Cloud KMS 暗号鍵の暗号化(roles/cloudkms.cryptoKeyEncrypter
)ロールが付与されていることを確認します。データをエクスポートする前に、指定された Cloud Storage のロケーションに以前のエクスポート オペレーションのファイルがないことを確認します。既存のファイルがある場合は、まずそれらを削除します。
リクエスト元による支払いが有効になっている Cloud Storage バケットは使用できません。
インポート エラー
Looker サービス アカウントに Cloud Storage バケットに対する
storage.objects.get
権限またはストレージ オブジェクト閲覧者(roles/storage.objectViewer
)の IAM ロールが付与されていることを確認します。Looker サービス アカウントに顧客管理の暗号鍵(CMEK)に対する
cloudkms.cryptoKeyVersions.useToDecrypt
権限または Cloud KMS CryptoKey 復号(roles/cloudkms.cryptoKeyDecrypter
)ロールが付与されていることを確認します。次のような場合、ターゲット インスタンスとエクスポート インスタンスのバージョンに互換性がないためにインポートに失敗することがあります。
- ターゲット インスタンスの Looker マイナー バージョンが、エクスポートされたデータの Looker バージョンよりも低い。たとえば、ターゲット インスタンスが Looker 23.5.X で、エクスポートが Looker バージョン 23.6.X のインスタンスから作成されている場合。
- エクスポート データを作成したインスタンスのマイナー バージョンが、移行先インスタンスの Looker バージョンより 2 リリース以上前である。たとえば、ターゲット インスタンスが Looker 23.6.X で、エクスポートが Looker バージョン 23.4.X のインスタンスから作成されている場合。
この場合は、エクスポート インスタンスまたはターゲット インスタンスのいずれかをアップグレードして、両方のインスタンスが同じ Looker バージョンを実行するようにします。