Solução de problemas de erros com a ferramenta de compartilhamento de dados

Este capítulo fornece orientação sobre os problemas que causam desempenho lento e como solucioná-los.

Tópicos:

Desempenho lento do recurso de compartilhamento ao vivo

Com o aumento das ECPUs, o desempenho do recurso de compartilhamento ao vivo na ferramenta de compartilhamento de dados melhora ao executar consultas complexas?

Não, não. Nesses casos, você precisa configurar o Degree Of Parallelism (DOP) usando o Data Studio para melhorar o desempenho de consultas complexas em execução.

Configurar o Grau de Paralelismo (DOP) usando o Data Studio

Quando o recurso Live Share da instância do Database Actions é executado com um valor maior de ECPU, por padrão, o desempenho das consultas complexas em execução não melhora.

Você pode usar a opção DOP para melhorar o desempenho das consultas complexas em execução. O DOP define o número de processadores empregados para executar uma única instrução, para cada execução de plano paralelo. Esta seção descreve como configurar a opção de configuração degree of parallelism (DOP) no Autonomous AI Database usando o recurso Live Share do Data Studio.

Neste exemplo, você usará o recurso de compartilhamento ao vivo e compartilhará tabelas de um tamanho descompactado de 1 TB.

Antes de começar, aqui estão algumas coisas que você precisa considerar:
  • A opção para configurar o valor do DOP só pode ser feita por um admin.
Pré-Requisito:
  • Faça log-in na instância do Database Actions como administrador e, em Administração, selecione Definir Regras do Resource Management.
  • Observe o valor de simultaneidade e o DOP padrão.
Para configurar o grau de paralelismo usando o Data Studio para melhorar o desempenho de consultas complexas em execução, você:
  • Criar Compartilhamento como um provedor.
  • Use Compartilhar como consumidor e crie consultas externas sobre seus compartilhamentos para registrar o tempo de execução da consulta.
  • Aumente as ECPUs para um valor maior que o valor atual como provedor e consumidor e registre o tempo de execução da consulta.
  • Configure o valor DOP para o grupo de consumidores MEDIUM.
  • Consuma o mesmo compartilhamento e registre o tempo de execução da consulta da mesma tabela.

Observação:

Configure a contagem de ECPU e o valor de DOP como um fornecedor com privilégios de ADMIN.
No inicializador do Database Actions, clique em Seletor e selecione a ferramenta Compartilhamento de Dados no conjunto de ferramentas Data Studio.
  1. Criar Compartilhamento como um provedor.
    1. Clique em Fornecer Compartilhamentos e selecione +Criar Compartilhamento.
    2. No assistente Criar Compartilhamento, no campo Nome da guia Geral, informe um nome para o Compartilhamento. Por exemplo: TESTE.



      No campo Descrição, informe uma descrição para os dados que você compartilha. Esse campo é opcional.

      Selecione Próximo para avançar para a guia Detalhes da Publicação.

    3. Na guia Publicar Tabelas de Detalhes do assistente, selecione COMPARTILHAR DADOS AO VIVO USANDO CONEXÃO DIRETA.



      Clique em Próximo.

    4. Na guia Selecionar Tabelas do assistente, selecione o esquema no menu drop-down, arraste e solte a tabela CUSTOMER nas Tabelas Disponíveis.



      Observação:

      Neste exemplo, estamos compartilhando uma única tabela chamada Customer de tamanho grande.

      Clique em Próximo para prosseguir para a guia Destinatários do Assistente de Criação de Compartilhamento.

    5. Na guia Destinatários do assistente Criar Compartilhamento, selecione MY_COMPARTMENT no menu suspenso.

    6. Selecione Criar para criar o compartilhamento.



  2. Use Compartilhar como consumidor e crie consultas externas sobre seus compartilhamentos para registrar o tempo de execução da consulta.
    1. Depois de criar o compartilhamento como um provedor, você consumirá os dados compartilhados pelo provedor.

      Consulte Compartilhar Consumo para obter mais detalhes.

    2. Faça log-in como consumidor para se inscrever no provedor de compartilhamento de dados e acessar os dados em seu compartilhamento.
    3. Na página Provedor e Consumidor da ferramenta de Compartilhamento de Dados, clique no mosaico CONSUME SHARE para exibir a página Compartilhar Consumo.
    4. Clique na lista drop-down Inscrever-se para Compartilhar Provedor e, em seguida, clique na opção Inscrever-se para Compartilhar Provedor ao Vivo.



    5. Em Compartilhar Detalhes do Provedor, selecione o Nome do Provedor. Neste exemplo, TPUSER é o nome do provedor.



    6. No painel Adicionar Compartilhamentos da página do assistente Assinar para Compartilhar Definições do Provedor, clique no TESTE na seção Compartilhamentos Disponíveis e, em seguida, clique no ícone (>).



    7. A ferramenta adiciona o compartilhamento à seção Compartilhamentos Selecionados. Clique em Assinar.
    8. Um provedor de compartilhamento TPUSER foi criado com sucesso. Uma mensagem informativa é exibida. Você é direcionado para a página Carregar Dados com a guia Compartilhar selecionada.



    9. Expanda o nó de compartilhamento de dados TESTSHARE para exibir os objetos nele. Arraste e solte a tabela compartilhada TPUSER.CUSTOMER para adicioná-la ao job de carregamento de dados.
    10. A tabela compartilhada é adicionada ao job de link de dados. Quando você executar esse job, uma nova view CUSTOMER será criada na parte superior da tabela CUSTOMER que foi compartilhada com você.
    11. Clique em Iniciar. Uma caixa de diálogo Iniciar Link do Cloud Store é exibida. Clique em Executar. Quando o job for concluído com sucesso, um ícone de link será exibido. A view CUSTOMER é criada.
    12. Clique no banner Database Actions | Data Share. No Database Actions | Launchpad, clique na guia Development e, em seguida, clique na guia SQL para exibir a Planilha SQL.



    13. Arraste e solte a tabela CUSTOMER na área da planilha SQL.
    14. Uma caixa de diálogo é exibida com os tipos de inserções disponíveis.
    15. Clique em Selecionar e em Aplicar.





    16. Clique em Executar. Você pode exibir a consulta gerada automaticamente exibida na Planilha.



    17. Observe o tempo de execução da consulta no campo Horário de execução exibido na guia Resultado da Consulta.
  3. Aumente as ECPUs como provedor e consumidor e registre o tempo de execução da consulta.
    1. Aumente as ECPUs da sua instância do Autonomous AI Database como um fornecedor e um consumidor da sua console do OCI.

      Observação:

      Verifique se você não ativou o Dimensionamento Automático.

      Neste exemplo, aumentamos a contagem de ECPUs para 32. Você pode aumentar a contagem de ECPUs para qualquer valor de sua escolha.

    2. Repita o consumo do mesmo compartilhamento CUSTOMER e o cálculo do tempo de execução da consulta. Não haverá alteração no tempo para consultar a tabela.
  4. Configure o valor DOP para o grupo de consumidores MEDIUM.
    1. Faça log-in na instância de ações do banco de dados como um consumidor com o privilégio ADMIN.
    2. Clique em Seletor e, em Administração, selecione Definir Regras do Resource Management.

    3. Diminua o Limite de simultaneidade do grupo de consumidores MEDIUM para 8 e clique em Salvar Alterações. A diminuição do limite de simultaneidade aumenta o DOP.



    Observação:

    O limite de simultaneidade definido nesta etapa deve ser menor que o valor padrão observado no pré-requisito.
  5. Etapa de acompanhamento - Depois de configurar a opção de grau de paralelismo, repita o processo de consumo do compartilhamento, criando consultas externas sobre seus compartilhamentos para registrar o tempo de execução da consulta.

    Você verá que o valor do tempo de execução da consulta diminuiu.

A melhoria no desempenho das mesmas consultas SQL complexas acontece imediatamente sem reiniciar o servidor.

Falha na tentativa de consulta de tabela compartilhada

Problema: A tentativa de consultar uma tabela compartilhada falha com um erro indicando recursos da tabela Delta não suportados.

Causa Provável: A tabela compartilhada usa Vetores de Exclusão, que é um recurso do Delta Lake. O consumidor de Compartilhamento Delta do Autonomous AI Database não suporta Vetores de Exclusão (DV).

Resolução: Peça ao provedor para remover o DV da tabela.

HTTP 403 Não Autorizado Devido à Lista de Permissões de IP Remoto

Problema: O acesso a dados compartilhados ou o download de dados remotos falha com um erro HTTP 403 - Unauthorized.

Causa Provável: O serviço remoto, por exemplo, Armazenamento Blob do Azure ou outro ponto final externo, é configurado com uma lista de permissões de IP de origem que não inclui o endereço IP de saída público usado pelo Autonomous AI Database.

Observação:

Não use a seguinte consulta para identificar o endereço IP de saída:

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

Esta consulta retorna o endereço IP do cliente para a sessão atual, não o endereço IP de saída visto pelo serviço externo.

Resolução: Identifique o endereço IP de saída do Autonomous AI Database fazendo uma solicitação HTTPS para um ponto final público que retorne o endereço IP do chamador. Em seguida, peça ao administrador do serviço remoto para adicionar esse endereço IP à lista de permissões.

  1. Conceda acesso ao ponto final de teste.

    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. Consulte o ponto final no 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;
    /
    
    A resposta contém o endereço IP público visto pelo serviço externo. Por exemplo:
    {{{"origin":"150.136.133.92"}}}
  3. Adicione o endereço IP à lista de permissões remota.

    Atualize o firewall, as regras de rede da conta de armazenamento ou a lista de permissões do lado do parceiro para incluir o endereço IP.

Após a atualização da lista de permissões, repita a operação de acesso a dados ou compartilhamento de dados.