CData Arc × Azure AI Search で社内ナレッジ RAG を構築する

CData Arc × Azure AI Search で社内ナレッジ RAG を構築する

こんにちは。CData Software Japan の杉本です。

この記事では、CData Arc を使って複数のデータソースから自動でデータを収集・変換し、Azure Blob Storage へ集約したうえで、Azure AI Search を使った RAG として構築する手順を紹介します。

本記事は以下の記事の Microsoft Azure 版です。Microsoft 365 を中心に業務が回っている企業であれば、こちらの構成が最もしっくりくるはずです。

CData Arc × Amazon Bedrock で社内ナレッジ RAG を構築する

CData Arc × Agent Searchで、散在するファイルを自社のナレッジへ

シナリオ概要

情報システム部のヘルプデスク業務を想定します。社内のナレッジが以下の3箇所に散在している状況です。

データソース

格納されているデータ

形式

ファイルサーバー

作業手順書

Excel ファイル(.xlsx)

SharePoint Online

社内ミーティングの議事録

Word ファイル(.docx)

kintone

社内問い合わせ管理アプリ

レコード(API 経由)

これらを Azure Blob Storage に集約し、「過去の問い合わせ対応事例や手順書を自然言語で横断検索できるシステム」を構築します。

最終的には『VPN が切断される場合の解決策は?』といった質問に対して、連携したデータを元に生成 AI が回答するようになります。

フロー概要

CData Arc では、データソースごとに独立したフローを作成します。kintone から取得したデータのみ、Script コネクタでテキスト形式に変換しています。理由は後述します。

事前準備

ストレージアカウントとコンテナの準備

Azure Portal でストレージアカウントとコンテナを作成し、データソースごとにフォルダを作成します。

  • knowledge/fileserver/:作業手順書(Excel)

  • knowledge/sharepoint/:議事録(Word)

  • knowledge/kintone/:問い合わせ履歴(テキスト)

Microsoft Foundryのプロジェクトを作成

まずはMicrosoft Foundryでプロジェクトを作成します。

Microsoft Foundry

プロジェクト作成後にまずは埋め込みモデル(text-embedding-3-small)をデプロイします。

あわせて、回答生成に使うチャットモデル(gpt-5-mini)もデプロイしておきます。

Azure AI Search の作成

Azure AI Search サービスを作成します。

CData Arc の設定

ファイルサーバーからの連携

Excel の手順書ファイルをアップロード用のフォルダに準備します。

ファイルサーバーからExcel の手順書ファイルを連携するために、File コネクタの受信アクションを追加します。

File コネクタの設定画面では取得したいフォルダのパスとファイルマスクを指定します。

パス

ファイルの存在するパスを指定

ファイルマスク

パスの全てのExcel ファイルを対象とするため「*.xlsx」と指定

なおファイルサーバーがCData Arc をインストールしたサーバーと異なるサーバーの場合は以下の記事をご参考ください。

Windows 環境の CData Arc からネットワーク共有フォルダにアクセスする方法

そしてFile コネクタで取得したファイルをAzure Blob にアップロードするために、Azure Blob コネクタの送信アクションを追加します。

Azure Blob への接続に必要な情報を入力します。

アカウント

先ほど作成した「arcragdemo」を指定します

認証スキーム

Access Key

アクセスキー

アクセスキーを指定します

コンテナ名

先ほど作成した「knowledge/fileserver」を指定します

リモートファイルを上書き

有効化します

作成したフローをつなげて、実行します。

フローを実行後、knowledgeコンテナのfileserver フォルダ配下に Excel の手順書ファイルがアップロードされていることを確認します。

SharePoint からの連携

社内ミーティングの議事録ファイルを SharePoint のドキュメントライブラリに準備します。

SharePoint から社内ミーティングの議事録ファイルを連携するために、SharePoint コネクタの受信アクションを追加します。

対象SharePoint サイトへの接続設定を作成します。

URL に接続したいSharePoint サイトのURL (例:https://contoso.sharepoint.com/sites/MySite/)を指定して、「SharePoint に接続」ボタンを押します。Microsoftのログイン画面が新たに立ち上がります。ログイン画面でSharePoint への接続で利用するMicrosoft アカウントでログインを行います。

ログイン操作完了後に、「追加およびテスト」より接続設定を保存します。

もしMicrosoft アカウントでのログイン時に、「管理者の同意の付与」を求める画面が表示された場合は、以下のブログ記事ご参照ください。

CData Arc 機能紹介 - SharePoint コネクタ

SharePoint コネクタの設定画面では取得したいフォルダのパスとファイルマスクを指定します。

リモートフォルダ

/Shared Documents/cdata-arc-rag-demo/

ファイルマスク

*.docx

そしてSharePoint コネクタで取得したファイルをAzure Blob にアップロードするために、Azure Blob コネクタの送信アクションを追加します。

Azure Blob への接続に必要な情報を入力します。

アカウント

先ほど作成した「arcragdemo」を指定します

認証スキーム

Access Key

アクセスキー

アクセスキーを指定します

コンテナ名

先ほど作成した「knowledge/sharepoint」を指定します

リモートファイルを上書き

有効化します

作成したフローをつなげて、実行します。

フローを実行後、knowledgeコンテナのsharepoint フォルダ配下に議事録ファイルがアップロードされていることを確認します。

kintone からの連携

kintone に社内問い合わせ管理アプリを準備します。

kintone から社内問い合わせ管理アプリのデータを連携するために、kintone コネクタのSelect アクションを追加します。

最初にkintone への接続情報を作成します。「Connection」の「新しい接続を追加」をクリックします。

接続に必要な以下の情報を設定します。

URL

kintone のURLを指定します

User

kintone ユーザーを指定します

Password

kintone ユーザーのパスワードを指定します

接続作成後、Action タブより対象の社内問い合わせ管理アプリを選択します。

kintone コネクタが出力するのは XML 形式のデータですが、XML をRAGでそのまま扱うのに向いていません(要素名がそのままテキストに混ざり、検索品質を下げます)。XML ファイルからテキストファイルに変換するため、Script コネクタのTransform アクションを追加します。

Script コネクタでは、ArcScriptと呼ばれる独自のスクリプト言語を利用することが可能で、データの加工など様々な追加処理を実施することが可能です。ArcScript の詳細はヘルプも合わせてご参照ください。

ArcScript - CData Arc Documentation

今回Script コネクタでは以下のArcScript を利用して、XML からテキストファイルにデータの構造を変換します。

<arc:set attr="xml.uri" value="[FilePath]" />
<arc:set attr="xml.map:CaseID"         value="/Items/社内問い合わせ管理/ケースID" />
<arc:set attr="xml.map:ApplicantName"  value="/Items/社内問い合わせ管理/申請者名" />
<arc:set attr="xml.map:Department"     value="/Items/社内問い合わせ管理/所属部署" />
<arc:set attr="xml.map:Assignee"       value="/Items/社内問い合わせ管理/担当者" />
<arc:set attr="xml.map:Category"       value="/Items/社内問い合わせ管理/カテゴリ" />
<arc:set attr="xml.map:Title"          value="/Items/社内問い合わせ管理/タイトル" />
<arc:set attr="xml.map:InquiryContent" value="/Items/社内問い合わせ管理/問い合わせ内容" />
<arc:set attr="xml.map:Status"         value="/Items/社内問い合わせ管理/ステータス" />
<arc:set attr="xml.map:Priority"       value="/Items/社内問い合わせ管理/優先度" />
<arc:set attr="xml.map:ReceivedDate"   value="/Items/社内問い合わせ管理/受付日" />
<arc:set attr="xml.map:ResolvedDate"   value="/Items/社内問い合わせ管理/解決日" />
<arc:set attr="xml.map:Solution"       value="/Items/社内問い合わせ管理/解決策" />
 
<arc:call op="xmlDOMGet" in="xml" out="result">
<arc:set attr="output.filename">[result.CaseID].txt</arc:set>
<arc:set attr="output.data">ケースID: [result.CaseID]
申請者: [result.ApplicantName]([result.Department])
担当者: [result.Assignee]
カテゴリ: [result.Category]
タイトル: [result.Title]
問い合わせ内容: [result.InquiryContent]
ステータス: [result.Status]
優先度: [result.Priority]
受付日: [result.ReceivedDate] / 解決日: [result.ResolvedDate]
解決策: [result.Solution]
</arc:set>
</arc:call>
 
<arc:push item="output" />

実際にScript コネクタで変換したデータが以下になります。

最後にAzure Blob にアップロードするために、Azure Blob コネクタの送信アクションを追加します。

Azure Blob への接続に必要な情報を入力します。

アカウント

先ほど作成した「arcragdemo」を指定します

認証スキーム

Access Key

アクセスキー

アクセスキーを指定します

コンテナ名

先ほど作成した「knowledge/kintone」を指定します

リモートファイルを上書き

有効化します

作成したフローをつなげて、実行します。

フローを実行後、knowledgeコンテナのkintoneフォルダ配下に、kintone のレコードがテキストファイルとしてアップロードされていることを確認します。

なお今回は手動でフローの実行を行いましたが、実運用では定期的なAzure Blobへのアップロードが必要になります。CData Arc の Automation 機能を使ってフローをスケジュール実行することが可能です。

Azure AI Search の設定

「データのインポート」ウィザード(RAG シナリオ)

Azure AI Search のポータルから「データのインポート」 ウィザードを開き、データソースとしてAzure Data Lake Storage Gen2、シナリオとして RAG を選択します。このウィザードひとつで、データソース・スキルセット(チャンク分割 + ベクトル化)・インデックス・インデクサーがまとめて作成されます。

knowledge コンテナを対象にウィザードを進めます。

データソース

Azure Data Lake Storage Gen2

シナリオ

RAG

ストレージアカウント

arcragdemo

Blobコンテナ

knowledge

解析モード

既定値

ベクトル化の設定も行います。

種類

Azure OpenAI

Microsoft Foundry サービス/プロジェクト

作成した「arcragdemo」を指定

モデルデプロイ

text-embedding-3-small

認証

APIキー

スケジュールを設定しておくと、インデクサーが定期的に Blob を巡回し、新規・更新されたファイルをインデックスに反映してくれます。ここでは「毎日」を指定します。

作成が完了すると、用意したドキュメントを検索できるようになっています。検索エクスプローラーに移動してテストしてみましょう。

デモ:Microsoft Foundry のエージェントから質問する

作成したインデックスをナレッジとして持つエージェントを Microsoft Foundry で作成し、プレイグラウンドで質問します。

1. Azure AI Search への接続を登録する

プロジェクトの「管理センター」→「接続されたリソース」→「新しい接続」で「Azure AI Search」を選び、作成した検索サービスを登録します。

2. エージェントを作成する

「モデル」→「プレイグラウンド」より「エージェントとして保存」します。次のように設定します。

モデル

gpt-5-mini

指示

あなたは社内ヘルプデスクです。ナレッジ検索の結果のみを根拠に日本語で回答し、根拠が見つからない場合はその旨を答えてください。

3. ナレッジに Azure AI Search を追加する

エージェントの「ナレッジ」→「追加」→「Foundry IQに接続する」→「新しいベースを作成する」を選択します。

ソースの追加より、「Azure AI Search インデックス」を選択します。

検索インデックスに作成したインデックスを指定します。

4. プレイグラウンドで質問する

「プレイグラウンドで試す」から質問します。

質問: 『VPN が切断される場合の解決策は?』

回答とあわせて、根拠となったドキュメント(引用元)も確認できます。ファイルサーバーの手順書と kintone の過去対応事例が、同じ回答の中で参照されている点に注目してください。3 つのバラバラのシステムが、利用者からは 1 つのナレッジベースに見えている状態が実現できています。

ほかの質問も試してみます。

質問: 『プリンタが印刷できないという問い合わせの主な原因と対処方法は?』 

おわりに

この記事では、CData Arc を使って複数のデータソースから自動でデータを収集・変換し、Azure Blob Storage へ集約したうえで、Azure AI Search の統合ベクトル化を使った RAG として構築する手順を紹介しました。

CData Arc は30日間の無償トライアルをご利用いただけます。製品を試していただく中で何かご不明な点があれば、テクニカルサポートへお気軽にお問い合わせください。

この記事では CData Arc 2026 - 26.3.9750 を利用しています