Share via


Apache Zeppelin を使用して Azure HDInsight で Apache HBase に対して Apache Phoenix クエリを実行する

Apache Phoenix は、HBase 上に構築されるオープンソースの超並列リレーショナル データベース レイヤーです。 Phoenix では、HBase に対して SQL のようなクエリを使うことができます。 Phoenix は基盤の JDBC ドライバーを使って、SQL テーブル、インデックス、ビュー、およびシーケンスを作成、削除、変更できるようにします。 Phoenix を使用して、行を個別に、また一括で更新することもできます。 Phoenix は、MapReduce ではなく NOSQL ネイティブ コンパイルを使ってクエリをコンパイルして、HBase に基づく待機時間の短いアプリケーションを作成できるようにします。

オープンソースで Web ベースのノートブックである Apache Zeppelin では、対話型のデータ分析と SQL や Scala などの言語を使用して、データドリブンの共同作業ドキュメントを作成できます。 データ開発者およびデータ サイエンティストが、データ操作用のコードを開発、整理、実行、および共有するために役立ちます。 コマンド ラインを参照しなくても、またはクラスターの詳細を必要とせずに、結果を視覚化できます。

HDInsight ユーザーは Apache Zeppelin を使用して Phoenix テーブルのクエリを実行できます。 Apache Zeppelin は HDInsight クラスターと統合されており、それを使用するための追加の手順はありません。 JDBC インタープリターを使用して Zeppelin Notebook を作成し、Phoenix SQL クエリの作成を開始します

前提条件

HDInsight 内の Apache HBase クラスター 「Apache HBase の使用」を参照してください。

Apache Zeppelin Note を作成する

  1. URL https://CLUSTERNAME.azurehdinsight.net/zeppelinCLUSTERNAME をお使いのクラスターの名前に置き換えます。 Web ブラウザーに URL を入力します。 クラスターのログイン ユーザー名とパスワードを入力します。

  2. Zeppelin ページから、[Create new note](新しいノートの作成) をクリックします。

    HDInsight Interactive Query zeppelin.

  3. [Create new note]\(新しいノートの作成\) ダイアログで、次の値を入力または選択します。

    • [Note Name](ノート名): ノートの名前を入力します。
    • [Default interpreter](既定のインタープリター): ドロップダウンリストから [jdbc] を選択します。

    次に [Create Note](ノートの作成) を選択します。

  4. Notebook のヘッダーに [接続] というステータスが表示されることを確認します。 これは、右上隅の緑色の点で示されます。

    Zeppelin notebook status.

  5. HBase テーブルを作成します。 次のコマンドを入力して、Shift + Enter キーを押します。

    %jdbc(phoenix)
    CREATE TABLE Company (
        company_id INTEGER PRIMARY KEY,
        name VARCHAR(225)
    );
    

    最初の行の %jdbc(phoenix) ステートメントは、Phoenix JDBC インタープリターを使用するようにノートブックに指示します。

  6. 作成されたテーブルを表示します。

    %jdbc(phoenix)
    SELECT DISTINCT table_name
    FROM SYSTEM.CATALOG
    WHERE table_schem is null or table_schem <> 'SYSTEM';
    
  7. テーブルに値を挿入します。

    %jdbc(phoenix)
    UPSERT INTO Company VALUES(1, 'Microsoft');
    UPSERT INTO Company (name, company_id) VALUES('Apache', 2);
    
  8. テーブルにクエリを実行します。

    %jdbc(phoenix)
    SELECT * FROM Company;
    
  9. レコードを削除します。

    %jdbc(phoenix)
    DELETE FROM Company WHERE COMPANY_ID=1;
    
  10. テーブルを削除します。

    %jdbc(phoenix)
    DROP TABLE Company;
    

次のステップ