本文整理汇总了Python中redash.tasks.QueryTask类的典型用法代码示例。如果您正苦于以下问题:Python QueryTask类的具体用法?Python QueryTask怎么用?Python QueryTask使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
在下文中一共展示了QueryTask类的8个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的Python代码示例。
示例1: post
def post(self):
params = request.get_json(force=True)
if settings.FEATURE_TABLES_PERMISSIONS:
metadata = utils.SQLMetaData(params["query"])
if metadata.has_non_select_dml_statements or metadata.has_ddl_statements:
return {"job": {"error": "Only SELECT statements are allowed"}}
if len(metadata.used_tables - current_user.allowed_tables) > 0 and "*" not in current_user.allowed_tables:
logging.warning(
"Permission denied for user %s to table %s", self.current_user.name, metadata.used_tables
)
return {"job": {"error": "Access denied for table(s): %s" % (metadata.used_tables)}}
models.ActivityLog(
user=self.current_user, type=models.ActivityLog.QUERY_EXECUTION, activity=params["query"]
).save()
max_age = int(params.get("max_age", -1))
if max_age == 0:
query_result = None
else:
query_result = models.QueryResult.get_latest(params["data_source_id"], params["query"], max_age)
if query_result:
return {"query_result": query_result.to_dict()}
else:
data_source = models.DataSource.get_by_id(params["data_source_id"])
query_id = params.get("query_id", "adhoc")
job = QueryTask.add_task(
params["query"], data_source, metadata={"Username": self.current_user.name, "Query ID": query_id}
)
return {"job": job.to_dict()}
开发者ID:Bazoozoo,项目名称:redash,代码行数:35,代码来源:controllers.py
示例2: post
def post(self):
params = request.get_json(force=True)
data_source = models.DataSource.get_by_id_and_org(params.get('data_source_id'), self.current_org)
if not has_access(data_source.groups, self.current_user, not_view_only):
return {'job': {'status': 4, 'error': 'You do not have permission to run queries with this data source.'}}, 403
self.record_event({
'action': 'execute_query',
'timestamp': int(time.time()),
'object_id': data_source.id,
'object_type': 'data_source',
'query': params['query']
})
max_age = int(params.get('max_age', -1))
if max_age == 0:
query_result = None
else:
query_result = models.QueryResult.get_latest(data_source, params['query'], max_age)
if query_result:
return {'query_result': query_result.to_dict()}
else:
query_id = params.get('query_id', 'adhoc')
job = QueryTask.add_task(params['query'], data_source,
metadata={"Username": self.current_user.name, "Query ID": query_id})
return {'job': job.to_dict()}
开发者ID:MoveOnOrg,项目名称:redash,代码行数:29,代码来源:query_results.py
示例3: post
def post(self):
params = request.json
if settings.FEATURE_TABLES_PERMISSIONS:
metadata = utils.SQLMetaData(params['query'])
if metadata.has_non_select_dml_statements or metadata.has_ddl_statements:
return {
'job': {
'error': 'Only SELECT statements are allowed'
}
}
if len(metadata.used_tables - current_user.allowed_tables) > 0 and '*' not in current_user.allowed_tables:
logging.warning('Permission denied for user %s to table %s', self.current_user.name, metadata.used_tables)
return {
'job': {
'error': 'Access denied for table(s): %s' % (metadata.used_tables)
}
}
models.ActivityLog(
user=self.current_user,
type=models.ActivityLog.QUERY_EXECUTION,
activity=params['query']
).save()
max_age = int(params['max_age'])
if max_age == 0:
query_result = None
else:
query_result = models.QueryResult.get_latest(params['data_source_id'], params['query'], max_age)
if query_result:
return {'query_result': query_result.to_dict()}
else:
data_source = models.DataSource.get_by_id(params['data_source_id'])
query_id = params.get('query_id', 'adhoc')
job = QueryTask.add_task(params['query'], data_source, metadata={"Username": self.current_user.name, "Query ID": query_id})
return {'job': job.to_dict()}
开发者ID:daamien,项目名称:redash,代码行数:41,代码来源:controllers.py
示例4: run_query
def run_query(data_source, parameter_values, query_text, query_id, max_age=0):
query_parameters = set(collect_query_parameters(query_text))
missing_params = set(query_parameters) - set(parameter_values.keys())
if missing_params:
return {'job': {'status': 4,
'error': 'Missing parameter value for: {}'.format(", ".join(missing_params))}}, 400
if query_parameters:
query_text = pystache.render(query_text, parameter_values)
if max_age == 0:
query_result = None
else:
query_result = models.QueryResult.get_latest(data_source, query_text, max_age)
if query_result:
return {'query_result': query_result.to_dict()}
else:
job = QueryTask.add_task(query_text, data_source,
metadata={"Username": current_user.name, "Query ID": query_id})
return {'job': job.to_dict()}
开发者ID:DylanKojiCheslin,项目名称:redash,代码行数:21,代码来源:query_results.py
示例5: delete
def delete(self, job_id):
job = QueryTask(job_id=job_id)
job.cancel()
开发者ID:MoveOnOrg,项目名称:redash,代码行数:3,代码来源:query_results.py
示例6: get
def get(self, job_id):
# TODO: if finished, include the query result
job = QueryTask(job_id=job_id)
return {'job': job.to_dict()}
开发者ID:MoveOnOrg,项目名称:redash,代码行数:4,代码来源:query_results.py
示例7: delete
def delete(self, job_id):
"""
Cancel a query job in progress.
"""
job = QueryTask(job_id=job_id)
job.cancel()
开发者ID:jonyboy2000,项目名称:redash,代码行数:6,代码来源:query_results.py
示例8: get
def get(self, job_id):
"""
Retrieve info about a running query job.
"""
job = QueryTask(job_id=job_id)
return {'job': job.to_dict()}
开发者ID:jonyboy2000,项目名称:redash,代码行数:6,代码来源:query_results.py
注:本文中的redash.tasks.QueryTask类示例由纯净天空整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 |
请发表评论