使用Phoenix从BIRT访问HBase

时间:2016-05-20 05:42:48

标签: hbase birt phoenix

我的主要要求是使用HBase中的数据进行报告。 BIRT是我的报告工具。 Phoenix是一个JDBC客户端,允许使用SQL查询查询HBase数据。现在,有没有办法让我使用BIRT从HBase通过凤凰报告?任何指针都非常感激。

修改 感谢Simulant的回复。这就是我的尝试。

  1. 创建了一个Java类文件,通过Phoenix从我的HBASE集群访问数据。链接中提到的示例:http://www.javaworld.com/article/3030214/big-data/open-source-java-projects-apache-phoenix.html

  2. 我没有在Console中显示获取的数据,而是创建了一个方法myPhoenixDatabase(),它将数据转换为JSON String和 回报。

  3. 在BIRT报告中,我使用了脚本化数据源。在数据集的脚本中,我导入了包含(1)和(2)中提到的类的包,解析了从myPhoenixDatabase()返回的JSON数组并映射 它们到我的数据集字段。

  4. BIRT数据集脚本:

    打开方法

    importPackage(Packages.com.geekcap.javaworld.phoenixexample);
    pe = new Packages.com.geekcap.javaworld.phoenixexample.PhoenixExample();
    var jsontext = pe.myPhoenixDatabase();
    myJSONObject = eval ("(" + jsontext + ")");
    len = myJSONObject.length; 
    count=0;
    

    获取方法

    if(count < len)
    {
        var EmpID     = myJSONObject[count].EMPID;
        var Name   = myJSONObject[count].NAME;
        var Designation    = myJSONObject[count].DESIGNATION;
        row["EmpID"] = EmpID;
        row["Name"]= Name;
        row["Designation"]= Designation;
        count++;
        return true;
    }
    return false;
    

    的问题:

    1. 仅在打开ECLIPSE后第一次执行时才能正常工作。在后续运行中,函数的返回值为NULL并抛出错误:&#34; TypeError:无法读取属性&#34; length&#34;来自null&#34;。

    2. 一个奇怪的解决方法修复了这个问题,两次调用该函数,一次来自Open方法的数据集脚本,第二次来自Afteropen方法,解决了这个问题。

    3. 但我仍然无法从Tomcat服务器获取报告。

    4. 我上传了班级,Maven POM和报告文件。很抱歉有很长的描述。任何帮助将非常感激。 https://drive.google.com/folderview?id=0B5pKuCLloQdHM09HN1E4MndQQ1k&usp=sharing

0 个答案:

没有答案