Elastic Stack:es7 sql新特性


一.入門

查詢所有

POST /_sql?format=txt
{
    "query": "SELECT * FROM tvs "
}

 按顏色分組,查詢價格的最大值、最小值、總和、平均值

POST /_sql?format=txt
{
  "query": "select color,sum(price),min(price),max(price),avg(price) from tvs group by color"
}

sql翻譯:

POST /_sql/translate
{
    "query": "SELECT * FROM tvs "
}

 返回:

與DSL混用:

POST /_sql?format=txt
{
    "query": "SELECT * FROM tvs",
    "filter": {
        "range": {
            "price": {
                "gte" : 1200,
                "lte" : 2000
            }
        }
    }
} 

 二.elasticsearch-sql-cli

進入elasticsearch的安裝目錄

cd bin
./elasticsearch-sql-cli

 然后再sql命令行可以執行sql語句

三.java代碼實現sql功能

在kibana中開啟白金版試用

 

加入相關功能的依賴:

    <dependency>
        <groupId>org.elasticsearch.plugin</groupId>
        <artifactId>x-pack-sql-jdbc</artifactId>
        <version>7.3.0</version>
    </dependency>
    
    <repositories><!-- 如果jar包下載不下來,就需要在pom文件中配置一下倉庫 -->
        <repository>
            <id>elastic.co</id>
            <url>https://artifacts.elastic.co/maven</url>
        </repository>
    </repositories>  

  測試:

        //創建連接
        Connection connection = DriverManager.getConnection("jdbc:es://http://192.168.10.138:9200");
        //創建statement
        Statement statement = connection.createStatement();
        ResultSet resultSet = statement.executeQuery("select * from tvs");
        //獲取結果
        while (resultSet.next()){
            System.out.println(resultSet.getString(1));
            System.out.println(resultSet.getString(2));
            System.out.println(resultSet.getString(3));
            System.out.println(resultSet.getString(4));
            System.out.println("--------");
        }


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM