我试图使用JDBC运行select语句,但获取java.sql.SQLException:不支持的dbtable: InfectionCase错误。是使用JDBC的tigerGraph支持的select语句,还是执行Select语句的其他方式。
try (Connection con = getConnection()) {
String query = "select * From InfectionCase where id == \"Hansarang Convalescent Hospital\"";
System.out.println("Running :" + query);
Statement statement = con.createStatement();
ResultSet rs = statement.executeQuery(query);
System.out.println(rs.toString());
do {
java.sql.ResultSetMetaData metaData = rs.getMetaData();
System.out.println("Table: " + metaData.getCatalogName(1));
System.out.print(metaData.getColumnName(1));
for (int i = 2; i <= metaData.getColumnCount(); ++i) {
System.out.print("\t" + metaData.getColumnName(i));
}
java.sql.SQLException: Unsupported dbtable: InfectionCase
at com.tigergraph.jdbc.restpp.driver.QueryParser.<init>(QueryParser.java:629)
at com.tigergraph.jdbc.restpp.RestppStatement.execute(RestppStatement.java:41)
at com.tigergraph.jdbc.restpp.RestppStatement.executeQuery(RestppStatement.java:35)
at com.prissoft.connection.GraphJSON.selectStatementUsingSQL(GraphJSON.java:145)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)发布于 2022-06-27 21:20:09
要从TigerGraph获取顶点实例,需要使用不同的语法,因为JDBC驱动程序不支持SELECT语句:
try (Connection con = getConnection()) {
String query = "get vertex(InfectionCase, \"Hansarang Convalescent Hospital\")";
<more statements>
}您可以使用此get vertex(vertex_type)语法通过主ID获取单个顶点,或获取一组顶点(可选筛选、排序和限制)。在这上面看文档。
我个人认为,与使用JDBC驱动程序相比,通过TigerGraph访问REST API更好。JDBC是为关系数据库设计的,因此它需要表格数据。这个图表不是表格,而是一个数据网络。因此,您通常从TigerGraph语句或查询执行中得到的是描述子图:顶点和边的JSON文档。这个输出可以平铺成行和列,但是您可以得到一个较小的图形图像: 3D (或者说是多维)数据集的2D投影。
另一个注意事项:通过JDBC调用(如上面)或通过内置的REST端点(如http://localhost:9000/graph/MyGrah/vertices/InfectionCase/Hansarang+Convalescent+Hospital)获取单个顶点和边,甚至是这些顶点和边的集合,并不是TigerGraph最有效的使用。当然,有时候你只需要在应用程序中列出一组顶点,或者可视化一个图形。真正的力量来自于开发查询,TigerGraph的“存储过程”能够以并行的方式快速执行甚至非常复杂和复杂的图形算法,如PageRank或卢万社区探测。
https://stackoverflow.com/questions/72770917
复制相似问题