以下は HBase を Table Store に移行する方法を説明しています。

依存関係

Table Store HBase Client v1.2.0 は、HBase Client v1.2.0 および Table Store Java SDK v4.2.1 に依存します。 pom.xml の設定は以下のとおりです。

 <dependencies>
        <dependency>
            <groupId>com.aliyun.openservices</groupId>
            <artifactId>tablestore-hbase-client</artifactId>
            <version>1.2.0</version>
        </dependency>
    </dependencies>

別の HBase Client または Table Store の Java SDK バージョンを使用する場合は、除外タグを使用する必要があります。 次の例では、HBase Client v1.2.1 と Table Store Java SDK v4.2.0 が使用されています。

   <dependencies>
        <dependency>
            <groupId>com.aliyun.openservices</groupId>
            <artifactId>tablestore-hbase-client</artifactId>
            <version>1.2.0</version>
            <exclusions>
                <exclusion>
                    <groupId>com.aliyun.openservices</groupId>
                    <artifactId>tablestore</artifactId>
                </exclusion>
                <exclusion>
                    <groupId>org.apache.hbase</groupId>
                    <artifactId>hbase-client</artifactId>
                </exclusion>
            </exclusions>
        </dependency>
        <dependency>
            <groupId>org.apache.hbase</groupId>
            <artifactId>hbase-client</artifactId>
            <version>1.2.1</version>
        </dependency>
        <dependency>
            <groupId>com.aliyun.openservices</groupId>
            <artifactId>tablestore</artifactId>
            <classifier>jar-with-dependencies</classifier>
            <version>4.2.0</version>
        </dependency>
    </dependencies>

Table Store HBase Client v1.2.x は HBase Client v1.2.x とのみ互換性があります。これは、API の変更が HBase Client v1.2.x 以前に存在するためです。

HBase Client バージョン v1.1.x を使用したい場合は、Table Store HBase Client バージョン v1.1.x を使用してください。

HBase クライアントバージョン v0.x.x を使用する場合は、「以前のバージョンの HBase の移行」をご参照ください。

ファイルを設定する

HBase Client から Table Store HBase Client にデータを移行するには、設定ファイル内の次の 2 つの項目を変更します。

  • HBase 接続タイプ

    Connection を TableStoreConnection に設定します。

        <property>
            <name>hbase.client.connection.impl</name>
            <value>com.alicloud.tablestore.hbase.TablestoreConnection</value>
        </property>
    
  • Table Store の設定項目

    Table Store はクラウドサービスであり、厳密な権限管理を提供します。 Table Store は厳格な権限管理を提供します。 Table Store にアクセスするには、AccessKey などのアクセス情報を設定する必要があります。

    • Table Store にアクセスする前に、次の 4 つの項目を設定する必要があります。

       <property>
      			<name>tablestore.client.endpoint</name>
      			<value></value>
      		</property>
      		<property>
      			<name>tablestore.client.instancename</name>
      			<value></value>
      		</property>
      		<property>
      			<name>tablestore.client.accesskeyid</name>
      			<value></value>
      		</property>
      		<property>
      			<name>tablestore.client.accesskeysecret</name>
      			<value></value>
      		</property>
      
    • 設定できるオプション項目は以下のとおりです。

      		<property>
      			<name>hbase.client.tablestore.family</name>
      			<value>f1</value>
      		</property>
      		<property>
      			<name>hbase.client.tablestore.family.$tablename</name>
      			<value>f2</value>
      		</property>
      		<property>
      			<name>tablestore.client.max.connections</name>
      			<value>300</value>
      		</property>
      		<property>
      			<name>tablestore.client.socket.timeout</name>
      			<value>15000</value>
      		</property>
      		<property>
      			<name>tablestore.client.connection.timeout</name>
      			<value>15000</value>
      		</property>
      		<property>
      			<name>tablestore.client.operation.timeout</name>
      			<value>2147483647</value>
      		</property>
      		<property>
      			<name>tablestore.client.retries</name>
      			<value>3</value>
      		</property>
      
      • hbase.client.tablestore.family および hbase.client.tablestore.family.$tablename

        • Table Store は単一の ColumnFamilies のみをサポートします。 HBase API を使用するときは、ファミリの内容を入力する必要があります。

          hbase.client.tablestore.family はグローバル設定を示します。 hbase.client.tablestore.family.$tablenae は、単一テーブルの設定を示します。

        • ルール: 名前が T のテーブルの場合、最初に hbase.client.tablestore.family.T を検索してください。 ファミリが存在しない場合は、 hbase.client.tablestore.family を検索してください。 そのファミリが存在しない場合は、既定値 f を使用します。
      • tablestore.client.max.connections

        最大接続数です。 デフォルト値は 300 です。

      • tablestore.client.socket.timeout

        ソケットタイムアウト時間です。 デフォルト値は、15 秒です。

      • tablestore.client.connection.timeout

        接続タイムアウト時間です。 デフォルト値は、15 秒です。

      • tablestore.client.operation.timeout

        API タイムアウト時間です。 デフォルト値は Integer.MAX_VALUE です。これは、API がタイムアウトしないことを示します。

      • tablestore.client.retries

        要求が失敗したときの再試行回数です。 デフォルト値は 3 です。