blob: c3edccacc5800d55781f85eabce5a589adef4888 [file] [log] [blame]
#!/usr/bin/env impala-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.
# This script is a thin wrapper to execute a query using Impyla against an HTTP endpoint.
# It can be used by other tests (e.g. LdapImpylaHttpTest.java) that start a cluster with
# an LDAP server to validate Impyla's functionality.
import argparse
import logging
from impala import dbapi as impyla
logging.basicConfig(level=logging.INFO)
def run_query(query, args):
"""Runs a query using Impyla. Args must contain various options that are forwarded to
Impyla's connect() method."""
auth_mechanism = 'NOSASL'
if args.user:
auth_mechanism = 'LDAP'
conn = impyla.connect(host=args.host, port=args.port, user=args.user,
password=args.password, auth_mechanism=auth_mechanism,
use_http_transport=True, http_path=args.http_path)
cursor = conn.cursor()
cursor.execute(query)
result = cursor.fetchall()
# Print the result so that the caller can validate it.
print(str(result))
def main():
parser = argparse.ArgumentParser()
parser.add_argument("--host", default="localhost")
parser.add_argument("--port", type=int, default=28000)
parser.add_argument("--http_path", default="")
parser.add_argument("--user")
parser.add_argument("--password")
parser.add_argument("--query", default="select 42")
args = parser.parse_args()
run_query(args.query, args)
if __name__ == "__main__":
main()