メインコンテンツへスキップ
見出し画像

DatabricksにServiceNow AI Agentから読み取らせるRAGデータ環境を構築してZero Copy Connectorsで繋ぐ実装手順まとめ

    ServiceNowのWorkflow Data FabricにはZero Copy Connectorsというコネクターが存在し、これによってさまざまなデータレイクやクラウド上の大量レコードデータをメモリ上で物理移動させずに高速に読み取りする機能があります。

    Zero Copy Connectorsは、外部システムからデータをメモリ上のWorkflow Data Fabricテーブルに展開し読み取りアクセスできるようにします。この際にServiceNowが得意とするデータアクセス制御のACLにより、ユーザー側へ読み取り可能なデータ範囲を規制し安全なデータ利用環境を提供します。
    ※以下URLは、Australiaバージョンでサポートされるプライマリー・コネクター情報です。

    続々とサポートされる接続先が増えていってます。Snowflake、Databricks、Amazon RedShiftとS3 Table、Google BigQuery、Oracle、Teradata、Apache Icebergなど・・。

    Zero Copy Connectorsを利用するAI Agent技術については別途当ブログで紹介しようと思いますが、まずは接続検証をするにあたり、実際の接続環境を使いたいので、無償環境の払い出しが簡単で利用しやすいDatabrics上でのRAG(Retrieval-Augmented Generation)データ整備の初期手順を自分の備忘録かねて掲載したいと思います。

    1.アカウント登録と無料トライアル環境の払い出し


    以下、Databricksのトライアルサイトよりアカウント登録から無料トライアル環境の払い出しを行います。
    ※利用に際しては、DatabricksのFree Editionライセンス利用ポリシーに準拠ください。

    アカウントは基本的にメールアドレスの登録で行います。実際に利用する
    機能はFree Edition版の範囲になりますが、データを格納するテーブルやそのデータをZero Copy Connectors接続で高速読み取りを検証する構成としては十分です。

    画像
    アカウント登録後にログインした直後のDatabricks画面

    ServiceNow側のDatabricksコネクタについては、以下Docsを参照ください。
    https://www.servicenow.com/docs/r/ja-JP/zurich/integrate-applications/workflow-data-fabric-hub/databricks-wdf.html

    2.データのバルクアップロードによる登録

    早速データ環境を作成してゆきます。
    [+新規]メニューより、[データを追加またはアップロード]を選択します。

    画像
    データを追加またはアップロード

    [テーブルを作成または変更]を選択します。

    画像
    テーブルを作成または変更

    バルクでアップロードするファイル形式はExcel、CSV、jsonなど様々な様式がサポートされているようです。Excelデータをアップロードしてみます。

    画像
    アップロード用ファイルの選択

    Databricksで独特なお作法であるカタログやスキーマ、テーブル名を指定してデータを追加します。
    ・カタログ:workspace
    ・スキーマ:default
    ・テーブル名:任意のテーブル名

    画像
    カタログ・スキーマの選択 & テーブル名の指定

    簡単なデータ構造ですが、テーブルの作成およびデータの登録が完了しました。

    画像
    レコードデータの登録完了

    3.権限付けの定義

    ServiceNow側から接続するユーザーを限定せずに全ユーザーが全てのレコードデータを読み取りできるように権限を付与します。高速読み取り後の実際のデータ参照はServiceNow側のACLでデータアクセス制御できるようになるので、接続上での設定はこれで問題ありません。

    画像
    権限の付与メニュー

    読み取りの権限を付与します。

    画像
    権限の付与

    4.OAuthトークンキーの払い出し

    続いて、認証周りの設定を行ってゆきたいと思います。ServiceNowインスタンスからセキュアな接続による認証を構成するために、OAuth認証を介してDatabricks側の起動サービスに接続を行う定義をしてゆきます。
    ※DatabricksのOAuth認証に関する情報はこちらを参照ください。

    [設定]より、[IDとアクセス]からサービスプリンシパルの[管理]メニューを選択します。

    画像
    サービスプリンシパルの管理メニュー

    接続を行わせるユーザーの設定を行います。
    ・サービスプリンシパル名:任意の名前
    ・ロールの付与:今回は管理者とユーザーの権限を付与しています。

    画像
    サービスプリンシパル名とロールの設定

    続けて[シークレット]メニューより、OAuthのシークレット(トークンキー)を生成します。
    ・存続期間:任意の値で1~730の範囲の日数

    画像
    OAuthシークレットの生成

    OAuthシークレットキー(トークンキー)とOAuth クライアントIDが払い出されます。この値をメモ帳などにコピーして退避します。
    ※シークレットキーは1回しか表示されないので、扱いに注意ください。

    画像
    OAuthシークレットキーとOAuth クライアントIDの払い出し

    5.接続設定情報の確認

    ServiceNowインスタンスからZero Copy ConnectorsのSQLクラスタから接続行う接続先情報をSQLウェアハウスから確認し取得します。ここで接続情報として、メモ帳にコピーしておきたい項目は以下の2つです。
    ・HTTPパス
    ・JDBC URL

    画像
    SQLウェアハウスの接続設定

    これで設定は完了しました。

    6.Workflow Data Fabric Hubからの接続確認

    Zero Copy Connectorsで接続できる環境が整いましたので、さっそくServiceNowのWDF管理画面でDatabricksへの接続を行わせてみようと思います。
    開発インスタンス上でまずは、Storeより、[Workflow Data Fabric]と[Databricksコネクタ]の適応リクエストよりインストールを行っておきます。

    ファイルナビゲータメニューの[Workflow Data Fabricハブ]を開き、利用可能なコネクタから[Databricks]を選択します。

    画像
    新しいDatabricks接続の入力画面

    ここで、以下図のように接続設定情報を入力します。
    ・接続ラベル:任意の名前
    ・OAuth Client ID:シークレット払い出し時のクライアントID
    ・OAuth secret:シークレット払い出し時のシークレットキー
    ・Catalog name:Workspace
    ・Connection URL:SQLウェアハウスのJDBC URL
    ・Warehouse or compute path:SQLウェアハウスのHTTPパス

    画像
    Workflow Data FabricのDatabricks接続設定画面

    入力後に、[Save and Connection]ボタンで設定保存と接続を実施します。
    接続が成功すると、以下のようにDatabricks側のテーブルがデータ資産として参照できるようになります。

    画像
    Databricks側のテーブルが参照可能に

    続けて、Databricksのデータを格納するフィールド(カラム)のマッピング定義を行います。

    画像
    DatabricksテーブルカラムとWDFテーブルのフィールドをマッピング

    設定後に、[リストを開く]を選択します。

    画像
    リストを開くメニュー

    メモリ上で、Databricksのレコードデータを読み取りできるようになりました。

    画像
    メモリ上のWDFテーブル上に読み取り展開されたレコードデータ

    如何でしたでしょうか。ServiceNowインスタンスからDatabricks上のRAGデータを参照させる接続はこうした設定で実装可能です。

    今回は接続を行わせる接続設定回りについての設定手順と技術情報を纏めてみました。物理移動なしに大量データの高速読み取りアクセスができるメリットは大きいと思えます。様々なデータ利用ケースにてご参考にして頂ければ幸いです。




     
     
    東京都在住/自動化(テスト・RPAなど)大好き/LLMへAPI接続して遊ぶことが趣味/外資系SaaSの導入向け技術職/中学受験向け我が家塾の経験/Gemini Enterprise / Google ADK / マルチエージェント(A2A・MCP)× エンタープライズ業務実装

    あなたへのおすすめ