Esempio n. 1
0
def load_table(request, database, table):
    db = dbms.get(request.user)
    table = db.get_table(database, table)
    response = {'status': -1, 'data': 'None'}

    if request.method == "POST":
        load_form = LoadDataForm(table, request.POST)

        if load_form.is_valid():
            on_success_url = reverse('metastore:describe_table',
                                     kwargs={
                                         'database': database,
                                         'table': table.name
                                     })
            try:
                design = SavedQuery.create_empty(app_name='beeswax',
                                                 owner=request.user,
                                                 data=hql_query('').dumps())
                query_history = db.load_data(database, table, load_form,
                                             design)
                url = reverse('beeswax:watch_query_history',
                              kwargs={'query_history_id': query_history.id
                                      }) + '?on_success_url=' + on_success_url
                response['status'] = 0
                response['data'] = url
            except Exception, e:
                response['status'] = 1
                response['data'] = _("Can't load the data: ") + str(e)
Esempio n. 2
0
def load_table(request, database, table):
    db = dbms.get(request.user)
    table = db.get_table(database, table)
    response = {'status': -1, 'data': 'None'}

    if request.method == "POST":
        load_form = LoadDataForm(table, request.POST)

        if load_form.is_valid():
            on_success_url = reverse('metastore:describe_table',
                                     kwargs={
                                         'database': database,
                                         'table': table.name
                                     })
            generate_ddl_only = request.POST.get('is_embeddable',
                                                 'false') == 'true'
            try:
                design = SavedQuery.create_empty(app_name='beeswax',
                                                 owner=request.user,
                                                 data=hql_query('').dumps())
                form_data = {
                    'path':
                    load_form.cleaned_data['path'],
                    'overwrite':
                    load_form.cleaned_data['overwrite'],
                    'partition_columns':
                    [(column_name, load_form.cleaned_data[key]) for key,
                     column_name in load_form.partition_columns.iteritems()],
                }
                query_history = db.load_data(
                    database,
                    table.name,
                    form_data,
                    design,
                    generate_ddl_only=generate_ddl_only)
                if generate_ddl_only:
                    job = make_notebook(name='Execute and watch',
                                        editor_type='hive',
                                        statement=query_history.strip(),
                                        status='ready',
                                        database=database,
                                        on_success_url='assist.db.refresh',
                                        is_task=True)
                    response = job.execute(request)
                else:
                    url = reverse('beeswax:watch_query_history',
                                  kwargs={
                                      'query_history_id': query_history.id
                                  }) + '?on_success_url=' + on_success_url
                    response['status'] = 0
                    response['data'] = url
                    response['query_history_id'] = query_history.id
            except QueryError, ex:
                response['status'] = 1
                response['data'] = _("Can't load the data: ") + ex.message
            except Exception, e:
                response['status'] = 1
                response['data'] = _("Can't load the data: ") + str(e)
Esempio n. 3
0
File: views.py Progetto: mapr/hue
def load_table(request, database, table):
  response = {'status': -1, 'data': 'None'}

  source_type = request.POST.get('source_type', request.GET.get('source_type', 'hive'))
  cluster = json.loads(request.POST.get('cluster', '{}'))

  db = _get_db(user=request.user, source_type=source_type, cluster=cluster)

  table = db.get_table(database, table)

  if request.method == "POST":
    load_form = LoadDataForm(table, request.POST)

    if load_form.is_valid():
      on_success_url = reverse('metastore:describe_table', kwargs={'database': database, 'table': table.name})
      generate_ddl_only = request.POST.get('is_embeddable', 'false') == 'true'
      try:
        design = SavedQuery.create_empty(app_name=source_type if source_type != 'hive' else 'beeswax', owner=request.user, data=hql_query('').dumps())
        form_data = {
          'path': load_form.cleaned_data['path'],
          'overwrite': load_form.cleaned_data['overwrite'],
          'partition_columns': [(column_name, load_form.cleaned_data[key]) for key, column_name in load_form.partition_columns.iteritems()],
        }
        query_history = db.load_data(database, table.name, form_data, design, generate_ddl_only=generate_ddl_only)
        if generate_ddl_only:
          last_executed = json.loads(request.POST.get('start_time'), '-1')
          job = make_notebook(
            name=_('Load data in %s.%s') % (database, table.name),
            editor_type=source_type,
            statement=query_history.strip(),
            status='ready',
            database=database,
            on_success_url='assist.db.refresh',
            is_task=True,
            last_executed=last_executed
          )
          response = job.execute(request)
        else:
          url = reverse('beeswax:watch_query_history', kwargs={'query_history_id': query_history.id}) + '?on_success_url=' + on_success_url
          response['status'] = 0
          response['data'] = url
          response['query_history_id'] = query_history.id
      except QueryError, ex:
        response['status'] = 1
        response['data'] = _("Can't load the data: ") + ex.message
      except Exception, e:
        response['status'] = 1
        response['data'] = _("Can't load the data: ") + str(e)
Esempio n. 4
0
File: views.py Progetto: qkuc/hue
def load_table(request, database, table):
  db = dbms.get(request.user)
  table = db.get_table(database, table)
  response = {'status': -1, 'data': 'None'}

  if request.method == "POST":
    load_form = LoadDataForm(table, request.POST)

    if load_form.is_valid():
      on_success_url = reverse('metastore:describe_table', kwargs={'database': database, 'table': table.name})
      try:
        design = SavedQuery.create_empty(app_name='beeswax', owner=request.user, data=hql_query('').dumps())
        query_history = db.load_data(database, table, load_form, design)
        url = reverse('beeswax:watch_query_history', kwargs={'query_history_id': query_history.id}) + '?on_success_url=' + on_success_url
        response['status'] = 0
        response['data'] = url
      except Exception, e:
        response['status'] = 1
        response['data'] = _("Can't load the data: ") + str(e)
Esempio n. 5
0
def load_table(request, database, table):
    db = dbms.get(request.user)
    table = db.get_table(database, table)
    response = {"status": -1, "data": "None"}

    if request.method == "POST":
        load_form = LoadDataForm(table, request.POST)

        if load_form.is_valid():
            on_success_url = reverse("metastore:describe_table", kwargs={"database": database, "table": table.name})
            try:
                design = SavedQuery.create_empty(app_name="beeswax", owner=request.user)
                query_history = db.load_data(database, table, load_form, design)
                url = reverse("beeswax:watch_query", args=[query_history.id]) + "?on_success_url=" + on_success_url
                response["status"] = 0
                response["data"] = url
            except Exception, e:
                response["status"] = 1
                response["data"] = _("Can't load the data: ") + str(e)
Esempio n. 6
0
  if request.method == "POST":
    load_form = LoadDataForm(table, request.POST)

    if load_form.is_valid():
      on_success_url = reverse('metastore:describe_table', kwargs={'database': database, 'table': table.name})
      try:
        design = SavedQuery.create_empty(app_name='beeswax', owner=request.user, data=hql_query('').dumps())
        query_history = db.load_data(database, table, load_form, design)
        url = reverse('beeswax:watch_query_history', kwargs={'query_history_id': query_history.id}) + '?on_success_url=' + on_success_url
        response['status'] = 0
        response['data'] = url
      except Exception, e:
        response['status'] = 1
        response['data'] = _("Can't load the data: ") + str(e)
  else:
    load_form = LoadDataForm(table)

  if response['status'] == -1:
    popup = render('popups/load_data.mako', request, {
           'table': table,
           'load_form': load_form,
           'database': database,
           'app_name': 'beeswax'
       }, force_template=True).content
    response['data'] = popup

  return JsonResponse(response)


def describe_partitions(request, database, table):
  db = dbms.get(request.user)
Esempio n. 7
0
def load_table(request, database, table):
  response = {'status': -1, 'data': 'None'}

  source_type = request.POST.get('source_type', request.GET.get('source_type', 'hive'))
  cluster = json.loads(request.POST.get('cluster', '{}'))

  db = _get_db(user=request.user, source_type=source_type, cluster=cluster)

  table = db.get_table(database, table)

  if request.method == "POST":
    load_form = LoadDataForm(table, request.POST)

    if load_form.is_valid():
      on_success_url = reverse('metastore:describe_table', kwargs={'database': database, 'table': table.name})
      generate_ddl_only = request.POST.get('is_embeddable', 'false') == 'true'
      try:
        design = SavedQuery.create_empty(
            app_name=source_type if source_type != 'hive' else 'beeswax',
            owner=request.user,
            data=hql_query('').dumps()
        )
        form_data = {
          'path': load_form.cleaned_data['path'],
          'overwrite': load_form.cleaned_data['overwrite'],
          'partition_columns': [(column_name, load_form.cleaned_data[key]) for key, column_name in load_form.partition_columns.items()],
        }
        query_history = db.load_data(database, table.name, form_data, design, generate_ddl_only=generate_ddl_only)
        if generate_ddl_only:
          last_executed = json.loads(request.POST.get('start_time'), '-1')
          job = make_notebook(
            name=_('Load data in %s.%s') % (database, table.name),
            editor_type=source_type,
            statement=query_history.strip(),
            status='ready',
            database=database,
            on_success_url='assist.db.refresh',
            is_task=True,
            last_executed=last_executed
          )
          response = job.execute(request)
        else:
          url = reverse(
              'beeswax:watch_query_history',
              kwargs={'query_history_id': query_history.id}
          ) + '?on_success_url=' + on_success_url
          response['status'] = 0
          response['data'] = url
          response['query_history_id'] = query_history.id
      except QueryError as ex:
        response['status'] = 1
        response['data'] = _("Can't load the data: ") + ex.message
      except Exception as e:
        response['status'] = 1
        response['data'] = _("Can't load the data: ") + str(e)
  else:
    load_form = LoadDataForm(table)

  if response['status'] == -1:
    popup = render('popups/load_data.mako', request, {
           'table': table,
           'load_form': load_form,
           'source_type': source_type,
           'database': database,
           'app_name': 'beeswax'
       }, force_template=True).content
    response['data'] = popup

  return JsonResponse(response)