
こんにちは。CData Software Japan の杉本です。
CData Arc は、コネクタを組み合わせるだけでデータ連携フローを構築できる統合プラットフォームです。kintone や Salesforce、Box といったクラウドサービスから、オンプレミスのファイルサーバーやデータベースまで、様々なコネクタが用意されており、データの置き場所や形式を問わずシームレスに連携できます。さらに ArcScript と呼ばれる独自のスクリプト言語を使えば、取得したデータをそのまま流すだけでなく、目的に合わせた形式への変換・加工まで一気通貫で行えます。この「つなぐ・変換する・送る」という CData Arc の得意技が、生成 AI の世界でも活きてきます。
RAG(Retrieval Augmented Generation)では、AI が回答を生成する際に参照するドキュメントをいかに正確に・効率よく用意できるかが品質を大きく左右します。しかし実際の社内データは、kintone の問い合わせ履歴、Box の議事録、ファイルサーバーの手順書など、あちこちに散在していることがほとんどです。それを一つひとつ手作業で集めて整形するのは現実的ではありません。
本記事では、CData Arc を使ってこれら複数のデータソースから自動でデータを収集・変換し、Amazon S3 へ集約したうえで Amazon Bedrock Knowledge Base の RAG として構築する手順を紹介します。
Amazon Bedrock Knowledge Base とは
Amazon Bedrock Knowledge Base は、RAG をフルマネージドで実現する AWS のサービスです。S3 に置いたドキュメントを自動でチャンキング・ベクトル化してナレッジベースに取り込み、ユーザーの質問に対して意味的に近いドキュメントを検索したうえで Claude などの LLM に渡して回答を生成します。
シナリオ概要
社内データは複数のデータソースに散在していることが殆どです。今回は情報システム部のヘルプデスクのような場面を想定して、以下の箇所に各データが存在するとします。
ファイルサーバー | 作業手順書(Excel ファイル) |
Box | 社内ミーティングの議事録(Markdown ファイル) |
kintone | 社内問い合わせ管理アプリ |
上記のデータをS3に集約して、「過去の問い合わせ対応事例や手順書を自然言語で横断検索できるシステム」を構築します。『VPNが切断される場合の解決策は?』と質問すれば、kintoneの対応履歴と手順書を横断して回答を返します。
実行イメージ
最終的には以下のようにプロンプトを入力すると、連携したデータを元に生成 AIが回答してくれるようになります。



フロー概要
今回のシナリオでは以下の画像のようなフローを作成します。

事前準備
S3 バケットの準備
データを格納するためのS3 バケットを作成します。今回は「cdata-arc-rag-demo」というS3 バケットを作成します。

そして作成したバケットの中に各連携元に対応するフォルダを作成しておきます。

CData Arcの設定
ファイルサーバーからの連携
まずアップロード用のExcel の手順書ファイルを準備します。


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

File コネクタの設定画面では取得したいフォルダのパスとファイルマスクを指定します。
パス | ファイルの存在するパスを指定 |
ファイルマスク | パスの全てのExcel ファイルを対象とするため「*.xlsx」と指定 |

なおファイルサーバーがCData Arc をインストールしたサーバーと異なるサーバーの場合は以下の記事をご参考ください。
Windows 環境の CData Arc からネットワーク共有フォルダにアクセスする方法
そしてFile コネクタで取得したファイルをS3 にアップロードするために、S3 コネクタの送信アクションを追加します。

S3 への接続に必要な情報を入力します。
バケット名 | 先ほど作成した「cdata-arc-rag-demo」と指定します。 |
リージョン | バケットを作成したリージョンを指定します。 |
アクセスキー | アクセスキーを指定します。 |
シークレットキー | シークレットキーを指定します。 |
プレフィックス | S3 バケットのファイルサーバーフォルダにアップロードしたいので、「ファイルサーバー」と指定します。 |


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

フローを実行した後にS3 を確認して、Excel の手順書ファイルがアップロードされていることを確認します。

Box からの連携
まずアップロード用のMarkdown形式 の社内ミーティングの議事録ファイルを準備します。


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

Box コネクタの設定画面では取得したいフォルダのパスとファイルマスクを指定します。
リモートフォルダ | Box のフォルダを指定 |
ファイルマスク | フォルダ内の全てのMarkdown ファイルを対象とするため「*.md」と指定 |

次にBox への接続を確立します。Box コネクタでは、Box との接続をOAuth 認証で確立します。「新しいアクセストークンを取得」をクリックすると、ブラウザが起動しBox のログインページが表示されます。


Box アカウントへのアクセスをCData Arc に許可するか確認されます。「Box へのアクセスを許可」します。

「認可の取得に成功しました。」と表示されれば成功です。

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

S3 への接続に必要な情報を入力します。
バケット名 | 先ほど作成した「cdata-arc-rag-demo」と指定します。 |
リージョン | バケットを作成したリージョンを指定します。 |
アクセスキー | アクセスキーを指定します。 |
シークレットキー | シークレットキーを指定します。 |
プレフィックス | S3 バケットのBoxフォルダにアップロードしたいので、「Box」と指定します。 |

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

フローを実行した後にS3 を確認して、Markdown の議事録ファイルがアップロードされていることを確認します。

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


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

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

接続に必要な以下の情報を設定します。
URL | kintone のURLを指定します |
User | kintone ユーザーを指定します |
Password | kintone ユーザーのパスワードを指定します |

接続を作成したら、次はテーブルからkintone の社内問い合わせ管理アプリを選択します。


XML アウトプットのプレビューで取得するデータの構造を確認します。

kintone コネクタなどのアプリケーションコネクタやデータベースコネクタは通常取得したデータを後続のフローにXML ファイル形式で連携します。Amazon Bedrock Knowledge Base はXML ファイルの形式に対応していないため、今回は一度テキストファイルに変更してS3 コネクタにアップロードします。
XML ファイルからテキストファイルに変換するため、Script コネクタのTransform アクションを追加します。

Script コネクタでは、ArcScriptと呼ばれる独自のスクリプト言語を利用することが可能で、データの加工など様々な追加処理を実施することが可能です。ArcScript の詳細はヘルプも合わせてご参照ください。
今回Script コネクタでは以下のArcScript を利用して、XML からテキストファイルにデータの構造を変換します。
[result.CaseID].txt
ケース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]

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

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

S3 への接続に必要な情報を入力します。
バケット名 | 先ほど作成した「cdata-arc-rag-demo」と指定します。 |
リージョン | バケットを作成したリージョンを指定します。 |
アクセスキー | アクセスキーを指定します。 |
シークレットキー | シークレットキーを指定します。 |
プレフィックス | S3 バケットのkintone フォルダにアップロードしたいので、「kintone」と指定します。 |

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

フローを実行した後にS3 を確認して、kintone の社内問い合わせ管理アプリで取得したデータがテキストファイルとしてアップロードされていることを確認します。

なお今回は手動でフローの実行を行いましたが、実運用では定期的なS3 へのアップロードが必要になります。CData Arc の Automation 機能を使ってフローをスケジュール実行することが可能です。
Amazon Bedrock Knowledge Base の設定
S3 Vector Bucket
今回はベクトルストアにS3 Vector Bucketを利用します。「cdata-arc-rag-demo」というベクトルバケットを作成します。


次に作成したベクトルバケット内にベクトルインデックスを作成します。ディメンションや距離メトリックは使用する埋め込みモデルに合わせてください。

ベクトルインデックス名 | cdata-arc-rag-demo-vector-index |
ディメンション | 1024 |
距離メトリック | コサイン |

ナレッジベースの作成
Amazon Bedrock のコンソールページより、ナレッジベースを作成します。

「作成」より「ベクトルストアを含むナレッジベース」を選択します。

ナレッジベースの詳細を指定します。
ナレッジベース名 | knowledge-base-cdata-arc-rag-demo |
データソース | Amazon S3 |

データソースを設定します。
S3 のURI | s3://cdata-arc-rag-demo |

データストレージと処理を設定します。
基盤モデル | Amazon Titan Text Embeddings V2 |
ベクトルストアの作成方法 | 既存のベクトルストアを使用 |
ベクトルストア | 先ほど作成したcdata-arc-ragのベクトルバケットとcdata-arc-rag-demo-vector-indexのベクトルインデックスを選択 |

最後にナレッジベースを作成します。
データソースの同期
ナレッジベースの作成後にデータソースの同期を実行します。同期を実行することで、S3 バケットのドキュメントがベクトルストア(S3 Vector Bucket)に同期されます。

デモ
それでは実際に作成したナレッジベースを「ナレッジベースをテスト」より利用してみます。

テスト画面よりモデルを選択して、プロンプトを入力します。

回答内容を確認すると、回答の元のなったデータを確認することも可能です。


おわりに
この記事では、CData Arc を使ってこれら複数のデータソースから自動でデータを収集・変換し、Amazon S3 へ集約したうえで Amazon Bedrock Knowledge Base の RAG として構築する手順を紹介しました。製品を試していただく中で何かご不明な点があれば、テクニカルサポートへお気軽にお問い合わせください。
https://jp.cdata.com/support/submit.aspx
この記事では CData Arc™ 2026 - 26.2.9631.0 を利用しています