使用phoenix从birt访问hbase

ttp71kqs  于 2021-06-09  发布在  Hbase
关注(0)|答案(0)|浏览(261)

我的主要要求是使用hbase中的数据进行报告。birt是我的报告工具。phoenix是一个jdbc客户机,它允许使用类似sql的查询来查询hbase数据。现在,有没有办法让我使用birt从hbase通过phoenix进行报告?任何指点都非常感谢。
编辑:感谢simulant的回复。这就是我尝试过的。
创建了一个java类文件,通过phoenix访问hbase集群中的数据。链接中引用的示例:http://www.javaworld.com/article/3030214/big-data/open-source-java-projects-apache-phoenix.html.
我没有在控制台中显示提取的数据,而是创建了一个方法myphoenixdatabase(),将数据转换为json字符串并返回。
在birt报告中,我使用了脚本化的数据源。在dataset的脚本中,我导入了包含(1)和(2)中提到的类的包,解析了从myphoenixdatabase()返回的json数组,并将它们Map到我的dataset字段。
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;

fetch方法

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;

问题:
只有在打开eclipse后的第一次执行中,这种方法才能正常工作。在随后的运行中,函数的返回值为null,并抛出错误:“typeerror:cannot read property”length“from null”。
一个奇怪的解决方法修复了这个问题,两次调用这个函数,一次从dataset脚本的open方法调用,第二次从afteropen方法调用,修复了这个问题。
但我仍然无法从tomcat服务器上获得工作报告。
我已经上传了班级,maven pom和报告文件。抱歉,描述太长了。任何帮助都将不胜感激。https://drive.google.com/folderview?id=0b5pkuclloqdhm09hn1e4mndqq1k&usp=sharing

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题