Conectarse con Cloud Bigtable

Para conectarte a Cloud Bigtable, deberás configurar varias propiedades y, luego, crear un objeto Connection. La creación de un objeto Connection es una operación pesada, por lo que debes crear la menor cantidad posible de ellos:

  • Si usas la replicación, o si usas los perfiles de aplicación para identificar distintos tipos de tráfico en tu instancia, crea un objeto Connection por cada perfil de aplicación y compártelos entre los subprocesos 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 subprocesos de tu aplicación.

Existen algunas formas de especificar la configuración de un objeto Connection, como las que se indican a continuación:

  • Incluir la configuración en el código. Si la aplicación usa varios perfiles de aplicación (por ejemplo, si ejecuta distintas funciones con un perfil de aplicación para cada una), debes usar esta opción.

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

  • Usar un archivo hbase-site.xml para almacenar la configuración. Usa esta opción si la aplicación utiliza HBase y Cloud Bigtable, o si prefieres mantener tu configuración de Cloud Bigtable en un archivo independiente.

En las siguientes secciones, se explican todas las maneras de configurar y crear un objeto Connection.

Cómo incluir la configuración en tu código

En el siguiente ejemplo, se muestra cómo puedes crear un objeto Connection en tu aplicación. Reemplaza [VALUES_IN_BRACKETS] con los valores correctos para 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 con la configuración en un archivo hbase-site.xml.

Código de muestra

En el siguiente ejemplo, se muestra cómo puedes crear y configurar 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 otro archivo hbase-site.xml en los recursos del archivo JAR. Cuando creas el objeto Configuration, el cliente de HBase de Cloud Bigtable para Java lee automáticamente la configuración del archivo hbase-site.xml.

En la siguiente sección, 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. Este debería contener todas las propiedades que se muestran en el siguiente ejemplo. Reemplaza [VALUES_IN_BRACKETS] con los valores correctos para 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>

Agregar hbase-site.xml al archivo JAR

Después de crear el archivo hbase-site.xml, deberás actualizar tu secuencia de comandos 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 a fin de copiar los recursos a 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 lo hagas, el cliente de HBase de Cloud Bigtable para Java leerá automáticamente la configuración del archivo hbase-site.xml. De esta forma, podrás usar esta configuración para crear un objeto Connection:

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

¿Qué sigue?

¿Te sirvió esta página? Envíanos tu opinión:

Enviar comentarios sobre…

Documentación de Cloud Bigtable