• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

Python tasks.QueryTask类代码示例

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

本文整理汇总了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;未经允许,请勿转载。


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
Python record_event.delay函数代码示例发布时间:2022-05-26
下一篇:
Python settings.all_settings函数代码示例发布时间:2022-05-26
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap