apache-calcite - 如何在应用程序中使用方解石 Cassandra 适配器

标签 apache-calcite

Java 代码中是否有一些关于 calcite cassandra 适配器的示例?方解石网站上只有一个 sqlline 示例。非常感谢

最佳答案

下面是一些通过 Avatica/JDBC 使用 SQL 通过 Calcite 查询 Cassandra 的基本代码:

try (Connection connection = DriverManager.getConnection("jdbc:calcite:model=model.json");
     CalciteConnection calciteConnection = connection.unwrap(CalciteConnection.class);
     Statement stmt = connection.createStatement();
     ResultSet rs = stmt.executeQuery("select * from \"test_collection\"")) {

    while (rs.next()) {
      [...]
    }
}

其中 model.jsondocumentation 中的示例一致.

如果您需要使用更高级的功能(如查询计划推理),您必须以这种方式注册您的模式:

SchemaPlus rootSchema = calciteConnection.getRootSchema();
rootSchema.add("CASSANDRA",
               new CassandraSchema("targethostname", "mykeyspace", rootSchema, "CASSANDRA"));

请注意,CassandraSchema 中提供的信息必须与 model.json 中的信息相匹配。您的查询将需要引用架构名称。所以上面的查询必须这样写:

"select * from \"cassandra\".\"test_collection\""

关于apache-calcite - 如何在应用程序中使用方解石 Cassandra 适配器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38974456/

相关文章:

java - 将 Kafka 与 Apache Calcite 集成

apache-calcite - 如何更改 Calcite 的默认 sql 语法?”

sql - INTERVAL '1' DAY 是否始终等于 INTERVAL '24' HOURS?

apache-calcite - 如何避免方解石在内存中进行聚合

德鲁伊查询从第三列获取 "latest"值

java - 如何在 Maven 中安装特定包的两个不同版本?

java - 如何使用 Apache Calcite 将数据插入 Excel 表?

apache-calcite - 具有默认参数值的方解石函数

jdbc - 有没有办法查看Calcite JDBC执行的物理SQL?