我的使用案例:将数据从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
尚未完成任何自定义数据库配置。
答案 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个步骤:
为我的案例中从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”);
使用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))');
编写一个Hive查询,使用哪些数据从Casandra复制到H2 [RDBMS]
插入覆盖表CREDITTABLEh2summary从CREDITTABLE a选择a.payload_creditFlag,a.payload_version;
在执行此操作时,我能够在小工具生成工具中看到该表,但是我还必须在我传递的JDBC URL值中将参考资料转移到H2数据库的绝对值。
<强>观察:强>
想知道Gadget生成工具是否可以直接指向Casandra Stream而无需将表复制到RDBMS数据库。