6
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Autonomous AI DatabaseからServiceNowにアクセス

Last updated at Posted at 2025-12-22

はじめに

Autonomous AI Database(ADB)では、様々なSaaS/DBに対して直接データ取得・連携ができるようになっています。今回はその一つServiceNowとの接続を試してみたいと思います。
image.png
[OCI Technical Deep Dive] AI時代に最適なオラクルのData Platformの特徴とAI拡張分析(2025年8月5日開催)より。左上の方に小さくServiceNowがあります。

今回行う手順は以下のドキュメントをベースとしています。
Oracle管理の異機種間接続による非Oracle Databaseへのデータベース・リンクの作成

対SalesforceではOCI Advent Calendar 2025においても、以下の記事をUp頂いています。Salesforceとは少し実装が異なるので、ServiceNowの場合についても進めてみたいと思います。
Salesforce データに対する Autonomous AI Database の Select AI Sidecar 機能による自然言語クエリの実行
Oracle Autonomous AI Database から Salesforce をDB Linkで参照する方法(異種間DB連携)

ServiceNowのトライアルアカウントを取得

以下の記事を参考にServiceNowのトライアルアカウントを取得しました。(画面の見た目は結構変わっていますが、トライアルの概念は一緒でした)
ServiceNowのお試しインスタンスを利用する

ServiceNowのトライアルは、30日等で区切られる仕組みではなく、利用されていない期間が10日を超えるとインスタンスが回収される(再作成可能)という仕組みなので試しやすいですね。
トライアルインスタンス上には、あらかじめテスト用データやOAuth/Basic認証の設定が行われているので、ServiceNowインスタンスへの設定は特に不要で、そのまま試してみることができます。
image.png

Autonomous AI Databaseの作成

以下チュートリアルを参考にADBのインスタンスを作成します。
101: ADBインスタンスを作成してみよう

こんな感じで作成しました(コンパートメントとOCIDはマスクしています)
image.png

Credential作成

DBLINK接続するためのCredentialを作成します。
Basic認証で実施する場合は、ServiceNowのコンソールに表示されているusername(デフォルトはadmin)/passwordを使って以下のように設定するだけです。

BEGIN 
    DBMS_CLOUD.CREATE_CREDENTIAL( 
        credential_name => 'SERVICENOW_BASIC_CRED', 
        username => 'admin', 
        password => 'コンソールから確認できるパスワード'); 
END;
/

OAuth2の認証も可能ですがその場合は以下の記事のようにServiceNowのコンソールでApplication RegistryにOAuth Clientを追加する必要があります。OAuth2については私の手順がどこか間違っているのか、うまくデータが抜けないので、この記事上この後は割愛します(エラーが取れたら追記します)
[ServiceNow]OAuth2.0を利用したREST APIを実行してみた

このCREDIENTIALの設定、このあとのDBLINKの作成については、以下のビューでサンプルを見ることができます。

SELECT * FROM HETEROGENEOUS_CONNECTIVITY_INFO WHERE DATABASE_TYPE = 'servicenow';

REST構成ファイル(servicenow.rest)ファイルの作成と配置

ServiceNowへの接続の場合、REST構成ファイルを作成、ADB上に配置する必要があります。このREST構成ファイルによりRESTのエンドポイントとテーブルがマッピングされる形になります。ServiceNow以外にもYouTubeやGoogle Driveへのアクセス時には同様のREST構成ファイルを設定する必要があります。

冒頭に紹介したドキュメントにも記載がありますが、サンプルは以下のドキュメントのとおりです。内部的にはProgressのDataDirectを使ってるのかもしれないですね。

Example Model file : Progress DataDirect Autonomous REST Connector for ODBC User's Guide Release 8.0.1

今回エラーメッセージ等のカスタマイズは不要なので、以下のように定義してみました。インスタンス名はトライアルの場合devXXXXXX(Xが数字)というフォーマットで振られています。

servicenow.rest
{
    // A simple GET request without parameters to sample:
    "cmdb_ci":"https://インスタンス名.service-now.com/api/now/table/cmdb_ci",
    "incident":"https://インスタンス名.service-now.com/api/now/table/incident"
}

この後、上記のテキストファイルをObject Storageに配置し、ADBのDIRECTORYにダウンロードするのですが、以下の記事を参考にしました。
Object Storage にアップロードしたファイルを Autonomous Database の DATA_PUMP_DIR にコピーする。(Oracle Cloud Infrastructure)

以下のようにObject StorageへアクセスするCREDENTIALを準備しました。

BEGIN
  DBMS_CLOUD.CREATE_CREDENTIAL(
    credential_name => 'OS_CRED', -- 任意の文字列
    username => 'テナンシー名/Auto Token を発行したIAMユーザー名',
    password => 'Auth Token'
  );
END;

ADB上でDIRECTORYを作成しました。

create or replace directory servicenow_dir as 'SERVICENOW_DIR';

以下プロシージャをADB上で実行し、servicenow.restをADB上のDIRECTORYにダウンロードしました。

exec DBMS_CLOUD.get_object('OS_CRED',
     'https://objectstorage.ap-tokyo-1.oraclecloud.com/n/テナンシ名/b/場バケット名/o/servicenow.rest','SERVICENOW_DIR');

ServiceNowに対するDBLINKの作成

BASIC認証を使う場合は以下のような形でDBLINKを作成します。先ほどダウンロードしたservicenow.restの場所とファイル名を指定しています。(インスタンス名はトライアルの場合devXXXXXX(Xが数字)です。)

BEGIN
    DBMS_CLOUD_ADMIN.CREATE_DATABASE_LINK(
         db_link_name => 'SERVICENOW_BASIC_LINK',
         hostname => 'インスタンス名.service-now.com', 
         port => '443', 
         service_name => 'インスタンス', 
         ssl_server_cert_dn => null, 
         credential_name => 'SERVICENOW_BASIC_CRED',
         gateway_params => JSON_OBJECT( 
            'db_type' value 'servicenow', 
            'directory_name' value 'SERVICENOW_DIR', 
            'file_name' value 'servicenow.rest')); 
END;
/

ServiceNowインスタンスのデータを抽出

DBLINKを指定してデータ抽出を行うことができます。テーブル名はservicenow.restで指定したものです。

SELECT * FROM incident@SERVICENOW_BASIC_LINK;

以下のようにDatabase Actionsからもデータを参照することができました。(今回トライアルなのでADMINユーザでやっていますが、本番利用を想定する場合はユーザを分けることが望ましいと思います)
image.png

まとめ

Autonomous AI DatabaseからServiceNowへのDBLINK構成を試しました。REST構成ファイルの設定だけが少し特徴的ですが、他のSaaS/DBに対するDBLINKと同様に扱うことができました。

6
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
6
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?