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およびクライアント・シークレットを使用して資格証明を作成できます。

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

次のDBMS_CLOUD操作は、SharePoint URIをサポートしています。
  • GET_OBJECT
  • リストオブジェクト(_O)
  • リストオブジェクト拡張
  • DBMS_クラウド・アイ.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列が含まれます。

    詳細は、DBMS_CLOUD.LIST_OBJECTS_EXTENDEDを参照してください。

  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');

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

    詳細は、DBMS_CLOUD.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に保存されているファイルを、セマンティック検索シナリオ用のベクトル埋込みに変換します。