DBMS_CLOUDを使用したAutonomous AI DatabaseでのSharePointのサポート

SharePointサポートでは、プロバイダ固有のURIおよび資格証明オブジェクトを含むDBMS_CLOUDおよびDBMS_CLOUD_PIPELINEパッケージを使用して、Microsoft SharePointに格納されているファイルにアクセスできます。

SharePointにファイルを格納する場合は、DBMS_CLOUDパッケージを使用して、既存のクラウド・オブジェクト・ストアの統合と一貫した方法でデータをリストおよび取得できます。

SharePointのサポートにより、Autonomous AI Databaseでの外部コンテンツのリスト、ダウンロードおよびダウンストリーム処理が可能になります。

DBMS_CLOUD_PIPELINEパッケージのDOWNLOADパイプライン・タイプを使用すると、Autonomous AI Databaseは、さらに分析および索引付けするために外部ファイルを取得できます。

始める前に

DBMS_CLOUDでSharePointを使用する前に、データベース資格証明オブジェクトの作成に必要なクライアント資格証明があることを確認してください。

SharePointユーザー、またはSharePointコンテンツにアクセスできるAzureアプリケーションのクライアントIDおよびクライアント・シークレットを使用して資格証明を作成できます。

サポートされるパッケージ

次の操作では、SharePoint URIがサポートされます。

  • DBMS_CLOUD.GET_OBJECT

  • DBMS_CLOUD.LIST_OBJECTS

  • DBMS_CLOUD.LIST_OBJECTS_EXTENDED

  • DBMS_CLOUD_AI.CREATE_VECTOR_INDEX

ノート

ノート: SharePointは、DBMS_CLOUD_PIPELINEプロシージャのDOWNLOADパイプライン・タイプでのみサポートされます。

SharePoint URI形式

SharePoint URIは次の形式で指定できます。

SharePoint://tenant_id=<tenant_id>/site_id=<site_id>/sites/<subsite_id>/list_id=<list_id>/<item_id>

DBMS_CLOUD.INIT_SHAREPOINT_URIを使用して、有効なSharePoint URIを生成できます。

例: SharePointからのファイルの取得およびリスト

次のステップを実行して、SharePointに格納されているファイルにアクセスし、分析のためにAutonomous AI Databaseにデータをロードします。

  1. SharePoint資格証明の作成

    SharePointクライアントIDおよびクライアント・シークレットを使用して資格証明を作成し、資格証明名を指定します。

    BEGIN
      DBMS_CLOUD.CREATE_CREDENTIAL(
        credential_name => 'SHAREPOINT_CRED',
        username        => '<client-id>',
        password        => '<client-secret>'
      );
    END;
    /
  2. SharePoint URIの生成

    DBMS_CLOUD.INIT_SHAREPOINT_URIを実行して、アクセスするSharePointサイト、サブサイト、リストまたはアイテムのSharePoint URIを生成します。

    DECLARE
      l_location_uri varchar2(4000);
    BEGIN
      l_location_uri := DBMS_CLOUD.INIT_SHAREPOINT_URI(
        tenant_id   => 'Tenant ID',
        site_id     => 'Site ID',
        sub_site_id => 'Sub Site ID',
        list_id     => 'List ID',
        item_id     => 'Item ID'
      );
    END;
    /

    このプロシージャは、アクセスするSharePointの場所の正しいURI形式を返します。

  3. オブジェクトのリストとメタデータの確認

    DBMS_CLOUD.LIST_OBJECTS_EXTENDEDを実行して、SharePointで使用可能なファイルと、METADATA列のSharePoint識別子の詳細を識別します。

    SELECT *
    FROM DBMS_CLOUD.LIST_OBJECTS_EXTENDED(
      location_uri    => DBMS_CLOUD.INIT_SHAREPOINT_URI(
                          tenant_id   => 'Tenant ID',
                          site_id     => 'Site ID',
                          sub_site_id => 'Sub Site ID',
                          list_id     => 'List ID',
                          item_id     => 'Item ID'),
      credential_name => 'SHAREPOINT_CRED');

    出力には、SharePoint固有のJSON属性(tenantidsiteidlistiditemidなど)を含むMETADATA列が含まれます。

  4. 単一ファイルのダウンロード

    必要なアイテムを特定したら、DBMS_CLOUD.GET_OBJECTを実行して、SharePointから単一のファイルをダウンロードします。GET_OBJECTの場合、SharePoint URIにitemidを含める必要があります。

    DBMS_CLOUD.GET_OBJECT(
      object_uri      => DBMS_CLOUD.INIT_SHAREPOINT_URI(
                          tenant_id   => 'Tenant ID',
                          site_id     => 'Site ID',
                          sub_site_id => 'Sub Site ID',
                          list_id     => 'List ID',
                          item_id     => 'Item ID'),
      credential_name => 'SHAREPOINT_CRED');

    この文は、オブジェクトがデータベース・ディレクトリに書き込まれるのではなく、直接返されるようにする場合に実行します。

  5. オブジェクトのディレクトリへのダウンロード

    GET_OBJECTを実行し、プロシージャにdirectory_nameを含めます。

    DBMS_CLOUD.GET_OBJECT(
      object_uri      => DBMS_CLOUD.INIT_SHAREPOINT_URI(
                          tenant_id   => 'Tenant ID',
                          site_id     => 'Site ID',
                          sub_site_id => 'Sub Site ID',
                          list_id     => 'List ID',
                          item_id     => 'Item ID'),
      credential_name => 'SHAREPOINT_CRED',
      directory_name  => 'STAGING');

    ディレクトリ名を指定したため、ファイルはそのデータベース・ディレクトリにダウンロードされます。

    詳細は、「GET_OBJECTプロシージャおよびファンクション」を参照してください。

例: パイプラインを使用したSharePointコンテンツのダウンロード

Autonomous AI Databaseでコンテンツを検出してワークフローにダウンロードする場合は、パイプラインを使用できます。

パイプラインは、個々のリストまたはライブラリ・レベルではなく、SharePointサイト・レベルで作成されます。Oracleでは、サイトごとに1つのパイプラインを使用することをお薦めします。

サイトにサブサイトがある場合は、<site_id>/sites/<sub-site_id>の形式でサイト識別子とサブサイト識別子を組み合せて、個別のパイプラインを作成します。

  1. ダウンロード・パイプラインの作成

    SharePointからデータをロードするDOWNLOADパイプラインを作成します。

    BEGIN
      DBMS_CLOUD_PIPELINE.CREATE_PIPELINE(
        pipeline_name => 'MY_PIPE2',
        pipeline_type => 'DOWNLOAD',
        description   => 'Downloads data from SharePoint to Autonomous Database'
      );
    END;
    /

    このパイプライン・タイプは、SharePointでサポートされている唯一のパイプライン・タイプです。

  2. パイプライン属性の設定

    パイプラインの資格証明、SharePointの場所、優先度および間隔の値を指定します。

    BEGIN
      DBMS_CLOUD_PIPELINE.SET_ATTRIBUTE(
        pipeline_name => 'MY_PIPE2',
        attributes    => JSON_OBJECT(
          'credential_name' VALUE 'SHAREPOINT_CRED',
          'location'        VALUE DBMS_CLOUD.INIT_SHAREPOINT_URI(
                                tenant_id => 'Tenant ID',
                                site_id   => 'Site ID'),
          'priority'        VALUE 'HIGH',
          'interval'        VALUE '5')
      );
    END;
    /

    directory_nameも指定すると、パイプラインはファイル・データをパイプライン・ステータス表に格納するのではなく、そのディレクトリにファイルをダウンロードします。

    詳細は、「DBMS_CLOUD_PIPELINEの属性」を参照してください。

  3. パイプラインを開始します

    属性を設定した後、パイプラインを開始できます:

    EXEC DBMS_CLOUD_PIPELINE.START_PIPELINE('MY_PIPE2');

    パイプラインが開始されると、URIが検証され、ターゲット・サイトまたはサブサイトからリスト項目が収集されます。パイプラインは、指定されたディレクトリにデータをダウンロードします。

    ディレクトリを指定しない場合、パイプラインはそれをパイプライン・ステータス表のデータ列に格納します。

  4. パイプライン結果のレビュー

    パイプライン・ステータス表をレビューして、オブジェクトが正常に処理されたことを確認し、ステータス、タイムスタンプおよびダウンロードされたコンテンツの詳細を調べます。

    パイプラインがファイルをディレクトリに書き込む場合は、DBMS_CLOUD.LIST_FILESを実行してダウンロードしたファイルを検証します。

例: SharePointファイルからのベクトルインデックスの作成

DBMS_CLOUD_AI.CREATE_VECTOR_INDEXを使用して、SharePointから直接ベクトル索引を作成できます。

SharePoint URIを指定すると、システムは最初にターゲットサイトまたはサブサイトの下のリストからメタデータテーブルを構築します。次に、LIST_OBJECTS出力を使用してステータス表に移入し、オブジェクト・コンテンツをGET_OBJECTでフェッチして、生成された埋込みをターゲット・ベクトル表に格納します。

  1. AIプロファイルのOCI資格証明の作成

    AIプロファイルが使用するOCI資格証明を作成します。

    BEGIN
      DBMS_CLOUD.CREATE_CREDENTIAL(
        credential_name => 'OCI_CRED',
        user_ocid       => 'USER_OCID',
        tenancy_ocid    => 'TENANCY_OCID',
        private_key     => '<private_key>',
        fingerprint     => '<fingerprint>'
      );
    END;
    /
  2. AIプロファイルの作成

    埋込みモデルの新しく作成した資格証明を操作するDBMS_CLOUD_AIプロファイルを作成します。

    BEGIN
      DBMS_CLOUD_AI.CREATE_PROFILE(
        profile_name => 'GENAI',
        attributes   => '{"provider":"oci","credential_name":"OCI_CRED","oci_compartment_id":"ocid1.compartment.oc1...","model":"meta.llama-3.1-405b-instruct"}'
      );
    END;
    /
  3. ベクトル索引の作成

    location属性をSharePoint URIを指すベクトル索引を作成します。

    BEGIN
      DBMS_CLOUD_AI.CREATE_VECTOR_INDEX(
        index_name => 'SUPPORT',
        attributes => '{
          "vector_db_provider": "oracle",
          "location": "SharePoint://tenant_id=<tenant_id>/site_id=<site_id>/",
          "object_storage_credential_name": "SHAREPOINT_CRED",
          "profile_name": "GENAI",
          "vector_table_name": "test_SharePoint_table",
          "vector_distance_metric": "cosine",
          "vector_dimension": 1024,
          "chunk_overlap": 128,
          "chunk_size": 1024
        }'
      );
    END;
    /

    この構成により、Autonomous AI Databaseは、SharePointに格納されているファイルをセマンティック検索シナリオのベクトル埋込みに変換します。