Todos os produtos
Search
Central de documentação

ApsaraDB for HBase:HBase SQL (Phoenix) FAQ

Última atualização: Jun 27, 2026

Perguntas e respostas comuns sobre o HBase SQL (Phoenix) no ApsaraDB for HBase.

Quais pacotes JAR da versão mais recente do ali-phoenix estão disponíveis no Maven Central Repository?

  • Os pacotes de implantação do ali-phoenix 4.x são:

    GroupId

    ArtifactId

    Latest version

    com.aliyun.phoenix

    ali-phoenix

    4.12.0-AliHBase-1.1-0.9

    com.aliyun.phoenix

    ali-phoenix-hive

    4.12.0-AliHBase-1.1-0.9

    com.aliyun.phoenix

    ali-phoenix-spark

    4.12.0-AliHBase-1.1-0.9

    com.aliyun.phoenix

    ali-phoenix-pherf

    4.12.0-AliHBase-1.1-0.9

    com.aliyun.phoenix

    ali-phoenix-queryserver

    4.12.0-AliHBase-1.1-0.9

    com.aliyun.phoenix

    ali-phoenix-queryserver-client

    4.12.0-AliHBase-1.1-0.9

    com.aliyun.phoenix

    ali-phoenix-pig

    4.12.0-AliHBase-1.1-0.9

    com.aliyun.phoenix

    ali-phoenix-flume

    4.12.0-AliHBase-1.1-0.9

    com.aliyun.phoenix

    ali-phoenix-core

    4.12.0-AliHBase-1.1-0.9

  • Os pacotes de implantação do ali-phoenix 5.x são:

    GroupId

    ArtifactId

    Latest version

    com.aliyun.phoenix

    ali-phoenix-shaded-thin-client

    5.2.5-HBase-2.x

    Nota

    Para evitar conflitos de pacotes entre o thin client e aplicações de negócios de terceiros, use o pacote shade do thin client.

Qual é o formato da URL JDBC do ali-phoenix?

Use o fat client quando o QueryServer estiver desativado e o thin client quando ele estiver ativado. O ali-phoenix não oferece suporte à autenticação baseada em keytab; portanto, o formato da URL do Java Database Connectivity (JDBC) difere do Apache Phoenix.

  • Driver do fat client

    URL syntax

      jdbc:phoenix:[[ZK_HOST1:port, ZK_HOST2:port, ZK_HOST3:port | comma-separated ZooKeeper Quorum [:port] [:hbase root znode] ]

    Simple URL examples

    jdbc:phoenix:localhost   
    jdbc:phoenix:localhost:123:/hbase  
    jdbc:phoenix:v1,v2,v3:123:/hbase  
    jdbc:phoenix:v1:2181,v2:2181,v3:2181:/hbase  
    jdbc:phoenix:v1:2181,v2:2181,v3:2181
  • Driver do thin client

    URL syntax

    jdbc:phoenix:thin:[key=value[;key=value...]]

    Simple URL examples

    jdbc:phoenix:thin:url=http://localhost:8765;serialization=PROTOBUF

Há suporte para o QueryServer?

  • O HBase 1.x usa o Phoenix 4.x no modo fat client. Para usar o QueryServer, configure-o manualmente.

  • O HBase 2.0 inclui o serviço HBase SQL com o QueryServer ativado por padrão.

Há suporte para o Tracing Web Application?

Ainda não. Esse recurso está em desenvolvimento para o ali-phoenix no ApsaraDB for HBase.

O que fazer se a criação de um índice secundário síncrono atingir o tempo limite?

Phoenix 4.x no HBase 1.0: Adicione a seguinte configuração de tempo limite ao cliente e reinicie-o.

<property>    
     <name>hbase.rpc.timeout</name>    
     <value>60000000</value>
</property>
<property>    
     <name>hbase.client.scanner.timeout.period</name>    
     <value>60000000</value>
</property>
<property>    
        <name>phoenix.query.timeoutMs</name>   
        <value>60000000</value>
</property>

Phoenix 5.x no HBase 2.0: Modifique esses parâmetros nas configurações do console e reinicie o serviço HBase SQL. Não é necessário reiniciar o HBase, apenas o serviço HBase SQL (Phoenix).

Nota

Em um cluster Phoenix 5.x, ajustar os parâmetros de tempo limite afeta as consultas online. Crie o índice usando um fat client ou um cluster MapReduce. Para obter mais informações, consulte

Criação de índices

.

Como ativar o Namespace Mapping?

  • Etapas para ativação na versão 4.x

    1. Adicione a seguinte configuração ao cliente.

      <property>    
           <name>hbase.rpc.timeout</name>    
           <value>60000000</value>
      </property>
      <property>    
           <name>hbase.client.scanner.timeout.period</name>    
           <value>60000000</value>
      </property>
      <property>    
              <name>phoenix.query.timeoutMs</name>   
              <value>60000000</value>
      </property>
    2. Entre em contato com o suporte do ApsaraDB for HBase para ativar os parâmetros do lado do servidor.

    3. Reinicie o cluster HBase.

  • Etapas para ativação na versão 5.x

    1. Faça login no console.

    2. Configure os parâmetros.

      Defina phoenix.schema.isNamespaceMappingEnabled e phoenix.schema.mapSystemTablesToNamespace como true.

    3. Reinicie o cluster HBase.

    4. Reinicie o serviço SQL.

    Nota

    Configure dois conjuntos idênticos de parâmetros com descrições diferentes. Um conjunto destina-se ao query server e o outro ao servidor HBase. Ambos são obrigatórios.

Há suporte para pools de conexão?

A versão 4.12.0.X do Phoenix 4.x oferece suporte a pools de conexão por meio do PhoenixConnectionPool.java.

Como o Phoenix 5.x baseia-se em uma implementação de thin client, o PhoenixConnectionPool.java não se aplica. Use um pool de conexões de terceiros, como o MyBatis. Consulte esta referência para ver um exemplo.

Posso desconectar o cliente se a criação do índice demorar muito?

Não. A criação de índice tem duas etapas: o servidor sincroniza os dados da tabela de source para a tabela de índice e, em seguida, o cliente envia uma solicitação para definir o status da tabela de índice como ativo. A primeira etapa é executada no servidor após o cliente iniciar a solicitação, mas a segunda etapa exige uma conexão ativa do cliente.

Qual é a velocidade de sincronização de dados ao criar uma tabela de índice síncrona?

A indexação de 10 milhões de registros geralmente leva de 5 a 20 minutos. O tempo real depende da configuração do cluster e do uso de recursos.

O que fazer se o cliente for desconectado porque a criação do índice está demorando muito?

Após uma desconexão, a tabela de índice geralmente permanece no estado building. Verifique o status com o comando !table no sqlline. O índice só estará concluído quando o status mudar para active. Para recuperar, escolha uma das opções abaixo:

  1. Reconstrua o índice usando o comando alter index.

  2. Exclua a tabela de índice no estado building, aumente o tempo limite do cliente e crie o índice novamente.

Como importar dados de um banco de dados relacional para uma tabela Phoenix no ApsaraDB for HBase?

Use o DataX. Para exemplos, consulte Exemplos.

O que fazer ao encontrar o erro ERROR 599(42912): Default enable Force index, please set phoenix.force.index=false to disable it...., durante uma consulta?

O Phoenix impõe o uso de índices durante a compilação SQL para evitar varreduras completas de tabela. Esse erro ocorre quando uma consulta filtra por uma coluna que não é chave primária nem índice. Para permitir tais consultas, desative a verificação forçada de índice:

  • Phoenix 4.x: Defina phoenix.force.index como false no arquivo hbase-site.xml do cliente e reinicie-o.

  • Phoenix 5.x: Defina phoenix.force.index como false nas configurações de parâmetros do console e reinicie o serviço HBase SQL.

O que fazer ao receber o erro java.sql.SQLException: java.lang.IllegalArgumentException: Connection is null or closed ao usar um pool de conexões Druid com Spring Boot?

O Phoenix armazena conexões em cache internamente. Envolver essa funcionalidade com um pool de conexões externo, como o Druid, causa conflitos e algumas conexões são fechadas inesperadamente. Remova o pool externo e use o cache de conexões integrado do Phoenix.

Por que recebo o erro phoenixdb.errors.InternalError: ('', None, None, None) ao usar um cliente Python para conectar ao QueryServer e tentar ler ou gravar dados após um período de inatividade?

O cliente Python open source não se reconecta automaticamente após um tempo limite. Quando uma conexão por meio de uma instância do Server Load Balancer (SLB) fica ociosa e atinge o tempo limite, a próxima solicitação é roteada para um nó diferente do QueryServer, o que causa esse erro.

Para corrigir isso, substitua o cliente open source pelo cliente phoenix-python da Alibaba Cloud, que gerencia a reconexão automaticamente:

  1. Baixe o cliente phoenix-python da Alibaba Cloud. Clique em para baixar.

  2. Se você já tiver um driver phoenix-python instalado, remova-o primeiro.

    rm -rf /usr/lib/python${version}/site-packages/phoenixdb*
  3. Descompacte o pacote baixado, acesse o diretório phoenixdb e instale o driver.

    python setup.py install

O Phoenix oferece suporte a multitenancy?

Os comandos grant e revoke não têm suporte atualmente.