Crear un objeto de conexión

Para conectarte a Bigtable mediante el cliente de HBase de Cloud Bigtable para Java, debes definir las propiedades de configuración y, a continuación, crear un objeto Connection. Crear un objeto Connection es una operación pesada, por lo que debes crear el menor número posible de estos objetos:

  • Si usas la replicación o perfiles de aplicación para identificar diferentes tipos de tráfico a tu instancia, crea un objeto Connection por cada perfil de aplicación y comparte los objetos entre los hilos de tu aplicación.
  • Si no usas la replicación ni los perfiles de aplicación, crea un solo objeto Connection y compártelo entre los hilos de tu aplicación.

Hay varias formas de especificar los ajustes de configuración de un objeto Connection:

  • Incluye los ajustes en tu código. Si tu aplicación usa varios perfiles de aplicación (por ejemplo, si realiza varias funciones diferentes, con un perfil de aplicación independiente para cada función), debes usar esta opción.

    También puedes usar esta opción si prefieres mantener los ajustes de configuración en el código de tu aplicación o si no es práctico incluir un archivo de configuración externo como recurso en tu aplicación.

  • Usa un archivo hbase-site.xml para almacenar los ajustes. Usa esta opción si tu aplicación usa tanto HBase como Bigtable o si prefieres mantener los ajustes de configuración de Bigtable en un archivo independiente.

En las siguientes secciones se explica cómo configurar y crear un objeto Connection.

Incluir ajustes en el código

En el siguiente ejemplo se muestra cómo crear un objeto Connection en tu aplicación. Sustituye [VALUES_IN_BRACKETS] por los valores correctos de tu instancia:

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);
  }
}

Usar un archivo hbase-site.xml

En esta sección se explica cómo crear un objeto Connection incluyendo los ajustes de configuración en un archivo hbase-site.xml.

Código de muestra

En el siguiente ejemplo se muestra cómo configurar y crear un objeto Connection en tu aplicación:

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);
  }
}

Se incluye un archivo hbase-site.xml independiente en los recursos del archivo JAR. Cuando creas el objeto Configuration, el cliente de HBase de Cloud Bigtable para Java lee automáticamente los ajustes del archivo hbase-site.xml.

En las siguientes secciones se explica cómo implementar este método en tu aplicación.

Crear el archivo hbase-site.xml

En el directorio src/main/resources de tu proyecto, crea un archivo llamado hbase-site.xml. El archivo debe contener todas las propiedades que se muestran en el siguiente ejemplo. Sustituye [VALUES_IN_BRACKETS] por los valores correctos de tu instancia:

<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>

Añadir hbase-site.xml al archivo JAR

Después de crear el archivo hbase-site.xml, tendrás que actualizar el script de compilación para incluir el directorio src/main/resources en el archivo JAR de tu proyecto.

Si usas Maven, edita el elemento <build> de tu archivo pom.xml para copiar los recursos en tu archivo JAR:

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

Crear el objeto Connection

Ahora puedes actualizar tu código para crear un objeto Configuration. Cuando creas este objeto, el cliente de HBase de Cloud Bigtable para Java lee automáticamente los ajustes del archivo hbase-site.xml. Después, puedes usar estos ajustes para crear un objeto Connection:

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

Siguientes pasos