使用 Apache Zepperin 在 Azure HDInsight 中的 Apache HBase 上运行 Apache Phoenix 查询Use Apache Zeppelin to run Apache Phoenix queries over Apache HBase in Azure HDInsight

Apache Phoenix 是构建在 HBase 基础之上的开源大规模并行关系数据库层。Apache Phoenix is an open source, massively parallel relational database layer built on HBase. Phoenix 允许你在 HBase 上使用类似于 SQL 的查询。Phoenix allows you to use SQL like queries over HBase. Phoenix 在底层使用 JDBC 驱动程序,可让你创建、删除和更改 SQL 表、索引、视图与序列。Phoenix uses JDBC drivers underneath to enable you to create, delete, alter SQL tables, indexes, views and sequences. 还可以使用 Phoenix 以单个方式或以批量方式更新行。You can also use Phoenix to update rows individually and in bulk. Phoenix 使用 NOSQL 本机编译而不是使用 MapReduce 来编译查询,可让用户基于 HBase 创建低延迟的应用程序。Phoenix uses a NOSQL native compilation rather than using MapReduce to compile queries, enabling the creation of low-latency applications on top of HBase.

Apache Zeppelin 是一个基于 Web 的开源笔记本,可用于使用交互式数据分析和语言(例如 SQL 和 Scala)创建数据驱动的协作文档。Apache Zeppelin is an open source web-based notebook that enables you to create data-driven, collaborative documents using interactive data analytics and languages such as SQL and Scala. 它帮助数据开发人员和数据科学家开发、组织、执行和共享用于数据操作的代码。It helps data developers & data scientists develop, organize, execute, and share code for data manipulation. 它使你可以直观显示结果,而无需借助于命令行或需要群集详细信息。It allows you to visualize results without referring to the command line or needing the cluster details.

HDInsight 用户可以使用 Apache Zeppelin 查询 Phoenix 表。HDInsight users can use Apache Zeppelin to query Phoenix tables. Apache Zeppelin 已与 HDInsight 群集集成,无需额外步骤即可使用该群集。Apache Zeppelin is integrated with HDInsight cluster and there are no additional steps to use it. 只需使用 JDBC 解释器创建一个 Zeppelin Notebook,然后开始编写 Phoenix SQL 查询Simply create a Zeppelin Notebook with JDBC interpreter and start writing your Phoenix SQL queries

先决条件Prerequisites

HDInsight 上的 Apache HBase 群集。An Apache HBase cluster on HDInsight. 请参阅 Apache HBase 入门See Get started with Apache HBase.

创建 Apache Zeppelin 笔记Create an Apache Zeppelin Note

  1. 请将以下 URL 中的 CLUSTERNAME 替换为你的群集的名称:https://CLUSTERNAME.azurehdinsight.cn/zeppelinReplace CLUSTERNAME with the name of your cluster in the following URL https://CLUSTERNAME.azurehdinsight.cn/zeppelin. 然后在 Web 浏览器中输入该 URL。Then enter the URL in a web browser. 输入群集登录用户名和密码。Enter your cluster login username and password.

  2. 在 Zeppelin 页上,选择“创建新笔记” 。From the Zeppelin page, select Create new note.

    HDInsight 交互式查询 zeppelin

  3. 在“创建新笔记”对话框中,键入或选择以下值: From the Create new note dialog, type or select the following values:

    • 笔记名称:输入笔记的名称。Note Name: Enter a name for the note.
    • 默认解释器:从下拉列表中选择“jdbc”。 Default interpreter: Select jdbc from the drop-down list.

    然后选择“创建笔记” 。Then select Create Note.

  4. 确保笔记本标题显示“已连接”状态。Ensure the notebook header shows a connected status. 该状态由右上角的一个绿点表示。It's denoted by a green dot in the top-right corner.

    Zeppelin 笔记本状态Zeppelin notebook status

  5. 创建一个 HBase 表。Create an HBase table. 输入以下命令,然后按 Shift + EnterEnter the following command and then press Shift + Enter:

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

    第一行中的 %jdbc(phoenix) 语句告诉笔记本使用 Phoenix JDBC 解释器。The %jdbc(phoenix) statement in the first line tells the notebook to use the Phoenix JDBC interpreter.

  6. 查看已创建的表。View created tables.

    %jdbc(phoenix)
    SELECT DISTINCT table_name
    FROM SYSTEM.CATALOG
    WHERE table_schem is null or table_schem <> 'SYSTEM';
    
  7. 在表中插入值。Insert values in the table.

    %jdbc(phoenix)
    UPSERT INTO dbo.Company VALUES(1, 'Microsoft');
    UPSERT INTO dbo.Company (name, company_id) VALUES('Apache', 2);
    
  8. 查询表。Query the table.

    %jdbc(phoenix)
    SELECT * FROM dbo.Company;
    
  9. 删除记录。Delete a record.

    %jdbc(phoenix)
    DELETE FROM dbo.Company WHERE COMPANY_ID=1;
    
  10. 删除表。Drop the table.

    %jdbc(phoenix)
    DROP TABLE dbo.Company;
    

后续步骤Next steps