接続を管理する
このドキュメントでは、BigQuery 接続を表示、一覧表示、共有、編集、削除、トラブルシューティングする方法について説明します。
BigQuery 管理者は、サービスと外部データソースへの接続に使用する接続を作成し、管理できます。BigQuery アナリストは、これらの接続を使用して、BigQuery にデータを移動することやコピーすることなく、外部データソースにクエリを送信します。次のタイプの接続を作成できます。
- Amazon S3 接続
- Apache Spark 接続
- Blob Storage 接続
- Cloud Storage データに接続し、リモート関数を実装するためのクラウド リソース接続。
- Spanner 接続
- Cloud SQL 接続
始める前に
BigQuery Connection API を有効にします。
プロジェクト内のサービス アカウントのリストを表示できることを確認します。BigQuery がサービス アカウントを作成して使用し、外部データソースに接続します。接続を作成すると、Google Cloud 管理の Identity and Access Management(IAM)サービス アカウントが自動的に作成されます。特定の接続に関連付けられているサービス アカウントを表示するには、接続の詳細を表示します。
必要なロール
接続の管理に必要な権限を取得するには、管理者に次の IAM のロールを付与するよう依頼してください。
-
接続の詳細を表示する: データセットに対する BigQuery 接続ユーザー(
roles/bigquery.connectionUser
) - すべての接続を一覧表示する: データセットに対する BigQuery 接続ユーザー(
roles/bigquery.connectionUser
) - 接続を共有する: 接続に対する BigQuery 接続管理者(
roles/bigquery.connectionAdmin
) - 接続を編集する: 接続に対する BigQuery 接続管理者(
roles/bigquery.connectionAdmin
) -
接続を削除する: 接続に対する BigQuery 接続管理者(
roles/bigquery.connectionAdmin
)
ロールの付与の詳細については、アクセスの管理をご覧ください。
必要な権限は、カスタムロールや他の事前定義ロールから取得することもできます。
これらの事前定義ロールには、このドキュメントのタスクを実行するために必要な権限が含まれています。必要とされる正確な権限については、「必要な権限」セクションを開いてご確認ください。
必要な権限
- 接続の詳細を表示する:
bigquery.connections.get
- すべての接続を一覧表示する:
bigquery.connections.list
- 接続を編集、削除する:
bigquery.connections.update
- 接続を共有する:
bigquery.connections.setIamPolicy
カスタムロールや他の事前定義ロールを使用して、これらの権限を取得することもできます。
すべての接続を一覧表示する
次のオプションのいずれかを選択します。
コンソール
[BigQuery] ページに移動します。
接続は、プロジェクトで外部接続というグループに一覧表示されます。
[エクスプローラ] ペインで、[プロジェクト名] > [外部接続] の順にクリックして、すべての接続のリストを表示します。
bq
bq ls
コマンドを入力し、--connection
フラグを指定します。必要に応じて、--project_id
フラグと --location
フラグを指定して、一覧表示する接続のプロジェクトとロケーションを特定します。
bq ls --connection --project_id=PROJECT_ID --location=REGION
次のように置き換えます。
PROJECT_ID
: 実際の Google Cloud プロジェクト IDREGION
: 接続リージョン
API
REST API リファレンス セクションの projects.locations.connections.list
メソッドを使用します。
Java
このサンプルを試す前に、クライアント ライブラリを使用した BigQuery クイックスタートの Java の手順に沿って設定を行ってください。詳細については、BigQuery Java API のリファレンス ドキュメントをご覧ください。
BigQuery に対する認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証を設定するをご覧ください。
接続の詳細を表示する
接続を作成すると、接続の構成に関する情報を取得できます。この構成には、転送を作成したときに指定した値が含まれます。
次のオプションのいずれかを選択します。
コンソール
[BigQuery] ページに移動します。
接続は、プロジェクトの外部接続というグループに一覧表示されます。
[エクスプローラ] ペインで、[プロジェクト名] > [外部接続] > [接続] の順にクリックします。
bq
bq show
コマンドを入力し、--connection
フラグを指定します。必要に応じて、接続 ID をプロジェクト ID と接続のリージョンで修飾します。
bq show --connection PROJECT_ID.REGION.CONNECTION_ID
次のように置き換えます。
PROJECT_ID
: 実際の Google Cloud プロジェクト IDREGION
: 接続リージョンCONNECTION_I
: 接続 ID
API
REST API リファレンス セクションの projects.locations.connections.get
メソッドを使用します。
Java
このサンプルを試す前に、クライアント ライブラリを使用した BigQuery クイックスタートの Java の手順に沿って設定を行ってください。詳細については、BigQuery Java API のリファレンス ドキュメントをご覧ください。
BigQuery に対する認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証を設定するをご覧ください。
ユーザーとの接続を共有する
次のロールを付与することで、ユーザーがデータをクエリして接続を管理できます。
roles/bigquery.connectionUser
: ユーザーが接続を使用して外部データソースに接続し、クエリを実行できるようにします。roles/bigquery.connectionAdmin
: ユーザーが接続を管理できるようにします。
BigQuery での IAM のロールと権限について詳しくは、事前定義ロールと権限をご覧ください。
次のオプションのいずれかを選択します。
コンソール
[BigQuery] ページに移動します。
接続は、プロジェクトで外部接続というグループに一覧表示されます。
[エクスプローラ] ペインで、[プロジェクト名] > [外部接続] > [接続] の順にクリックします。
[詳細] ペインで、[共有] をクリックして接続を共有します。次に、以下の操作を行います。
[接続の権限] ダイアログで、プリンシパルを追加または編集して、他のプリンシパルと接続を共有します。
[保存] をクリックします。
bq
bq コマンドライン ツールを使用して接続を共有することはできません。接続を共有するには、Google Cloud コンソールまたは BigQuery Connections API メソッドを使用します。
API
BigQuery Connections REST API の projects.locations.connections.setIAM
メソッドを使用して、policy
リソースのインスタンスを指定します。
Java
このサンプルを試す前に、クライアント ライブラリを使用した BigQuery クイックスタートの Java の手順に沿って設定を行ってください。詳細については、BigQuery Java API のリファレンス ドキュメントをご覧ください。
BigQuery に対する認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証を設定するをご覧ください。
接続を編集する
接続では、接続を作成したユーザーの認証情報が使用されます。接続に関連付けられているユーザーを変更する必要がある場合は、ユーザーの認証情報を更新できます。これは、接続を作成したユーザーが組織のメンバーではなくなった場合に便利です。
接続の次の要素は編集できません。
- 接続タイプ
- 接続 ID
- ロケーション
次のオプションのいずれかを選択します。
コンソール
[BigQuery] ページに移動します。
接続は、プロジェクトで外部接続というグループに一覧表示されます。
[エクスプローラ] ペインで、[プロジェクト名] > [外部接続] > [接続] の順にクリックします。
[詳細] ペインで、
[詳細を編集] をクリックすれば、詳細を編集できます。次に、以下の操作を行います。[接続の編集] ダイアログで、ユーザー認証情報などの接続の詳細を編集します。
[接続の更新] をクリックします。
bq
bq update
コマンドを入力して、接続フラグ --connection
を指定します。完全修飾された connection_id
が必要です。
bq update --connection --connection_type='CLOUD_SQL' --properties='{"instanceId" : "INSTANCE", "database" : "DATABASE", "type" : "MYSQL" }' --connection_credential='{"username":"USERNAME", "password":"PASSWORD"}' PROJECT.REGION.CONNECTION_ID
次のように置き換えます。
INSTANCE
: Cloud SQL インスタンスDATABASE
: データベース名USERNAME
: Cloud SQL データベースのユーザー名PASSWORD
: Cloud SQL データベースのパスワードPROJECT
: Google Cloud プロジェクト IDREGION
: 接続リージョンCONNECTION_ID
: 接続 ID
たとえば、次のコマンドを使用すると、ID が federation-test
で接続 ID が test-mysql
のプロジェクト内の接続が更新されます。
bq update --connection --connection_type='CLOUD_SQL' --properties='{"instanceId" : "federation-test:us-central1:new-mysql", "database" : "imdb2", "type" : "MYSQL" }' --connection_credential='{"username":"my_username", "password":"my_password"}' federation-test.us.test-mysql
API
REST API リファレンス セクションの projects.locations.connections.patch
メソッドを参照し、connection
のインスタンスを指定します。
Java
このサンプルを試す前に、クライアント ライブラリを使用した BigQuery クイックスタートの Java の手順に沿って設定を行ってください。詳細については、BigQuery Java API のリファレンス ドキュメントをご覧ください。
BigQuery に対する認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証を設定するをご覧ください。
接続を削除する
次のオプションのいずれかを選択します。
コンソール
[BigQuery] ページに移動します。
接続は、プロジェクトで外部接続というグループに一覧表示されます。
[エクスプローラ] ペインで、[プロジェクト名] > [外部接続] > [接続] の順にクリックします。
[詳細] ペインで、
[削除] をクリックして接続を削除します。[接続を削除しますか?] ダイアログ ボックスに「
delete
」と入力して削除を確定します。[削除] をクリックします。
bq
bq rm
コマンドを入力して、接続フラグ --connection
を指定します。完全修飾された connection_id
が必要です。
bq rm --connection PROJECT_ID.REGION.CONNECTION_ID
次のように置き換えます。
PROJECT_ID
: 実際の Google Cloud プロジェクト IDREGION
: 接続リージョンCONNECTION_ID
: 接続 ID
API
REST API リファレンス セクションの projects.locations.connections.delete
メソッドをご覧ください。
Java
このサンプルを試す前に、クライアント ライブラリを使用した BigQuery クイックスタートの Java の手順に沿って設定を行ってください。詳細については、BigQuery Java API のリファレンス ドキュメントをご覧ください。
BigQuery に対する認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証を設定するをご覧ください。
次のステップ
- リモート関数を利用する方法を学習する。
- Apache Spark のストアド プロシージャを使用する方法を確認する。