Azure Data Factory または Synapse Analytics を使用して ServiceNow からデータをコピーする

適用対象: Azure Data Factory Azure Synapse Analytics

ヒント

企業向けのオールインワン分析ソリューション、Microsoft Fabric の Data Factory をお試しください。 Microsoft Fabric は、データ移動からデータ サイエンス、リアルタイム分析、ビジネス インテリジェンス、レポートまで、あらゆるものをカバーしています。 無料で新たに試用を開始する方法については、こちらをご覧ください。

この記事では、Azure Data Factory および Synapse Analytics パイプラインでコピー アクティビティを使用して、ServiceNow からデータをコピーする方法について説明します。 この記事は、コピー アクティビティの概要を示しているコピー アクティビティの概要に関する記事に基づいています。

サポートされる機能

この ServiceNow コネクタは、次の機能でサポートされます。

サポートされる機能 IR
Copy アクティビティ (ソース/-) 1.1
Lookup アクティビティ 1.1

① Azure 統合ランタイム ② セルフホステッド統合ランタイム

ソースおよびシンクとしてサポートされているデータ ストアの一覧については、「サポートされているデータ ストア」の表を参照してください。

このサービスでは、接続を可能にする組み込みのドライバーが提供されます。 そのため、このコネクタを使用するドライバーを手動でインストールする必要はありません。

作業の開始

パイプラインでコピー アクティビティを実行するには、次のいずれかのツールまたは SDK を使用します。

UI を使用して ServiceNow のリンク サービスを作成する

次の手順を使用して、Azure portal UI で ServiceNow のリンク サービスを作成します。

  1. Azure Data Factory または Synapse ワークスペースの [管理] タブに移動し、[リンクされたサービス] を選択して、[新規] をクリックします。

  2. ServiceNow を検索し、ServiceNow コネクタを選択します。

    Select the ServiceNow connector.

  3. サービスの詳細を構成し、接続をテストして、新しいリンク サービスを作成します。

    Configure a linked service to ServiceNow.

コネクタの構成の詳細

次のセクションでは、ServiceNow コネクタに固有の Data Factory エンティティの定義に使用されるプロパティについて詳しく説明します。

リンクされたサービスのプロパティ

ServiceNow のリンクされたサービスでは、次のプロパティがサポートされます。

プロパティ Description 必須
type type プロパティは、次のように設定する必要があります:ServiceNow はい
endpoint ServiceNow サーバーのエンドポイント (http://<instance>.service-now.com)。 はい
authenticationType 使用する認証の種類。
使用できる値は、以下のとおりです。BasicOAuth2
はい
username Basic および OAuth2 認証で ServiceNow サーバーへの接続に使用されるユーザー名。 はい
password Basic および OAuth2 認証のユーザー名に対応するパスワード。 このフィールドを SecureString とマークして安全に保存するか、Azure Key Vault に保存されているシークレットを参照します。 はい
clientId OAuth2 認証のクライアント ID。 いいえ
clientSecret OAuth2 認証のクライアント シークレット。 このフィールドを SecureString とマークして安全に保存するか、Azure Key Vault に保存されているシークレットを参照します。 いいえ
useEncryptedEndpoints データ ソースのエンドポイントが HTTPS を使用して暗号化されるかどうかを指定します。 既定値は、true です。 いいえ
useHostVerification TLS 経由で接続するときに、サーバーの証明書内のホスト名がサーバーのホスト名と一致する必要があるかどうか指定します。 既定値は、true です。 いいえ
usePeerVerification TLS 経由で接続するときに、サーバーの ID を検証するかどうかを指定します。 既定値は、true です。 いいえ

例:

{
    "name": "ServiceNowLinkedService",
    "properties": {
        "type": "ServiceNow",
        "typeProperties": {
            "endpoint" : "http://<instance>.service-now.com",
            "authenticationType" : "Basic",
            "username" : "<username>",
            "password": {
                 "type": "SecureString",
                 "value": "<password>"
            }
        }
    }
}

データセットのプロパティ

データセットを定義するために使用できるセクションとプロパティの完全な一覧については、データセットに関する記事をご覧ください。 このセクションでは、ServiceNow データセットでサポートされるプロパティの一覧を示します。

ServiceNow からデータをコピーするには、データセットの type プロパティを ServiceNowObject に設定します。 次のプロパティがサポートされています。

プロパティ Description 必須
type データセットの type プロパティは、次のように設定する必要があります:ServiceNowObject はい
tableName テーブルの名前。 いいえ (アクティビティ ソースの "query" が指定されている場合)

{
    "name": "ServiceNowDataset",
    "properties": {
        "type": "ServiceNowObject",
        "typeProperties": {},
        "schema": [],
        "linkedServiceName": {
            "referenceName": "<ServiceNow linked service name>",
            "type": "LinkedServiceReference"
        }
    }
}

コピー アクティビティのプロパティ

アクティビティの定義に利用できるセクションとプロパティの完全な一覧については、パイプラインに関する記事を参照してください。 このセクションでは、ServiceNow ソース でサポートされるプロパティの一覧を示します。

ソースとしての ServiceNow

ServiceNow からデータをコピーするには、コピー アクティビティのソースの種類を ServiceNowSource に設定します。 コピー アクティビティの source セクションでは、次のプロパティがサポートされます。

プロパティ Description 必須
type コピー アクティビティのソースの type プロパティは、次のように設定する必要があります:ServiceNowSource はい
query カスタム SQL クエリを使用してデータを読み取ります。 (例: "SELECT * FROM Actual.alm_asset")。 いいえ (データセットの "tableName" が指定されている場合)

クエリで ServiceNow のスキーマと列を指定するときは、次のことに注意してください。また、コピーのパフォーマンスの影響について、「パフォーマンスに関するヒント」を参照してください

  • スキーマ: ServiceNow のクエリでは、スキーマを Actual または Display として指定します。これは、ServiceNow REST API を呼び出す際に、sysparm_display_value パラメーター (true または false) として確認できます。 
  • 列:Actual スキーマの下の実際の値の列名は [column name]_value で、Display スキーマの下の表示値は [column name]_display_value です。 列名は、クエリで使用されているスキーマにマップされる必要があります。

サンプル クエリ:SELECT col_value FROM Actual.alm_assetまたは SELECT col_display_value FROM Display.alm_asset

例:

"activities":[
    {
        "name": "CopyFromServiceNow",
        "type": "Copy",
        "inputs": [
            {
                "referenceName": "<ServiceNow input dataset name>",
                "type": "DatasetReference"
            }
        ],
        "outputs": [
            {
                "referenceName": "<output dataset name>",
                "type": "DatasetReference"
            }
        ],
        "typeProperties": {
            "source": {
                "type": "ServiceNowSource",
                "query": "SELECT * FROM Actual.alm_asset"
            },
            "sink": {
                "type": "<sink type>"
            }
        }
    }
]

パフォーマンスに関するヒント

使用するスキーマ

ServiceNow には 2 つの異なるスキーマがあります。1 つは "Actual" で、実際のデータが返されます。もう 1 つは "Display" で、データの表示値が返されます。

クエリ内にフィルターがある場合は、コピーのパフォーマンスがよい "Actual" スキーマを使用してください。 "Actual" スキーマに対してクエリを実行すると、ServiceNow ではデータをフェッチするときにネイティブにフィルターがサポートされて、フィルター処理された結果セットのみが返されます。一方、"Display" スキーマに対してクエリを実行すると、ADF ではすべてのデータが取得されて、内部的にフィルターが適用されます。

インデックス

ServiceNow のテーブル インデックスは、クエリのパフォーマンスの向上に役立ちます。「Create a table index」(テーブル インデックスを作成する) をご覧ください。

Lookup アクティビティのプロパティ

プロパティの詳細については、Lookup アクティビティに関するページを参照してください。

Copy アクティビティでソースおよびシンクとしてサポートされるデータ ストアの一覧については、サポートされるデータ ストアに関するセクションを参照してください。