Soporte de SharePoint en la base de datos de IA autónoma mediante DBMS_CLOUD

Con el soporte de SharePoint, puede acceder a los archivos almacenados en Microsoft SharePoint mediante paquetes DBMS_CLOUD y DBMS_CLOUD_PIPELINE con URI y objetos de credenciales específicos del proveedor.

Si almacena archivos en SharePoint, puede utilizar el paquete DBMS_CLOUD para mostrar y recuperar datos de forma coherente con las integraciones existentes del almacén de objetos en la nube.

El soporte de SharePoint permite enumerar, descargar y procesar de forma descendente el contenido externo en la base de datos de IA autónoma.

Con el tipo de pipeline DOWNLOAD en el paquete DBMS_CLOUD_PIPELINE, Autonomous AI Database puede recuperar archivos externos para realizar más análisis e indexación.

Antes de empezar

Antes de utilizar SharePoint con DBMS_CLOUD, debe asegurarse de que tiene las credenciales de cliente necesarias para crear un objeto de credencial de base de datos. Puede crear una credencial con el ID de cliente y el secreto de cliente del usuario de SharePoint o una aplicación de Azure que tenga acceso al contenido de SharePoint.

Paquetes admitidos

Las siguientes operaciones DBMS_CLOUD admiten URI de SharePoint:
  • OBTENER_OBJETO
  • LISTA_OBJETOS
  • LISTA_OBJETOS_AMPLIADOS
  • DBMS_CLOUD_AI.CREATE_VECTOR_INDEX
Nota

SharePoint se admite solo con el tipo de pipeline DOWNLOAD en el procedimiento DBMS_CLOUD_PIPELINE.

Formato de URI de SharePoint

Puede especificar un URI de SharePoint con el siguiente formato:
SharePoint://tenant_id=<tenant_id>/site_id=<site_id>/sites/<subsite_id>/list_id=<list_id>/<item_id>

Puede generar un URI de SharePoint válido con DBMS_CLOUD.INIT_SHAREPOINT_URI.

Temas:

Ejemplo: recuperación y enumeración de archivos desde SharePoint

Ejecute los siguientes pasos para acceder a los archivos almacenados en SharePoint y cargar los datos en la base de datos de IA autónoma para su análisis.

  1. Crear una credencial de SharePoint
    Cree una credencial con el ID de cliente y el secreto de cliente de SharePoint y especifique un nombre de credencial.
    BEGIN
      DBMS_CLOUD.CREATE_CREDENTIAL(
        credential_name => 'SHAREPOINT_CRED',
        username        => '<client-id>',
        password        => '<client-secret>'
      );
    END;
    /
  2. Generar el URI de SharePoint
    Ejecute DBMS_CLOUD.INIT_SHAREPOINT_URI para generar el URI de SharePoint para el sitio, subsitio, lista o elemento de SharePoint al que desea acceder.
    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;
    /

    Este procedimiento devuelve el formato URI correcto para la ubicación de SharePoint a la que desea acceder.

  3. Mostrar objetos y revisar metadatos

    Ejecute DBMS_CLOUD.LIST_OBJECTS_EXTENDED para identificar los archivos disponibles en SharePoint y los detalles de los identificadores de SharePoint en la columna METADATA.

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

    La salida incluye una columna METADATA con atributos JSON específicos de SharePoint, como tenantid, siteid, listid y itemid.

    Consulte DBMS_CLOUD.LIST_OBJECTS_EXTENDED para obtener más información.

  4. Descargar un solo archivo
    Después de identificar el elemento que desea, ejecute DBMS_CLOUD.GET_OBJECT para descargar un único archivo desde SharePoint. Para GET_OBJECT, el URI de SharePoint debe incluir 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');

    Ejecute la sentencia anterior cuando desee que el objeto se devuelva directamente en lugar de escribirse en un directorio de base de datos.

  5. Descarga de un objeto en un directorio
    Ejecute GET_OBJECT e incluya directory_name en el procedimiento.
    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');

    Puesto que especifica el nombre del directorio, los archivos se descargan en ese directorio de base de datos.

    Consulte DBMS_CLOUD.GET_OBJECT para obtener más información.

Ejemplo: descarga de contenido de SharePoint con un pipeline

Puede utilizar un pipeline cuando desee que la base de datos de IA autónoma detecte contenido y lo descargue en un flujo de trabajo.

El sistema crea pipelines en el nivel de sitio de SharePoint, no en el nivel de biblioteca o lista individual. Oracle recomienda utilizar un pipeline por sitio.

Si un sitio tiene un subsitio, cree un pipeline independiente especificando el identificador de sitio y subsitio combinado con el formato <site_id>/sites/<sub-site_id>.

  1. Crear un pipeline de descarga

    Cree un pipeline DOWNLOAD para cargar datos desde SharePoint.

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

    Este tipo de pipeline es el único tipo de pipeline soportado para SharePoint.

  2. Definir atributos de pipeline
    Especifique los valores de credencial, ubicación de SharePoint, prioridad e intervalo para el pipeline.
    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;
    /

    Si también especifica directory_name, el pipeline descarga archivos en ese directorio en lugar de almacenar datos de archivo en la tabla de estado del pipeline.

    Consulte Atributos de DBMS_CLOUD_PIPELINE para obtener más información.

  3. Iniciar el pipeline

    Después de definir los atributos, puede iniciar el pipeline:
    EXEC DBMS_CLOUD_PIPELINE.START_PIPELINE('MY_PIPE2');

    Cuando se inicia el pipeline, se valida el URI y se recopilan los elementos de la lista del sitio de destino o del subsitio. El pipeline descarga los datos en el directorio especificado. Si no especifica un directorio, el pipeline lo almacena en la columna de datos de la tabla de estado del pipeline.

  4. Revisar resultados de pipeline

    Revise la tabla de estado del pipeline para confirmar que los objetos se han procesado correctamente y para inspeccionar el estado, los registros de hora y los detalles del contenido descargado. Si el pipeline escribe archivos en un directorio, ejecute DBMS_CLOUD.LIST_FILES para verificar los archivos descargados.

Ejemplo: creación de un índice vectorial a partir de archivos de SharePoint

Puede crear índices vectoriales directamente desde SharePoint mediante DBMS_CLOUD_AI.CREATE_VECTOR_INDEX.

Al especificar el URI de SharePoint, el sistema primero crea una tabla de metadatos a partir de las listas en el sitio o subsitio de destino y, a continuación, utiliza la salida LIST_OBJECTS para rellenar la tabla de estado, recupera el contenido del objeto con GET_OBJECT y almacena las incrustaciones generadas en la tabla de vector de destino.
  1. Crear una credencial de OCI para el perfil de IA
    Cree una credencial de OCI que utilice el perfil de AI.
    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. Crear el perfil AI
    Cree un perfil DBMS_CLOUD_AI para trabajar con la credencial recién creada para el modelo de embebido.
    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. Crear el índice vectorial

    Cree el índice vectorial en el que apunte el atributo location al URI de SharePoint.

    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;
    /

    De esta forma, Autonomous AI Database transforma los archivos almacenados en SharePoint en incrustaciones vectoriales para escenarios de búsqueda semántica.