ServiceNow®インスタンスの準備

Snowflake Connector for ServiceNow® V2は、 Snowflakeコネクタ規約 に従うものとします。

Snowflake Connector for ServiceNow®V2 をインストールする前に、ServiceNow®インスタンスを設定する必要があります。次の手順を完了します。

ServiceNow®インスタンスアクセス

  • ServiceNow®インスタンスが公開されていることを確認してください。コネクタは、 VPN の背後に隠されているインスタンスでは機能しません。

  • ServiceNow®インスタンスに IP アドレスアクセス制御 を使用している場合、コネクタを正常にインストールできません。詳細については、 コミュニティの記事 をご参照ください。

ServiceNow®ユーザー

コネクタの ServiceNow®ユーザーを特定または作成します。

ServiceNow®インスタンスに接続するには、コネクタは ServiceNow®ユーザーとしてインスタンスを認証する必要があります。次の要件を満たす ServiceNow®ユーザーを選択します。

  • ユーザー名にコロン(:)を含めることはできません。

  • ユーザーは、インジェストする予定の ServiceNow®テーブル内にあるすべての記録への読み取りアクセス権を持っている必要があります。アクセス制御リスト(ACLs)が、これらのテーブルの記録をこのユーザーから隠さないようにする必要があります。

  • スキーマ検出を有効にするには、ユーザーは以下のテーブルのすべての行に対する読み取りアクセス権を持っている必要があります。

    • sys_db_objectnamesuper_classsys_id フィールドを含む)、

    • sys_glide_objectnamescalar_typesys_id フィールドを含む)、

    • sys_dictionaryelementinternal_typenamesys_id フィールドを含む)、

  • 適切なインジェスチョンストラテジーを使用するためには、ユーザーは以下のテーブルのすべての行に対して読み取りアクセス権を持っている必要があります。

    • sys_table_rotationname および sys_id フィールドを含む)。

  • 費用対効果の低い「truncate and load(切り詰めてロード)」インジェスチョンモードを使用しないためには、ユーザーは以下の表の sys_updated_on フィールドへの読み取りアクセス権を持っている必要があります。

    • sys_db_object

    • sys_glide_object

    • sys_dictionary

    • sys_table_rotation

    • ジャーナルテーブル(通常、 sys_audit_delete)。

注釈

Snowsightで ServiceNow®に対する OAuth 認証コードを使用して接続を構成できるのは、 インタラクティブユーザー のみです。 Web service access only の設定がユーザーに対して無効になっている場合、 ServiceNow®ユーザーはインタラクティブです。

SQL コマンドで接続を構成する場合にのみ、非インタラクティブユーザーは OAuth 認証を使用できます。この場合、Snowsightを使用して ServiceNow®にログインしたり、 OAuth リフレッシュトークンを取得したりすることはできません。

パフォーマンスを最適化するための列インデックスの設定

sys_updated_on フィールドを持つ ServiceNow®テーブルをインジェストして同期する場合、その列にインデックスを設定することをお勧めします。インデックスの設定に関する情報については、ServiceNow®ドキュメントの テーブルインデックスを作成する をご参照ください。

ユーザーインターフェイスを使用してインデックスを作成すると、インデックスが構築されるまでに時間がかかる場合があります。インデックス作成プロセスはバックグラウンドタスクとして実行されます。

インスタンスに大型のテーブルがある場合は、ServiceNow®カスタマーサポートに連絡して、大型のテーブルをインデックス化するための最良の方法について質問することをSnowflakeはお勧めします。

オプションのステップ

  • OAuth 認証メソッドを使用する予定で、 読み取り専用ロール が ServiceNow®ユーザーに割り当てられている場合は、 glide.security.snc_read_only_role.tables.exempt_create システムプロパティの値リストに oauth_credential テーブルがあることを確認してください。

    sys_properties テーブルの glide.security.snc_read_only_role.tables.exempt_create プロパティを作成または編集します。このプロパティの編集の詳細については、 ServiceNow ナレッジベース をご参照ください。

    新しいシステムプロパティを追加する方法については、ServiceNow®ドキュメントの システムプロパティを追加する をご参照ください。

  • 削除された記録の反映を有効にするには、削除された記録に関する情報のソースとして sys_audit_delete テーブルまたはカスタムジャーナルテーブルのいずれかを使用します。

    注釈

    コネクタがすべての仕訳帳テーブル記録にアクセスできる必要があり、そうでない場合はインストールが失敗する可能性があることに注意してください。そうしないと、他のテーブルの記録削除が正しく行われない可能性があります。

    仕訳帳テーブルの行が ACLs で非表示になっている場合、コネクタの動作は予測できません。インストールに成功しても、後のプロセスで削除が正しく同期されない場合があります。

    • sys_audit_delete を使用するには、

      1. no_audit_delete 辞書属性false に設定します。

      2. コネクタの ServiceNow®ユーザーが sys_audit_delete テーブルと、このテーブルの documentkeytablenamesys_id、および sys_created_on フィールドにアクセスできることを確認してください。

    • カスタムジャーナルテーブルを使用するには、

      1. documentkey および tablename という名前の文字列フィールドを持つ snowflake_connector_journal という名前のジャーナルテーブルを作成します。

      2. コネクタの ServiceNow®ユーザーが snowflake_connector_journal テーブルと、このテーブルの u_documentkeyu_tablenamesys_id、および sys_created_on フィールドにアクセスできることを確認してください。

      3. 次のコードを使用して、 RecordChange という名前のスクリプトインクルードを作成します。

        var RecordChange = Class.create();
        
        RecordChange.prototype= {
          initialize :function() {},
          captureChange :function(tableName, docID) {
            var changeCapture = new GlideRecord('u_snowflake_connector_journal');
            changeCapture.initialize();
            changeCapture.setValue('u_documentkey', docID);
            changeCapture.setValue('u_tablename', tableName);
            changeCapture.insert();
          },
          type :'RecordChange'
        };
        
        Copy
      4. 記録の削除をキャプチャするビジネスルールを定義します。

        (function executeRule(current, previous /*null when async*/) {
            new RecordChange().captureChange(current.getTableName(), current.getUniqueValue());
        })(current, previous);
        
        Copy
      5. 削除された記録を反映するテーブルごとに、記録が削除された後にこのビジネスルールが実行されるように構成します。

      注釈

      コネクタは、監査されている場合にのみ、削除された記録を同期できます。 DBDelete.setWorkflow() を呼び出さない削除操作は、Snowflakeでインジェストされません。

      DBDelete.setWorkflow() の使用方法の詳細については、 ServiceNow®製品ドキュメントをご参照ください。

      また、削除された記録については、次の点に注意してください。

      • no_audit_delete=true ディクショナリ属性を持つテーブルでは、記録の削除は追跡されません。

      • sys プレフィックスを持つテーブルからの記録の削除は、デフォルトでは追跡されません。

      • コネクタは、参照フィールドが監査対象のテーブルにある場合、記録のカスケード削除で削除された記録のみをインジェストすることができます。記録のカスケード削除の詳細については、ServiceNow®製品ドキュメントをご参照ください。

次のステップ

これらの手順を完了したら、 Snowsightを使用したコネクタのインストールと構成 または SQL コマンドを使用したコネクタのインストールおよび構成 のステップに従います。