次の方法で共有


PostgreSQL Microsoft Graph コネクタ (プレビュー)

PostgreSQL Microsoft Graph コネクタを使用すると、organizationで PostgreSQL データベースからレコードのインデックスを作成できます。 コネクタを構成した後、エンド ユーザーは、Microsoft Copilotの PostgreSQL と任意の Microsoft Search クライアントからこれらのレコードを検索できます。

この記事は、Microsoft 365 管理者、または PostgreSQL Graph コネクタを構成、実行、監視するユーザーを対象とします。

注:

PostgreSQL コネクタはプレビュー段階です。 アクセスして試したい場合は、管理 アカウントの対象リリース リングを有効にする必要があります。

機能

  • SQL クエリを使用して PostgreSQL データベースからレコードのインデックスを作成します。
  • SQL クエリで追加されたユーザーまたはグループの一覧を使用して、すべてのレコードのアクセス許可を指定します。
  • エンド ユーザーが Copilot のインデックス付きレコードに関連する質問を行えるようにします。
  • Copilot のセマンティック検索を使用して、ユーザーがキーワード、個人の好み、ソーシャル接続に基づいて関連するコンテンツを検索できるようにします。

制限事項

  • サポートされている PostgreSQL バージョン: コネクタは PostgreSQL バージョン 14 以降をサポートしています。
  • 高いクロール速度とパフォーマンスをサポートするために、コネクタは OLTP (オンライン トランザクション処理) ワークロードのみをサポートするように構築されています。 指定された SQL クエリを 40 秒のタイムアウトで実行せず、サポートされていない OLAP (オンライン分析処理) ワークロード。
  • ACL は、ユーザー プリンシパル名 (UPN)、Microsoft Entra ID、または Active Directory セキュリティを使用してのみサポートされます。
  • データベース列内のリッチ コンテンツのインデックス作成はサポートされていません。 このようなコンテンツの例としては、データベース列内にリンクとして存在する HTML、JSON、XML、BLOB、ドキュメント解析などがあります。

前提条件

  • organizationの Microsoft 365 テナントの検索管理者である必要があります。
  • Microsoft Graph コネクタ エージェントをインストールする: PostgreSQL サーバーにアクセスするには、コネクタ エージェントをインストールして構成する必要があります。 詳細については、「 Microsoft Graph コネクタ エージェントのインストール 」を参照してください。
  • PostgreSQL サーバー アドレス: PostgreSQL データに接続するには、organizationの PostgreSQL サーバー アドレスが必要です。
  • サービス アカウント: PostgreSQL サーバーに接続し、Microsoft Graph Connector がレコードを定期的に更新できるようにするには、サービス アカウントに読み取りアクセス許可が付与されたサービス アカウントが必要です。

セットアップの概要

1. 表示名

表示名は、Copilot の各引用文献を識別するために使用され、ユーザーが関連付けられているファイルまたは項目を簡単に認識するのに役立ちます。 表示名は、信頼されたコンテンツも示します。 表示名は、 コンテンツ ソース フィルターとしても使用されます。 このフィールドには既定値が存在しますが、organizationのユーザーが認識する名前にカスタマイズできます。

2. PostgreSQL サーバー

PostgreSQL データに接続するには、PostgreSQL サーバー のアドレス、ポート、およびデータベース名が必要です。

3. 認証の種類

PostgreSQL コネクタでは、データベースに接続するためのパスワード ベースの認証のみがサポートされます。

4. 限定対象ユーザーにロールアウトする

この接続を限定されたユーザー ベースにデプロイします。ロールアウトをより広範な対象ユーザーに展開する前に、Copilot やその他の Search サーフェスで検証する必要がある場合は、この接続をデプロイします。 制限付きロールアウトの詳細については、 こちらをクリックしてください

コンテンツ

データベース コンテンツを検索するには、コネクタを構成するときに SQL クエリを指定する必要があります。 これらの SQL クエリでは、インデックスを作成するすべてのデータベース列に名前を付ける必要があります (ソース プロパティ)。 これには、すべての列を取得するために実行する必要がある SQL 結合が含まれます。 検索結果へのアクセスを制限するには、コネクタを構成するときに SQL クエリ内でAccess Control Lists (ACL) を指定する必要があります。

1. フル クロール (必須)

a. データ列の選択 (必須) と ACL 列 (省略可能)

[クリックして展開]フル クロール クエリのデータ列の選択。

この手順では、データベースのフル クロールを実行する SQL クエリを構成します。 フル クロールでは、Microsoft Copilotまたは検索で表示する必要があるすべての列またはプロパティが選択されます。 ACL 列を指定して、検索結果のアクセスを特定のユーザーまたはグループに制限することもできます。

ヒント

必要なすべての列を取得するには、複数のテーブルを結合できます。

この例では、検索のデータを保持する 5 つのデータ列 (OrderId、OrderTitle、OrderDesc、CreatedDateTime、IsDeleted) を示します。 データの各行の表示アクセス許可を設定するには、必要に応じて、次の ACL 列 (AllowedUsers、AllowedGroups、DeniedUsers、DeniedGroups) を選択できます。 これらのすべてのデータ列には、 クエリ検索取得、または 絞り込みオプションもあります。

次のクエリ例に示すように、データ列を選択します。 SELECT OrderId, OrderTitle, OrderDesc, AllowedUsers, AllowedGroups, DeniedUsers, DeniedGroups, CreatedDateTime, IsDeleted

SQL コネクタでは、SELECT 句で英数字以外の列名を使用することはできません。 エイリアスを使用して、列名から英数字以外の文字を削除します。 例 - SELECT column_name AS columnName

検索結果へのアクセスを管理するには、クエリで 1 つ以上の ACL 列を指定します。 SQL コネクタを使用すると、レコード レベルごとにアクセスを制御できます。 テーブル内のすべてのレコードに対して同じアクセス制御を選択できます。 ACL 情報が別のテーブルに格納されている場合は、クエリでそれらのテーブルとの結合を行う必要がある場合があります。

上記のクエリで ACL 列を使用する方法を次に示します。 次の一覧では、4 つの アクセス制御メカニズムについて説明します

  • AllowedUsers: この列は、検索結果にアクセスできるユーザー ID の一覧を指定します。
  • AllowedGroups: この列は、検索結果にアクセスできるユーザーのグループを指定します。
  • DeniedUsers: この列は、検索結果にアクセス できない ユーザーの一覧を指定します。
  • DeniedGroups: この列は、検索結果にアクセス できない ユーザーのグループを指定します。

b. サポートされているデータ型

[クリックして展開]サポートされているデータ型の一覧。

次の表は、PostgreSQL コネクタでサポートされている SQL データ型をまとめたものです。 テーブルには、サポートされている SQL データ型のインデックス作成データ型も要約されています。 インデックス作成でサポートされている Microsoft Graph コネクタのデータ型の詳細については、 プロパティ リソースの種類に関するドキュメントを参照してください。

カテゴリ ソース データ型 データ型のインデックス作成
数値 smallint
integer
bigint
smallserial
シリアル
bigserial
int64
数値 decimal
数値
real
倍精度
double
文字 character varying(n)
varchar(n)
character(n)
char(n)
bpchar(n)
bpchar
テキスト
string
貨幣の お金 int64
Binary bytea string
日付/時刻 タイム ゾーンのない timestamp [(p)]
タイム ゾーンを含む timestamp [(p)]
date
time [(p)] (タイム ゾーンなし)
time [(p)] とタイム ゾーン
日付型
日付/時刻 interval [fields] [(p)] string
ブール型 ブール値 ブール値
列挙 列挙 string

現在直接サポートされていない他のデータ型の場合、列はサポートされているデータ型に明示的にキャストする必要があります。


c. 透かし (必須)

[クリックして展開]フル クロール クエリでの透かし列の指定

データベースの過負荷を防ぐために、コネクタはフル クロール透かし列を使用してフル クロール クエリをバッチ処理して再開します。 透かし列の値を使用すると、後続の各バッチがフェッチされ、最後のチェックポイントからクエリが再開されます。 基本的に、このメカニズムはフル クロールのデータ更新を制御します。

次の例に示すように、透かしのクエリ スニペットを作成します。

  • WHERE (CreatedDateTime > @watermark). 予約されたキーワード (keyword) @watermarkで透かしの列名を引用します。 透かし列の並べ替え順序が昇順の場合は、 >を使用します。それ以外の場合は、 <を使用します。
  • ORDER BY CreatedDateTime ASC. 基準値列を昇順または降順で並べ替えます。

行の最初のバッチをフェッチするには、透かし列のデータ型を指定します。

最初のクエリでは、"CreatedDateTime > 1753 年 1 月 1 日 00:00:00" (DateTime データ型の最小値) を使用して、最初の N 行数をフェッチします。 最初のバッチがフェッチされると、行が昇順で並べ替えられた場合、バッチで返される CreatedDateTime の最大値がチェックポイントとして保存されます。 たとえば、2019 年 3 月 1 日 03:00:00 です。 次に、クエリで "CreatedDateTime > March 1, 2019 03:00:00" を使用して、N 行の次のバッチがフェッチされます。


2. 論理的な削除手順 (省略可能)

データベース内の論理的に削除された行をインデックス付けから除外するには、論理的な削除列の名前と、行が削除されたことを示す値を指定します。

ユーザー

1. アクセス許可情報を含む列をマップする

[ マップ列 ] を選択して、アクセス制御メカニズムを指定するさまざまなアクセス制御 (ACL) 列を選択します。 フル クロール SQL クエリで指定した列名を選択します。

ACL の各列は、複数値の列である必要があります。 セミコロン (;)、コンマ (、) などの区切り記号は、これらの複数の ID 値を区切ることができます。 値区切り記号フィールドでこの 区切り記号 を指定する必要があります。

ACL としての使用では、次の ID の種類がサポートされています。

  • ユーザー プリンシパル名 (UPN): ユーザー プリンシパル名 (UPN) は、電子メール アドレス形式のシステム ユーザーの名前です。 UPN (例: john.doe@domain.com) は、ユーザー名 (ログオン名)、区切り記号 (@ 記号)、ドメイン名 (UPN サフィックス) で構成されます。
  • Microsoft Entra ID: Microsoft Entra IDでは、すべてのユーザーまたはグループに'e0d3ad3d-0000-1111-2222-3c5f5c52ab9b' のようなオブジェクト ID があります。
  • Active Directory (AD) セキュリティ ID: オンプレミスの AD セットアップでは、すべてのユーザーとグループに、'S-1-5-21-3878594291-215959936-132693609-65242'のような不変の一意のセキュリティ識別子があります。

2. アクセス許可

前の手順で指定した ACL を使用するか、上書きしてコンテンツをすべてのユーザーに表示するようにすることができます。

同期

更新間隔によって、データ ソースと Graph コネクタ インデックスの間でデータが同期される頻度が決まります。

ここに存在するスケジュール オプションに基づいて、フル クロールと増分クロールを構成できます。 既定では、増分クロール (構成されている場合) は 15 分ごとに設定され、フル クロールは毎日に設定されます。 必要に応じて、データ更新のニーズに合わせてこれらのスケジュールを調整できます。

この時点で、PostgreSQL の接続を作成する準備ができました。 [作成] ボタンをクリックすると、データベースから接続とインデックス データを発行できます。

トラブルシューティング

接続を公開したら、管理センターの [データ ソース] タブの状態を確認できます。 更新と削除を行う方法については、「接続を監視する」をご覧ください。

問題がある場合、またはフィードバックを提供する場合は、Microsoft Graph にお問い合わせください |サポート