All Apache Lens releases

Below table captures releases, release documentation, their compatibility and tools provided for incompatible changes.

Release version Major features Release documentation Release Notes Download Incompatibilities More Info
2.3.0-beta Per Query Logs, Server side XML validation, File size in query result, File name suggestions in CLI, Phase 1 Query rewriter, Elastic Search driver, Query launching constraints, Update partition api, Lens Service Health check, Doc/javadoc improvements, Code cleanup, bug fixes 2.3.x docs 2.3 release notes Download 2.3.x-incompatibilities -
2.2.0-beta-incubating CLI Improvements, Support for multiple expressions and and union queries, More descriptive error codes, Zeppelin integration, Code cleanup 2.2.x-incubating docs 2.2 release notes Download 2.2.x-incompatibilities -
2.1.0-beta-incubating Estimate api, Partition timeline, DB resources, Timers on REST api 2.1.x-incubating docs 2.1 release notes Download 2.1.x-incompatibilities -
2.0.1-beta-incubating First release in Apache 2.0.x-incubating docs 2.0 release notes Download - -


Binary distribution of the release does not include dependency org.acplt:oncrpc:jar:1.0.7, as its licensing (LGPL) is not in compliance with Apache licensing which is required for ganglia metrics reporting. If user is interested in ganglia metrics reporting, the jar needs to be downloaded and used.


2.3.x from 2.2.x

  • LENS-681 : Passing a malformed xml doesn't succeed anymore.
  • LENS-666 : Log4j to Logback migration: files are not used anymore, use logback.xml for specifying loggers.
  • LENS-700 : Syntax and semantic errors in query no longer generate a query id, they fail at submission itself
  • LENS-686 : Adding same partition will fail if the partition is already added. Adding multiple partitions gives succeess or partial result depending on whether all the partitions were added or not.
  • LENS-630 : Cost of a query on Hive Driver is not a constant 1 now. It now reflects the resource cost based on partitions chosen for the query.
  • LENS-650 : Pre submit hook is separate from User Config Loader. User Config Loader is no longer an abstract class.
  • LENS-651 : In /resultset api, file size is added. File size and the already existing field num-rows are only populated if needed. Default value is no more -1, it's null(unpopulated). Finished queries table has one more column now, so existing tables need to be updated. The following sql should work: ALTER TABLE finished_queries ADD filesize bigint AFTER rows

2.2.x from 2.1.x

  • LENS-484 : Fact table weight is a mandatory field now, for creating facts from the web interface. Please refer to cube xsd for further details.
  • LENS-553 : Java compilation version moved to Java 7 from Java 6.
  • LENS-546 : Parameter names in Lens CLI will have _ (underscore) instead of - (hyphen) as a separator
  • LENS-256 : Use explicit keywords for different parameter names in Lens-CLI
  • LENS-486 : More structured and informative error responses for the REST interface
  • LENS-487 : Consistent error response display in Lens-CLI. The output shown is different than the previous version.
  • LENS-550 : Removed support for multi table select in cube queries
  • LENS-563 : There was a length limitation of the property value of string that specified 'valid' column list for a fact table. This change has fixed the length limitation by allowing users to set a size parameter, and multiple numerically indexed keys for specifying the bigger column list.

2.1.x from 2.0.x

  • LENS-437 : Removed counts and weights from QueryPlan. The values are no longer available. If any usecase requires these values, it requires a feature addition.
  • LENS-338 : REST api path changed from /facts/{factName}/storages/{storage}/partitions to /facts/{factName}/storages/{storage}/partition and /dimtables/{dimTableName}/storages/{storage}/partitions to /dimtables/{dimTableName}/storages/{storage}/partition for adding single partition. If single partition is getting registered with old path, they need to change to use new path.
  • LENS-281 : Lens server understands data(partition) availability through partition timeline instead of querying metastore. When server is brought up for the first time after this feature, partition timeline will built. If it needs to be updated again, table properties on storage table need to be modified by setting cube.storagetable.partition.timeline.cache.present to false. All add and drop partitions should go through Lens server to keep timeline updated.
  • LENS-327 : Adds "QueryCost estimate(AbstractQueryContext qctx) throws LensException;" in LensDriver interface; ESTIMATE is added in SubmitOp enum. If there is a driver implementation, the new api needs to be implemented.
  • LENS-441 : GET on /cubes/{cubeName}/facts returns StringList instead of ListXFactTable. For getting the XFactTable corresponding to the name returned in StringList, user need to use GET on /facts/{factName}.
  • LENS-275 : Session not found error code is 410, instead of 404