From bd24f854c96390e53bdfb0a3e5c3122928340acf Mon Sep 17 00:00:00 2001 From: timifasubaa <30888507+timifasubaa@users.noreply.github.com> Date: Mon, 25 Jun 2018 12:04:27 -0700 Subject: [PATCH] specify hve namespace for tables (#5268) --- superset/config.py | 4 ++++ superset/db_engine_specs.py | 8 ++++++++ 2 files changed, 12 insertions(+) diff --git a/superset/config.py b/superset/config.py index d03520fe908cc..bd02bb4fcd493 100644 --- a/superset/config.py +++ b/superset/config.py @@ -314,6 +314,10 @@ class CeleryConfig(object): # contain all the external tables CSV_TO_HIVE_UPLOAD_DIRECTORY = 'EXTERNAL_HIVE_TABLES/' +# The namespace within hive where the tables created from +# uploading CSVs will be stored. +UPLOADED_CSV_HIVE_NAMESPACE = None + # A dictionary of items that gets merged into the Jinja context for # SQL Lab. The existing context gets updated with this dictionary, # meaning values for existing keys get overwritten by the content of this diff --git a/superset/db_engine_specs.py b/superset/db_engine_specs.py index 35b64d61d9280..d6a9144106762 100644 --- a/superset/db_engine_specs.py +++ b/superset/db_engine_specs.py @@ -978,6 +978,14 @@ def get_column_names(filepath): return next(unicodecsv.reader(f, encoding='utf-8-sig')) table_name = form.name.data + if config.get('UPLOADED_CSV_HIVE_NAMESPACE'): + if '.' in table_name: + raise Exception( + "You can't specify a namespace. " + 'All tables will be uploaded to the `{}` namespace'.format( + config.get('HIVE_NAMESPACE'))) + table_name = '{}.{}'.format( + config.get('UPLOADED_CSV_HIVE_NAMESPACE'), table_name) filename = form.csv_file.data.filename bucket_path = app.config['CSV_TO_HIVE_UPLOAD_S3_BUCKET']