SAP Datasphere に接続する
BigQuery 管理者は、接続を作成して SAP Datasphere データにアクセスできます。この接続により、データ アナリストは SAP Datasphere のデータにクエリを実行できるようになります。
始める前に
BigQuery Connection API を有効にします。
SAP Datasphere データベース ユーザーを作成します。BigQuery からの接続に使用するユーザー名、パスワード、ホスト名、ポートをメモします。
選択した IP アドレスからのトラフィックを受け入れるように SAP Datasphere テナントを構成するには、次のいずれかの操作を行います。
- すべての Google IP アドレス範囲を SAP Datasphere の [信頼された IP] 許可リストに追加します。
0.0.0.0/0
を許可リストに追加することで、すべての IP アドレスからの接続に対して SAP Datasphere テナントを開きます。- BigQuery が静的 IP アドレスから接続を開くように、ネットワーク アタッチメントを使用して接続を構成します。
SAP Datasphere テナントの構成の詳細については、IP 許可リストに IP アドレスを追加をご覧ください。
必要なロール
SAP Datasphere への接続に必要な権限を取得するには、プロジェクトに対する BigQuery Connection 管理者(roles/bigquery.connectionAdmin
)IAM ロールを付与するよう管理者に依頼してください。ロールの付与については、プロジェクト、フォルダ、組織へのアクセス権の管理をご覧ください。
必要な権限は、カスタムロールや他の事前定義ロールから取得することもできます。
BigQuery を SAP Datasphere に接続する
Google Cloud コンソールまたは bq コマンドライン ツールで、BigQuery を SAP Datasphere に接続できます。
コンソール
Google Cloud コンソールで [BigQuery] ページに移動します。
[エクスプローラ] パネルで、追加 [追加] をクリックします。
検索フィールドで [外部データソースへの接続] を検索して選択します。
[外部データソース] ダイアログで、次の操作を行います。
- [接続タイプ] で
SAP HANA
を選択します。 - [接続 ID] に、この接続を識別する接続 ID を入力します。
- [ロケーション タイプ] で、SAP Datasphere のデータと組み合わせる BigQuery データセットのリージョンを指定します。この接続を使用するクエリは、このリージョンから実行する必要があります。
- (省略可)[わかりやすい名前] に、わかりやすい接続名を入力します(例:
My connection resource
)。後で修正が必要になった場合、わかりやすい名前だと接続リソースを簡単に識別できます。 - (省略可)[説明] に、この接続リソースの説明を入力します。
- [暗号化] で、[Google が管理する暗号鍵] または [顧客管理の暗号鍵(CMEK)] を選択します。CMEK の使用は任意です。
- [ホスト:ポート] に、SAP データベース インスタンスのホストとポートを入力します。これは、SAP Datasphere ウェブ コンソールの [データベースユーザ詳細] に示されている値を
HOST:PORT
の形式で指定します。 - 省略可: [ネットワーク アタッチメント] に、SAP Datasphere への接続を確立するために使用されるネットワーク構成を定義するネットワーク アタッチメントのパスを入力します。
- [ユーザー名] に、SAP Datasphere ウェブ コンソールの [データベースユーザ詳細] にあるデータベース ユーザー名を入力します。たとえば、
MY_SPACE#BIGQUERY
です。 - [パスワード] に、データベース ユーザーのパスワードを入力します。
- [接続タイプ] で
[接続を作成] をクリックします。
bq
次のフラグを指定して、bq mk
コマンドを実行します。
bq mk \
--connection \
--location=LOCATION \
--project_id=PROJECT_ID \
--connector_configuration '{
"connector_id": "saphana",
"endpoint": {
"host_port": "HOST_PORT"
},
"authentication": {
"username_password": {
"username": "USERNAME",
"password": {
"plaintext": "PASSWORD"
}
}
},
"network": {
"private_service_connect": {
"network_attachment": "NETWORK_ATTACHMENT"
}
}
}' \
CONNECTION_ID
次のように置き換えます。
LOCATION
: SAP Datasphere のデータと組み合わせる BigQuery データセットのリージョンを指定します。この接続を使用するクエリは、このリージョンから実行する必要があります。PROJECT_ID
: Google Cloud プロジェクト ID を入力します。HOST_PORT
: SAP データベース インスタンスのホストとポートを入力します。これは、SAP Datasphere ウェブ コンソールの [データベースユーザ詳細] に示されている値をHOST:PORT
の形式で指定します。NETWORK_ATTACHMENT
(省略可): ネットワーク アタッチメントをprojects/{project}/regions/{region}/networkAttachments/{networkattachment}
の形式で入力します。このフィールドを使用すると、BigQuery が静的 IP アドレスから接続を開くように SAP Datasphere 接続を構成できます。USERNAME
: SAP Datasphere ウェブ コンソールの [データベースユーザ詳細] にあるデータベース ユーザー名を入力します。たとえば、MY_SPACE#BIGQUERY
です。PASSWORD
: データベース ユーザーのパスワードを入力します。CONNECTION_ID
: この接続を識別する接続 ID を入力します。
ユーザーと接続を共有する
次のロールを付与することで、ユーザーがデータをクエリして接続を管理できます。
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 に対する認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、クライアント ライブラリの認証を設定するをご覧ください。
次のステップ
- さまざまな接続タイプについて確認する。
- 接続の管理について確認する。
- 連携クエリについて確認する。
- SAP Datasphere データにクエリを実行する方法を確認する。