Geode Querying Example

This example demonstrates simple queries on a region.

In this example, two servers host a single partitioned region with entries that represent employee information. The example does queries through the API and presents example queries to be invoked through the gfsh command-line interface.

This example assumes that Java and Geode are installed.

Set up the cluster

  1. Set directory geode-examples/queries to be the current working directory. Each step in this example specifies paths relative to that directory.

  2. Build the example (with the EmployeeData class)

     $ ../gradlew build
  3. Run a script that starts a locator and two servers, and then creates the example-region region.

     $ ../gradlew start

Run the example program

  1. Run the example to populate example-region with employee information, print out the region information, and then programmatically invoke three queries, printing the results of each query.

     $ ../gradlew run

Issue gfsh commands to query the region

gfsh can also be used to issue queries.

  1. If you have not already installed Geode, the build step will have installed a gfsh executable for you at a path relative to the current working directory within a versioned directory:


    You can use this relative path to invoke gfsh by substituting the appropriate <version>.

  2. Start gfsh and connect to the cluster:

     $ gfsh
     gfsh>connect --locator=[10334]
  3. The quantity of entries may be observed with gfsh:

     gfsh>describe region --name=example-region

    Here are some gfsh queries to try on the example-region region.

    Query for all entries in the region:

     gfsh>query --query="select * from /example-region"

    Query for the email field of all entries in the region:

     gfsh>query --query="SELECT FROM /example-region x"

    Query for all entries that have a lastName field that starts with the letter ‘C’:

     gfsh>query --query="SELECT DISTINCT * FROM /example-region x WHERE x.lastName.startsWith('C')"

    Exit gfsh:


Shut down the cluster and (optionally) clean up the directory

  1. Shut down the cluster:

     $ ../gradlew stop
  2. If desired, clean up the generated directories containing logs:

     $ ../gradlew cleanServer