DatabricksワークスペースをPendo Predictに接続して、予測モデルの構築時にDatabricksデータを使用します。
接続を設定するには、Databricksサービスプリンシパルを作成し、Pendo Predictに読み込ませたいデータへのアクセス権を付与してから、Pendo Predictで接続を追加します。
前提条件
始める前に、以下があることを確認してください。
- サービスプリンシパルを作成し、権限を付与するためのDatabricksのワークスペース管理者または所有者アクセス権。
- Unityカタログが有効になっているDatabricksワークスペース。Pendo PredictはUnity Catalogを使用して、カタログ、スキーマ、テーブル、列を検出します。
- Pendo Predictがクエリを実行するために使用できる、少なくとも1つのSQLウェアハウス(サーバーレスまたはクラシック)。
- Pendo Predictにアクセスさせるカタログ、スキーマ、テーブル。
ステップ1:サービスプリンシパルを作成する
- Databricksワークスペースで、[設定(Settings)]を選択します。
- [IDおよびアクセス(Identity and access)]>[サービスプリンシパル(Service principals)]に移動します。
- [サービスプリンシパルを追加(Add service principal)]を選択し、次に[新規追加(Add new)]を選択します。
pendo-predict-integrationなど、わかりやすい名前を入力します。- サービスプリンシパルを保存します。
ステップ2:OAuth認証情報を生成する
- 作成したサービスプリンシパルを開きます。
- [シークレット(Secrets)]タブを選択します。
- [シークレットを生成(Generate secret)]を選択します。任意で有効期限を選択できます。
- クライアントIDとクライアントシークレットをコピーします。
重要:クライアントシークレットは一度しか表示されません。紛失した場合は、新しいシークレットを生成する必要があります。
これらの認証情報は手元に控えておいてください。Pendo Predictでコネクタを作成する際に入力します。
ステップ3:SQLウェアハウスへのアクセス権を付与する
Pendo Predictが使用するSQLウェアハウスに対して、サービスプリンシパルにCan Use権限を付与します。
- [SQL]>[SQLウェアハウス(SQL Warehouses)]に移動します。
- Pendo Predictで使用するウェアハウスを選択します。
- [権限(Permissions)]タブを開きます。
- [アクセス権を付与する(Grant access)]を選択してください。
- サービスプリンシパルを検索してください。
- Can Use権限を割り当てます。
- 変更を保存します。
ステップ4:Unity Catalogの権限を付与する
Pendo Predictが読み取る必要のあるカタログ、スキーマ、およびテーブルへのアクセス権をサービスプリンシパルに付与します。
サービスプリンシパルには、以下の権限が必要です。
| 特権 | レベル | 目的 |
|---|---|---|
USE CATALOG |
カタログ | サービスプリンシパルがカタログ内のスキーマを一覧表示できるようにします。 |
USE SCHEMA |
スキーマ | サービスプリンシパルがスキーマ内のテーブルを一覧表示できるようにします。 |
select |
スキーマまたはテーブル | サービスプリンシパルがテーブルのメタデータとデータを読み取ることを許可します。 |
Catalog ExplorerまたはSQLを使用して、これらの権限を付与できます。
スキーマ内の現在および将来のテーブルにPendo Predictがアクセスできるようにするには、スキーマレベルで権限を付与します。より詳細なアクセスが必要な場合は、個々のテーブルに権限を付与します。
Catalog Explorerを使用して権限を付与する
- [カタログ(Catalog)]に移動します。
- Pendo Predictにアクセスさせたいカタログ、スキーマ、またはテーブルに移動します。
- [権限(Permissions)]タブを開きます。
- [付与(Grant)]を選択します。
- サービスプリンシパルを検索してください。
- このセクションの表から適切な権限を割り当てます。
- Pendo Predictがアクセスするカタログとスキーマごとに、これらの手順を繰り返します。
SQLを使用して権限を付与する
カタログ所有者、メタストア管理者、またはアカウント管理者として、以下のステートメントを実行してください。
以下を置き換えます。
-
<application-id>をサービスプリンシパルのクライアントIDに。 -
<catalog>をカタログ名に。 -
<schema>をスキーマ名に。
GRANT USE CATALOG ON CATALOG <catalog> TO `<application-id>`; GRANT USE SCHEMA ON SCHEMA <catalog>.<schema> TO `<application-id>`; GRANT SELECT ON SCHEMA <catalog>.<schema> TO `<application-id>`;
スキーマ全体ではなく単一のテーブルへのアクセス権を付与するには、<table>をテーブル名に置き換えて以下を実行します。
GRANT SELECT ON TABLE <catalog>.<schema>.<table> TO `<application-id>`;
Pendo Predictが読み取れるようにする必要があるカタログ、スキーマ、またはテーブルごとに、適切なステートメントを繰り返します。
ステップ5:DatabricksをPendo Predictに接続する
続行する前に、次の情報を用意してください。
-
ワークスペースホスト:ブラウザのアドレスバーからワークスペースドメインをコピーします。たとえば、
dbc-xxxxxxxx-xxxx.cloud.databricks.comなどです。https://、パス、クエリパラメータは含めないでください。 - OAuthクライアントID:サービスプリンシパルのクライアントIDを使用します。
- OAuthクライアントシークレット:ステップ2で生成したクライアントシークレットを使用します。
コネクタを作成するには:
- Pendo Predictアプリで[ソース]->[データコネクタ]をクリックします。
- [新規ソース]を選択し、MS Dynamics 365を選択します。
- 接続の名前を入力してください。
-
ワークスペースホスト、OAuthクライアントID、OAuthクライアントシークレットを入力します。
- これらの値を入力すると、SQLウェアハウスとカタログのリストが自動的に表示されます。
- ステップ3でアクセスを許可したSQLウェアハウスを選択します。
- ステップ4でアクセスを許可したカタログを選択します。
- [承認]を選択して接続を完了します。
Pendo Predictは、保存後に接続を検証します。検証に成功すると、アクセスを許可したテーブルのテンプレート作成とクエリの実行を開始できます。
ステップ6:Databricksデータソースを管理する
データソースを作成したら、接続をテストして他のユーザーと共有できます。
- 接続をテストするには、[その他のオプション]アイコン(3つの点)を選択し、[接続をテスト]を選択します。
- ソースを共有するには、省略記号アイコンを選択し、[共有]を選択します。共有すると、他のユーザーは予測モデルの構築時にDatabricksソースを使用できます。
セキュリティとアクセス
Pendo Predictは現在、Databricksワークスペースへの読み取り専用アクセス権を持っています。リソースの作成、変更、削除は行われません。
コネクタは以下のことが可能です。
- サービスプリンシパルがアクセスできるSQLウェアハウス、カタログ、スキーマ、テーブル、列を一覧表示します。
- クエリを実行したりテーブルデータを読み取ったりすることなく、クエリの出力を検証するには、
DESCRIBE QUERYを使用します。 - Pendo Predictテンプレートで設定したテーブルからデータを読み取るには、
SELECTクエリを使用します。
サービスプリンシパルに割り当てられたUnity Catalogの権限を通じて、Pendo Predictがアクセスできる内容を制御できます。個々のユーザーアカウントに影響を与えることなく、いつでもアクセスを取り消したり、認証情報をローテーションしたりできます。
専用のサービスプリンシパルを使用することは、接続が個々の従業員アカウントに関連付けられていないことも意味します。