ServiceNow®インスタンスの準備¶
ServiceNow®用Snowflakeコネクタは、 コネクタ規約 に従うものとします。
Snowflake Connector for ServiceNow® をインストールする前に、 ServiceNow インスタンスを設定する必要があります。
前提条件¶
ServiceNow インスタンスを設定するには、次のステップを完了します。
ServiceNow インスタンスが公開されていることを確認してください。コネクタは、 VPN の背後に隠されているインスタンスでは機能しません。
Snowflakeにインジェストする予定のデータを含む ServiceNow テーブルを特定します。
コネクタの ServiceNow ユーザーを特定または作成します。
ServiceNow インスタンスに接続するには、コネクタは ServiceNow ユーザーとしてインスタンスを認証する必要があります。次の要件を満たす ServiceNow ユーザーを選択します。
ユーザー名にコロン(
:
)を含めることはできません。ユーザーは、インジェストする予定の ServiceNow テーブル内にあるすべての記録への読み取りアクセス権を持っている必要があります。アクセス制御リスト(ACLs)が、これらのテーブルの記録をこのユーザーから隠さないようにする必要があります。
スキーマ検出を有効にするには、ユーザーに、
sys_db_object
(フィールドname
、super_class
、sys_id
)、sys_glide_object
(フィールドname
、scalar_type
、sys_id
)、およびsys_dictionary
(フィールドelement
、internal_type
、name
、sys_id
)テーブルにあるすべての行に対する読み取りアクセス権が必要です。コネクタが適切なインジェスチョン戦略を使用するために、ユーザーには、
sys_table_rotation
テーブル(name
およびsys_id
フィールド)にあるすべての行に対する読み取りアクセス権が必要です。sys_db_object
、sys_glide_object
、sys_dictionary
、sys_table_rotation
、およびjournalのテーブルにあるsys_updated_on
フィールドへのアクセス権が必要です。そうでない場合は、費用対効果の低い切り捨てとロードのインジェスチョンモードを使用してテーブルがロードされます。注釈
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 ドキュメントの システムプロパティを追加する をご参照ください。
(オプション)コア機能に必須でない一部のコネクタプロシージャは、 ServiceNow エンドポイント
<service_now_instance>/< table_name>.do?SCHEMA
を使用してテーブルスキーマを取得します。このエンドポイントにはadmin
ロールが必要です。このロールの詳細については、 ServiceNow ドキュメントの 基本システムのロール をご参照ください。このロールを持たないユーザーでコネクタを構成すると、このエンドポイントに基づくプロシージャの実行が妨げられます。影響されるプロシージャには、この要件に関する適切なメモがあります。(オプション)削除された記録の反映を有効にするには、削除された記録に関する情報のソースとして
sys_audit_delete
テーブルまたはカスタムジャーナルテーブルを使用します。注釈
コネクタがすべての仕訳帳テーブル記録にアクセスできる必要があり、そうでない場合はインストールが失敗する可能性があることに注意してください。そうしないと、他のテーブルの記録削除が正しく行われない可能性があります。
仕訳帳テーブルの行が ACLs で非表示になっている場合、コネクタの動作は予測できません。インストールに成功しても、後のプロセスで削除が正しく同期されない場合があります。
sys_audit_delete
を使用するには、no_audit_delete
辞書属性 をfalse
に設定します。コネクタの ServiceNow ユーザーが
sys_audit_delete
テーブルと、このテーブルのdocumentkey
、tablename
、sys_id
、およびsys_created_on
フィールドにアクセスできることを確認してください。
カスタムジャーナルテーブルを使用するには、
documentkey
およびtablename
という名前の文字列列を持つsnowflake_connector_journal
という名前のジャーナルテーブルを作成します。コネクタの ServiceNow ユーザーが
snowflake_connector_journal
テーブルと、u_documentkey
、u_tablename
、sys_id
、sys_created_on
フィールドにアクセスできることを確認してください。次のコードを使用して、
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' };
記録の削除をキャプチャするビジネスルールを定義します。
(function executeRule(current, previous /*null when async*/) { new RecordChange().captureChange(current.getTableName(), current.getUniqueValue()); })(current, previous);
削除された記録を反映するテーブルごとに、記録が削除された後にこのビジネスルールが実行されるように構成します。
注釈
コネクタは、監査されている場合にのみ、削除された記録を同期できます。 DBDelete.setWorkflow()
を呼び出さない削除操作は、Snowflakeでインジェストされません。
DBDelete.setWorkflow()
の使用方法の詳細については、 ServiceNow の製品ドキュメントを参照してください。
また、削除された記録については、次の点に注意してください。
no_audit_delete=true
ディクショナリ属性を持つテーブルでは、記録の削除は追跡されません。sys
プレフィックスを持つテーブルからの記録の削除は、デフォルトでは追跡されません。コネクタは、参照フィールドが監査対象のテーブルにある場合、記録のカスケード削除で削除された記録のみをインジェストすることができます。記録のカスケード削除の詳細については、 ServiceNow 製品ドキュメントをご参照ください。
次のステップ¶
これらの手順を完了したら、 Snowsightを使用したコネクタのインストールと構成 または SQL コマンドを使用したコネクタのインストールおよび構成 のステップに従います。