この記事では、Databricks インジェスト用に ServiceNow インスタンスを構成する方法について説明します。 手順は、選択した認証方法によって異なります。
認証方法を選択する
次の認証方法がサポートされています。
- Standard OAuth (推奨)
- トークンの自動更新を使用した OAuth (レガシ)
Databricks では、より安全なアプローチであるため、標準の OAuth をお勧めします。 ただし、認証トークンの有効期限が切れると、ServiceNow 接続の有効期限が切れます。 既定では、これは 100 日ごとに行われます。 頻度を減らすには、ServiceNow で有効期限を変更するか、自動トークン更新で OAuth を使用します。
取得した認証の詳細を使用して、ServiceNow への Databricks Unity カタログ接続を作成します。 トークンの自動更新を使用した OAuth は、Databricks API を使用して作成された接続でのみサポートされます。 Databricks UI ではサポートされていません。
ユーザー特権を確認する
削除をキャプチャするには、ServiceNow ユーザーが
sys_audit_delete table
にアクセスでき、取り込まれるテーブルが削除を追跡している必要があります (ServiceNow でテーブル属性をno_audit_delete=true
に設定することはできません)。ServiceNow ユーザーは、
admin
ロールを持っている必要があります。(省略可能)管理者ユーザーを読み取り専用アクセスに制限するには、
snc_read_only
ロールを割り当てることができます。
OAuth アプリケーションを作成する
この手順では、Databricks インジェストの ServiceNow 認証の詳細を収集します。
[ すべて ] メニューで、[ システム OAuth] を検索し、[ アプリケーション レジストリ] をクリックします。
[ 新規] > 外部クライアントの OAuth API エンドポイントの作成をクリックします。
アプリケーションの名前を入力します。
[ 認証スコープ] に「
useraccount
」と入力します。(Standard OAuth のみ)[ リダイレクト URL] に「
https://<databricks-workspace-url>/login/oauth/servicenow.html
」と入力します。<databricks-workspace-url>
を完全な Databricks ワークスペース URL (https://adb-4385079616193792.12.azuredatabricks.net
など) に置き換えます。注
トークンの自動更新で OAuth を使用している場合は、この手順をスキップします。
[ 送信] をクリックします。
クライアント ID とクライアント シークレットをコピーします。
インスタンス ID を取得する
インスタンス ID は、ServiceNow アカウントのログイン URL の最初の部分です。
https://<instanceid>.service-now.com
たとえば、ServiceNow インスタンスのホーム ページが https://abc.service-now.com
されている場合、インスタンス ID は abc
。
(レガシ)ユーザー名とパスワードを取得する
注
この手順は、トークンの自動更新を使用する OAuth にのみ必要です。 Databricks では、代わりに標準の OAuth を使用することをお勧めします。 トークンの自動更新を使用した OAuth は、Databricks API を使用して作成された接続でのみサポートされます。 Databricks UI ではサポートされていません。
アクティブな ServiceNow ユーザーのユーザー名とパスワードを取得します。
カーソル列のインデックス作成を有効にする
インジェストのパフォーマンスを向上させるために、Databricks は ServiceNow 管理者と協力して、カーソル フィールドで ServiceNow 側のインデックス作成を有効にすることをお勧めします。 カーソル列は、可用性と優先順に、 sys_updated_on
(第 1 選択)、 sys_created_on
(第 2 選択)、 sys_archived
(第 3 選択) の順に選択されます。 これは、ServiceNow API を使用して取り込むときにパフォーマンスを向上させる標準的なアプローチです。 インデックスを設定すると、Databricks はカーソル列全体を完全にスキャンすることを回避でき、大規模な更新のボトルネックとなる可能性があります。 手順については、ServiceNow ドキュメントの テーブル インデックスの作成 を参照してください。