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 Live Share
- Falha na Tentativa de Consulta de Tabela Compartilhada
- 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 erroHTTP 403 - Unauthorized.
Tópico pai: Ferramenta de compartilhamento de dados
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.
- 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.
- 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
DOPpara o grupo de consumidoresMEDIUM. - Consuma o mesmo compartilhamento e registre o tempo de execução da consulta da mesma tabela.
Observação:
Configure a contagem deECPU e o valor de DOP como um fornecedor com privilégios de ADMIN.
- Criar Compartilhamento como um provedor.
- Clique em Fornecer Compartilhamentos e selecione +Criar Compartilhamento.
- 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.
- Na guia Publicar Tabelas de Detalhes do assistente, selecione COMPARTILHAR DADOS AO VIVO USANDO CONEXÃO DIRETA.
Clique em Próximo.
- Na guia Selecionar Tabelas do assistente, selecione o esquema no menu drop-down, arraste e solte a tabela
CUSTOMERnas Tabelas Disponíveis.Observação:
Neste exemplo, estamos compartilhando uma única tabela chamadaCustomerde tamanho grande.Clique em Próximo para prosseguir para a guia Destinatários do Assistente de Criação de Compartilhamento.
- Na guia Destinatários do assistente Criar Compartilhamento, selecione
MY_COMPARTMENTno menu suspenso. - Selecione Criar para criar o compartilhamento.
- Use Compartilhar como consumidor e crie consultas externas sobre seus compartilhamentos para registrar o tempo de execução da consulta.
- Depois de criar o compartilhamento como um provedor, você consumirá os dados compartilhados pelo provedor.
Consulte Compartilhar Consumo para obter mais detalhes.
- Faça log-in como consumidor para se inscrever no provedor de compartilhamento de dados e acessar os dados em seu compartilhamento.
- Na página Provedor e Consumidor da ferramenta de Compartilhamento de Dados, clique no mosaico CONSUME SHARE para exibir a página Compartilhar Consumo.
- Clique na lista drop-down Inscrever-se para Compartilhar Provedor e, em seguida, clique na opção Inscrever-se para Compartilhar Provedor ao Vivo.
- Em Compartilhar Detalhes do Provedor, selecione o Nome do Provedor. Neste exemplo,
TPUSERé o nome do provedor. - 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 (>).
- A ferramenta adiciona o compartilhamento à seção Compartilhamentos Selecionados. Clique em Assinar.
- Um provedor de compartilhamento
TPUSERfoi criado com sucesso. Uma mensagem informativa é exibida. Você é direcionado para a página Carregar Dados com a guia Compartilhar selecionada. - Expanda o nó de compartilhamento de dados
TESTSHAREpara exibir os objetos nele. Arraste e solte a tabela compartilhadaTPUSER.CUSTOMERpara adicioná-la ao job de carregamento de dados. - A tabela compartilhada é adicionada ao job de link de dados. Quando você executar esse job, uma nova view
CUSTOMERserá criada na parte superior da tabelaCUSTOMERque foi compartilhada com você. - 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. - 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.
- Arraste e solte a tabela
CUSTOMERna área da planilha SQL. - Uma caixa de diálogo é exibida com os tipos de inserções disponíveis.
- Clique em Selecionar e em Aplicar.
- Clique em Executar. Você pode exibir a consulta gerada automaticamente exibida na Planilha.
- Observe o tempo de execução da consulta no campo Horário de execução exibido na guia Resultado da Consulta.
- Depois de criar o compartilhamento como um provedor, você consumirá os dados compartilhados pelo provedor.
- Aumente as ECPUs como provedor e consumidor e registre o tempo de execução da consulta.
- 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.
- Repita o consumo do mesmo compartilhamento
CUSTOMERe o cálculo do tempo de execução da consulta. Não haverá alteração no tempo para consultar a tabela.
- Aumente as ECPUs da sua instância do Autonomous AI Database como um fornecedor e um consumidor da sua console do OCI.
- Configure o valor DOP para o grupo de consumidores
MEDIUM.- Faça log-in na instância de ações do banco de dados como um consumidor com o privilégio
ADMIN. -
Clique em Seletor e, em Administração, selecione Definir Regras do Resource Management.
-
Diminua o Limite de simultaneidade do grupo de consumidores
MEDIUMpara 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. - Faça log-in na instância de ações do banco de dados como um consumidor com o privilégio
- 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).
- No Databricks 16.3+, use
ALTER TABLE <table_name> DROP FEATURE deletionVectors;e compartilhe novamente. -
Não dependa apenas da definição de
{{delta.enableDeletionVectors=false - }}que interrompe o novo uso do DV, mas não faz downgrade do protocolo. Siga as instruções em Eliminar um recurso de tabela do Delta Lake e fazer downgrade do protocolo da tabela. - Consulte O que são vetores de exclusão? para obter mais detalhes.
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.
-
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; / -
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"}}} -
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.













