Snowflake Connector for ServiceNow®V2 の管理、更新、およびアンインストール¶
Snowflake Connector for ServiceNow® V2は、 Snowflakeコネクタ規約 に従うものとします。
このトピックとそのセクションでは、コネクタをインストールして構成した後に実行が必要になる可能性のある一般的なタスクについて説明します。
Snowflake Connector for ServiceNow®V2 の一時停止と再開¶
次のセクションでは、コネクタを一時停止および再開する方法について説明します。
Snowflake Connector for ServiceNow®V2 の一時停止¶
コネクタによって開始されたすべてのタスクを停止するには、 PAUSE_CONNECTOR
ストアドプロシージャを呼び出します。
CALL PAUSE_CONNECTOR();
コネクタを一時停止すると、 RESUME_CONNECTOR
ストアドプロシージャを呼び出してコネクタが再開されるまで、コネクタとのやり取り(例: テーブルの有効化/無効化、コネクタの構成)が無効になります。
コネクタを一時停止すると、コネクタのコスト発生も停止します。
Snowflake Connector for ServiceNow®V2 の再開¶
PAUSE_CONNECTOR
ストアドプロシージャによって停止されたすべてのタスクを再開するには、 RESUME_CONNECTOR
ストアドプロシージャを呼び出します。
CALL RESUME_CONNECTOR();
コネクタが使用するウェアハウスの変更¶
コネクタが使用するウェアハウスを変更するか、専用のウェアハウスを追加するには、次を呼び出します。
CALL UPDATE_WAREHOUSE('<warehouse_name>');
条件:
warehouse_name
コネクタが使用するウェアハウスの名前を指定します。
注釈
別のウェアハウスを使用するようにコネクタを構成する前に、 コネクタアプリケーション に新しいウェアハウスに対する USAGE 権限があることを確認してください。
さらに、コネクタは paused
状態である必要があります。 コネクターの一時停止 をご参照ください。
テーブルの削除¶
テーブルを削除して(例: 意図せずに有効になった場合)、 コネクタをモニターするためのビュー に表示しないようにするには、次のプロシージャを使用します。
CALL DELETE_TABLE('<table_name>');
条件:
注釈
DELETE_TABLE
プロシージャは、Snowflakeで ServiceNow®データを含むデータベースとスキーマのこのテーブルに対して作成されたオブジェクト(生データテーブル、 イベントログテーブル、 フラット化ビュー)を削除しません。これらのオブジェクトは手動でドロップできます。そのためには、まず MANAGE GRANTS 権限を持つロールを使用して、コネクタからそれらの所有権を譲渡する必要があります。例:
USE ROLE ACCOUNTADMIN;
GRANT OWNERSHIP ON TABLE <destination_database>.<destination_schema>.<table_name> TO ROLE <account_role> REVOKE CURRENT GRANTS;
USE ROLE <account_role>;
DROP TABLE <destination_database>.<destination_schema>.<table_name>;
コネクタが使用するリフレッシュトークンのリフレッシュ¶
OAuth 認証コードでコネクタを設定した場合は、更新トークンを定期的に更新する必要があります。それ例外の場合は、トークンの有効期限が切れた後にコネクタは ServiceNow®にアクセスできなくなります。デフォルトでは、トークンの有効期限は生成から90日です。
コネクタに メールアラート を構成すると、毎月1日に更新トークンを更新するリマインダーが表示されます。トークンの有効期限が切れると、コネクタが ServiceNow®にアクセスする際に問題が発生した場合に、メールが届きます。
Snowsightを使用してインストールされたコネクタのリフレッシュトークンのリフレッシュ¶
Snowsightを使用してコネクタをインストール した場合、更新トークンを更新するには、次を実行します。
ACCOUNTADMIN ロールを持つユーザーとして Snowsight にサインインします。
注釈
使用するSnowsight URL が、OAuth リダイレクト URL の構成時に使用したSnowsight URL と一致していることを確認してください。つまり、ServiceNow®で設定した OAuth リダイレクト URL がPrivate Link経由でアクセスしたSnowsightによって提供された場合、Private Link経由でSnowsightにサインインしてトークンをリフレッシュする必要があります。同様に、リダイレクト URL がパブリックにアクセス可能なSnowsight URL で構成された場合、リフレッシュはパブリック URL にアクセス可能なSnowsightで行う必要があります。
ナビゲーションメニューで Data Products » Apps を選択します。
Snowflake Connector for ServiceNow を検索し、コネクタのタイルを選択します。
トップナビゲーションメニューで Settings » Authentication » Reauthenticate を選択します。
注釈
コネクタを初期設定したときと同じユーザーで ServiceNow®にログオンしていることを確認してください。現在ログインしているユーザーは、ダイアログの右上隅で確認できます。
コネクタが ServiceNow®アカウントに接続することを許可することを確認するために、ダイアログで Allow を選択します。更新トークンは更新されました。
SQL コマンドを使用して更新トークンを更新する方法については、 SQL コマンドを使用したリフレッシュトークンのリフレッシュ をご参照ください。
SQL コマンドを使用したリフレッシュトークンのリフレッシュ¶
SQL コマンドを使用して更新トークンを更新するには、次を実行します。
新しい OAuth 更新トークンを取得 します。コネクタが現在使用しているものと同じ
client_id
、client_secret
、およびユーザー認証情報を使用していることを確認してください。CONNECTOR_CONFIGURATION ビュー をクエリして、シークレットオブジェクトの完全修飾名を検索します。
SELECT value FROM connector_configuration WHERE config_key = 'secret';
ALTER SECRET コマンドを実行し、以下のパラメーターを変更して、シークレットオブジェクトを更新します。
OAUTH_REFRESH_TOKEN
を最初のステップで取得した OAuth 更新トークンに設定します。OAUTH_REFRESH_TOKEN_EXPIRY_TIME
を更新トークンの有効期限のタイムスタンプ(UTC タイムゾーン)に設定します。これは、ServiceNow®からトークンが発行された日付までのリフレッシュトークンの有効期間を追加することで計算できます。デフォルトでは、トークンは100日で期限切れになります。
たとえば、
secretsdb.apiauth.servicenow_creds_oauth_code
シークレットを更新するには、次のコマンドを実行します。ALTER SECRET secretsdb.apiauth.servicenow_creds_oauth_code SET OAUTH_REFRESH_TOKEN = '34n;vods4nQsdg09wee4qnfvadH', OAUTH_REFRESH_TOKEN_EXPIRY_TIME = '2022-01-06 20:00:00';
注釈
シークレットを更新するには、 OWNERSHIP 権限を持つロールを使用する必要があります。
Snowsightを使用してコネクタをインストール した場合、ロールは ACCOUNTADMIN です。
SQL コマンドを使用してコネクタをインストール した場合、ロールはsecretadminです。
基本認証コード ServiceNow®パスワードの更新¶
パスワードを更新するには、既存のシークレットを見つけて ALTER SECRET コマンドを使用して変更する必要があります。
Snowsightまたは SQL コマンドのいずれかを使用して、シークレットオブジェクトの完全修飾名を確認します。
Snowsight を使用してシークレットを取得するには、次を行います。
ACCOUNTADMIN
ロールを持つユーザーとして Snowsight にサインインします。左側のナビゲーションで Data Products » Apps を選択します。
Snowflake Connector for ServiceNow を検索し、コネクタのタイルを選択します。
トップナビゲーションメニューで Settings » Authentication を選択します。
Authentication セクションにはシークレットオブジェクトが表示されます(例:
CONNECTORS_UI.SERVICENOW_GZSTZTP0KHD.SECRET
)。
SQL コマンドを使用してシークレットオブジェクトの完全修飾名を取得するには、 CONNECTOR_CONFIGURATIONビュー をクエリします。
SELECT value FROM connector_configuration WHERE config_key = 'secret';
コネクタを 一時停止 します。
ALTER SECRET コマンドを実行し、以下の
PASSWORD
パラメーターを変更して、シークレットオブジェクトを更新します。コネクタを 再開 します。
パスワードが更新され、コネクタにより使用されます。
注釈
パスワードの変更と同様に、 ALTER SECRET コマンドを使用してユーザー名を更新するオプションがあります。 USERNAME
パラメーターに新しいユーザー名を設定するだけです。ユーザー名を変更する前に、新しいユーザー名が少なくとも以前のユーザー名と同じ権限を持っていることを確認してください。そうしないと、コネクタが適切に機能しない可能性があります。
ServiceNow®インスタンスへの接続の更新¶
ServiceNow®インスタンスへの接続を更新できます。コネクタで使用される外部アクセス統合とシークレットを変更できます。コネクタ内の外部アクセス UDF からシークレットが切り離された場合の問題を修正することもできます。
接続構成は次の手順で更新できます。
CALL UPDATE_CONNECTION_CONFIGURATION({
'service_now_url': '<servicenow_base_url>',
'secret': '<secret_name>',
'external_access_integration': '<external_access_integration_name>'
});
条件:
servicenow_base_url
コネクタが使用する ServiceNow®インスタンスの URL を指定します。URL は、コネクタのインストール時と同じ値に設定する必要があり、次の形式にする必要があります。
https://<servicenow_instance_name>.service-now.comServiceNow®インスタンス URL の変更はサポートされていません。
secret_name
ServiceNow®への認証用の認証情報を含むシークレットオブジェクト の完全修飾名を指定します。
シークレットオブジェクトの完全修飾名を次の形式で指定する必要があります。
<database_name>.<schema_name>.<secret_name>データベース、スキーマ、シークレットの名前は、有効な オブジェクト識別子 である必要があります。
external_access_integration_name
ServiceNow®外部アクセス統合 の名前を指定します。
統合の名前は、有効な オブジェクト識別子 である必要があります。
たとえば、 ServiceNow®インスタンスへの接続を更新するには、次を満たしている必要があります。
URL
https://myinstance.service-now.com
がある。secretsdb.apiauth.servicenow_creds_oauth_code
に格納されているシークレットを使用する。servicenow_external_access_integration
という外部アクセス統合を使用している。
次のコマンドを実行します。
CALL UPDATE_CONNECTION_CONFIGURATION({
'service_now_url': 'https://myinstance.service-now.com',
'secret': 'SECRETSDB.APIAUTH.SERVICENOW_CREDS_OAUTH_CODE',
'external_access_integration': 'SERVICENOW_API_INTEGRATION'
});
構成の更新は、 ADMIN
アプリケーションロールに付与されたユーザーのみが実行できます。さらに、プロシージャを実行するには、コネクタは paused
状態である必要があります。 コネクターの一時停止 をご参照ください。
コネクタの状態のエクスポート¶
現在のコネクタの状態と構成のスナップショットをエクスポートできます。エクスポートされたコネクタ状態のスナップショットは、コネクタを再インストールして既に有効になっているテーブルとインジェスチョンの状態を保持する場合や、障害復旧を支援するために宛先スキーマのフェールオーバー地域への複製を構成する場合に便利です。
状態は以下の手順でエクスポートできます。
CALL EXPORT_CONNECTOR_STATE();
プロシージャは、エクスポートされた状態で宛先スキーマに新しい __CONNECTOR_STATE_EXPORT
テーブルを作成します。エクスポートを実行するには、以下の条件を満たす必要があります。
エクスポートは、
ADMIN
アプリケーションロールに付与されたユーザーのみが実行できます。進行中のテーブル リロード はありません。
注釈
__CONNECTOR_STATE_EXPORT
テーブルには、再インストール時にコネクタの状態を復元するために必要なすべての情報が含まれていますが、いくつかの情報が欠落していることに注意してください。
宛先データベースと宛先スキーマ、ウェアハウス、データリーダーのロール、ServiceNow URL、シークレットオブジェクト、外部アクセス統合、およびジャーナルテーブルの名前(構成されている場合)はエクスポートされません。この情報はコネクタを再インストールする際に再度提供される必要があります。再インストール後、同じ ServiceNow インスタンスと宛先スキーマが使用されることを条件に、コネクタによって使用されるジャーナルテーブルのシークレットオブジェクトまたは名前を変更するなどの機会として使用できます。
インジェストされたテーブルとインジェスチョンモードごとに、最新のインジェスチョン状態のみがエクスポートされます。その結果、コネクタ状態のインポート後、履歴データと統計は利用できなくなります。
構成は、 構成されたスケジュール に従ってコネクタがインジェスチョンをトリガーするたびに、次の条件が満たされていれば自動的にエクスポートされます。
少なくとも1つのテーブルがインジェスチョンに有効になっています。
継続的なテーブルのリロードはありません。
アプリケーションのアンインストール¶
このセクションでは、Snowsightおよびワークシート付きのアプリケーションをアンインストールする方法、およびコネクタによって作成されたオブジェクトを削除する方法について説明しますが、ユーザーによって意図的に削除される必要があります。
Snowsightを使用したアプリケーションのアンインストール¶
ACCOUNTADMIN ロールを持つユーザーとして Snowsight にサインインします。
ナビゲーションメニューで Data Products » Apps を選択します。
Snowflake Connector for ServiceNow を検索し、3つのドットメニューを選択してコンテキスト表示を開き、 Uninstall を選択します。
宛先データベースに残っているインジェストされたデータをすべて保存する必要がある場合は、 Transfer object ownership to another role を選択し、アプリケーションが所有するすべてのオブジェクトの所有権を付与するロールを選択します。それ以外の場合は、 Delete all objects を選択してすべてのデータを削除します。
注釈
どのオブジェクトが選択されたロールに転送されるか(または削除されるか)を見るには、 Show objects メニューを展開します。
Uninstall を選択して変更を確定します。コネクタのアプリケーションがアンインストールされました。
ワークシートを使用したアプリケーションのアンインストール¶
コネクタによってインジェストされたデータは、コネクタのインストールで使用されたロール(通常、ACCOUNTADMIN になります)が所有する選択された宛先データベースとスキーマに残ります。しかし、宛先スキーマ内の ServiceNow®データを含むすべてのシンクテーブルとビューは Snowflake Connector for ServiceNow®V2 アプリケーションによって所有されます。したがって、これらのテーブルとビューの所有権をアカウントロールに譲渡する前にコネクタをアンインストールすると、 それらも削除されます。
注釈
コネクタと一緒にデータを削除したくない場合は、宛先スキーマのすべてのテーブルとビューの所有権をアカウントロールに譲渡し、アプリケーションから現在の付与を取り消します。
インジェストされたデータを使用する既存のパイプラインの中断を防ぐため、すべてのパイプラインでデータへのアクセスに専用のデータ所有者ロールを使用し、所有権を一時的に譲渡することを推奨します。
パイプラインが依存する宛先スキーマのテーブルとビューに追加の権限の付与がある場合は、REVOKE CURRENT GRANTS の代わりに COPY CURRENT GRANTS 句を使用して以下の所有権譲渡クエリを実行すると、これらの権限の付与を維持できます。
宛先スキーマのすべてのテーブルとビューの所有権をアカウントロールに譲渡するには、以下のクエリを実行します。
USE ROLE ACCOUNTADMIN; GRANT OWNERSHIP ON ALL TABLES IN SCHEMA <destination_database>.<destination_schema> TO ROLE <account_role> REVOKE CURRENT GRANTS; GRANT OWNERSHIP ON ALL VIEWS IN SCHEMA <destination_database>.<destination_schema> TO ROLE <account_role> REVOKE CURRENT GRANTS;
コネクタが削除したくないオブジェクトを所有していないことを確認するには、以下のクエリを実行します。
SHOW OBJECTS OWNED BY APPLICATION <application_name>;
最後に、コネクタアプリケーションを削除するには、以下のクエリを実行します。
DROP APPLICATION <application_name>;
警告
宛先スキーマのテーブルとビューの所有権をコネクタから譲渡しないと決めた場合は、代わりにこのクエリを実行してコネクタと一緒にドロップすることができます。
DROP APPLICATION <application_name> CASCADE;
インストール中に作成されたオブジェクトの削除¶
コネクタデータベースを削除しても、別のデータベースに格納されているインジェストされたデータや、 Snowsight を使用してインストール中に作成されたオブジェクトは削除されません。
インストール中に作成されたオブジェクトを表示するには、次を実行します。
ACCOUNTADMIN ロールを持つユーザーとして Snowsight にサインインします。
ナビゲーションメニューで Data Products » Apps を選択します。
Snowflake Connector for ServiceNow を検索してから、選択します。
トップナビゲーションメニューで Settings » Authentication を選択します。
Secret、 External Access Integration、 Security Integration は手動で削除する必要があるオブジェクトです。これらのオブジェクトに加えて、シークレットと同じスキーマに Network Rule オブジェクトが存在する可能性もあります(アプリケーションがSnowsightを使用してインストールされた場合)。
警告
シークレットとネットワークルールのデータベースとスキーマも削除できます。ただし、他のSnowflakeコネクタ、たとえばSnowflake Connector for Google Analytics Raw Dataも使用している場合は注意が必要です。このようなアプリケーションのオブジェクトも、同じデータベースにあるかもしれません。
これらのオブジェクトを削除するには、 DROP コマンドを実行します。
たとえば、シークレットを削除するには、 DROP SECRET ステートメントを実行します。
コネクタのアップグレード¶
コネクタは自動的にアップグレードされるため、ユーザーは最新のアプリケーションを使用するために何もする必要がありません。
コネクタのスケーリング¶
インジェストされる ServiceNow®テーブルの数が多く、同時にインジェストされるテーブルの数を増やしたい場合は、以下のようにパラメーターを変更します。
CALL CONFIGURE_CONCURRENCY(<number>);
条件:
number
同時にテーブルをインジェストできるワーカーの最大数を指定します。デフォルトでは、この値は10に設定されています。
データインジェスチョンに使用するウェアハウスのサイズを変更するのと同時に、同時並行を増やすことも検討する必要があります。動作が遅くなる場合は、ウェアハウスのサイズを変更してみてください。詳細については、 ウェアハウスでの作業 をご参照ください。
警告
同時並行を増やすと、ServiceNow®インスタンスに過負荷がかかり、全体的なパフォーマンスが低下し、インジェスチョンエラーが発生する可能性があります。スケーリング変更の前後でコネクタのパフォーマンスと安定性を比較し、最適なパラメーターを見つけます。
ServiceNow®データに同じデータベースとスキーマを使用したコネクタの再インストール¶
コネクタを再インストールするには、以下の手順に従ってください。
TABLES_STATE
ビューをクエリして、現在RELOADING
ステータスのテーブルがないことを確認します。SELECT TABLE_NAME FROM TABLES_STATE WHERE STATUS = 'RELOADING';
現在リロード中のテーブルがある場合は、リロードが完了するまで待つか、 キャンセルしてください。
次のストアドプロシージャを呼び出してコネクタを停止します。
CALL PAUSE_CONNECTOR();
コネクタの状態と構成をエクスポートします。詳しくは、 このセクション をご参照ください。
重要
コネクタアプリケーションを削除する 前 に、コネクタの状態と構成をエクスポートすることをお勧めします。これにより、すべてのカスタムオプション(たとえば、同期が有効になっているテーブルやそのスケジュール)と、新しいインストールで最も新しく変更された状態が保持されます。
インジェストされたデータを含むデータベースとスキーマをそのまま残してコネクタを既に削除した場合でも、自動的にエクスポートされた状態に基づいてコネクタを再インストールできますが、再インストールされたコネクタは一部の記録のインジェストを繰り返す可能性があります。
コネクタを削除 し、 宛先スキーマのテーブルとビューの所有権を譲渡します。
次によりコネクタを再インストールします。
インストールのプロセス中、
以前に使用したデータベースとスキーマを提供します。
インストール後、コネクタはデータベースとスキーマにインジェストされたデータが含まれていることを検出し、再インストール前の場所からインジェスチョンを続行します。コネクタの状態をエクスポートし、インストール中に正常にインポートされると、以前にインジェストされたテーブルは同じスケジュールと構成で自動的に有効になります。それ以外の場合は、手動ですべてのテーブルを有効にし、スケジュールを設定するなどして、インジェスチョンを復元する必要があります。
SQL コマンドを使用して再インストールする場合は、SQL インストールガイドに記載されているように、宛先スキーマのビューとテーブルの所有権をコネクタに譲渡することを忘れないでください。そうしないと、コネクタはこれらのテーブルやビュー表示にアクセスできず、インジェスチョンを再開できません。
同じ ServiceNow®インスタンス名を提供してください。
他の引数については、 コネクタのインストール時に作成したオブジェクト を再利用するか、新しいオブジェクトを使用できます。