blob: c18d732ed00fd6515af5cf0b5400e8aaf08d22fe [file] [log] [blame]
<?xml version="1.0"?>
<!--
Licensed to the Apache Software Foundation (ASF) under one
or more contributor license agreements. See the NOTICE file
distributed with this work for additional information
regarding copyright ownership. The ASF licenses this file
to you under the Apache License, Version 2.0 (the
"License"); you may not use this file except in compliance
with the License. You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing,
software distributed under the License is distributed on an
"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
KIND, either express or implied. See the License for the
specific language governing permissions and limitations
under the License.
-->
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration>
<property>
<name>lens.driver.jdbc.connection.provider</name>
<value></value>
<description>A contract for obtaining JDBC connections</description>
</property>
<property>
<name>lens.driver.jdbc.connection.properties</name>
<value></value>
<description>Connection properties for jdbc connection.</description>
</property>
<property>
<name>lens.driver.jdbc.query.rewriter</name>
<value>org.apache.lens.driver.jdbc.ColumnarSQLRewriter</value>
<description>Rewriting the HQL to optimized sql queries</description>
</property>
<property>
<name>lens.driver.jdbc.regex.replacement.values</name>
<value>to_date=date, format_number=format, date_sub\((.*?)\,\s*([0-9]+\s*)\)=date_sub($1\, interval $2 day), date_add\((.*?)\,\s*([0-9]+\s*)\)=date_add($1\, interval $2 day)</value>
<description>Rewriting the HQL to optimized sql queries</description>
</property>
<property>
<name>lens.driver.jdbc.driver.class</name>
<value>com.mysql.jdbc.Driver</value>
<description>Type of JDBC driver used to connect backend database</description>
</property>
<property>
<name>lens.driver.jdbc.db.uri</name>
<value></value>
<description>JDBC connection URL in the format jdbc:dbms://host:port/dbname</description>
</property>
<property>
<name>lens.driver.jdbc.db.user</name>
<value></value>
<description>The database user on whose behalf the connection is being made</description>
</property>
<property>
<name>lens.driver.jdbc.db.password</name>
<value></value>
<description>The database user's password</description>
</property>
<property>
<name>lens.driver.jdbc.pool.max.size</name>
<value>15</value>
<description>Maximum number of concurrent connections allowed in pool</description>
</property>
<property>
<name>lens.driver.jdbc.pool.idle.time</name>
<value>600</value>
<description>Maximum idle time in sec before a connection is closed</description>
</property>
<property>
<name>lens.driver.jdbc.pool.max.statements</name>
<value>20</value>
<description>Maximum number of prepared statements to cache per connection</description>
</property>
<property>
<name>lens.driver.jdbc.get.connection.timeout</name>
<value>10000</value>
<description>The number of milliseconds a client calling getConnection() will wait for a Connection to be
checked-in or acquired when the pool is exhausted. Zero means wait indefinitely. Setting any positive value
will cause the getConnection () call to time-out and break with an SQLException after the specified number
of milliseconds. The default value of this property is 10 secs.</description>
</property>
<!-- Estimate query connection pool settings -->
<property>
<name>lens.driver.jdbc.estimate.connection.properties</name>
<value></value>
<description>Connection properties for jdbc estimate connection.</description>
</property>
<property>
<name>lens.driver.jdbc.estimate.driver.class</name>
<value></value>
<description>Type of JDBC driver used to connect backend database for estimate queries. If
This property is not specified, value for lens.driver.jdbc.driver.class will be used.
Override this property to tune estimate connection pool</description>
</property>
<property>
<name>lens.driver.jdbc.estimate.db.uri</name>
<value></value>
<description>JDBC connection URL in the format jdbc:dbms://host:port/dbname for estimate queries.
If this property is unspecified, value for lens.driver.jdbc.db.uri will be used.</description>
</property>
<property>
<name>lens.driver.jdbc.estimate.db.user</name>
<value></value>
<description>The database user on whose behalf the connection is being made, for estimate queries.
If this property is unspecified, value for lens.driver.jdbc.db.user would be used.
Override this property to tune estimate connection pool</description>
</property>
<property>
<name>lens.driver.jdbc.estimate.db.password</name>
<value></value>
<description>The database user's password, for estimate queries. If this property is unspecified,
value for lens.driver.jdbc.db.password would be used.
Override this property to tune estimate connection pool</description>
</property>
<property>
<name>lens.driver.jdbc.estimate.pool.max.size</name>
<value></value>
<description>Maximum number of concurrent connections allowed in pool, for estimate queries.
If this property is unspecified, value for lens.driver.jdbc.pool.max.size would be used.
Override this property to tune estimate connection pool</description>
</property>
<property>
<name>lens.driver.jdbc.estimate.pool.idle.time</name>
<value></value>
<description>Maximum idle time in sec before a connection is closed, for estimate queries.
If this property is not specified, value for lens.driver.jdbc.pool.idle.time would be used.
Override this property to tune estimate connection pool.</description>
</property>
<property>
<name>lens.driver.jdbc.estimate.pool.max.statements</name>
<value></value>
<description>Maximum number of prepared statements to cache per connection, for estimate queries.
If this property is not specified, value for lens.driver.jdbc.pool.max.statements would be used.</description>
</property>
<property>
<name>lens.driver.jdbc.estimate.get.connection.timeout</name>
<value></value>
<description>Response timeout in milliseconds of any JDBC call invoking data transmission over a connection socket
, for estimate queries. If this property is not specified, value for lens.driver.jdbc.get.connection.timeout
would be used. Override this property to tune estimate connection pool.</description>
</property>
<property>
<name>lens.driver.jdbc.explain.keyword</name>
<value>Explain</value>
<description>Explain keyword used to get the query plan of underlying database</description>
</property>
<!-- query params -->
<property>
<name>lens.cube.query.driver.supported.storages</name>
<value></value>
<description>List of comma separated storage names that supported by a driver. If no value is specified, all
storages are valid
</description>
</property>
<property>
<name>lens.cube.query.replace.timedim</name>
<value>false</value>
<description>Tells whether timedim attribute queried in the time range should be replaced with its corresponding
partition column name.
</description>
</property>
<property>
<name>lens.cube.query.time.range.writer.class</name>
<value>org.apache.lens.cube.parse.BetweenTimeRangeWriter</value>
<description>The timerange writer class which specifies how the resolved partitions in timeranges should be written
in final query. Available writers are org.apache.lens.cube.parse.ORTimeRangeWriter and
org.apache.lens.cube.parse.BetweenTimeRangeWriter
</description>
</property>
<property>
<name>lens.cube.query.partition.where.clause.format</name>
<value>yyyy-MM-dd HH:mm:ss</value>
<description>The simple date format of how the queried partition should be put in where clause. If nothing is
specified, it will use the format from org.apache.lens.cube.metadata.UpdatePeriod for each type of partition
</description>
</property>
<property>
<name>lens.query.timeout.millis</name>
<value>3600000</value>
<description>The runtime(millis) of the query after which query will be timedout and cancelled. Default is 1 hour
for jdbc queries.
</description>
</property>
<property>
<name>lens.driver.jdbc.enable.resultset.streaming.retrieval</name>
<value>false</value>
<description>Flag to enable row by row retrieval of result set from the database server. This is used to enable
streaming result sets for MySQL. This is set to false by default.
</description>
</property>
<property>
<name>lens.driver.jdbc.fetch.size</name>
<value>1000</value>
<description>Fetch size for JDBC result set</description>
</property>
<property>
<name>lens.driver.jdbc.validate.through.prepare</name>
<value>true</value>
<description>Flag to enable query syntactic and semantic validation using prepared statement.</description>
</property>
<property>
<name>lens.driver.jdbc.query.launching.constraint.factories</name>
<value>org.apache.lens.server.api.query.constraint.MaxConcurrentDriverQueriesConstraintFactory,
org.apache.lens.driver.jdbc.MaxJDBCConnectionCheckConstraintFactory</value>
<description>Factories used to instantiate constraints enforced on queries by driver. A query will be launched
only if all constraints pass. Every Factory should be an implementation of
org.apache.lens.server.api.common.ConfigBasedObjectCreationFactory and create an implementation of
org.apache.lens.server.api.query.constraint.QueryLaunchingConstraint.</description>
</property>
<property>
<name>lens.driver.jdbc.waiting.queries.selection.policy.factories</name>
<value>org.apache.lens.server.api.query.collect.DriverSpecificWaitingQueriesSelectionPolicyFactory</value>
<description>Factories used to instantiate driver specific waiting queries selection policies. Every factory should
be an implementation of org.apache.lens.server.api.common.ConfigBasedObjectCreationFactory and create an
implementation of org.apache.lens.server.api.query.collect.WaitingQueriesSelectionPolicy.</description>
</property>
<property>
<name>driver.max.concurrent.launched.queries</name>
<value>15</value>
<description>Maximum queries which can be launched simultaneously on this driver. This should be equal to
lens.driver.jdbc.pool.max.size. This configuration value is only useful when MaxConcurrentDriverQueriesConstraint
is enabled by using org.apache.lens.server.api.query.constraint.MaxConcurrentDriverQueriesConstraintFactory as
one of the factories in lens.driver.jdbc.query.constraint.factories property.</description>
</property>
<property>
<name>lens.driver.jdbc.statement.cancel.supported</name>
<value>true</value>
<description>Flag to indicate Whether cancel on JDBC statement is supported. If not supported,
framework wont call cancel on JDBC statement.</description>
</property>
<property>
<name>lens.driver.jdbc.cost.calculator.class</name>
<value>org.apache.lens.cube.query.cost.StaticCostCalculator</value>
<description>Cost calculator class. By default calculating cost through static values </description>
</property>
<property>
<name>lens.driver.query.cost</name>
<value>0.0</value>
<description>Jdbc driver static cost value</description>
</property>
<property>
<name>lens.driver.cost.query.decider.class</name>
<value>org.apache.lens.server.api.query.cost.RangeBasedQueryCostTypeDecider</value>
<description>Decider class which looks at ranges passed in config and decides the querycosttype </description>
</property>
<property>
<name>lens.driver.cost.type.ranges</name>
<value>LOW,0.0,HIGH</value>
<description>Cost based Query type mapping</description>
</property>
<property>
<name>retry.messages.contains.map</name>
<value>Query not found=org.apache.lens.server.api.retry.ImmediateRetryHandler(2)</value>
<description>Comma separated error messages and retry policy</description>
</property>
<property>
<name>query.retry.policy.classes</name>
<value>org.apache.lens.server.api.retry.SubstringMessagePolicyDecider</value>
<description>List of classes to decide policies</description>
</property>
<property>
<name>lens.cube.query.user.groups.authorization.enable</name>
<value>false</value>
<description>true if authorization is based on User Groups, false otherwise</description>
</property>
<property>
<name>lens.cube.query.user.name.authorization.enable</name>
<value>false</value>
<description>true if authorization is based on User Name, false otherwise</description>
</property>
</configuration>