Vorbereiten Ihrer ServiceNow®-Instanz¶
Der Snowflake Connector für ServiceNow® V2 unterliegt den Nutzungsbedingungen für Snowflake Connector.
Bevor Sie den Snowflake Connector for ServiceNow®V2 installieren, müssen Sie erst Ihre ServiceNow®-Instanz einrichten. Führen Sie die folgenden Schritte aus:
Zugriff auf ServiceNow®-Instanz – Stellen Sie sicher, dass Ihre ServiceNow®-Instanz einsatzbereit ist.
ServiceNow®-Benutzer – Stellen Sie sicher, dass der gewünschte Benutzer korrekt konfiguriert ist.
Spaltenindizes für optimierte Leistung einrichten – Konfigurieren Sie Spaltenindizes für optimale Performance.
Optionale Schritte – Überprüfen Sie die optionale Konfiguration, und führen Sie sie, falls erforderlich, aus.
Zugriff auf ServiceNow®-Instanz¶
Stellen Sie sicher, dass die ServiceNow®-Instanz öffentlich zugänglich ist. Der Konnektor funktioniert nicht mit Instanzen, die hinter einem VPN verborgen sind.
Wenn Sie IP Address Access Control für Ihre ServiceNow® Instanz verwenden, werden Sie den Konnektor nicht erfolgreich installieren können. Weitere Informationen dazu finden Sie in diesem Community-Artikel.
ServiceNow®-Benutzer¶
Identifizieren oder erstellen Sie den ServiceNow®-Benutzer für den Konnektor.
Um eine Verbindung zur ServiceNow®-Instanz herzustellen, muss sich der Konnektor bei der Instanz als ServiceNow®-Benutzer authentifizieren. Wählen Sie einen ServiceNow®-Benutzer aus, der die folgenden Anforderungen erfüllt:
Der Benutzername darf keinen Doppelpunkt (
:
) enthalten.Der Benutzer muss Lesezugriff auf alle Datensätze in den ServiceNow-Tabellen haben, die Sie aufnehmen möchten. Zugriffssteuerungslisten (ACLs) dürfen keine Datensätze in diesen Tabellen vor diesem Benutzer verbergen.
Der Benutzer muss Lesezugriff auf alle Zeilen in den folgenden Tabellen haben, um die Schemaerkennung zu ermöglichen:
sys_db_object
(mit den Feldernname
,super_class
,sys_id
)sys_glide_object
(mit den Feldernname
,scalar_type
,sys_id
)sys_dictionary
(mit den Feldernelement
,internal_type
,name
,sys_id
)
Der Benutzer muss Lesezugriff auf alle Zeilen der folgenden Tabelle haben, um die passende Datenaufnahmestrategie verwenden zu können:
sys_table_rotation
(mit den Feldernname
undsys_id
)
Der Benutzer muss Lesezugriff auf das Feld
sys_updated_on
in den unten stehenden Tabellen haben, um den weniger kosteneffizienten Modus „Abschneiden und Laden“ nicht zu verwenden:sys_db_object
sys_glide_object
sys_dictionary
sys_table_rotation
Journaltabelle (normalerweise
sys_audit_delete
)
Bemerkung
Das Konfigurieren der Verbindung in Snowsight über den OAuth-Authentifikator zu ServiceNow® ist nur mit dem interaktiven Benutzer möglich. Der ServiceNow®-Benutzer ist interaktiv, wenn die Einstellung Web service access only für den Benutzer deaktiviert ist.
Sie können den OAuth-Authentifikator nur dann mit nicht interaktiven Benutzern verwenden, wenn Sie die Verbindung mit SQL-Befehlen konfigurieren. In diesem Fall können Sie sich nicht bei ServiceNow® anmelden oder das OAuth-Aktualisierungstoken über Snowsight abrufen.
Spaltenindizes für optimierte Leistung einrichten¶
Wenn Sie planen, eine ServiceNow®-Tabelle mit einer sys_updated_on
-Spalte zu importieren und zu synchronisieren, empfehlen wir die Einrichtung eines Index für diese Spalte. Weitere Informationen zum Einrichten der Indizes finden Sie in der ServiceNow®-Dokumentation unter Tabellenindex erstellen.
Nachdem Sie den Index über die Benutzeroberfläche erstellt haben, kann es einige Zeit dauern, bis der Index aufgebaut ist. Der Indizierungsprozess wird als Hintergrundaufgabe ausgeführt.
Wenn Ihre Instanz über große Tabellen verfügt, empfiehlt Snowflake, sich an den ServiceNow®-Kundensupport zu wenden, um sich über den besten Ansatz zum Indizieren großer Tabellen zu informieren.
Optionale Schritte¶
Wenn Sie OAuth als Authentifizierungsmethode verwenden möchten und Ihrem ServiceNow®-Benutzer die Nur-Lese-Rolle zugewiesen haben, stellen Sie sicher, dass in der Werteliste der Systemeigenschaft
glide.security.snc_read_only_role.tables.exempt_create
die Tabelleoauth_credential
enthalten ist.Erstellen oder bearbeiten Sie die Eigenschaft
glide.security.snc_read_only_role.tables.exempt_create
in der Tabellesys_properties
. Weitere Informationen zum Bearbeiten dieser Eigenschaft finden Sie in der ServiceNow-Wissensdatenbank.Weitere Informationen zum Hinzufügen von neuen Systemeigenschaften finden Sie in der ServiceNow®-Dokumentation unter Systemeigenschaften hinzufügen.
Um die Weitergabe gelöschter Datensätze zu ermöglichen, verwenden Sie entweder die Tabelle
sys_audit_delete
oder eine kundenspezifische Journaltabelle als Quelle für Informationen zu gelöschten Datensätzen.Bemerkung
Beachten Sie, dass der Konnektor Zugriff auf alle Erfassungstabellendatensätze haben muss, sonst kann die Installation fehlschlagen. Andernfalls kann es vorkommen, dass Datensatzlöschungen in anderen Tabellen nicht korrekt sind.
Wenn Erfassungstabellenzeilen durch ACLs ausgeblendet werden, ist das Verhalten des Konnektors unvorhersehbar. Selbst wenn die Installation erfolgreich ist, kann es vorkommen, dass einige Löschungen zu einem späteren Zeitpunkt nicht korrekt synchronisiert werden.
So verwenden Sie
sys_audit_delete
:Setzen Sie das Wörterbuchattribut
no_audit_delete
auffalse
.Stellen Sie sicher, dass der ServiceNow®-Benutzer für den Konnektor Zugriff auf die Tabelle
sys_audit_delete
und darin auf die Felderdocumentkey
,tablename
,sys_id
undsys_created_on
hat.
So verwenden Sie eine kundenspezifische Zugriffstabelle:
Erstellen Sie eine Journaltabelle mit dem Namen
snowflake_connector_journal
sowie String-Felder mit den Namendocumentkey
undtablename
.Stellen Sie sicher, dass der ServiceNow®-Benutzer für den Konnektor Zugriff auf die Tabelle
snowflake_connector_journal
und darin auf die Felderu_documentkey
,u_tablename
,sys_id
undsys_created_on
hat.Erstellen Sie ein Skript-Include namens
RecordChange
mit dem folgenden Code: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' };
Definieren Sie eine Geschäftsregel, um das Löschen des Datensatzes zu erfassen:
(function executeRule(current, previous /*null when async*/) { new RecordChange().captureChange(current.getTableName(), current.getUniqueValue()); })(current, previous);
Konfigurieren Sie für jede Tabelle, für die Sie gelöschte Datensätze weitergeben möchten, diese Geschäftsregel so, dass sie ausgeführt wird, nachdem ein Datensatz gelöscht wurde.
Bemerkung
Der Konnektor kann gelöschte Datensätze nur dann synchronisieren, wenn sie überwacht werden. Löschoperationen, die nicht
DBDelete.setWorkflow()
aufrufen, werden nicht in Snowflake erfasst.Weitere Informationen zur Verwendung von
DBDelete.setWorkflow()
finden Sie in der ServiceNow®-Produktdokumentation.Beachten Sie auch die folgenden Hinweise zu gelöschten Datensätzen:
Das Löschen von Datensätzen wird bei Tabellen mit dem Wörterbuchattribut
no_audit_delete=true
nicht verfolgt.Das Löschen von Datensätzen aus Tabellen mit einem
sys
-Präfix wird standardmäßig nicht verfolgt.Der Konnektor kann Datensätze, die mit der Kaskaden-Datensatzlöschung gelöscht wurden, nur einlesen, wenn sich das Referenzfeld in einer geprüften Tabelle befindet. Weitere Informationen zum kaskadierenden Löschen von Datensätzen finden Sie in der ServiceNow®-Produktdokumentation.
Nächste Schritte¶
Führen Sie nach Beendigung dieser Prozeduren die unter Installieren und Konfigurieren des Konnektors mit Snowsight bzw. Installieren und Konfigurieren des Konnektors mit SQL-Befehlen beschriebenen Schritte aus.