部署方式:docker-compose
版本:10.1.0.b50633
修改文件:/app/redash/query_runner/hive_ds.py
修改函数:_get_tables(self, schema):
修改内容如下(** 为修改处):
def _get_tables(self, schema):
schemas_query = "show schemas"
tables_query = "show tables in %s"
columns_query = "show columns in %s.%s"
**
filter_schema = 'database_name'
filter_table = 'tab_name'
filter_column = 'field'
port=self.configuration.get("port", None)
if port == 10001:
filter_schema = 'namespace'
filter_table = 'tableName'
filter_column = 'col_name'
**
logger.error(port)
for schema_name in [
a
for a in [
**str(a[filter_schema]) for a in self._run_query_internal(schemas_query)**
]
if len(a) > 0
]:
logger.error(schema_name)
for table_name in [
a
for a in [
**str(a[filter_table])**
for a in self._run_query_internal(tables_query % schema_name)
]
if len(a) > 0
]:
logger.error(table_name)
columns = [
a
for a in [
**str(a[filter_column])**
for a in self._run_query_internal(
columns_query % (schema_name, table_name)
)
]
if len(a) > 0
]
logger.error(columns)
if schema_name != "default":
table_name = "{}.{}".format(schema_name, table_name)
schema[table_name] = {"name": table_name, "columns": columns}
return list(schema.values())
docker cp hive_ds.py redash_scheduled_worker_1:/app/redash/query_runner
docker restart redash_scheduled_worker_1
以上方式性能与方式都相对简化,欢迎大佬评论区指正,若有其他方式,烦请贴评论区