Задержка при просмотре данных из insertAll

#google-bigquery

#google-bigquery

Вопрос:

Это код, который я использую для отправки 1 строки данных в bigquery.

Предполагая следующее:

  1. Схема таблицы хорошая (работает, когда я создаю таблицу в пользовательском интерфейсе с той же схемой и той же 1 строкой данных)
  2. Карта, содержащая пары ключ: значение, хороша
  3. Учетные данные в порядке
  4. ProjectID, datasetId и tableId верны (проверяются путем пошагового перехода при создании URL-адреса)

Он всегда возвращает ответ без ошибок и следующий вывод: {«kind»:»bigquery#tabledatainserallresponse»} // подтвержденный статус: 200

Существует вероятность того, что структура моей строки неверна, но я потратил много времени на ее разборку. Насколько я понимаю

  1. Список (из TableDataInsertAllRequest.Строки объектов)

  2. Запрос tabledatainsertall.Объект Rows содержит ключ «json», значение которого равно ->

  3. Карта (которая содержит требуемые значения JSON)

     List<TableDataInsertAllRequest.Rows> rowsList = new ArrayList<>();
    TableDataInsertAllRequest.Rows oneRow = new TableDataInsertAllRequest.Rows();
    try {
        Map<String, Object> objectMap = new TreeMap<>();
        oneRow.setJson(objectMap);
    } catch (Exception e){
        e.printStackTrace();
    }
    rowsList.add(oneRow);
    
    TableDataInsertAllRequest content = new TableDataInsertAllRequest();
        content.setKind("bigquery#tableDataInsertAllRequest");
        content.setRows(rowsList);
    
    Bigquery.Tabledata.InsertAll request =
                bigqueryService.tabledata().insertAll(projectId, datasetId, tableId, content);
    TableDataInsertAllResponse response = request.execute();
      

Есть идеи?

Комментарии:

1. Насколько велика задержка? Согласно документации ожидается несколько секунд: cloud.google.com/bigquery/streaming-data-into-bigquery Потоковые данные доступны для анализа в режиме реального времени в течение нескольких секунд после первой потоковой вставки в таблицу.

Ответ №1:

Нашел решение, видимо, я пропустил его в документах.

https://cloud.google.com/bigquery/streaming-data-into-bigquery

«Доступ к данным для операций копирования и экспорта может занять до 90 минут …»

PS для тех, кто сталкивается с этими проблемами, чтобы узнать, действительно ли данные были загружены, запрашивайте таблицу, в ней должны быть данные почти сразу после потоковой передачи.

** Обязательно знайте ограничения потоковой передачи, иначе вы получите случайную ошибку 400. Приходилось отбирать мои данные для каждого запроса.