ServiceNow のデータを BigQuery に読み込む
ServiceNow から BigQuery にデータを読み込むには、BigQuery Data Transfer Service for ServiceNow コネクタを使用します。BigQuery Data Transfer Service を使用すると、ServiceNow から BigQuery に最新のデータを追加する繰り返し転送ジョブのスケジュールを設定できます。
制限事項
ServiceNow のデータ転送には次の制限があります。
- 同じ ServiceNow インスタンスでデータ転送を同時に実行することはおすすめしません。
- 定期的なデータ転送の最小間隔は 15 分です。デフォルトの定期的な転送間隔は 24 時間です。
- 1 つの転送構成でサポートできるデータ転送実行は、一度に 1 つだけです。最初の転送が完了する前に 2 回目のデータ転送が実行されるようにスケジュールされている場合、最初のデータ転送のみが完了し、最初の転送と重複する他のデータ転送はスキップされます。
- 1 つの転送構成内で転送がスキップされないようにするには、繰り返し頻度を構成して、大規模なデータ転送間の時間を長くすることをおすすめします。
始める前に
ServiceNow データ転送を作成する前に、ServiceNow と BigQuery に対して次の構成を行います。
ServiceNow の前提条件
- ServiceNow API にアクセスするには、OAuth 認証情報を作成します。
次の ServiceNow アプリケーションはすべて、ServiceNow インスタンスで有効にする必要があります。
BigQuery の前提条件
- BigQuery Data Transfer Service を有効にするために必要なすべての操作を完了します。
- データを保存する BigQuery データセットを作成します。
- Pub/Sub の転送実行通知を設定する場合は、
pubsub.topics.setIamPolicyIdentity and Access Management(IAM)権限があることを確認します。メール通知のみを設定する場合は、Pub/Sub 権限は必要ありません。詳細については、BigQuery Data Transfer Service の実行通知をご覧ください。
必要な BigQuery のロール
BigQuery Data Transfer Service データ転送の作成に必要な権限を取得するには、プロジェクトに対する BigQuery 管理者 (roles/bigquery.admin)IAM ロールを付与するよう管理者に依頼します。ロールの付与については、プロジェクト、フォルダ、組織に対するアクセス権の管理をご覧ください。
この事前定義ロールには、BigQuery Data Transfer Service のデータ転送の作成に必要な権限が含まれています。必要とされる正確な権限については、「必要な権限」セクションを開いてご確認ください。
必要な権限
BigQuery Data Transfer Service データ転送を作成するには、次の権限が必要です。
-
BigQuery Data Transfer Service の権限:
-
bigquery.transfers.update -
bigquery.transfers.get
-
-
BigQuery の権限:
-
bigquery.datasets.get -
bigquery.datasets.getIamPolicy -
bigquery.datasets.update -
bigquery.datasets.setIamPolicy -
bigquery.jobs.create
-
カスタムロールや他の事前定義ロールを使用して、これらの権限を取得することもできます。
詳細については、bigquery.admin へのアクセス権を付与するをご覧ください。
ServiceNow のデータ転送を設定する
次のいずれかのオプションを使用して転送構成を設定し、ServiceNow データを BigQuery に追加します。
コンソール
Google Cloud コンソールの [データ転送] ページに移動します。
[転送を作成] をクリックします。
[ソースタイプ] セクションの [ソース] で、[ServiceNow] を選択します。
[データソースの詳細] セクションで、次のようにします。
- [インスタンス ID] に、ServiceNow のインスタンス ID を入力します。これは ServiceNow URL(例:
https://INSTANCE_ID.service-now.com)から取得できます。 - [ユーザー名] に、接続に使用する ServiceNow のユーザー名を入力します。
- [パスワード] に ServiceNow のパスワードを入力します。
- [クライアント ID] には、OAuth 認証情報のクライアント ID を入力します。認証情報を生成するには、OAuth 認証情報を作成するをご覧ください。
- [クライアント シークレット] に、OAuth 認証情報のクライアント シークレットを入力します。
- [移行する ServiceNow テーブル] に、移行する ServiceNow テーブルの名前を入力するか、[参照] をクリックして移行するテーブルを選択します。
- [値の型] で、次のいずれかを選択します。
- データベースに保存されている値を転送するには、[実際] を選択します。
- 列の表示値を転送するには、[表示] を選択します。
- [インスタンス ID] に、ServiceNow のインスタンス ID を入力します。これは ServiceNow URL(例:
[転送先の設定] セクションの [データセット] には、データを保存するために作成したデータセットを選択します。
[転送構成名] セクションの [表示名] に、データ転送の名前を入力します。
[スケジュール オプション] セクションで、次の操作を行います。
- [繰り返しの頻度] リストで、このデータ転送の実行頻度を指定するオプションを選択します。カスタムの繰り返しの頻度を指定するには、[カスタム] を選択します。[オンデマンド] を選択した場合、手動で転送をトリガーすると、このデータ転送が実行されます。
- 必要に応じて、[すぐに開始] を選択するか、[設定した時刻に開始] を選択して開始日と実行時間を指定します。
省略可: [通知オプション] セクションで、次のようにします。
- メール通知を有効にするには、[メール通知] をクリックします。このオプションを有効にすると、転送の実行が失敗した場合、転送管理者にメール通知が送信されます。
- このデータ転送の Pub/Sub 転送実行通知を有効にするには、[Pub/Sub 通知] をクリックします。トピック名を選択するか、[トピックを作成] をクリックしてトピックを作成します。
[保存] をクリックします。
bq
bq mk コマンドを入力して、転送作成フラグ --transfer_config を指定します。
bq mk
--transfer_config
--project_id=PROJECT_ID
--data_source=DATA_SOURCE
--display_name=DISPLAY_NAME
--target_dataset=DATASET
--params='PARAMETERS'
次のように置き換えます。
PROJECT_ID(省略可): Google Cloud プロジェクト ID。プロジェクト ID が指定されていない場合は、デフォルトのプロジェクトが使用されます。DATA_SOURCE: データソース(例:servicenow)。DISPLAY_NAME: 転送構成の表示名。データ転送名には、後で修正が必要になった場合に識別できる任意の名前を使用できます。DATASET: 転送構成のターゲット データセット。PARAMETERS: 作成される転送構成のパラメータを JSON 形式で指定します例:--params='{"param":"param_value"}'。ServiceNow データ転送のパラメータは次のとおりです。ServiceNow パラメータ 必須または省略可 説明 connector.instanceId必須 ServiceNow インスタンスのインスタンス ID connector.authentication.username必須 認証情報のユーザー名 connector.authentication.password必須 認証情報のパスワード connector.authentication.oauth.clientId必須 生成された OAuth のクライアント ID connector.authentication.oauth.clientSecret必須 生成された OAuth のクライアント シークレット connector.valueType省略可 ActualまたはDisplay(デフォルトはActual)たとえば、次のコマンドは、すべての必須パラメータを使用してデフォルト プロジェクトに ServiceNow データ転送を作成します。
bq mk --transfer_config --target_dataset=mydataset --data_source=servicenow --display_name='My Transfer' --params='{"connector.authentication.oauth.clientId": "1234567890", "connector.authentication.oauth.clientSecret":"ABC12345", "connector.authentication.username":"user1", "connector.authentication.password":"abcdef1234", "connector.instanceId":"https://dev-instance.service-now.com"}'
API
projects.locations.transferConfigs.create メソッドを使用して、TransferConfig リソースのインスタンスを指定します。
定期的なスケジュール外でデータ転送を手動で実行するには、バックフィル実行を開始します。
データ型マッピング
次のテーブルは、ServiceNow データ転送でデータタイプがどのようにマッピングされるかを示しています。
| ServiceNow データタイプ | BigQuery のデータ型 |
|---|---|
decimal |
FLOAT64 |
integer |
INTEGER |
boolean |
BOOLEAN |
glide_date |
DATE |
glide_date_time |
DATETIME |
glide_time |
INT64 |
referencecurrencysys_class_namedomain_iddomain_pathGUIDtranslated_htmljournalstring
|
STRING |
移行に関する問題のトラブルシューティング
詳細については、転送構成のトラブルシューティングをご覧ください。
ServiceNow が有効になっているため転送が失敗する
調達、商品カタログ、契約管理のアプリケーションが ServiceNow で有効になっていないと、データ転送が失敗する問題が発生します。この問題を解決するには、3 つのアプリケーションをすべて有効にします。たとえば、[調達] を有効にします。
転送の実行中に問題が発生した
転送実行が意図したとおりに作成されない問題が発生します。この問題を解決するには、次の操作を行います。
- ServiceNow アカウントの認証情報(ユーザー名、パスワード、クライアント ID、クライアント シークレットなど)を確認します。
- インスタンス ID が ServiceNow インスタンスで有効な ID であることを確認します。
料金
この機能のプレビュー版では、ServiceNow データを BigQuery に転送する際に費用は発生しません。
次のステップ
- BigQuery Data Transfer Service の概要については、BigQuery Data Transfer Service の概要をご覧ください。
- 転送構成に関する情報の取得、転送構成の一覧表示、転送の実行履歴の表示など、転送の使用方法については、転送の操作をご覧ください。
- クロスクラウドの操作でデータを読み込む方法を学習する。