WSO2 - 使用小工具生成工具中的不可见分析脚本创建的表

时间:2013-03-21 11:47:39

标签: wso2 wso2bam

我的使用案例:将数据从ESB中配置的流推送到BAM,并使用“小工具生成工具”创建报告

在将代理添加到代理服务后,将流从ESB发布到BAM工作正常。

从流我使用Analytics->添加屏幕创建了一个表格,表格似乎仍然存在,因为我可以进行选择并查看来自同一屏幕的结果。

现在我正在尝试使用小工具生成工具生成仪表板,但该表不可用,尽管jdbc连接工作正常但表格无处可用:

分析表脚本从Analytics->添加屏幕

运行
CREATE EXTERNAL TABLE IF NOT EXISTS CREDITTABLE(creditkey STRING, creditFlag STRING, version STRING)
  STORED BY 'org.apache.hadoop.hive.cassandra.CassandraStorageHandler'
  WITH SERDEPROPERTIES ( "cassandra.host" = "127.0.0.1" , 
    cassandra.port" = "9163" , "cassandra.ks.name" = "EVENT_KS" ,
    "cassandra.ks.username" = "admin" ,
    "cassandra.ks.password" = "admin" ,
    "cassandra.cf.name" = "firstStream" ,
    "cassandra.columns.mapping" = ":key,payload_k1-constant, Version" );

尝试在以下数据库中查找表:

jdbc:h2:repository/database/WSO2CARBON_DB;AUTO_SERVER=TRUE
jdbc:h2:repository/database/metastore_db;AUTO_SERVER=TRUE
jdbc:h2:repository/database/samples/BAM_STATS_DB;AUTO_SERVER=TRUE

尚未完成任何自定义数据库配置。

2 个答案:

答案 0 :(得分:0)

你试过jdbc:h2:repository/database/samples/WSO2CARBON_DB;AUTO_SERVER=TRUE吗?此外,您粘贴的是Cassandra存储定义,可能用于获取输入,而不是持久输出。如果您提供完整的配置单元查询,那将有助于更多地解决问题。

答案 1 :(得分:0)

为什么我没有在Gadget Generation工具中看到该表?

我使用Hive脚本创建的表是一个Casandra分布式数据库表,我在Gadget生成工具中提供的引用,而查找表来自h2 RDBMS < / strong>数据库表。

以下是与WSO2一起开箱的h2 RDBMS数据库的参考

jdbc:h2:repository/database/WSO2CARBON_DB;AUTO_SERVER=TRUE
jdbc:h2:repository/database/metastore_db;AUTO_SERVER=TRUE
jdbc:h2:repository/database/samples/BAM_STATS_DB;AUTO_SERVER=TRUE

解决方案 ----- 如何获取小工具生成工具中列出的表格?

要获取小工具生成工具中列出的表格,您必须广泛使用Hive脚本完成以下3个步骤

  1. 为我的案例中从ESB推送数据的Casandra数据流创建一个Hive表引用。

    创建外部表,如果不是可信的( payload_creditkey STRING,payload_creditFlag STRING,payload_version STRING)STORED BY 'org.apache.hadoop.hive.cassandra.CassandraStorageHandler'with SERDEPROPERTIES(“cassandra.host”=“127.0.0.1”, “cassandra.port”=“9163”,“cassandra.ks.name”=“EVENT_KS”,“cassandra.ks.username”=“admin”,“cassandra.ks.password”=“admin”, “cassandra.cf.name”=“firstStream”,“cassandra.columns.mapping”=“:key,payload_k1-constant,Version”);

  2. 使用Hive脚本创建H2 RDBMS脚本以及我将从Casandra流中复制数据的引用。

    创建外部表如果不是CREDITTABLEh2summary( creditFlg STRING, verSion STRING ) 存储 'org.wso2.carbon.hadoop.hive.jdbc.storage.JDBCStorageHandler' TBLPROPERTIES( 'mapred.jdbc.driver.class'='org.h2.Driver', 'mapred.jdbc.url'='jdbc:h2:C:/wso2bam-2.2.0/repository/samples/database/BAM_STATS_DB', 'mapred.jdbc.username'='wso2carbon', 'mapred.jdbc.password'='wso2carbon', 'hive.jdbc.update.on.duplicate'='true', 'hive.jdbc.primary.key.fields'='creditFlg', 'hive.jdbc.table.create.query'='CREATE TABLE CREDITTABLE_newh2(creditFlg VARCHAR(100),version VARCHAR(100))');

  3. 编写一个Hive查询,使用哪些数据从Casandra复制到H2 [RDBMS]

    插入覆盖表CREDITTABLEh2summary从CREDITTABLE a选择a.payload_creditFlag,a.payload_version;

  4. 在执行此操作时,我能够在小工具生成工具中看到该表,但是我还必须在我传递的JDBC URL值中将参考资料转移到H2数据库的绝对值

    <强>观察:

    想知道Gadget生成工具是否可以直接指向Casandra Stream而无需将表复制到RDBMS数据库。