当前位置: 首页>>代码示例>>Python>>正文


Python models.QueryHistory类代码示例

本文整理汇总了Python中beeswax.models.QueryHistory的典型用法代码示例。如果您正苦于以下问题:Python QueryHistory类的具体用法?Python QueryHistory怎么用?Python QueryHistory使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。


在下文中一共展示了QueryHistory类的11个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。

示例1: execute_query

    def execute_query(self, query, design):
        from beeswax.models import QueryHistory

        sql_query = query.sql_query
        query_history = QueryHistory.build(
            owner=self.client.user,
            query=sql_query,
            server_host="%(server_host)s" % self.client.query_server,
            server_port="%(server_port)d" % self.client.query_server,
            server_name="%(server_name)s" % self.client.query_server,
            server_type=self.server_type,
            last_state=QueryHistory.STATE.available.index,
            design=design,
            notify=False,
            query_type=query.query["type"],
            statement_number=0,
        )
        query_history.save()

        LOG.debug(
            "Updated QueryHistory id %s user %s statement_number: %s"
            % (query_history.id, self.client.user, query_history.statement_number)
        )

        return query_history
开发者ID:shobull,项目名称:hue,代码行数:25,代码来源:dbms.py

示例2: execute_and_watch

  def execute_and_watch(self, query, design=None, notify=False):
    """
    Run query and return a QueryHistory object in order to see its progress on a Web page.
    """
    query_statement = query.query['query']
    query_history = QueryHistory.build(
                                owner=self.client.user,
                                query=query_statement,
                                server_host='%(server_host)s' % self.client.query_server,
                                server_port='%(server_port)d' % self.client.query_server,
                                server_name='%(server_name)s' % self.client.query_server,
                                server_type=self.server_type,
                                last_state=QueryHistory.STATE.submitted.index,
                                design=design,
                                notify=notify)
    query_history.save()

    LOG.debug("Made new QueryHistory id %s user %s query: %s..." % (query_history.id, self.client.user, query_history.query[:25]))

    try:
      handle = self.client.query(query)
      if not handle.is_valid():
        msg = _("Server returning invalid handle for query id %(id)d [%(query)s]...") % \
              {'id': query_history.id, 'query': query_statement[:40]}
        raise BeeswaxException(msg)
    except BeeswaxException, ex: # TODO HS2
      LOG.exception(ex)
      # Kind of expected (hql compile/syntax error, etc.)
      if hasattr(ex, 'handle') and ex.handle:
        query_history.server_id = ex.handle.id
        query_history.log_context = ex.handle.log_context
      query_history.save_state(QueryHistory.STATE.failed)
      raise ex
开发者ID:icheckmate,项目名称:hue,代码行数:33,代码来源:dbms.py

示例3: execute_directly

def execute_directly(user, query_msg, design=None, notify=False):
  """
  execute_directly(user, query_msg [,design]) -> QueryHistory object

  This method also creates a QueryHistory object and saves it.
  user - Django user.
  query_msg - The thrift Query object.
  design - The SavedQuery object (i.e. design) associated with this query.
  notify - Whether to notify the user upon completion.
  """
  query_history = QueryHistory(
                            owner=user,
                            query=query_msg.query,
                            last_state=QueryHistory.STATE.submitted.index,
                            design=design,
                            notify=notify)
  query_history.save()
  LOG.debug("Made new QueryHistory id %s user %s query: %s..." %
            (query_history.id, user, query_history.query[:25]))

  # Now submit it
  try:
    handle = db_client().query(query_msg)
    if not handle or not handle.id or not handle.log_context:
      # It really shouldn't happen
      msg = "BeeswaxServer returning invalid handle for query id %d [%s]..." % \
            (query_history.id, query_msg.query[:40])
      raise Exception(msg)
  except BeeswaxException, bex:
    # Kind of expected (hql compile/syntax error, etc.)
    if bex.handle:
      query_history.server_id = bex.handle.id
      query_history.log_context = bex.handle.log_context
    query_history.save_state(QueryHistory.STATE.failed)
    raise bex
开发者ID:ConduitTeam,项目名称:hue,代码行数:35,代码来源:db_utils.py

示例4: authorized_get_history

def authorized_get_history(request, query_history_id, owner_only=False, must_exist=False):
  if query_history_id is None and not must_exist:
    return None
  try:
    query_history = QueryHistory.get(id=query_history_id)
  except QueryHistory.DoesNotExist:
    if must_exist:
      raise PopupException(_('QueryHistory %(id)s does not exist.') % {'id': query_history_id})
    else:
      return None

  query_history.design.doc.get().can_read_or_exception(request.user)

  return query_history
开发者ID:woodywang,项目名称:hue,代码行数:14,代码来源:views.py

示例5: handle

  def handle(self, *args, **options):
    days = int(args[0]) if len(args) >= 1 else 7
    close_all = args[1] == 'all' if len(args) >= 2 else False

    self.stdout.write('Closing (all=%s) HiveServer2 queries older than %s days...\n' % (close_all, days))

    queries = QueryHistory.objects.filter(last_state__in=[QueryHistory.STATE.expired.value, QueryHistory.STATE.failed.value, QueryHistory.STATE.available.value])

    if close_all:
      queries = QueryHistory.objects.all()

    queries = queries.filter(submission_date__lte=datetime.today() - timedelta(days=days))

    import os
    import beeswax
    from beeswax import conf
    from beeswax import hive_site
    try:
      beeswax.conf.HIVE_CONF_DIR.set_for_testing(os.environ['HIVE_CONF_DIR'])
    except:
      LOG.exception('failed to lookup HIVE_CONF_DIR in environment')
      self.stdout.write('Did you export HIVE_CONF_DIR=/etc/hive/conf?\n')
      raise

    hive_site.reset()
    hive_site.get_conf()

    closed_queries = 0
    already_closed_queries = 0

    for query in queries:
      try:
        query_history = QueryHistory.get(id=query.id)
        if query_history.server_id is not None:
          handle = query_history.get_handle()
          dbms.get(user=query_history.owner).close_operation(handle)
          closed_queries += 1
        else:
          already_closed_queries += 1

        query.last_state = QueryHistory.STATE.expired.value
        query.save()
      except Exception, e:
        if 'None' in str(e) or 'Invalid OperationHandle' in str(e):
          already_closed_queries += 1
          query.last_state = QueryHistory.STATE.expired.value
          query.save()
        else:
          self.stdout.write('Info: %s\n' % e)
开发者ID:cloudera,项目名称:hue,代码行数:49,代码来源:close_queries.py

示例6: test_get_runtime_profile

  def test_get_runtime_profile(self):
    query = """
      SELECT COUNT(1) FROM tweets;
    """

    response = _make_query(self.client, query, database=self.DATABASE, local=False, server_name='impala')
    content = json.loads(response.content)
    query_history = QueryHistory.get(content['id'])

    wait_for_query_to_finish(self.client, response, max=180.0)

    resp = self.client.post(reverse('impala:get_runtime_profile', kwargs={'query_history_id': query_history.id}))
    data = json.loads(resp.content)
    assert_equal(0, data['status'], data)
    assert_true('Execution Profile' in data['profile'], data)
开发者ID:18600597055,项目名称:hue,代码行数:15,代码来源:tests.py

示例7: authorized_get_query_history

def authorized_get_query_history(request, query_history_id, owner_only=False, must_exist=False):
  if query_history_id is None and not must_exist:
    return None
  try:
    query_history = QueryHistory.get(id=query_history_id)
  except QueryHistory.DoesNotExist:
    if must_exist:
      raise PopupException(_('QueryHistory %(id)s does not exist.') % {'id': query_history_id})
    else:
      return None

  # Some queries don't have a design so are not linked to Document Model permission
  if query_history.design is None or not query_history.design.doc.exists():
    if not request.user.is_superuser and request.user != query_history.owner:
      raise PopupException(_('Permission denied to read QueryHistory %(id)s') % {'id': query_history_id})
  else:
    query_history.design.doc.get().can_read_or_exception(request.user)

  return query_history
开发者ID:Web5design,项目名称:hue,代码行数:19,代码来源:views.py

示例8: execute_and_watch

    def execute_and_watch(self, query, design=None, query_history=None):
        """
    Run query and return a QueryHistory object in order to see its progress on a Web page.
    """
        hql_query = query.hql_query
        if query_history is None:
            query_history = QueryHistory.build(
                owner=self.client.user,
                query=hql_query,
                server_host="%(server_host)s" % self.client.query_server,
                server_port="%(server_port)d" % self.client.query_server,
                server_name="%(server_name)s" % self.client.query_server,
                server_type=self.server_type,
                last_state=QueryHistory.STATE.submitted.index,
                design=design,
                notify=query.query.get("email_notify", False),
                query_type=query.query["type"],
                statement_number=0,
            )
            query_history.save()

            LOG.debug(
                "Made new QueryHistory id %s user %s query: %s..."
                % (query_history.id, self.client.user, query_history.query[:25])
            )

        try:
            handle = self.client.query(query, query_history.statement_number)
            if not handle.is_valid():
                msg = _("Server returning invalid handle for query id %(id)d [%(query)s]...") % {
                    "id": query_history.id,
                    "query": query[:40],
                }
                raise QueryServerException(msg)
        except QueryServerException, ex:
            LOG.exception(ex)
            # Kind of expected (hql compile/syntax error, etc.)
            if hasattr(ex, "handle") and ex.handle:
                query_history.server_id, query_history.server_guid = ex.handle.id, ex.handle.id
                query_history.log_context = ex.handle.log_context
            query_history.save_state(QueryHistory.STATE.failed)
            raise ex
开发者ID:cyc821211,项目名称:hue,代码行数:42,代码来源:dbms.py

示例9: test_basic_flow

    def test_basic_flow(self):
        dbs = self.db.get_databases()
        assert_true("_impala_builtins" in dbs, dbs)
        assert_true(self.DATABASE in dbs, dbs)

        tables = self.db.get_tables(database=self.DATABASE)
        assert_true("tweets" in tables, tables)

        QUERY = """
      SELECT * FROM tweets ORDER BY row_num;
    """
        response = _make_query(self.client, QUERY, database=self.DATABASE, local=False, server_name="impala")
        content = json.loads(response.content)
        query_history = QueryHistory.get(content["id"])

        response = wait_for_query_to_finish(self.client, response, max=180.0)

        results = []

        # Check that we multiple fetches get all the result set
        while len(results) < 5:
            content = fetch_query_result_data(
                self.client, response, n=len(results), server_name="impala"
            )  # We get less than 5 results most of the time, so increase offset
            results += content["results"]

        assert_equal([1, 2, 3, 4, 5], [col[0] for col in results])

        # Check start over
        results_start_over = []

        while len(results_start_over) < 5:
            content = fetch_query_result_data(self.client, response, n=len(results_start_over), server_name="impala")
            results_start_over += content["results"]

        assert_equal(results_start_over, results)

        # Check cancel query
        resp = self.client.post(reverse("impala:api_cancel_query", kwargs={"query_history_id": query_history.id}))
        content = json.loads(resp.content)
        assert_equal(0, content["status"])
开发者ID:ronwxy,项目名称:hue,代码行数:41,代码来源:tests.py

示例10: execute_directly

def execute_directly(user, query_msg, query_server=None, design=None, notify=False):
  """
  execute_directly(user, query_msg [,design]) -> QueryHistory object

  This method also creates a QueryHistory object and saves it.
  user - Django user.
  query_msg - The thrift Query object.
  design - The SavedQuery object (i.e. design) associated with this query.
  notify - Whether to notify the user upon completion.
  """
  if query_server is None:
    query_server = get_query_server(support_ddl=True) # For convenience with DDL queries only

  query_history = QueryHistory(
                            owner=user,
                            query=query_msg.query,
                            server_host='%(server_host)s' % query_server,
                            server_port='%(server_port)d' % query_server,
                            server_name='%(server_name)s' % query_server,
                            last_state=QueryHistory.STATE.submitted.index,
                            design=design,
                            notify=notify)
  query_history.save()
  LOG.debug("Made new QueryHistory id %s user %s query: %s..." %
            (query_history.id, user, query_history.query[:25]))

  # Now submit it
  try:
    handle = db_client(query_server).query(query_msg)
    if not handle or not handle.id:
      # It really shouldn't happen
      msg = _("BeeswaxServer returning invalid handle for query id %(id)d [%(query)s]...") % \
            {'id': query_history.id, 'query': query_msg.query[:40]}
      raise Exception(msg)
  except BeeswaxException, bex:
    # Kind of expected (hql compile/syntax error, etc.)
    if bex.handle:
      query_history.server_id = bex.handle.id
      query_history.log_context = bex.handle.log_context
    query_history.save_state(QueryHistory.STATE.failed)
    raise bex
开发者ID:DatalakeInc,项目名称:hortonworks-sandbox,代码行数:41,代码来源:db_utils.py

示例11: test_get_exec_summary

  def test_get_exec_summary(self):
    query = """
      SELECT COUNT(1) FROM tweets;
    """

    response = _make_query(self.client, query, database=self.DATABASE, local=False, server_name='impala')
    content = json.loads(response.content)
    query_history = QueryHistory.get(content['id'])

    wait_for_query_to_finish(self.client, response, max=180.0)

    resp = self.client.post(reverse('impala:get_exec_summary', kwargs={'query_history_id': query_history.id}))
    data = json.loads(resp.content)
    assert_equal(0, data['status'], data)
    assert_true('nodes' in data['summary'], data)
    assert_true(len(data['summary']['nodes']) > 0, data['summary']['nodes'])

    # Attempt to call get_exec_summary on a closed query
    resp = self.client.post(reverse('impala:get_exec_summary', kwargs={'query_history_id': query_history.id}))
    data = json.loads(resp.content)
    assert_equal(0, data['status'], data)
    assert_true('nodes' in data['summary'], data)
    assert_true(len(data['summary']['nodes']) > 0, data['summary']['nodes'])
开发者ID:18600597055,项目名称:hue,代码行数:23,代码来源:tests.py


注:本文中的beeswax.models.QueryHistory类示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。