ServiceNow インジェスト パイプラインを作成する
プレビュー
ServiceNow コネクタは パブリック プレビュー段階です。
この記事では、 Databricks LakeFlow Connectを使用して ServiceNow インジェストパイプラインを作成する方法について説明します。
始める前に
インジェスト パイプラインを作成するには、次の要件を満たす必要があります。
- ワークスペースが Unity Catalog に対して有効になっています。
- サーバレス コンピュートがワークスペースで有効になっています。 Enable サーバレス コンピュートを参照してください。
- 接続を作成する予定の場合: メタストアに対する
CREATE CONNECTION
権限があります。 - 既存の接続を使用する予定の場合: 接続オブジェクトに対する
USE CONNECTION
権限またはALL PRIVILEGES
があります。 - ターゲット・カタログに対する
USE CATALOG
権限があります。 - 既存のスキーマに対する
USE SCHEMA
権限とCREATE TABLE
権限、またはターゲット カタログに対するCREATE SCHEMA
権限を持っている。
ServiceNow から取り込むには、「 Databricks インジェスト用に ServiceNow を構成する」を参照してください。
インジェスト パイプラインを作成する
必要な権限: 接続 USE CONNECTION
または ALL PRIVILEGES
。
この手順では、インジェスト パイプラインを作成する方法について説明します。取り込まれた各テーブルは、同じ名前でストリーミングテーブルに書き込まれます。
- Databricks UI
- Databricks notebook
- Databricks CLI
-
Databricksワークスペースのサイドバーで、 データ取り込み をクリックします。
-
[ データの追加 ] ページの [Databricks コネクタ ] で、[ ServiceNow ] をクリックします。
インジェスト ウィザードが開きます。
-
ウィザードの [インジェスト パイプライン ] ページで、パイプラインの一意の名前を入力します。
-
[宛先カタログ ] ドロップダウン メニューで、カタログを選択します。取り込まれたデータとイベント ログは、このカタログに書き込まれます。宛先スキーマは後で選択します。
-
ソース データへのアクセスに必要な資格情報を格納する Unity Catalog 接続を選択します。
ソースへの既存の接続がない場合は、[ 接続の作成 ] をクリックし、「 DatabricksインジェストのServiceNowの構成」で取得した認証の詳細を入力します。メタストアに対する
CREATE CONNECTION
権限が必要です。 -
パイプラインの作成および続行 をクリックします。
-
「 ソース 」ページで、取り込むテーブルを選択し、「 次へ 」をクリックします。
[ すべてのテーブル ] を選択すると、コネクタはソース スキーマの既存テーブルと将来のテーブルをすべて宛先スキーマに書き込みます。パイプラインごとに最大 250 個のテーブルがあります。
-
宛先 ページで、書き込む Unity Catalog カタログとスキーマを選択します。
既存のスキーマを使用しない場合は、[ スキーマの作成 ] をクリックします。親カタログに対する
USE CATALOG
権限とCREATE SCHEMA
権限が必要です。 -
パイプラインを保存と続行 をクリックします。
-
(オプション) [設定 ] ページで、[ スケジュールの作成 ] をクリックします。宛先テーブルを更新する頻度を設定します。
-
(オプション)パイプライン操作の成功または失敗のEメール 通知を設定します。
-
パイプラインの保存と実行 をクリックします。
-
個人用アクセス トークンを生成し、そのトークンをコピーして、後でノートブックに貼り付けることができます。「ワークスペース ユーザーの Databricks 個人用アクセス トークン」を参照してください。
-
次のノートブックをワークスペースにインポートします。
ServiceNow インジェスト パイプラインを作成する
-
ノートブックで次の値を変更します。
セル 1:
api_token
: 生成したパーソナル アクセス トークン
セル 3:
-
name
: パイプラインの名前 -
connection_name
: Catalog Explorer で作成した Unity Catalog 接続の名前 ( Catalog > External data > Connections )。ソースへの既存の接続がない場合は、作成できます。メタストアに対するCREATE CONNECTION
特権が必要です。 -
source_table
: ソース テーブルの名前 -
destination_catalog
: 取り込まれたデータが含まれる宛先カタログの名前 -
destination_schema
: 取り込まれたデータを含む宛先スキーマの名前 -
scd_type
: 使用する SCD メソッド:SCD_TYPE_1
またはSCD_TYPE_2
。 -
include_columns
: 必要に応じて、インジェストに含める列のリストを指定します。このオプションを使用して列を明示的に含めると、パイプラインは将来ソースに追加される列を自動的に除外します。将来の列を取り込むには、それらをリストに追加する必要があります。 -
exclude_columns
: 必要に応じて、インジェストから除外する列のリストを指定します。このオプションを使用して列を明示的に除外すると、パイプラインには、今後ソースに追加される列が自動的に含まれます。将来の列を取り込むには、それらをリストに追加する必要があります。詳細については、「 履歴追跡」を参照してください。
-
「 すべて実行 」をクリックします。
パイプライン定義で次のテーブル設定プロパティを使用して、取り込む特定の列を選択または選択解除できます。
include_columns
: 必要に応じて、インジェストに含める列のリストを指定します。このオプションを使用して列を明示的に含めると、パイプラインは将来ソースに追加される列を自動的に除外します。将来の列を取り込むには、それらをリストに追加する必要があります。exclude_columns
: 必要に応じて、インジェストから除外する列のリストを指定します。このオプションを使用して列を明示的に除外すると、パイプラインには、今後ソースに追加される列が自動的に含まれます。将来の列を取り込むには、それらをリストに追加する必要があります。
パイプラインを作成するには:
databricks pipelines create --json "<pipeline definition or json file path>"
パイプラインを編集するには:
databricks pipelines update --json "<pipeline definition or json file path>"
パイプライン定義を取得するには:
databricks pipelines get "<pipeline-id>"
パイプラインを削除するには:
databricks pipelines delete "<pipeline-id>"
詳細については、以下を実行してください:
databricks pipelines --help
databricks pipelines <create|update|get|delete|...> --help
JSON パイプライン定義の例:
"ingestion_definition": {
"connection_name": "<connection-name>",
"objects": [
{
"table": {
"source_schema": "<source-schema>",
"source_table": "<source-table>",
"destination_catalog": "<destination-catalog>",
"destination_schema": "<destination-schema>",
"table_configuration": {
"scd_type": "SCD_TYPE_2",
"include_columns": ["<column-a>", "<column-b>", "<column-c>"]
}
}
}
]
}