VXQuery CLI is the command line utility which can be used to execute XQueries with ease. No pre-configuration needs to be done in order to execute an XQuery.


Quick Start


Requirements

  • Apache VXQuery™ source archive (apache-vxquery-X.Y-source-release.zip)
  • JDK >= 1.8
  • Apache Maven >= 3.2

Installing

VXQuery CLI comes bundled with the VXQuery source distribution (apache-vxquery-X.Y-source-release.zip).

First, run mvn package.

$ unzip apache-vxquery-X.Y-source-release.zip
$ cd apache-vxquery-X.Y
$ mvn package -DskipTests


vxquery-cli
 binaries are located at vxquery-cli/target/appassembler/bin. There are 2 files in this directory, vxq which is the bash executable for unix based systems and vxq.bat for windows systems. Depending on the platform, suitable executable needs to be selected.


Executing a Query

Put the query into a file

VXQuery CLI takes a file location as the argument where this file includes the query(statement) to be executed. Suppose the following query needs to be executed.

for $x in doc("books.xml")/bookstore/book
where $x/price>30
order by $x/title
return $x/title

This statement is querying for the book titles in books.xml where price of the book is greater than 30. Also this query asks for the results to be ordered by title as well. Now, create a file (say test.xq) and put the above query as the content.

NOTE: You can replace books.xml with any XML file that you have and want to run a query on.

Execute the query

We need to invoke the matching executable according to your platform (unix/windows) inside vxquery-cli/target/appassembler/bin directory. To execute the query, run:

sh ./apache-vxquery-X.Y/vxquery-cli/target/appassembler/bin/vxq path/to/test.xq

Command Line Options

 -O N                      : Optimization Level. (default: Full Optimization)
 -available-processors N   : Number of available processors. (default: java's available processors)
 -buffer-size N            : Disk read buffer size in bytes.
 -compileonly              : Compile the query and stop.
 -frame-size N             : Frame size in bytes. (default: 65,536)
 -hdfs-conf VAL            : Directory path to Hadoop configuration files
 -join-hash-size N         : Join hash size in bytes. (default: 67,108,864)
 -local-node-controllers N : Number of local node controllers. (default: 1)
 -maximum-data-size N      : Maximum possible data size in bytes. (default: 150,323,855,000)
 -repeatexec N             : Number of times to repeat execution.
 -rest-ip-address VAL      : IP Address of the REST Server.
 -rest-port N              : Port of REST Server.
 -result-file VAL          : File path to save the query result.
 -showast                  : Show abstract syntax tree.
 -showoet                  : Show optimized expression tree.
 -showquery                : Show query string.
 -showrp                   : Show Runtime plan.
 -showtet                  : Show translated expression tree.
 -timing                   : Produce timing information.
 -timing-ignore-queries N  : Ignore the first X number of quereies.


NOTE:
 Normally, CLI starts a local VXQuery Server to execute the query. But, if you already have a VXQuery Server running, you can send the query to the inbuilt REST Server running in that server by specifying the port and ip address of the REST Server through options -rest-ip-address and -rest-port.

  • No labels