Risoluzione degli errori con lo strumento di condivisione dati

Questo capitolo fornisce indicazioni sui problemi che causano prestazioni lente e su come risolverli.

Argomenti:

Prestazioni lente della funzione Condividi in tempo reale

Con un aumento delle ECPU, le prestazioni della funzione di condivisione live nello strumento Condivisione dati migliorano durante l'esecuzione di query complesse?

No, non. In questi casi, è necessario configurare il Degree Of Parallelism (DOP) utilizzando Data Studio per migliorare le prestazioni di query in esecuzione complesse.

Configurare il grado di parallelismo (DOP) mediante Data Studio

Quando la funzione Condivisione attiva dell'istanza di Database Actions viene eseguita con un valore aumentato di ECPU, per impostazione predefinita le prestazioni delle query in esecuzione complesse non migliorano.

È possibile utilizzare l'opzione DOP per migliorare le prestazioni delle query in esecuzione complesse. Il DOP imposta il numero di processori impiegati per eseguire un'unica istruzione, per ogni esecuzione del piano parallelo. In questa sezione viene descritto come configurare l'opzione di configurazione degree of parallelism (DOP) in Autonomous AI Database utilizzando la funzione Live Share di Data Studio.

In questo esempio, si utilizzerà la funzione Condivisione live e si condivideranno tabelle di dimensioni non compresse pari a 1 TB.

Prima di iniziare, ecco alcune cose che devi considerare:
  • L'opzione per configurare il valore di DOP può essere eseguita solo da un admin.
Prerequisito:
  • Eseguire il login all'istanza di Database Actions come amministratore e in Amministrazione selezionare Imposta regole di Resource Management.
  • Prendere nota dei valori predefiniti di valuta e DOP.
Per configurare il grado di parallelismo utilizzando Data Studio per migliorare le prestazioni di query in esecuzione complesse, eseguire le operazioni riportate di seguito.
  • Crea Share come provider.
  • Utilizzare Condividi come consumatore e creare query esterne sopra le condivisioni per registrare il tempo di esecuzione delle query.
  • Aumentare le ECPU a un valore maggiore del valore corrente come fornitore e consumatore e registrare il tempo di esecuzione delle query.
  • Configurare il valore DOP per il gruppo di consumer MEDIUM.
  • Utilizzare la stessa condivisione e registrare il tempo di esecuzione dell'interrogazione della stessa tabella.

Nota

È necessario configurare il conteggio ECPU e il valore DOP come provider con privilegi ADMIN.
Nel launchpad di Database Actions fare clic su Selector e selezionare lo strumento Condivisione dati dalla suite di strumenti di Data Studio.
  1. Crea Share come provider.
    1. Fare clic su Fornisci condivisioni e selezionare +Crea condivisione.
    2. Nel campo Nome della scheda Generale della procedura guidata Crea condivisione immettere un nome per la condivisione. Ad esempio: TEST.



      Immettere una descrizione per i dati condivisi nel campo Descrizione. Questo campo è facoltativo.

      Selezionare Successivo per passare alla scheda Pubblica dettagli.

    3. Nella scheda Pubblica tabelle dettagli della procedura guidata, selezionare SHARE LIVE DATA USING DIRECT CONNECTION.



      Fare clic su Successivo.

    4. Nella scheda Seleziona tabelle della procedura guidata, selezionare lo schema dal menu a discesa, trascinare la tabella CUSTOMER dalle tabelle disponibili.



      Nota

      In questo esempio, viene condivisa una singola tabella denominata Customer di grandi dimensioni.

      Fare clic su Avanti per passare alla scheda Destinatari della Creazione guidata condivisione.

    5. Nella scheda Destinatari della Creazione guidata condivisione, selezionare MY_COMPARTMENT dall'elenco a discesa.

    6. Per creare la condivisione, selezionare Crea.



  2. Utilizzare Condividi come consumatore e creare query esterne sopra le condivisioni per registrare il tempo di esecuzione delle query.
    1. Dopo aver creato la condivisione come provider, si utilizzeranno i dati condivisi dal provider.

      Per ulteriori dettagli, vedere Consuma condivisione.

    2. Eseguire il login come consumatore per eseguire la sottoscrizione al provider di condivisione dati e accedere ai dati nella condivisione.
    3. Nella pagina Provider e consumer dello strumento Condivisione dati, fare clic sulla casella CONSUME SHARE per visualizzare la pagina Consuma condivisione.
    4. Fare clic sull'elenco a discesa Esegui sottoscrizione a provider condivisione, quindi fare clic sull'opzione Esegui sottoscrizione a provider condivisione attiva.



    5. In Dettagli provider condivisione selezionare Nome provider. In questo esempio, TPUSER è il nome del provider.



    6. Nel pannello Aggiungi condivisioni della pagina della procedura guidata Sottoscrivi a condivisione Impostazioni provider, fare clic su TEST nella sezione Condivisioni disponibili, quindi fare clic sull'icona (>).



    7. Lo strumento aggiunge la condivisione alla sezione Azioni selezionate. Fare clic su Sottoscrivi.
    8. Un provider di condivisione TPUSER è stato creato e viene visualizzato un messaggio informativo. Si viene indirizzati alla pagina Carica dati con la scheda Condividi selezionata.



    9. Espandere il nodo di condivisione dati TESTSHARE per visualizzare gli oggetti al suo interno. Trascinare la tabella condivisa TPUSER.CUSTOMER per aggiungerla al job di caricamento dati.
    10. La tabella condivisa viene aggiunta al job di collegamento dati. Quando si esegue questo job, verrà creata una nuova vista CUSTOMER nella parte superiore della tabella CUSTOMER che è stata condivisa con l'utente.
    11. Fare clic su Avvia. Viene visualizzata la finestra di dialogo Avvia collegamento da area di memorizzazione cloud. Fare clic su Esegui. Al termine del job, viene visualizzata un'icona di collegamento. La vista CUSTOMER viene creata.
    12. Fare clic sul banner Azioni database | Condivisione dati. In Azioni database | Launchpad fare clic sulla scheda Sviluppo, quindi sulla scheda SQL per visualizzare il foglio di lavoro SQL.



    13. Trascinare la tabella CUSTOMER nell'area del foglio di lavoro SQL.
    14. Viene visualizzata una finestra di dialogo che offre i tipi di inserzioni disponibili.
    15. Fare clic su Seleziona, quindi su Applica.





    16. Fare clic su Esegui. È possibile visualizzare la query generata automaticamente visualizzata nel foglio di lavoro.



    17. Prendere nota del tempo di esecuzione della query nel campo Ora di esecuzione visualizzato nella scheda Risultato query.
  3. Aumenta le ECPU come fornitore e consumatore e registra il tempo di esecuzione delle query.
    1. Aumenta le ECPU della tua istanza di Autonomous AI Database come provider e consumatore dalla tua console OCI.

      Nota

      Assicurarsi di non aver abilitato la scala automatica.

      In questo esempio il conteggio di ECPU è stato aumentato a 32. Puoi scalare il conteggio ECPU a qualsiasi valore di tua scelta.

    2. Ripetere l'operazione utilizzando la stessa condivisione CUSTOMER e calcolando il tempo di esecuzione della query. Non ci saranno modifiche nel tempo per eseguire la query sulla tabella.
  4. Configurare il valore DOP per il gruppo di consumer MEDIUM.
    1. Eseguire il login all'istanza di Database Actions come consumatore con il privilegio ADMIN.
    2. Fare clic su Selettore e in Amministrazione selezionare Imposta regole di Resource Management.

    3. Ridurre il limite di valuta del gruppo di consumer MEDIUM a 8 e fare clic su Salva modifiche. La riduzione del limite di concorrenza aumenta il DOP.



    Nota

    Il limite di concorrenza impostato in questo passo deve essere inferiore al valore predefinito indicato nel prerequisito.
  5. Passo di follow-up: dopo aver configurato l'opzione relativa al grado di parallelismo, ripetere il processo di utilizzo della condivisione, creando query esterne sopra le condivisioni per registrare il tempo di esecuzione della query.

    Il valore del tempo di esecuzione della query è diminuito.

Il miglioramento delle prestazioni delle stesse query SQL complesse avviene immediatamente senza riavviare il server.

Tentativo di query tabella condivisa non riuscito

Problema: il tentativo di eseguire una query su una tabella condivisa non riesce con un errore che indica le funzioni non supportate della tabella delta.

Probabile causa: la tabella condivisa utilizza Vettori di eliminazione, che è una funzione Delta Lake. Il consumer di condivisione delta del database AI autonomo non supporta i vettori di eliminazione (DV).

Risoluzione: chiedere al provider di rimuovere DV dalla tabella.

HTTP 403 non autorizzato a causa della lista di inclusione IP remoto

Problema: l'accesso ai dati condivisi o il download di dati remoti non riesce con un errore HTTP 403 - Unauthorized.

Probabile causa: il servizio remoto, ad esempio Azure Blob Storage o un altro endpoint esterno, è configurato con una lista di inclusione IP di origine che non include l'indirizzo IP pubblico in uscita utilizzato da Autonomous AI Database.

Nota

Non utilizzare la seguente query per identificare l'indirizzo IP in uscita:

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

Questa query restituisce l'indirizzo IP client per la sessione corrente, non l'indirizzo IP in uscita visualizzato dal servizio esterno.

Risoluzione: identificare l'indirizzo IP in uscita di Autonomous AI Database effettuando una richiesta HTTPS a un endpoint pubblico che restituisce l'indirizzo IP del chiamante. Quindi, chiedere all'amministratore del servizio remoto di aggiungere tale indirizzo IP alla lista di inclusione.

  1. Concedere l'accesso all'endpoint di test.

    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. Eseguire una query sull'endpoint all'interno di 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 risposta contiene l'indirizzo IP pubblico visualizzato dal servizio esterno. Ad esempio:
    {{{"origin":"150.136.133.92"}}}
  3. Aggiungere l'indirizzo IP alla lista di inclusione remota.

    Aggiornare il firewall, le regole di rete degli account di storage o la lista di inclusione lato partner per includere l'indirizzo IP.

Dopo l'aggiornamento della lista di inclusione, riprovare a eseguire l'operazione di accesso o condivisione dei dati.