Todos os produtos
Search
Central de documentação

:Data-Agent best practices

Última atualização: Jun 29, 2026

O ChatBI utiliza a tecnologia de linguagem natural para SQL (NL2SQL) para ajudar empresas a gerar relatórios por meio de consultas em linguagem natural. Este tópico usa o sistema de gestão de restaurantes "Alixiang" como exemplo para apresentar os principais recursos do ChatBI e permitir que você comece rapidamente a usar o serviço com eficiência.

Ative o recurso PolarDB for AI

  1. Adicione um nó de IA e defina a conta de banco de dados para conexão ao nó de IA. Para mais informações, consulte Ative o recurso PolarDB for AI.

    Nota
    • Se você já adicionou um nó de IA durante a compra do cluster, defina diretamente a conta de banco de dados para o nó de IA. Para mais informações, consulte Crie uma conta padrão.

    • Essa conta deve ter permissões de leitura e gravação nas tabelas de dados de destino para garantir a execução de todas as operações de banco de dados no processo de conversão do ChatBI.

  2. Use o Cluster Endpoint para conectar-se ao cluster PolarDB. Para mais informações, consulte Fazer login no PolarDB for AI.

    Nota
    • Ao conectar-se ao cluster pela linha de comando, adicione a opção -c.

    • Por padrão, o DMS conecta-se ao cluster usando o Primary address. Altere-o manualmente para o Cluster Endpoint. Após a alteração, feche a janela SQL original e abra uma nova para executar instruções SQL.

Preparação de dados

"Alixiang" é uma empresa fictícia de restaurantes. O sistema de gestão de contas contém as três tabelas a seguir. Clique em para baixá-las.

Adicione comentários às tabelas e colunas com base no esquema da tabela. Isso ajuda o Modelo de Linguagem Grande (LLM) a reconhecer e compreender melhor os dados, aumentando a precisão e a eficiência do modelo durante o processamento e a análise.
CREATE TABLE restaurant_info (
  id INT COMMENT 'Outlet ID',
  position VARCHAR(128) COMMENT 'Outlet location',
  PRIMARY KEY (id)
) COMMENT='Outlet table';

CREATE TABLE menu_info (
  id INT COMMENT 'Menu item ID',
  name VARCHAR(64) COMMENT 'Menu item name',
  type INT COMMENT 'Menu item type',
  unit_price INT COMMENT 'Unit price',
  PRIMARY KEY (id)
) COMMENT='Menu table';

CREATE TABLE bill_info (
  id INT COMMENT 'Bill ID',
  items VARCHAR(512) COMMENT 'Ordered items',
  actural_amount INT COMMENT 'Actual amount paid',
  restaurant_id INT COMMENT 'Outlet ID',
  waiter VARCHAR(16) COMMENT 'Waiter',
  diner_count INT COMMENT 'Number of diners',
  pay_time DATE COMMENT 'Order time',
  PRIMARY KEY (id)
) COMMENT='Bill table';

Usar o ChatBI

Use o modelo NL2SQL do PolarDB for AI para gerar instruções SQL correspondentes às perguntas dos usuários.

Crie um índice de esquema de tabela

Execute a seguinte instrução SQL para criar um índice de esquema de tabela chamado schema_index e fornecer informações do esquema ao Modelo de Linguagem Grande (LLM).

/*polar4ai*/CREATE TABLE schema_index(id integer, table_name varchar, table_comment text_ik_max_word, table_ddl text_ik_max_word, column_names text_ik_max_word, column_comments text_ik_max_word, sample_values text_ik_max_word, vecs vector_768,ext text_ik_max_word, PRIMARY key (id));

Essa tabela não fica visível diretamente no banco de dados. Execute a seguinte instrução SQL para visualizar as informações.

/*polar4ai*/SHOW TABLES;

Em seguida, importe o esquema da tabela de dados para a tabela de índice schema_index usando a instrução SQL abaixo.

/*polar4ai*/SELECT * FROM PREDICT (MODEL _polar4ai_text2vec, SELECT '') WITH (mode='async', resource='schema') INTO schema_index;

Durante a execução da instrução, o PolarDB for AI vetoriza todas as tabelas no banco de dados atual e amostra os valores das colunas por padrão.

Após a execução, o sistema retorna o task_id da tarefa em segundo plano, como bce632ea-97e9-11ee-bdd2-492f4dfe0918. Use o SQL a seguir para consultar o status da tarefa atual. A criação do índice estará concluída quando o taskStatus retornado for finish.

/*polar4ai*/SHOW TASK `bce632ea-97e9-11ee-bdd2-492f4dfe0918`;

Usar o modelo NL2SQL para responder perguntas

Execute a seguinte instrução SQL para utilizar o NL2SQL baseado em LLM online. No exemplo abaixo, a consulta do usuário é Qual é a receita total desta semana?, e o índice de esquema de tabela utilizado é schema_index.

/*polar4ai*/SELECT * FROM PREDICT (MODEL _polar4ai_nl2sql, select 'What is the total revenue for this week') WITH (basic_index_name='schema_index');

Aguarde um momento para receber a resposta do LLM. O resultado esperado é o seguinte:

image

Com base no exemplo acima, também é possível fazer perguntas típicas que abrangem vários cenários, como GROUP BY, JOIN de múltiplas tabelas, ORDER BY e fórmulas.

Pergunta do usuário

Valor retornado pelo NL2SQL

1

Classificar pontos de venda por receita

SELECT restaurant_id, SUM(actural_amount) AS total_income FROM bill_info GROUP BY restaurant_id ORDER BY total_income DESC;

2

Qual ponto de venda em Xangai tem a maior receita?

SELECT b.restaurant_id FROM restaurant_info r JOIN bill_info b ON r.id = b.restaurant_id WHERE r.position LIKE '%Shanghai%' GROUP BY r.position ORDER BY SUM(b.actural_amount) DESC LIMIT 1;

3

Qual é o gasto médio por pessoa em Xangai?

SELECT AVG(bill_info.actural_amount / bill_info.diner_count) AS average_consumption_per_person FROM bill_info WHERE bill_info.restaurant_id IN (SELECT id FROM restaurant_info WHERE position = 'Shanghai');

4

Quais são os 10 itens de menu mais pedidos neste mês?

SELECT mi.name, SUM(bi.items) as total_orders FROM bill_info bi JOIN menu_info mi ON bi.items = mi.id WHERE bi.pay_time >= '2024-10-01' AND bi.pay_time < '2024-11-01' GROUP BY mi.name ORDER BY total_orders DESC LIMIT 10;

5

Qual é a porcentagem de crescimento mensal da receita deste mês em relação ao mês passado?

SELECT (SUM(CASE WHEN MONTH(pay_time) = 10 AND YEAR(pay_time) = 2024 THEN actural_amount ELSE 0 END) - SUM(CASE WHEN MONTH(pay_time) = 9 AND YEAR(pay_time) = 2024 THEN actural_amount ELSE 0 END)) / SUM(CASE WHEN MONTH(pay_time) = 9 AND YEAR(pay_time) = 2024 THEN actural_amount ELSE 0 END) * 100 AS growth_percentage FROM bill_info;

6

Qual ponto de venda em Xangai tem o maior fluxo de clientes?

SELECT r.position, COUNT(b.id) AS customer_flow FROM restaurant_info r JOIN bill_info b ON r.id = b.restaurant_id WHERE r.position LIKE '%Shanghai%' GROUP BY r.id ORDER BY customer_flow DESC LIMIT 1;

O modelo NL2SQL baseado em LLM responde eficazmente às perguntas dos usuários, mas algumas respostas podem não atender às expectativas. Por exemplo, na segunda pergunta, o usuário deseja que o nome do ponto de venda seja retornado. Se a pergunta for reformulada como Qual ponto de venda em Xangai tem a maior receita? Por favor, retorne o nome do ponto de venda, o modelo retornará a seguinte instrução SQL: SELECT r.name FROM bill_info b JOIN restaurant_info r ON b.restaurant_id = r.id WHERE r.position = 'Shanghai' ORDER BY b.actural_amount DESC LIMIT 1;. Também é possível melhorar a precisão ajustando o modelo. As seções a seguir abordam essas questões.

Ajustar o modelo

Configure modelos de perguntas

Modelos gerais de perguntas orientam o modelo introduzindo conhecimentos específicos, permitindo a geração de instruções SQL com base nesse conhecimento.

  1. Execute o SQL a seguir para criar a tabela de modelo de perguntas polar4ai_nl2sql_pattern.

    CREATE TABLE `polar4ai_nl2sql_pattern` (
      `id` int(11) NOT NULL AUTO_INCREMENT COMMENT 'Primary key',
      `pattern_question` text COMMENT 'Template question',
      `pattern_description` text COMMENT 'Template description',
      `pattern_sql` text COMMENT 'Template SQL',
      `pattern_params` text COMMENT 'Template parameters',
      PRIMARY KEY (`id`)
    ) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;

    O nome da tabela deve começar com polar4ai_nl2sql_pattern, e o esquema deve incluir as cinco colunas presentes na instrução CREATE TABLE acima.

  2. Em seguida, crie a tabela de índice pattern_index para o modelo de perguntas.

    /*polar4ai*/CREATE TABLE pattern_index(id integer, pattern_question 
    text_ik_max_word, pattern_description text_ik_max_word, pattern_sql 
    text_ik_max_word, pattern_params text_ik_max_word, pattern_tables 
    text_ik_max_word, vecs vector_768, PRIMARY key (id));

    Configure um modelo para a segunda pergunta, usado no ajuste fino para retornar o endereço da loja.

    Execute a seguinte instrução SQL para adicionar um novo padrão:

    INSERT INTO polar4ai_nl2sql_pattern (id, pattern_question, pattern_description, pattern_sql, pattern_params) VALUES (
      1, 
      "Which outlet in #{position} has the highest revenue?", 
      "Which outlet in [location] has the highest revenue?", 
      "SELECT r.position FROM bill_info b JOIN restaurant_info r ON b.restaurant_id = r.id WHERE r.position LIKE '%#{position}%' GROUP BY r.position ORDER BY SUM(b.actural_amount) DESC LIMIT 1;",
      '[{"table_name":"bill_info","param_info":[{"param_name":"#{position}","value":["Shanghai"]}], "explanation": "Location of consumption"}]'
    );

    O padrão usa slots para corresponder a múltiplos locais. Insira a instrução SQL correta na coluna pattern_sql e marque o slot com #{}. A coluna pattern_params serve para pós-processamento adicional das informações da tabela, mas pode ser ignorada aqui.

  3. Importe as informações do modelo de perguntas para a tabela de índice.

    /*polar4ai*/SELECT * FROM PREDICT (MODEL _polar4ai_text2vec, SELECT '') WITH (mode='async', resource='pattern') INTO pattern_index;

    Assim como no processo de criação de índice para schema_index, um ID de tarefa também é retornado. Execute /*polar4ai*/show task 'xxx-xxx-xxx' para verificar o status da tarefa atual.

    Nota

    Se os dados na tabela polar4ai_nl2sql_pattern forem atualizados, recrie o pattern_index e importe os dados novamente. Use a seguinte instrução SQL para exclua o índice antigo:

    /*polar4ai*/DROP TABLE pattern_index;

    Reexecute a instrução SQL problemática e adicione a dica pattern_index.

    /*polar4ai*/SELECT * FROM PREDICT (MODEL _polar4ai_nl2sql, select 'Which outlet in Shanghai has the highest revenue?') WITH 
    (basic_index_name='schema_index',pattern_index_name='pattern_index');

    5eecdaf48460cde5ad9d83d5444ce71cd140b5a7e9b23e1258e70b814913bc360a414d3de9277d871abf3af1cbd75249c0734e6846e794467f339bd1442daeacb6461bc7ea938f09d4a6c8551d30df66760f3fe7627db0a6fc653b69905bac42

Crie uma tabela de configuração

Utilize uma tabela de configuração para pré-processar perguntas ou pós-processar o SQL final gerado.

Dicas de significado de vocabulário

Na sexta pergunta, como o Modelo de Linguagem Grande (LLM) não consegue compreender com precisão o termo 'tráfego de pedestres', realize o pré-processamento configurando a tabela polar4ai_nl2sql_llm_config.

CREATE TABLE `polar4ai_nl2sql_llm_config` (
  `id` int(11) NOT NULL AUTO_INCREMENT COMMENT 'Primary key',
  `is_functional` int(11) NOT NULL DEFAULT '1' COMMENT 'Is active',
  `text_condition` text COMMENT 'Text condition',
  `query_function` text COMMENT 'Query processing',
  `formula_function` text COMMENT 'Formula information',
  `sql_condition` text COMMENT 'SQL condition',
  `sql_function` text COMMENT 'SQL processing',
  PRIMARY KEY (`id`)
);

Insira o item de configuração relevante para definir que o LLM considere "tráfego de clientes" ou "fluxo de clientes" como "número de clientes".

INSERT INTO polar4ai_nl2sql_llm_config (id, is_functional, text_condition, query_function, formula_function, sql_condition, sql_function) VALUES (
  1, 
  1, 
  "customer traffic||customer flow", 
  "", 
  "Customer traffic or customer flow is calculated as the sum of the number of diners", 
  "", 
  ""
);

Neste caso, o valor 1 para is_functional indica que o item de configuração é válido. O valor do campo text_condition é 'people traffic||customer traffic', correspondendo a perguntas que contenham 'people traffic' ou 'customer traffic'. O campo formula_function explica termos especializados ao Modelo de Linguagem Grande (LLM) usando texto ou fórmulas.

Nesta situação, execute diretamente a geração de SQL sem criar uma tabela de índice ou realizar vetorização. O resultado é o seguinte.

image

Dicas de correspondência difusa

Na pergunta 3, o uso do operador = para recuperar nomes de lugares falhará se o nome não for uma correspondência exata. Portanto, utilize uma busca difusa para correspondência de nomes de lugares. Adicione o seguinte item de configuração.

INSERT INTO polar4ai_nl2sql_llm_config (id, is_functional, text_condition, query_function, formula_function, sql_condition, sql_function) VALUES (
  2, 
  1, 
  "", 
  "", 
  "Matching for the outlet location 'position' requires a fuzzy search", 
  "", 
  ""
);

Se text_condition estiver vazio, o item de configuração se aplica globalmente. (Use com cautela.)

O resultado é mostrado na figura abaixo. Observe que a correspondência de local utiliza com sucesso uma busca difusa.

image

Da mesma forma, para a pergunta 5, adicione as fórmulas de cálculo de comparação mensal e anual à tabela de configuração polar4ai_nl2sql_llm_config para melhorar a precisão do SQL gerado. Teste isso por conta própria.

Saída de gráfico

Após gerar uma instrução SQL com NL2SQL, recupere o resultado da consulta e exiba-o visualmente com gráficos, como gráficos de colunas, de linhas e de pizza. A solução NL2Chart no PolarDB executa sua instrução SQL com base na sua pergunta e retorna um relatório correspondente, suportando gráficos de colunas, de pizza e de linhas.

  1. Suponha que sua instrução no NL2SQL seja a seguinte:

    /*polar4ai*/SELECT * FROM PREDICT (MODEL _polar4ai_nl2sql, select 'Merchant type statistics') WITH (basic_index_name='schema_index',pattern_index_name='pattern_index');

    Depois que a instrução SQL correspondente for gerada, verifique se ela executa e retorna um resultado significativo e não vazio.

    SELECT merchtype AS merchant_type, COUNT(*) AS product_count FROM hkrt_merchant_info GROUP BY merchtype;
  2. Use o NL2Chart:

    Sintaxe

    /*polar4ai*/SELECT * FROM PREDICT (MODEL _polar4ai_nl2chart, <SQL_statement>) WITH (usr_query = <usr_query>, result_type = <result_type>);

    Parâmetros

    Nome do parâmetro

    Descrição

    Valor de exemplo

    usr_query

    A pergunta inserida pelo usuário, usada para esclarecer os requisitos de geração do gráfico.

    "Estatísticas de vendas para cada trimestre de 2023"

    result_type

    Especifique o tipo de resultado retornado. Atualmente, apenas 'IMAGE' é suportado.

    'IMAGE'

    Instrução SQL

    A instrução de consulta SQL gerada pelo módulo NL2SQL, usada para recuperar dados.

    SELECT quarter, sales FROM sales_data WHERE year = 2023

    Exemplo: Converter o resultado da consulta da instrução SQL gerada em um gráfico

    /*polar4ai*/SELECT * FROM PREDICT (MODEL _polar4ai_nl2chart, SELECT merchtype AS merchant_type, COUNT(*) AS number_of_merchants FROM hkrt_merchant_info GROUP BY merchtype) WITH (usr_query = 'Merchant type statistics', result_type='IMAGE');

    O resultado é o seguinte:

    Nota

    O link retornado é uma URL de imagem válida por 90 minutos.

    http://db4ai-xxx-xx-xxxx-xxx-xxxx.aliyuncs.com/pc-bpze47ma2c515087l6/OSSAccessKeyId=xxxxxxx&Expires=1716130199&Signature=KvPFzfMebIEmqxPIXURurwwbsXM%3D

    image.png

  3. (Opcional) Seleção de tipo de gráfico e seleção forçada

    O modelo selecione um gráfico apropriado com base na compreensão da pergunta do usuário e dos dados. Recomendamos usar a pergunta do usuário para orientar o modelo na geração do gráfico.

    A tabela a seguir mostra o mapeamento entre tipos de perguntas e tipos de gráficos:

    Tipo de pergunta

    Tipo de gráfico

    Exemplo de pergunta do usuário

    Descrição

    Estatísticas de quantidade

    Gráfico de colunas

    "Forneça estatísticas de vendas por cidade"

    Mostra comparações numéricas entre diferentes categorias, como quantidade, valor total ou frequência.

    Mudança de tendência

    Gráfico de linhas

    "Mostre a tendência de crescimento de usuários no último ano"

    Exibe a tendência dos dados ao longo do tempo ou em categorias ordenadas, enfatizando a continuidade.

    Distribuição de proporção

    Gráfico de pizza

    "Mostre a proporção de vendas de cada linha de produtos"

    Adequado para mostrar a relação proporcional das partes em relação ao todo. Os dados devem ser categóricos e ter um total claro.

    Force um tipo específico de gráfico modificando o parâmetro usr_query. Adicione um comando complementar ao final do parâmetro usr_query:

    -- Enter the output SQL into nl2chart to draw a line chart
    /*polar4ai*/SELECT * FROM PREDICT (MODEL _polar4ai_nl2chart,
    SELECT merchtype AS merchant_type, COUNT(*) AS number_of_merchants FROM hkrt_merchant_info GROUP BY merchtype
    ) WITH (usr_query = 'Merchant type statistics, draw a line chart', result_type='IMAGE');

    image.png

    -- Enter the output SQL into nl2chart to draw a pie chart
    /*polar4ai*/SELECT * FROM PREDICT (MODEL _polar4ai_nl2chart,
    SELECT merchtype AS merchant_type, COUNT(*) AS number_of_merchants FROM hkrt_merchant_info GROUP BY merchtype
    ) WITH (usr_query = 'Merchant type statistics, draw a pie chart', result_type='IMAGE');

    image.png

Para mais informações, consulte NL2Chart: Gerar gráficos inteligentes a partir de linguagem natural.

Retreinar e ajustar o modelo

Se o modelo não atender às necessidades do seu negócio, retreine-o e ajuste seus parâmetros internos para obter melhores resultados.

Condições

  • Este recurso está disponível apenas para clusters com nós de IA da especificação polar.mysql.x8.2xlarge.gpu (16 núcleos, 125 GB e uma GU100).

  • Treine apenas um modelo por vez.

  • Implante apenas um modelo por vez.

Instruções

Treinar o modelo

/*polar4ai*/CREATE MODEL udf_qwen14b WITH (model_class='qwen-turbo', model_parameter=(basic_index_name='schema_index', pattern_index_name='pattern_index',training_type='efficient_sft')) as (SELECT '')

Parâmetros

Nome do parâmetro

Descrição

Padrão

Valores válidos/Intervalo

model_class

O tipo de modelo. Atualmente suporta {'qwen-14b-chat', 'qwen-turbo'}.

Nenhum

{'qwen-14b-chat', 'qwen-turbo'}

model_parameter

Configurações de parâmetros do modelo, incluindo parâmetros obrigatórios e opcionais.

Nenhum

Nenhum

basic_index_name

O nome da tabela de índice de onde as informações do banco de dados nos dados de treinamento são obtidas. Deve ser uma tabela de índice de banco de dados.

Nenhum

Nenhum

pattern_index_name

O nome da tabela de índice de onde as informações do modelo de perguntas nos dados de treinamento são obtidas. Deve ser uma tabela de índice de modelo de perguntas.

Nenhum

Nenhum

training_type

O tipo de treinamento. Os valores válidos são {'efficient_sft', 'sft'}. 'efficient_sft' indica treinamento eficiente, geralmente usando o método LoRa. 'sft' indica treinamento de parâmetros completos.

Nenhum

{'efficient_sft', 'sft'}

n_epochs

O número de épocas. Quantidade de vezes que o modelo aprende com o conjunto de dados durante o treinamento. O intervalo recomendado é de 1 a 3, ajustável conforme necessário.

3

[1, 200]

learning_rate

A taxa de aprendizado. Representa o peso incremental do parâmetro para cada atualização de dados. Uma taxa de aprendizado maior resulta em mudanças maiores nos parâmetros e tem maior impacto no modelo.

'3e-4'

Nenhum

batch_size

O tamanho do lote. Representa o passo dos dados para atualizações de parâmetros do modelo. O tamanho de lote recomendado é 16 ou 32.

16

{8, 16, 32}

lr_scheduler_type

A política de taxa de aprendizado. Altera dinamicamente a taxa de aprendizado usada ao atualizar pesos durante o treinamento.

'linear'

{'linear', 'cosine', 'cosine_with_restarts', 'polynomial', 'constant', 'constant_with_warmup', 'inverse_sqrt', 'reduce_lr_on_plateau'}

eval_steps

O intervalo de passos para validação do modelo, usado para avaliação periódica da precisão e perda do treinamento.

50

[1, 2147483647]

sequence_length

O comprimento da sequência dos dados de treinamento. Comprimento máximo de uma única amostra. Dados que excederem esse comprimento serão truncados automaticamente.

2048

[500, 2048]

lr_warmup_ratio

A proporção do total de etapas de treinamento usadas para aquecimento.

0,05

(0, 1)

weight_decay

Regularização L2, que ajuda a reduzir o overfitting.

0,01

(0, 0,2)

gradient_checkpointing

Ativa ou desativa o checkpoint de gradiente para economizar memória GPU.

'True'

{'True', 'False'}

use_flash_attn

Especifique se deve usar Flash Attention.

'True'

{'True', 'False'}

lora_rank

O tamanho do rank no treinamento LoRa, que afeta o grau de influência dos dados de treinamento no modelo.

8

{2, 4, 8, 16, 32, 64}

lora_alpha

O coeficiente de escala no treinamento LoRa, usado para ajustar os pesos iniciais de treinamento.

32

{8, 16, 32, 64}

lora_dropout

A proporção de neurônios descartados aleatoriamente durante o treinamento. Isso previne overfitting e melhora a capacidade de generalização do modelo.

0,1

(0, 0,2)

lora_target_modules

Selecione módulos específicos do modelo para ajuste fino e otimização.

'ALL'

{'ALL', 'AUTO'}

Visualize um modelo

/*polar4ai*/SHOW model udf_qwen14b

Exclua um modelo

/*polar4ai*/DROP model udf_qwen14b

Visualize todos os modelos

/*polar4ai*/SHOW models

Implantar um modelo

Um modelo treinado só pode ser usado no NL2SQL após ser implantado.

/*polar4ai*/deploy model udf_qwen14b

Visualize uma implantação

/*polar4ai*/SHOW deployment udf_qwen14b

Exclua uma implantação

/*polar4ai*/DROP deployment udf_qwen14b

Visualize todas as implantações

/*polar4ai*/SHOW deployments

Usar um modelo implantado para linguagem natural para SQL

/*polar4ai*/SELECT * FROM PREDICT (MODEL _polar4ai_nl2sql, SELECT 'What is the content for id=1?') WITH (basic_index_name='schema_index', llm_model='udf_qwen14b')
Parâmetros

Parâmetro

Descrição

basic_index_name

Não pode estar vazio. Especifique a tabela de índice para as informações do banco de dados relacionadas à pergunta atual.

llm_model

Opcional. Se deixar vazio, o modelo não ajustado será usado para linguagem natural para SQL. Se especifique um valor, certifique-se de que seja o nome de uma implantação no estado "serving". Modelos não totalmente implantados não podem ser usados aqui.

Perguntas frequentes

Ocorre um erro ao executar sintaxe SQL na plataforma DMS.

Por padrão, o DMS conecta-se ao cluster usando o Primary address. Altere-o manualmente para o Cluster Endpoint. Após a alteração, feche a janela SQL original e abra uma nova para executar instruções SQL. Para mais informações, consulte Fazer login no PolarDB for AI.

Mensagem de erro: 2003 - Execute sql failed in ai db Falha na execução.

  1. Verifique se a conta de banco de dados em uso é a do nó de IA e se possui permissões de leitura e gravação. Para mais informações, consulte Ative o recurso PolarDB for AI.

  2. Se estiver usando o DMS, após alterar a conexão para o Cluster Endpoint, feche a janela SQL original e abra uma nova para executar instruções SQL. Para mais informações, consulte Fazer login no PolarDB for AI.

  3. Verifique se há caracteres especiais na instrução SQL. Tente remover comentários, quebras de linha e recuos.

Mensagem de erro: **9050 - Empty data 'polar4ai_nl2sql_pattern'**.

A tabela polar4ai_nl2sql_pattern está vazia. Se não houver padrões disponíveis, não é necessário realizar a importação vetorizada.

Ocorre um erro ao executar **data2chart: 1149 - You have an error in your SQL syntax;**.

Esse erro pode ter várias causas. Siga estas etapas para solucionar o problema:

  1. Verifique os nomes das colunas: Confirme se uma palavra-chave ou nome de função está sendo usado como nome de coluna na instrução SQL.

  2. Insira a instrução SQL como uma string no banco de dados.

  3. O parâmetro sql_fetching recupera a instrução SQL especificada para geração.