連接 Cloud BigTable

如要連線至 Cloud BigTable,您需要設定多個設定屬性,然後建立一個 Connection 物件。建立 Connection 物件是一個較繁重的作業,因此應儘量減少建立這些物件:

  • 如果您使用複製功能,或是使用應用程式設定檔來辨識進入執行個體的不同流量類型,請為每個應用程式設定檔建立一個 Connection 物件,並在應用程式中的執行緒之間共用這些物件。
  • 若您沒有使用複製功能或是應用程式設定檔,則建立一個單一的 Connection 物件並且在應用程式的執行緒間分享它。

以下有幾種方法可以為 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 物件時,適用於 Java 語言的 Cloud Bigtable HBase 客戶端會自動地 hbase-site.xml 檔案中讀取設定。

本節說明如何在您的應用程式中使用這些方法。

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

新增 hbase-site.xml 至 JAR 檔案中

在您建立 hbase-site.xml 檔案之後,您需要更新建置指令碼,才能在您專案的 JAR 檔案中納入 src/main/resources 目錄。

若您正在使用 Maven 軟體工具,請編輯 pom.xml 檔案的 <build> 元素,以將資源複製至您的 JAR 檔案中。

<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 說明文件