Solución de errores con la herramienta Data Share

En este capítulo, se proporciona orientación sobre los problemas que provocan un rendimiento lento y cómo solucionarlos.

Temas:

Función de uso compartido en directo de rendimiento lento

Con un aumento de las ECPU, ¿mejora el rendimiento de la función Compartir en directo de la herramienta Compartir datos mientras se ejecutan consultas complejas?

No, no. En estos casos, debe configurar el grado de paralelismo (DOP) mediante Data Studio para mejorar el rendimiento de las consultas en ejecución complejas.

Configuración del grado de paralelismo (DOP) usando Data Studio

Cuando la función Live Share de la instancia de Database Actions se ejecuta con un mayor valor de ECPU, por defecto el rendimiento de las consultas en ejecución complejas no mejora.

Puede utilizar la opción DOP para mejorar el rendimiento de las consultas complejas en ejecución. El DOP define el número de procesadores empleados para ejecutar una sola sentencia, para cada ejecución de plan en paralelo. En esta sección se describe cómo configurar la opción de configuración degree of parallelism (DOP) en la base de datos de IA autónoma mediante la función Live Share de Data Studio.

En este ejemplo, utilizará la función Compartir en directo y las tablas de compartir de un tamaño sin comprimir de 1 TB.

Antes de comenzar, aquí hay algunas cosas que debe considerar:
  • La opción para configurar el valor de DOP solo se puede realizar mediante admin.
Requisito:
  • Conéctese a la instancia de Database Actions como administrador y, en Administración, seleccione Definir reglas de Resource Management.
  • Observe el valor de simultaneidad y el DOP por defecto.
Para configurar el grado de paralelismo mediante Data Studio para mejorar el rendimiento de las consultas en ejecución complejas, deberá:
  • Crear recurso compartido como proveedor.
  • Consumir recursos compartidos como consumidor y crear consultas externas sobre los recursos compartidos para registrar el tiempo de ejecución de las consultas.
  • Aumente las ECPU a un valor mayor que el valor actual como proveedor y consumidor y registre el tiempo de ejecución de la consulta.
  • Configure el valor DOP para el grupo de consumidores MEDIUM.
  • Consuma el mismo recurso compartido y registre el tiempo de ejecución de la consulta de la misma tabla.

Note:

Debe configurar el recuento de ECPU y el valor DOP como un proveedor con privilegios ADMIN.
En la pantalla de inicio de Database Actions, haga clic en Selector y seleccione la herramienta Data Share en el conjunto de herramientas de Data Studio.
  1. Crear recurso compartido como proveedor.
    1. Haga clic en Proporcionar recursos compartidos y seleccione +Crear recurso compartido.
    2. En el asistente Crear recurso compartido, en el campo Nombre del separador General, introduzca un nombre para el recurso compartido. Por ejemplo: TEST.



      En el campo Descripción, introduzca una descripción para los datos que comparte. Este campo es opcional.

      Seleccione Siguiente para avanzar al separador Publicar detalles.

    3. En el separador Publish Details Tables del asistente, seleccione SHARE LIVE DATA USING DIRECT CONNECTION (Compartir datos en directo mediante conexión directa).



      Haga clic en Siguiente.

    4. En el separador Seleccionar Tablas del asistente, seleccione el esquema en el menú desplegable, arrastre y suelte la tabla CUSTOMER en las tablas disponibles.



      Note:

      En este ejemplo, compartimos una única tabla denominada Customer de gran tamaño.

      Haga clic en Next (Siguiente) para continuar con el separador Recipients (Destinatarios) del Asistente de creación de recursos compartidos.

    5. En el separador Destinatarios del asistente Crear recurso compartido, seleccione MY_COMPARTMENT en la lista desplegable.

    6. Seleccione Crear para crear el recurso compartido.



  2. Consumir recursos compartidos como consumidor y crear consultas externas sobre los recursos compartidos para registrar el tiempo de ejecución de las consultas.
    1. Después de crear el recurso compartido como proveedor, consumirá los datos compartidos por el proveedor.

      Consulte Consume Share para obtener más información.

    2. Inicia sesión como consumidor para suscribirte al proveedor de recursos compartidos de datos y acceder a los datos que hayas compartido.
    3. En la página Proveedor y consumidor de la herramienta Uso compartido de datos, haga clic en el mosaico CONSUME SHARE para mostrar la página CONSUME SHARE.
    4. Haga clic en la lista desplegable Suscribirse al proveedor de recursos compartidos y, a continuación, haga clic en la opción Suscribirse al proveedor de recursos compartidos activos.



    5. En Share Provider Details (Compartir detalles de proveedor), seleccione Provider Name (Nombre del proveedor). En este ejemplo, TPUSER es el nombre del proveedor.



    6. En el panel Add Shares (Agregar recursos compartidos) de la página del asistente Subscribe to Share Provider Settings (Configuración del proveedor), haga clic en la TEST (Prueba) en la sección Available Shares (Recursos compartidos disponibles) y, a continuación, haga clic en el icono (>).



    7. La herramienta agrega el recurso compartido a la sección Recursos compartidos seleccionados. Haga clic en Suscribir.
    8. Se muestra un mensaje informativo que indica que el proveedor de recursos compartidos TPUSER se ha creado correctamente. Se le dirigirá a la página Cargar datos con el separador Compartir seleccionado.



    9. Amplíe el nodo de recurso compartido de datos TESTSHARE para mostrar los objetos que contiene. Arrastre y suelte la tabla compartida TPUSER.CUSTOMER para agregarla al trabajo de carga de datos.
    10. La tabla compartida se agrega al trabajo de enlace de datos. Al ejecutar este trabajo, se creará una nueva vista CUSTOMER sobre la tabla CUSTOMER que se ha compartido con usted.
    11. Haga clic en Iniciar. Se muestra el cuadro de diálogo Iniciar enlace desde el almacén en la nube. Haga clic en Ejecutar. Cuando el trabajo se completa correctamente, se muestra un icono de enlace. Se crea la vista CUSTOMER.
    12. Haga clic en el banner Acciones de base de datos | Uso compartido de datos. En Database Actions | Launchpad, haga clic en el separador Development y, a continuación, en el separador SQL para mostrar la hoja de trabajo de SQL.



    13. Arrastre y suelte la tabla CUSTOMER en el área de la hoja de trabajo SQL.
    14. Se muestra un cuadro de diálogo que ofrece los tipos de inserciones disponibles.
    15. Haga clic en Seleccionar y, a continuación, en Aplicar.





    16. Haga clic en Ejecutar. Puede ver la consulta generada automáticamente que se muestra en la hoja de trabajo.



    17. Observe el tiempo de ejecución de la consulta en el campo Tiempo de ejecución que se muestra en el separador Resultado de consulta.
  3. Aumente las ECPU como proveedor y consumidor y registre el tiempo de ejecución de la consulta.
    1. Aumenta las ECPU de tu instancia de Autonomous AI Database como proveedor y consumidor desde tu consola de OCI.

      Note:

      Asegúrese de que no ha activado la escala automática.

      En este ejemplo, hemos aumentado el recuento de ECPU a 32. Puede escalar el recuento de ECPU a cualquier valor que elija.

    2. Repita el consumo del mismo recurso compartido CUSTOMER y el cálculo del tiempo de ejecución de la consulta. No se producirá ningún cambio en el tiempo de consulta de la tabla.
  4. Configure el valor DOP para el grupo de consumidores MEDIUM.
    1. Conéctese a la instancia de acciones de la base de datos como consumidor con el privilegio ADMIN.
    2. Haga clic en Selector y, en Administración, seleccione Definir reglas de Resource Management.

    3. Reduzca el límite de simultaneidad del grupo de consumidores MEDIUM a 8 y haga clic en Guardar cambios. La reducción del límite de simultaneidad aumenta el DOP.



    Note:

    El límite de simultaneidad que defina en este paso debe ser menor que el valor por defecto que anotó en el requisito previo.
  5. Paso de seguimiento: después de configurar la opción de grado de paralelismo, repita el proceso de consumo del recurso compartido y cree consultas externas sobre los recursos compartidos para registrar el tiempo de ejecución de la consulta.

    Verá que el valor del tiempo de ejecución de la consulta ha disminuido.

La mejora en el rendimiento de las mismas consultas SQL complejas se produce inmediatamente sin reiniciar el servidor.

Fallo de intento de consulta de tabla compartida

Problema: el intento de consultar una tabla compartida falla con un error que indica las funciones de la tabla Delta no admitidas.

Causa probable: la tabla compartida utiliza Vectores de supresión, que es una función de Delta Lake. El consumidor de Delta Sharing de base de datos de IA autónoma no soporta los vectores de supresión (DV).

Resolución: pida al proveedor que elimine DV de la tabla.

HTTP 403 no autorizado debido a lista de permitidos de IP remota

Problema: el acceso a datos compartidos o la descarga de datos remotos falla con un error HTTP 403 - Unauthorized.

Causa probable: el servicio remoto, por ejemplo, Azure Blob Storage u otro punto final externo, está configurado con una lista de permitidos de IP de origen que no incluye la dirección IP de salida pública utilizada por Autonomous AI Database.

Note:

No utilice la siguiente consulta para identificar la dirección IP de salida:

SELECT SYS_CONTEXT('USERENV','IP_ADDRESS') FROM dual;

Esta consulta devuelve la dirección IP del cliente para la sesión actual, no la dirección IP de salida que ve el servicio externo.

Resolución: identifique la dirección IP de salida de Autonomous AI Database realizando una solicitud HTTPS a un punto final público que devuelva la dirección IP del emisor de llamada. A continuación, solicite al administrador del servicio remoto que agregue esa dirección IP a la lista de permitidos.

  1. Otorgue acceso al punto final de prueba.

    BEGIN
      DBMS_NETWORK_ACL_ADMIN.APPEND_HOST_ACE(
        host       => 'httpbin.org',
        lower_port => 443,
        upper_port => 443,
        ace        => xs$ace_type(
                        privilege_list => xs$name_list('http'),
                        principal_name => USER,
                        principal_type => xs_acl.ptype_db));
    END;
    /
  2. Consulta el punto final desde Autonomous AI Database.

    SET SERVEROUTPUT ON
    
    DECLARE
      resp UTL_HTTP.resp;
      line VARCHAR2(32767);
    BEGIN
      resp := UTL_HTTP.begin_request('https://httpbin.org/ip');
      resp := UTL_HTTP.get_response(resp);
      UTL_HTTP.read_line(resp, line, TRUE);
      DBMS_OUTPUT.put_line('Autonomous Database outbound IP = ' || line);
      UTL_HTTP.end_response(resp);
    END;
    /
    
    La respuesta contiene la dirección IP pública que ve el servicio externo. Por ejemplo:
    {{{"origin":"150.136.133.92"}}}
  3. Agregue la dirección IP a la lista de permitidos remota.

    Actualice el firewall, las reglas de red de la cuenta de almacenamiento o la lista de permitidos del socio para incluir la dirección IP.

Después de actualizar la lista de permitidos, vuelva a intentar la operación de acceso a datos o de uso compartido de datos.