SQL コマンドを使用したコネクタのインストールおよび構成¶
ServiceNow®用Snowflakeコネクタは、 コネクタ規約 に従うものとします。
このトピックでは、 SQL コマンドを使用してコネクタをインストールおよび構成する方法について説明します。 ServiceNow®インスタンスの準備 で説明されているプロシージャをすでに実行していることを前提としています。
このトピックの内容:
OAuth の設定¶
注釈
OAuth の代わりに基本認証を使用する予定がある場合は、このセクションをスキップして シークレットオブジェクトの作成 に進みます。
ServiceNow インスタンスへの認証に OAuth を使用するように、 Snowflake Connector for ServiceNow® を構成できます。
ServiceNow では、 コード付与フロー で OAuth の使用をサポートするようにインスタンスを設定する必要があります。
Snowflake Connector for ServiceNow® 内:
コネクタは、
TYPE = API_AUTHENTICATION
とのセキュリティ統合を使用して、Snowflakeを ServiceNow インスタンスに接続します。セキュリティ統合は、 ServiceNow インスタンスを認証するための ServiceNow OAuth クライアント ID、クライアントシークレット、およびエンドポイント URL を指定します。
コネクタは、Snowflakeシークレットオブジェクトを使用して、認証情報などの機密情報を管理します。
認証に OAuth を使用する場合、コネクタは ServiceNow OAuth 更新トークン、更新トークンの有効期限、およびセキュリティ統合の名前をSnowflakeシークレットオブジェクトに格納します。
Snowflake Connector for ServiceNow® が OAuth を使用するように設定するには、次のステップに従います。
コード付与フローのある OAuth を使用するように ServiceNow インスタンスを構成します。
ServiceNow インスタンスが既にOAuth コード付与フローを使用していて、そのインスタンスをSnowflake Snowflake Connector for ServiceNow® コネクタで使用する場合は、クライアント ID、クライアントシークレット、 OAuth トークンに対応するエンドポイント URL をメモします。
詳細については、 OAuth トークンを管理する をご参照ください。この情報を書き留めたら、次のステップでセキュリティ統合を作成します。
別の ServiceNow インスタンスを使用する場合は、インスタンスにアクセスするか、インスタンスを作成し、 OAuth を設定する と クライアントがインスタンスにアクセスできるようにエンドポイントを作成する で示したように、コード付与フローで OAuth を使用するようにインスタンスを構成します。
ServiceNow にアプリケーションレジストリを作成し、それを使用してコネクタを構成します。
ServiceNow インスタンスにログインし、 Homepage を選択します。
OAuth を検索し、 Application Registry を選択します。
New を選択してから、 Create an OAuth API endpoint for external clients を選択します。
次の画像に示すように、アプリケーションレジストリの構成ページが表示されます。
ServiceNow で、 Name フィールドに OAuth アプリケーションレジストリの名前を入力します。
ServiceNow で、 Redirect URL field に次のように入力します。
https://apps-api.c1.<cloud_region_id>.<cloud>.app.snowflake.com/oauth/complete-secret
条件:
cloud_region_id
Snowflakeアカウントのクラウドリージョンの識別子を指定します。
cloud
クラウドプラットフォームの識別子を指定します(例:
aws
、azure
、またはgcp
)。
必要に応じて、 ServiceNow で、 Refresh Token Lifespan フィールドと Access Token Lifespan フィールドの値を更新します。
Snowflakeは、アクセストークンの有効期間を少なくとも600秒に設定することをお勧めします。
更新トークンの有効期間には、7776000(90日)の値を指定します。
ServiceNow で、 Submit を選択します。
OAuth アプリケーションレジストリがアプリケーションレジストリのリストに表示されます。
ServiceNow で、作成したばかりのアプリケーションレジストリを選択します。
ServiceNow が Client ID フィールドと Client Secret フィールドの値を生成したことに注意してください。これらの値は、次のセクションで セキュリティ統合を作成する ときに使用します。
OAuth 更新トークンの生成¶
OAuth 更新トークンを生成するには、
OAuth の設定 で説明されているタスクを実行したことを確認してください。
ServiceNow ドキュメントの REST OAuth 例 で説明されているように、 ServiceNow インスタンスの
/oauth_token.do
エンドポイントに HTTP リクエストを送信します。たとえば、curlを使用して HTTP リクエストを送信する場合は、
curl -d "grant_type=password" --data-urlencode "client_id=<client_id>" --data-urlencode "client_secret=<client_secret>" --data-urlencode "username=<username>" --data-urlencode "password=<password>" -X POST https://<instance_name>.service-now.com/oauth_token.do
条件
instance_name
ServiceNow インスタンスの名前を指定します。
client_id
およびclient_secret
ServiceNow エンドポイントの設定時に取得した値を指定します。
username
およびpassword
ServiceNow インスタンスの認証情報を指定します。
注釈
上記の例では、curlで
data-urlencode
コマンドラインフラグを使用して、 ServiceNow に送信される HTTP リクエスト内のクライアントシークレット、ユーザー名、およびパスワードを URL エンコード します。別のツールを使用して HTTP リクエストを送信している場合は、これらの値をリクエストで URL エンコードしていることを確認してください。
HTTP 応答の本文には、 JSON オブジェクトが含まれています。このオブジェクトの
refresh_token
フィールドから更新トークンを取得します。{"access_token":"abcd1234","refresh_token":"cdef567","scope":"useraccount","token_type":"Bearer","expires_in":1799}
セキュリティ統合の作成¶
セキュリティ統合は、Snowflakeとサードパーティ OAuth 2.0サービス間のインターフェイスを提供するSnowflakeオブジェクトです。
次の例に示すように、 CREATE SECURITY INTEGRATION コマンドを使用してセキュリティ統合を作成します。
CREATE SECURITY INTEGRATION <name>
TYPE = API_AUTHENTICATION
AUTH_TYPE = OAUTH2
OAUTH_CLIENT_AUTH_METHOD = CLIENT_SECRET_POST
OAUTH_CLIENT_ID = '<client_id>'
OAUTH_CLIENT_SECRET = '<client_secret>'
OAUTH_TOKEN_ENDPOINT = 'https://<my_instance>.service-now.com/oauth_token.do'
ENABLED = TRUE;
条件:
name
セキュリティ統合の名前を指定します。
client_id
前のセクションで ServiceNow から取得した Client ID フィールドの値を指定します。
client_secret
前のセクションで ServiceNow から取得した Client Secret フィールドの値を指定します。
my_instance
ServiceNow インスタンスの名前を指定します。これは、 ServiceNow インスタンスホスト名の最初の部分です。たとえば、 ServiceNow インスタンスへの URL が次の場合、
https://myinstance.service-now.comインスタンスの名前は
myinstance
になります。
シークレットオブジェクトの作成¶
Snowflake Connector for ServiceNow® が認証に使用するSnowflakeシークレットオブジェクトを作成します。
Snowflakeは、 ACCOUNTADMIN ロール(コネクタのインストール、構成、実行に使用するロール)とは別に、専用のロールを使用してシークレットオブジェクトを管理することをお勧めします。Snowflakeは、シークレットオブジェクトを専用のデータベースとスキーマに格納することもお勧めします。任意のロールを選択してシークレットを管理できること、また任意のデータベースとスキーマを選択してシークレットを格納できることに注意してください。
シークレットを管理するカスタムロールを作成するには、 CREATE ROLE コマンドを使用します。ロールに付与できる権限については、 アクセス制御権限 をご参照ください。
次のセクションでは、別のデータベースとスキーマに格納され、カスタムロールによって管理されるシークレットオブジェクトを作成する方法について説明します。
シークレットオブジェクトのスキーマの作成¶
まず、 CREATE DATABASE コマンドと CREATE SCHEMA コマンドを実行して、シークレットオブジェクトを格納するデータベースとスキーマを作成します。スキーマとデータベースの名前は、有効な オブジェクト識別子 である必要があります。
たとえば、シークレットオブジェクトのデータベース secretsdb
とスキーマ apiauth
を作成するには、次のコマンドを実行します。
USE ROLE accountadmin; CREATE DATABASE secretsdb; CREATE SCHEMA apiauth;
シークレットを管理するカスタムロールの作成¶
次に、シークレットを管理するためのカスタムロールを作成し(既存のロールを使用しない場合)、シークレットの作成に必要な権限をロールに付与します。
USERADMIN システムロールを使用して CREATE ROLE コマンドを実行し、シークレットを管理するためのカスタムロールを作成します。たとえば、シークレットを管理するためのカスタムロール
secretadmin
を作成するには、次のコマンドを実行します。USE ROLE useradmin; CREATE ROLE secretadmin;
SECURITYADMIN システムロールを使用して GRANT <権限> TO ROLE コマンドを実行し、次の権限をカスタムロールに付与します。
シークレット用に作成したデータベース に対する USAGE
シークレット用に作成したスキーマ に対する USAGE および CREATE SECRET
以前に作成したセキュリティ統合 に対する USAGE
例:
USE ROLE securityadmin; GRANT USAGE ON DATABASE secretsdb TO ROLE secretadmin; GRANT USAGE ON SCHEMA secretsdb.apiauth TO role secretadmin; GRANT CREATE SECRET ON SCHEMA secretsdb.apiauth TO role secretadmin; GRANT USAGE ON INTEGRATION servicenow_oauth TO role secretadmin;
USERADMIN システムロールを使用して GRANT <権限> TO ROLE コマンドを実行し、シークレットを作成するユーザーにカスタムロールを付与します。たとえば、ユーザー
servicenow_secret_owner
にロールを付与するには、次のコマンドを実行します。USE ROLE useradmin; GRANT ROLE secretadmin TO user servicenow_secret_owner;
シークレットの作成¶
次に、コード付与フローで OAuth を使用して、Snowflakeが ServiceNow インスタンスに対して認証できるようにするシークレットを作成します。
注釈
OAuth の代わりに基本認証を使用する場合は、 以下の注意 を代わりにご参照ください。
シークレットオブジェクトを作成するには、次のパラメーターで CREATE SECRET コマンドを実行して、
TYPE
をOAUTH2
に設定します。
OAUTH_REFRESH_TOKEN
を OAuth 更新トークンの生成 で取得した OAuth 更新トークンに設定します。
OAUTH_REFRESH_TOKEN_EXPIRY_TIME
を更新トークンの有効期限のタイムスタンプ(UTC タイムゾーン)に設定します。これは、 ServiceNow からトークンが発行された日付までのトークンの有効期間を追加することで計算できます。デフォルトでは、トークンは100日で期限切れになります。
API_AUTHENTICATION
を セキュリティ統合の作成 で作成したセキュリティ統合の名前に設定します。たとえば、
servicenow_oauth
という名前のセキュリティ統合を使用するservice_now_creds_oauth_code
という名前のシークレットを作成するには、次のコマンドを実行します。USE ROLE secretadmin; USE SCHEMA secretsdb.apiauth; CREATE SECRET servicenow_creds_oauth_code TYPE = OAUTH2 OAUTH_REFRESH_TOKEN = '34n;vods4nQsdg09wee4qnfvadH' OAUTH_REFRESH_TOKEN_EXPIRY_TIME = '2022-01-06 20:00:00' API_AUTHENTICATION = servicenow_oauth;
既存のシークレットのプロパティを変更するには(例: OAuth リフレッシュトークンを更新する)、 ALTER SECRET コマンドを使用します。
注釈
基本認証(OAuth ではなく)を使用する場合は、 CREATE SECRET コマンドを実行して、
TYPE
をPASSWORD
に設定し、シークレットを作成します。USERNAME
とPASSWORD
を ServiceNow インスタンスへの認証に使用する予定の ServiceNow ユーザーのユーザー名とパスワードに設定します。例:USE ROLE secretadmin; USE SCHEMA secretsdb.apiauth; CREATE SECRET servicenow_creds_pw TYPE = PASSWORD USERNAME = 'jsmith1' PASSWORD = 'W3dr@fg*7B1c4j';
このユーザーに対して多要素認証が有効になっている場合は、 ServiceNow ドキュメントの REST API で説明されているように、パスワードとともに MFA トークンを提供する必要があります。
ウェアハウスの作成¶
Snowflakeは、コネクタ専用の ウェアハウスを作成する ことをお勧めします。専用のウェアハウスにより、コスト管理とリソースの追跡が改善されます。リソースの追跡を容易にするために、必要に応じて専用ウェアハウスに 1 つまたは複数のタグを追加 できます。
注釈
専用ウェアハウスなしで Snowflake Connector for ServiceNow® を実行するには、ウェアハウスの値を指定するよう求められたときに空の文字列を渡します。
コネクタウェアハウスの場合、SnowflakeはLサイズのマルチクラスターウェアハウスを使用することをお勧めします。
servicenow_conn_warehouse
という名前のLサイズのウェアハウスを作成するには、次のコマンドを実行します。
USE ROLE accountadmin; CREATE WAREHOUSE servicenow_conn_warehouse WAREHOUSE_SIZE = LARGE;
ServiceNow データのデータベースおよびスキーマの作成¶
次に、 ServiceNow データのデータベースとスキーマを作成します。 Snowflake Connector for ServiceNow® は、 ServiceNow データをこのデータベースとスキーマにインジェストします。
データベースとスキーマを作成するときは、次の点に注意してください。
スキーマとデータベースの名前は、有効な オブジェクト識別子 である必要があります。
Snowflakeでインジェストされた ServiceNow データへのアクセスを制御するには、 データへのアクセスを許可するロールにスキーマに対する権限を付与 します。
データベースとスキーマを作成するには、 CREATE DATABASE と CREATE SCHEMA コマンドを実行します。
たとえば、データベース dest_db
と ServiceNow データのスキーマ dest_schema
を作成するには、次のコマンドを実行します。
USE ROLE accountadmin; CREATE DATABASE dest_db; CREATE SCHEMA dest_schema;
注釈
コネクタを再インストールする場合は、コネクタの以前のインストール用に作成したスキーマを再利用できます。再利用できるのは、コネクタの以前のインストールですでにデータがロードされており、引き続き同じテーブルにデータをロードする場合です。
データのロードを続行するため、コネクタを再インストールする前にスキーマを変更しないでください。コネクタの以前のインストールによって作成されたテーブルの定義を変更しないでください。
後で ENABLE_TABLES ストアドプロシージャを呼び出す ときに、ストアドプロシージャはこれらの必要なオブジェクトがすでに存在することを確認し、再作成を試みません。
データのインジェスチョンを再開する場所を決定するために、コネクタはイベントログテーブルを調べます。
コネクタがイベントログテーブルで型 UPDATE または DELETE の行を検出した場合、コネクタは最新の行(
sys_updated_on
またはsys_created_on
列から)のタイムスタンプをインジェスチョンの開始点として使用します。イベントテーブルに UPDATE または DELETE 型の行がない場合、コネクタはイベントログテーブルの
event_date
列の最も古い値を使用します。
ServiceNow インスタンスと通信するための API 統合の作成¶
次に、 ServiceNow インスタンスと通信するための API 統合を作成します。次の構文で CREATE API INTEGRATION コマンドを実行します。
CREATE API INTEGRATION <integration_name> API_ALLOWED_PREFIXES = ('https://<servicenow_instance_name>.service-now.com') ALLOWED_AUTHENTICATION_SECRETS = (<secret_name>) ENABLED = TRUE
条件:
integration_name
API 統合の名前を指定します。名前は、有効な オブジェクト識別子 である必要があります。名前は、使用するアカウントの API 統合間において一意である必要があります。
API_ALLOWED_PREFIXES = ('https://servicenow_instance_name.service-now.com')
ServiceNow インスタンスに URL を指定します。これにより、この API 統合の使用は、指定された URL を持つインスタンスに制限されます。
ALLOWED_AUTHENTICATION_SECRETS = (secret_name)
API 統合のスコープで使用できるシークレットの名前のリストを指定します。
これを シークレットオブジェクトの作成 で作成したシークレットオブジェクトの名前に設定します。
ENABLED = TRUE
この API 統合を有効にするか無効にするかを指定します。API 統合が無効になっている場合、その統合に依存する外部関数はすべて機能しません。
TRUE
統合の定義で指定されたパラメーターに基づいて統合の実行を許可します。
FALSE
メンテナンスのために統合を中断します。Snowflakeとサードパーティサービス間の統合はいずれも機能しません。
たとえば、 myinstance
という名前の ServiceNow インスタンスに対して servicenow_api_integration
という名前の API 統合を作成するには、次のコマンドを実行します。
USE ROLE accountadmin; CREATE API INTEGRATION servicenow_api_integration API_ALLOWED_PREFIXES = ('https://myinstance.service-now.com') ALLOWED_AUTHENTICATION_SECRETS = (secretsdb.apiauth.servicenow_creds_pw) ENABLED = TRUE
注釈
CREATE API INTEGRATION ステートメントで他のパラメーターを設定する必要はありません。
コネクタのログの構成¶
Snowflake Connector for ServiceNow® は、イベントテーブルを使用してコネクタのエラーログを保存します。イベントテーブルを設定するには、 イベントテーブルの設定 ガイドに従います。イベントテーブルが設定されていない場合、ログとイベント情報は破棄されます。
コネクタ用カスタムロールの作成¶
次に、コネクタ用カスタムロールを作成し、コネクタを実行するために必要な権限をそのロールに付与します。
このロールにより、コネクタは次を実行できるようになります。
データを取り込むためのタスクを作成し、管理する。
専用のウェアハウスを使用する。
ServiceNow インスタンスに接続するために、シークレットと API 統合にアクセスする。
このロールは、コネクタによってインジェストされた ServiceNow データを含むテーブルとビューの所有者でもあります。
このロールを作成して権限を付与するには、
USERADMIN システムロールを使用して CREATE ROLE コマンドを実行し、データを所有するカスタムロールを作成します。たとえば、データを所有するカスタムロール
connector_resources_provider
を作成するには、次のコマンドを実行します。USE ROLE useradmin; CREATE ROLE connector_resources_provider;
ACCOUNTADMIN ロールを使用して GRANT <権限> to ROLE コマンドを実行し、次の権限をカスタムロールに付与します。
アカウントに対する EXECUTE TASK
次のいずれか(両方ではない)。
EXECUTE MANAGED TASK
専用ウェアハウスなしでコネクタを構成した場合は、この権限を付与します。
コネクタ用に作成した ウェアハウスに対する USAGE。
コネクタ専用のウェアハウスを使用している場合は、この権限を付与します。
ServiceNow データ用に作成したデータベース に対する USAGE
ServiceNow データ用に作成したスキーマ に対する USAGE、 CREATE TABLE、 CREATE VIEW
ServiceNow 用に作成した API 統合 に対する USAGE
シークレット用に作成したデータベース に対する USAGE
シークレット用に作成したスキーマ に対する USAGE
作成したシークレット に対する USAGE
たとえば、
connector_resources_provider
という名前のロールに次の権限を付与するには、アカウントに対する EXECUTE TASK
アカウントに対する EXECUTE MANAGED TASK
ウェアハウス
servicenow_conn_warehouse
に対する USAGEdest_db
データベースに対する USAGEdest_db.dest_schema
スキーマに対する USAGE、 CREATE TABLE、 および CREATE VIEWservicenow_api_integration
統合に対する USAGEsecretsdb
データベースに対する USAGEsecretsdb.apiauth
スキーマに対する USAGEsecretsdb.apiauth.servicenow_creds_oauth_code secret
シークレットに対する USAGE
次のコマンドを実行します。
USE ROLE accountadmin; GRANT EXECUTE TASK ON ACCOUNT TO ROLE connector_resources_provider; GRANT EXECUTE MANAGED TASK ON ACCOUNT TO ROLE connector_resources_provider; GRANT USAGE ON WAREHOUSE servicenow_conn_warehouse TO ROLE connector_resources_provider; GRANT USAGE ON DATABASE dest_db TO ROLE connector_resources_provider; GRANT USAGE ON SCHEMA dest_db.dest_schema TO ROLE connector_resources_provider; GRANT CREATE TABLE ON SCHEMA dest_db.dest_schema TO ROLE connector_resources_provider; GRANT CREATE VIEW ON SCHEMA dest_db.dest_schema TO ROLE connector_resources_provider; GRANT USAGE ON INTEGRATION servicenow_api_integration TO ROLE connector_resources_provider; GRANT USAGE ON DATABASE secretsdb TO ROLE connector_resources_provider; GRANT USAGE ON SCHEMA secretsdb.apiauth TO ROLE connector_resources_provider; GRANT USAGE ON SECRET secretsdb.apiauth.servicenow_creds_oauth_code TO ROLE connector_resources_provider;
Snowflake Connector for ServiceNow® をインストールした後、このロールをコネクタに付与します。
インジェスト開始後にインジェストされたデータにアクセスするためのより詳細に設定されたロールを別途作成することをお勧めしますが、このロールを使用してインジェストされたデータをクエリすることができ、さらに権限を追加してこのロールを拡張することができます。逆に、コネクタが必要とするオブジェクトに対するロール権限の取り消しや、取り込まれたデータを持つテーブルやビューのロール所有者の変更は許可されておらず、コネクタが破壊されます。
Snowflake Connector for ServiceNow® のインストール¶
コネクタをインストールするには、
Snowsightを使用してコネクタインスタンスのデータベースを作成します。データベースの作成方法の詳細については、 Snowsightによるコネクタのインストールと構成 をご参照ください。
SQL ワークシートに移動します。
ACCOUNTADMIN ロールを持つユーザーとしてログインします。例:
USE ROLE ACCOUNTADMIN;
コネクタのカスタムのロール(以前に作成したロール)を、 コネクタのインスタンスとして機能するデータベース に付与します。
たとえば、
connector_resources_provider
という名前のロールをデータベースmy_connector_servicenow
に付与するには、次のコマンドを実行します。GRANT ROLE connector_resources_provider TO DATABASE my_connector_servicenow;
インストールされたデータベースに
FIREWALL_CONFIGURATION
データベースプロパティを設定します。ServiceNow インスタンスの URL プレフィックスを含めます。たとえば、データベースの名前が
my_connector_servicenow
で、 ServiceNow インスタンス名がmy-instance
の場合は、次のコマンドを実行します。ALTER DATABASE my_connector_servicenow SET FIREWALL_CONFIGURATION = ('https://my-instance.service-now.com')
USE DATABASE コマンドを実行して、コネクタにデータベースを使用します。例:
USE DATABASE my_connector_servicenow;
CALL コマンドを使用して
CONFIGURE_CONNECTION
という名前のストアドプロシージャを呼び出し、 ServiceNow インスタンスへの接続を構成します。CALL CONFIGURE_CONNECTION({ 'serviceNowUrl': '<servicenow_base_url>', 'secret': '<secret_name>', 'apiIntegrationName': '<api_integration_name>' })
条件:
servicenow_base_url
コネクタが使用する ServiceNow インスタンスの URL を指定します。URL は次の形式にする必要があります。
https://<servicenow_instance_name>.service-now.com
secret_name
ServiceNow への認証用の認証情報を含むシークレットオブジェクト(以前に作成したシークレット) の完全修飾名を指定します。
シークレットオブジェクトの完全修飾名を次の形式で指定する必要があります。
<database_name>.<schema_name>.<secret_name>
データベース、スキーマ、シークレットの名前は、有効な オブジェクト識別子 である必要があります。
api_integration_name
ServiceNow の API 統合(以前に作成した API 統合) の名前を指定します。
統合の名前は、有効な オブジェクト識別子 である必要があります。
たとえば、次の ServiceNow インスタンスへの接続を構成する場合です。
URL
https://myinstance.service-now.com
がある。secretsdb.apiauth.servicenow_creds_oauth_code
に格納されているシークレットを使用する。servicenow_api_integration
という名前の API 統合を使用する。
次のコマンドを実行します。
CALL CONFIGURE_CONNECTION({ 'serviceNowUrl': 'https://myinstance.service-now.com', 'secret': 'SECRETSDB.APIAUTH.SERVICENOW_CREDS_OAUTH_CODE', 'apiIntegrationName': 'SERVICENOW_API_INTEGRATION' });
接続が正常に構成された場合、このストアドプロシージャは次のメッセージを出力します。
Connection configured successfully
注釈
一度コネクタを構成すると、渡されたシークレットと API 統合の名前を変更することはできません。コネクタはオブジェクトを名前で参照します。そのため、オブジェクトの名前をドロップまたは変更すると、コネクタは破損し動作しなくなります。
Snowflake Connector for ServiceNow® の開始 の説明に従ってコネクタを開始します。
新しく作成されたデータベースはコネクタのインスタンスであり、次が含まれています。
コネクタの構成に使用するストアドプロシージャ。詳細については、 SQL ステートメントを使用したデータインジェスチョンの設定 をご参照ください。
コネクタのログに記録されたメッセージと統計を含むビュー。詳細については、 コネクタのモニターについて をご参照ください。
Snowflake Connector for ServiceNow® の開始と停止¶
次のセクションでは、コネクタを開始、停止、および再開する方法について説明します。
Snowflake Connector for ServiceNow® の開始¶
START_CONNECTOR
という名前のプロシージャを呼び出して、コネクタを開始します。このストアドプロシージャの引数は次のとおりです。
CALL START_CONNECTOR(
'<warehouse_name>',
'<dest_db_schema>',
'<name_of_journal_table>',
'<connector_role>',
);
条件:
warehouse_name
コネクタのウェアハウスの名前を指定します。
ウェアハウスの名前は、有効な オブジェクト識別子 である必要があります。
専用ウェアハウスを使用せずにコネクタを実行するように構成するには、ウェアハウス名に空の文字列を渡します。
dest_db_schema
Snowflake内にある ServiceNow データのスキーマ(以前に作成したスキーマ) の完全修飾名を指定します。
スキーマの完全修飾名を次の形式で指定する必要があります。
<database_name>.<schema_name>データベースとスキーマの名前は、有効な オブジェクト識別子 である必要があります。
name_of_journal_table
削除された記録に関する情報を含むテーブルの名前を指定します。詳細については、 ServiceNow®インスタンスの準備 をご参照ください
削除された記録に関する情報は、削除された記録を反映するように設定したテーブルでのみ利用できることに注意してください。
削除された記録が反映されないようにするには、この引数に空の文字列を指定します。
connector_role
コネクタの 前に作成したロール のカスタムロールの名前を指定します。
ロールの名前は、有効な オブジェクト識別子 である必要があります。
たとえば、次を使用する
my_connector_servicenow
という名前のコネクタを開始する場合です。
servicenow_conn_warehouse
という名前のウェアハウスSnowflake内にある ServiceNow データの
dest_db.dest_schema
という名前のスキーマ削除された記録を追跡するための
sys_audit_delete
という名前の ServiceNow テーブル
connector_resources_provider
という名前のカスタムロール次のコマンドを実行します。
CALL START_CONNECTOR( 'SERVICENOW_CONN_WAREHOUSE', 'DEST_DB.DEST_SCHEMA', 'sys_audit_delete', 'CONNECTOR_RESOURCES_PROVIDER', );
コネクタが正常に開始された場合、このストアドプロシージャは次のメッセージを表示します。
Successfully started the |SNC|. The connector can be configured now.
注釈
コネクタが開始されると、渡されたウェアハウス、宛先データベース、宛先スキーマ、コネクタのカスタムロールの名前を変更することはできません。コネクタはオブジェクトを名前で参照します。そのため、オブジェクトの名前をドロップまたは変更すると、コネクタは破損し動作しなくなります。
ウェアハウスの名前を変更する代わりに、 CONFIGURE_WAREHOUSE ストアドプロシージャを使用して、コネクタが使用するウェアハウスを変更します。
Snowflake Connector for ServiceNow® の停止¶
コネクタによって開始されたすべてのタスクを停止するには、 STOP_CONNECTOR
ストアドプロシージャを呼び出します。
CALL STOP_CONNECTOR();
注釈
STOP_CONNECTOR
ストアドプロシージャは、 START_CONNECTOR
ストアドプロシージャを呼び出してコネクタを再開するまで使用できません。
コネクタを停止すると、 RESUME_CONNECTOR
ストアドプロシージャを呼び出してコネクタが再開されるまで、コネクタとのやり取り(例: テーブルの有効化/無効化、コネクタの構成)が無効になります。
コネクタを停止すると、コネクタのコスト発生も停止します。
Snowflake Connector for ServiceNow® の再開¶
STOP_CONNECTOR
ストアドプロシージャによって停止されたすべてのタスクを再開するには、 RESUME_CONNECTOR
ストアドプロシージャを呼び出します。
CALL RESUME_CONNECTOR();
注釈
RESUME_CONNECTOR
ストアドプロシージャは、 START_CONNECTOR
ストアドプロシージャを呼び出してコネクタを再開するまで使用できません。
Snowflake Connector for ServiceNow® の構成およびモニターでの権限の委任¶
コネクタをインストールした後、 ACCOUNTADMIN ロールのみが構成プロシージャを実行し、コネクタのモニターに使用されるビューにアクセスできます。
注釈
コネクタ用カスタムロールの作成 で作成したカスタムロールには、構成プロシージャを実行したり、モニタービューにアクセスしたりする権限がありません。
これらの権限を別のロールに委任するには、 GRANT IMPORTED PRIVILEGES ON DATABASE ... TO ROLE ...
コマンドを実行します。このコマンドは、次の構文を使用します。
GRANT IMPORTED PRIVILEGES ON DATABASE <connector_name> TO ROLE <connector_config_role>;
条件:
connector_name
コネクタのインスタンスとして機能するデータベースの名前 を指定します。
connector_config_role
コネクタを構成およびモニターする権限を付与するロールの名前を指定します。
注釈
これは、 connector_name
データベースをドロップしたり、 Snowflake内に ServiceNow データを含むスキーマ にアクセスしたりする権限をロールに付与しません。
たとえば、 connector_config_role
という名前のカスタムロールを作成し、 my_connector_servicenow
という名前のコネクタインスタンスを構成およびモニターする権限をそのロールに付与するには、次のコマンドを実行します。
USE ROLE useradmin;
CREATE ROLE connector_config_role;
USE ROLE securityadmin;
GRANT IMPORTED PRIVILEGES ON DATABASE my_connector_servicenow TO ROLE connector_config_role;
コネクタが使用するウェアハウスの変更(オプション)¶
コネクタが使用するウェアハウスを変更するか、専用のウェアハウスを追加するには、次を呼び出します。
CALL CONFIGURE_WAREHOUSE('<warehouse_name>');
条件:
warehouse_name
コネクタが使用するウェアハウスの名前を指定します。
専用ウェアハウスを使用せずにコネクタを実行するように構成するには、ウェアハウス名に空の文字列を渡します。
注釈
別のウェアハウスを使用するようにコネクタを構成する前に、 コネクタで使用されるカスタムロール が新しいウェアハウスに対する USAGE 権限を持っていることを確認してください。
次のステップ¶
コネクタをインストールして構成したら、 ServiceNow®データのデータインジェスチョンの設定 で説明されているステップを実行します。