Todos os produtos
Search
Central de documentação

Data Management:Consultar uma tabela lógica

Última atualização: Jun 27, 2026

Este tópico descreve como consultar uma tabela lógica.

Contexto

  • Após implementar o sharding de banco de dados e tabelas, você precisa de um método simples para consultar dados distribuídos em várias tabelas físicas. Uma tabela lógica oferece uma visualização unificada que permite consultar os dados fragmentados como se estivessem em uma única tabela. Isso elimina a complexidade de localizar manualmente o banco de dados e a tabela corretos para cada consulta.

  • O Data Management (DMS) viabiliza essas consultas transparentes ao agregar dados de logical databases e logical tables.

Procedimento

  1. Selecione o logical database para consultar e exportar dados. Antes de configurar um algoritmo de roteamento, apenas as instruções SELECT, UPDATE e DELETE são permitidas. A instrução INSERT não é compatível neste estágio.

    Se você executar uma instrução INSERT nesta etapa, o sistema retornará o seguinte erro: [Error] dsql.DSQLException: No shard route found, execution failed. Make sure a routing algorithm is configured for the logical table.

  2. Configure um algoritmo de roteamento. Este exemplo utiliza módulo simples. Para mais informações sobre como configurar algoritmos complexos, consulte Configurar um algoritmo de roteamento.

    Na caixa de diálogo New algorithm, defina Algorithm type como Single-column modulo, Modulo type como Simple modulo e Routing field como user_id (bigint). Defina Modulo como 128 e clique em Save.

  3. Execute uma instrução INSERT.

    Por exemplo, execute INSERT INTO scend_test(gmt_create,gmt_modified,user_id) VALUES (now(),now(),2); para inserir um registro na tabela scend_test. Uma marca de verificação verde aparece na área de resultados após a execução bem-sucedida.

  4. Faça uma consulta rápida.

    • Com o algoritmo de roteamento configurado, consulte uma tabela shard física específica usando o campo de roteamento na condição de busca. Isso evita o cálculo manual e a alternância entre bancos de dados e tabelas físicas. No Console SQL do DMS, execute a instrução SQL SELECT * FROM scend_test WHERE user_id = 4, que utiliza o campo de roteamento user_id como condição. O log de execução mostra que o DMS roteou a tabela lógica scend_test para a tabela shard física poc_dev.scend_test_000.

    • O resultado da consulta inclui uma coluna adicional que indica o banco de dados e a tabela de origem. Clique no valor dessa coluna para navegar diretamente para a tabela shard física correspondente, com a instrução SQL e as condições de consulta já preenchidas. Por exemplo, ao executar SELECT * FROM scend_test WHERE user_id = 1, a coluna de localização de dados no resultado exibe poc_dev.scend_test_000. Isso confirma que o DMS roteou os dados para a tabela shard física adequada e retornou um registro correspondente.

    • Também é possível executar consultas sem incluir o campo de roteamento como condição. Essa abordagem faz uma varredura completa em todas as tabelas shard físicas, sendo útil para operações como estatísticas resumidas.

      Nota

      Sintaxes como GROUP BY também são compatíveis. A maioria das sintaxes SQL é consistente com o banco de dados source, mas subconsultas não têm suporte atualmente.

      Por exemplo, se você executar SELECT COUNT(*) FROM scend_test; no Console SQL, o resultado será 1, indicando que a tabela contém um registro.