クイックスタート: Apache Phoenix を使用して Azure HDInsight で Apache HBase に対してクエリを実行する

このクイック スタートでは、Apache Phoenix を使用して Azure HDInsight で HBase クエリを実行する方法を学習します。 Apache Phoenix は、Apache HBase 用の SQL クエリ エンジンです。 SQL を使用して HBase テーブルの照会と管理ができます。 SQLLine は、SQL を実行するためのコマンド ライン ユーティリティです。

Azure サブスクリプションをお持ちでない場合は、開始する前に 無料アカウント を作成してください。

前提条件

ZooKeeper ノードを識別する

HBase クラスターに接続する場合は、いずれかの Apache ZooKeeper ノードに接続する必要があります。 各 HDInsight クラスターには 3 つの ZooKeeper ノードがあります。 Curl を使用すると、ZooKeeper ノードをすばやく識別できます。 次の curl コマンドを編集して PASSWORDCLUSTERNAME を関連する値に置き換えてから、そのコマンドをコマンド プロンプトに入力します。

curl -u admin:PASSWORD -sS -G https://CLUSTERNAME.azurehdinsight.net/api/v1/clusters/CLUSTERNAME/services/ZOOKEEPER/components/ZOOKEEPER_SERVER

出力の一部は次のようになります。

    {
      "href" : "http://hn*.432dc3rlshou3ocf251eycoapa.bx.internal.cloudapp.net:8080/api/v1/clusters/myCluster/hosts/<zookeepername1>.432dc3rlshou3ocf251eycoapa.bx.internal.cloudapp.net/host_components/ZOOKEEPER_SERVER",
      "HostRoles" : {
        "cluster_name" : "myCluster",
        "component_name" : "ZOOKEEPER_SERVER",
        "host_name" : "<zookeepername1>.432dc3rlshou3ocf251eycoapa.bx.internal.cloudapp.net"
      }

host_name の値を後で使用するためにメモしておきます。

テーブルを作成してデータを操作する

SSH を使用して HBase クラスターに接続した後、Apache Phoenix を使用して HBase テーブルを作成したり、データを挿入したり、データにクエリを実行したりすることができます。

  1. ssh コマンドを使用して HBase クラスターに接続します。 次のコマンドを編集して CLUSTERNAME をクラスターの名前に置き換えてから、そのコマンドを入力します。

    ssh sshuser@CLUSTERNAME-ssh.azurehdinsight.net
    
  2. ディレクトリを Phoenix クライアントに変更します。 次のコマンドを入力します。

    cd /usr/hdp/current/phoenix-client/bin
    
  3. SQLLine を起動します。 次のコマンドを編集して ZOOKEEPER を前に識別された ZooKeeper ノードに置き換えてから、そのコマンドを入力します。

    ./sqlline.py ZOOKEEPER:2181:/hbase-unsecure
    
  4. HBase テーブルを作成します。 次のコマンドを入力します。

    CREATE TABLE Company (company_id INTEGER PRIMARY KEY, name VARCHAR(225));
    
  5. SQLLine の !tables コマンドを使用して HBase 内のすべてのテーブルを一覧表示します。 次のコマンドを入力します。

    !tables
    
  6. テーブルに値を挿入します。 次のコマンドを入力します。

    UPSERT INTO Company VALUES(1, 'Microsoft');
    UPSERT INTO Company VALUES(2, 'Apache');
    
  7. テーブルにクエリを実行します。 次のコマンドを入力します。

    SELECT * FROM Company;
    
  8. レコードを削除します。 次のコマンドを入力します。

    DELETE FROM Company WHERE COMPANY_ID=1;
    
  9. テーブルを削除します。 次のコマンドを入力します。

    DROP TABLE Company;
    
  10. SQLLine の !quit コマンドを使用して SQLLine を終了します。 次のコマンドを入力します。

    !quit
    

リソースをクリーンアップする

このクイックスタートを完了したら、必要に応じてクラスターを削除できます。 HDInsight を使用すると、データは Azure Storage に格納されるため、クラスターは、使用されていない場合に安全に削除できます。 また、HDInsight クラスターは、使用していない場合でも課金されます。 クラスターの料金は Storage の料金の何倍にもなるため、クラスターを使用しない場合は削除するのが経済的にも合理的です。

クラスターを削除するには、「ブラウザー、PowerShell、または Azure CLI を使用して HDInsight クラスターを削除する」を参照してください。

次のステップ

このクイック スタートでは、Apache Phoenix を使用して Azure HDInsight で HBase クエリを実行する方法を学習しました。 Apache Phoenix の詳細を学習するには、次の記事にさらに詳しい説明が含まれています。