ServiceNow SQL API の使用開始
この ServiceNow SQL API は、業界標準の ODBC および JDBC ドライバーを介して ServiceNow インスタンスへのデータアクセスを提供し、ビジネスインテリジェンス (BI) ツールとデータ分析プラットフォームからの直接接続を可能にします。
ServiceNow SQL API プラグインは、クエリ専用インターフェイスServiceNow Web サービスサポートを使用します。デフォルトでは、このプラグインは SELECT ステートメントのみをサポートしているため、外部アプリケーションは許可されたテーブルをクエリできます。これにより、限られたセットの追加 SQL コマンドが許可され、より複雑なクエリを作成して関連するデータのみを取得できます。
SQL APIで実現できること
SQL API を使用すると、次のことができます。
- コネクト BI ツール: Power BI、DBeaver、DBvisualizer、その他の ODBC/JDBC 互換ツールなどの標準 BI プラットフォームを ServiceNow データと直接統合します。
- データの安全なクエリ:読み取り専用操作を通じてデータにアクセスし、 ServiceNow レコードの意図しない変更を回避します。目的のテーブルへのアクセスのみを許可します。
- データの重複を排除する:外部リポジトリやデータウェアハウスにレプリケートすることなく、 ServiceNow データを直接クエリします。
- データソースを組み合わせる: ServiceNow データを分析プラットフォームの外部データセットとマージして、包括的な分析を行います。
- データ転送の最適化:ターゲット SQL クエリを作成して必要なデータのみを取得し、データ パイプラインとデータ変換のネットワーク オーバーヘッドを削減し、パフォーマンスを向上させます。
SQL API の仕組み
SQL API を使用して BI ツールを ServiceNow インスタンスに接続する場合は、ODBC または JDBC API を使用して標準のデータベース接続を確立します。接続後、SQL クエリを記述して、 ServiceNow テーブルとフィールドからデータを取得できます。API はクエリを処理し、結果を標準の表形式で返します。BI ツールはこれを視覚化、分析、またはエクスポートできます。パススルークエリのサポート
SQL APIはパススルークエリをサポートしているため、ServiceNowデータで直接実行されるSQLステートメントを記述できます。これにより、次のことが可能になります。
- WHERE 句を適用して、ソースでデータをフィルタリングします。
- ServiceNow側で集計 (COUNT、SUM、AVG など) を実行します。
- 単一のクエリで複数の ServiceNow テーブルを結合します。現在、クエリエンジンは INNER 結合と LEFT OUTER 結合のみをサポートしています。
- 結果セットを制限してデータ転送を減らします。
ソースでクエリを処理することで、ネットワーク経由で転送されるデータの量を減らし、全体的なクエリのパフォーマンスを向上させることができます。
セキュリティとアクセス制御
SQL APIにアクセスしても、現在のServiceNowセキュリティモデルが引き続き適用されます。API は ServiceNow ACL モデルを実装します。これは、次のことを意味します。
- ServiceNowロールと権限で許可されているデータにのみアクセスできます。
- すべての ID およびアクセス管理プロトコルは API レベルで適用されます。
- クエリは、テーブルレベル、行レベル、フィールドレベル、クエリレベル、およびレコードレベルのセキュリティルールに従います。
-
デフォルトでは、 SQL API は、 ServiceNow のデフォルトで安全なアプローチに従って、すべてのクエリのテーブル、行、およびフィールドレベルでアクセスをチェックします。SQL APIはインスタンス内のすべての ACL をレコードごとに検証するため、応答時間が長くなる可能性があります。これは想定されたことです。
ユースケースで行レベルおよびフィールドレベルのチェックが必要ない場合は (ビジネスインテリジェンス統合など)、サービスアカウントに
sn_sql_api_privileged_modeロールを割り当てることでチェックをオフにできます。テーブルレベルの ACL チェックは常に有効であり、オフにすることはできません。 - 認証 はすべての接続に必要です。
さらに、 SQL API は設計上読み取り専用です。このインターフェイスを介して INSERT、UPDATE、または DELETE 操作を実行することはできません。これにより、本番データの誤った変更を回避できます。