Cloud Bigtable への接続

Cloud Bigtable に接続するためには、いくつかの構成プロパティを設定してから、Connection オブジェクトを作成する必要があります。Connection オブジェクトの作成は負荷の大きなオペレーションであるため、このオブジェクトの作成数はなるべく少なくしてください。

  • レプリケーションを使用する場合、またはアプリ プロファイルを使用してインスタンスへのさまざまな種類のトラフィックを識別する場合、アプリ プロファイルごとに 1 つの Connection オブジェクトを作成し、アプリケーション内のスレッド間でこれらのオブジェクトを共有します。
  • レプリケーションやアプリ プロファイルを使用しない場合は、Connection オブジェクトを 1 つ作成し、このオブジェクトをアプリケーション内のスレッド間で共有します。

Connection オブジェクトの構成設定を指定する方法はいくつかあります。

  • 設定をコードに含める。 アプリケーションで複数のアプリ プロファイルを使用する場合(複数の機能を使用していて、機能ごとに異なるアプリ プロファイルを使用する場合など)は、このオプションを使用する必要があります。

    また、このオプションは、アプリケーションのコードで構成設定を保持したい場合や、アプリケーションのリソースとして外部構成ファイルを使用することが現実的でない場合にも使用できます。

  • hbase-site.xml ファイルを使用して設定を保存する。 このオプションは、アプリケーションで HBase と Cloud Bigtable の両方を使用している場合や、Cloud Bigtable の構成設定を単独のファイルに保持したい場合に使用します。

この後のセクションでは、Connection オブジェクトを構成および作成するための各方法を説明します。

設定をコードに含める

次の例は、独自のアプリケーションで Connection オブジェクトを作成する方法を示したものです。[VALUES_IN_BRACKETS] は、使用するインスタンスでの正しい値に置き換えます。

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

hbase-site.xml ファイルを使用する

このセクションでは、hbase-site.xml ファイルに構成設定を含めることにより Connection オブジェクトを作成する方法について説明します。

サンプルコード

次の例は、自身のアプリケーションでいくつかの構成を行ったうえで Connection オブジェクトを作成する方法を示したものです。

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

hbase-site.xml ファイルは JAR ファイルのリソースの中に単独で含まれます。Configuration オブジェクトの作成時には、hbase-site.xml ファイル内の設定が Java 用 Cloud Bigtable HBase クライアントによって自動的に読み込まれます。

次のセクションでは、アプリケーションでこのメソッドを実装する方法について説明します。

hbase-site.xml ファイルの作成

プロジェクトの src/main/resources ディレクトリに hbase-site.xml という名前のファイルを作成します。このファイルには、次の例で示しているすべてのプロパティが含まれている必要があります。[VALUES_IN_BRACKETS] は、使用するインスタンスでの正しい値に置き換えます。

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

JAR ファイルへの hbase-site.xml の追加

hbase-site.xml ファイルを作成した後、プロジェクトの JAR ファイルで src/main/resources ディレクトリが指定されるように、ビルド スクリプトを更新する必要があります。

Maven を使用している場合は、リソースが JAR ファイルにコピーされるように、pom.xml ファイルの <build> 要素を編集します。

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

Connection オブジェクトの作成

コードを更新して Configuration オブジェクトを作成できるようになりました。このオブジェクトを作成すると、Java 用 Cloud Bigtable HBase クライアントは自動的に hbase-site.xml ファイルから設定を読み取ります。その後、この設定を使用して Connection オブジェクトを作成できます。

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

次のステップ

このページは役立ちましたか?評価をお願いいたします。

フィードバックを送信...

Cloud Bigtable ドキュメント