Files
impala/shell/impala_shell_config_defaults.py
Alice Fan e1d1428181 IMPALA-9384: Improve Impala shell usability by enabling live_progress in interactive mode
In order to improve usability, this patch makes Impala shell show query
processing status while the query is running. The patch enables shell
option live_progress by default when a user launches impala shell in
the interactive mode. The patch also adds a new command line flag
"--disable_live_progress", which allows a user to disable live_progress
at runtime. In the interactive mode, a user can disable live_progress
by either using the command line flag or setting the option as False in
the config file. As for in the non-interactive mode (when the -q or -f
options are used), live reporting is not supported. Impala-shell will
disable live_progress if the mode is detected.

Testing:
- Added and updated tests in test_shell_interactive.py and test_shell_commandline.py
- Successfully ran all shell related tests

Change-Id: I3765b775f663fa227e59728acffe4d5ea9a5e2d3
Reviewed-on: http://gerrit.cloudera.org:8080/15219
Tested-by: Impala Public Jenkins <impala-public-jenkins@cloudera.com>
Reviewed-by: Tim Armstrong <tarmstrong@cloudera.com>
2020-03-09 21:28:19 +00:00

57 lines
2.0 KiB
Python

#!/usr/bin/env python
#
# 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.
# default options used by the Impala shell stored in a dict
import getpass
import os
import socket
_histfile_from_env = os.environ.get(
'IMPALA_HISTFILE', '~/.impalahistory')
impala_shell_defaults = {
'ca_cert': None,
'config_file': os.path.expanduser("~/.impalarc"),
'default_db': None,
'history_file': _histfile_from_env,
'history_max': 1000,
'ignore_query_failure': False,
'impalad': socket.getfqdn(),
'kerberos_host_fqdn': None,
'kerberos_service_name': 'impala',
'output_delimiter': '\\t',
'output_file': None,
'print_header': False,
'live_progress': True, # The option only applies to interactive shell session
'live_summary': False,
'query': None,
'query_file': None,
'show_profiles': False,
'ssl': False,
'use_kerberos': False,
'use_ldap': False,
'user': getpass.getuser(),
'verbose': True,
'version': False,
'write_delimited': False,
'client_connect_timeout_ms': 60000,
'global_config_default_path': '/etc/impalarc',
}