Como se conectar ao Cloud Bigtable

Para se conectar ao Cloud Bigtable, é preciso configurar diversas propriedades de configuração e criar um objeto Connection. Criar um objeto Connection é uma operação de grande porte. Dessa maneira, crie o mínimo de objetos possível:

  • Caso você use a replicação ou perfis de aplicativo para identificar tipos diferentes de tráfego para a instância, crie um objeto Connection por perfil de aplicativo e compartilhe-os entre linhas de execução no aplicativo.
  • Caso você não use replicação ou perfis de app, crie um objeto Connection e o compartilhe entre threads no aplicativo.

Existem algumas maneiras de especificar as definições de configuração para um objeto Connection:

  • Incluir as configurações no seu código. Caso o aplicativo use vários perfis de app (por exemplo, caso realize várias funções diferentes, com um perfil de app separado para cada função), você precisará usar essa opção.

    Você também poderá usar essa opção se preferir manter definições de configuração no código do aplicativo ou se não for prático incluir um arquivo de configuração externo como um recurso no aplicativo.

  • Usar um arquivo hbase-site.xml para armazenar as configurações. Use essa opção caso o aplicativo use o HBase e o Cloud Bigtable ou caso você prefira manter as definições de configuração do Cloud Bigtable em um arquivo independente.

As seções a seguir explicam cada maneira de configurar e criar um objeto Connection.

Como incluir configurações no código

Veja no exemplo a seguir como convém criar um objeto Connection no próprio aplicativo: Substitua [VALUES_IN_BRACKETS] pelos valores corretos da instância:

package com.example.helloworld;

import com.google.cloud.bigtable.hbase.BigtableConfiguration;
import com.google.cloud.bigtable.hbase.BigtableOptionsFactory;
import java.io.IOException;
import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.hbase.client.Connection;

public class BigtableHelper {
  private static final String PROJECT_ID = "[YOUR_PROJECT_ID]";
  private static final String INSTANCE_ID = "[YOUR_INSTANCE_ID]";
  // Include the following line if you are using app profiles.
  // If you do not include the following line, the connection uses the
  // default app profile.
  private static final STRING APP_PROFILE_ID = "[YOUR_APP_PROFILE_ID]";

  private static Connection connection = null;

  public static void connect() throws IOException {
    Configuration config = BigtableConfiguration.configure(PROJECT_ID, INSTANCE_ID);
    // Include the following line if you are using app profiles.
    // If you do not include the following line, the connection uses the
    // default app profile.
    config.set(BigtableOptionsFactory.APP_PROFILE_ID_KEY, APP_PROFILE_ID);

    connection = BigtableConfiguration.connect(config);
  }
}

Como usar um arquivo hbase-site.xml

Nesta seção, veja como criar um objeto Connection incluindo as definições de configuração em um arquivo hbase-site.xml.

Código de amostra

O exemplo a seguir mostra como você pode configurar e criar um objeto Connection no seu próprio aplicativo:

package com.example.helloworld;

import java.io.IOException;
import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.hbase.HBaseConfiguration;
import org.apache.hadoop.hbase.client.Connection;
import org.apache.hadoop.hbase.client.ConnectionFactory;

public class BigtableHelper {
  private static Connection connection = null;

  public static void connect() throws IOException {
    Configuration config = HBaseConfiguration.create();
    connection = ConnectionFactory.createConnection(config);
  }
}

Um arquivo hbase-site.xml separado está incluído nos recursos do arquivo JAR. Quando você cria o objeto Configuration, o cliente HBase do Cloud Bigtable para Java lê automaticamente as configurações do arquivo hbase-site.xml.

Veja nas seções a seguir como implementar esse método no seu aplicativo.

Criação do arquivo hbase-site.xml

No diretório src/main/resources do seu projeto, crie um arquivo chamado hbase-site.xml. O arquivo precisa conter todas as propriedades mostradas no exemplo a seguir. Substitua [VALUES_IN_BRACKETS] pelos valores corretos da instância:

<configuration>
  <property>
    <name>hbase.client.connection.impl</name>
    <value>com.google.cloud.bigtable.hbase1_x.BigtableConnection</value>
  </property>
  <property>
    <name>google.bigtable.project.id</name>
    <value>[YOUR_PROJECT_ID]</value>
  </property>
  <property>
    <name>google.bigtable.instance.id</name>
    <value>[YOUR_INSTANCE_ID]</value>
  </property>
  <!--
    Include the following property if you are using app profiles.
    If you do not include the following property, the connection uses the
    default app profile.
  -->
  <property>
    <name>google.bigtable.app.profile.id</name>
    <value>[YOUR_APP_PROFILE_ID]</value>
  </property>
</configuration>

Como adicionar hbase-site.xml ao arquivo JAR

Depois de criar o arquivo hbase-site.xml, você precisará atualizar o script da versão para incluir o diretório src/main/resources no arquivo JAR do projeto.

Se você estiver usando o Maven, edite o elemento <build> do seu arquivo pom.xml para copiar os recursos para seu arquivo JAR:

<build>
  <resources>
    <resource>
      <directory>src/main/resources</directory>
      <filtering>true</filtering>
    </resource>
  </resources>
</build>

Como criar o objeto Connection

Já é possível atualizar o código para criar um objeto Configuration. Quando você cria esse objeto, o cliente do HBase do Cloud Bigtable para Java lê automaticamente as configurações do arquivo hbase-site.xml. Você acaba usando essas configurações para criar um objeto Connection:

Configuration config = HBaseConfiguration.create();
connection = ConnectionFactory.createConnection(config);

Próximas etapas

Esta página foi útil? Conte sua opinião sobre:

Enviar comentários sobre…

Documentação do Cloud Bigtable